diff --git a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x64/IntelQuickSyncDecoder.dll b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x64/IntelQuickSyncDecoder.dll deleted file mode 100644 index cdaefb5..0000000 Binary files a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x64/IntelQuickSyncDecoder.dll and /dev/null differ diff --git a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x64/LAVAudio.ax b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x64/LAVAudio.ax deleted file mode 100644 index 5818968..0000000 Binary files a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x64/LAVAudio.ax and /dev/null differ diff --git a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x64/LAVAudio.ax.bak b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x64/LAVAudio.ax.bak deleted file mode 100644 index 48e8993..0000000 Binary files a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x64/LAVAudio.ax.bak and /dev/null differ diff --git a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x64/LAVSplitter.ax b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x64/LAVSplitter.ax deleted file mode 100644 index d3ff77e..0000000 Binary files a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x64/LAVSplitter.ax and /dev/null differ diff --git a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x64/LAVSplitter.ax.bak b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x64/LAVSplitter.ax.bak deleted file mode 100644 index c444d01..0000000 Binary files a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x64/LAVSplitter.ax.bak and /dev/null differ diff --git a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x64/LAVVideo.ax b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x64/LAVVideo.ax deleted file mode 100644 index 552985d..0000000 Binary files a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x64/LAVVideo.ax and /dev/null differ diff --git a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x64/LAVVideo.ax.bak b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x64/LAVVideo.ax.bak deleted file mode 100644 index cddaa23..0000000 Binary files a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x64/LAVVideo.ax.bak and /dev/null differ diff --git a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x64/avfilter-lav-7.dll b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x64/avfilter-lav-7.dll deleted file mode 100644 index 49ac0e5..0000000 Binary files a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x64/avfilter-lav-7.dll and /dev/null differ diff --git a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x64/avformat-lav-58.dll b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x64/avformat-lav-58.dll deleted file mode 100644 index a9c711a..0000000 Binary files a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x64/avformat-lav-58.dll and /dev/null differ diff --git a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x64/avresample-lav-4.dll b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x64/avresample-lav-4.dll deleted file mode 100644 index 0a50c0f..0000000 Binary files a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x64/avresample-lav-4.dll and /dev/null differ diff --git a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x64/avutil-lav-56.dll b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x64/avutil-lav-56.dll deleted file mode 100644 index 16385c3..0000000 Binary files a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x64/avutil-lav-56.dll and /dev/null differ diff --git a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x64/libbluray.dll b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x64/libbluray.dll deleted file mode 100644 index 2150fe7..0000000 Binary files a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x64/libbluray.dll and /dev/null differ diff --git a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x64/swscale-lav-5.dll b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x64/swscale-lav-5.dll deleted file mode 100644 index 47e5340..0000000 Binary files a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x64/swscale-lav-5.dll and /dev/null differ diff --git a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x86/IntelQuickSyncDecoder.dll b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x86/IntelQuickSyncDecoder.dll deleted file mode 100644 index 0eeef1b..0000000 Binary files a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x86/IntelQuickSyncDecoder.dll and /dev/null differ diff --git a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x86/LAVAudio.ax b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x86/LAVAudio.ax deleted file mode 100644 index b62f6e2..0000000 Binary files a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x86/LAVAudio.ax and /dev/null differ diff --git a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x86/LAVAudio.ax.bak b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x86/LAVAudio.ax.bak deleted file mode 100644 index 8e50cc5..0000000 Binary files a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x86/LAVAudio.ax.bak and /dev/null differ diff --git a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x86/LAVSplitter.ax b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x86/LAVSplitter.ax deleted file mode 100644 index 1f6712f..0000000 Binary files a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x86/LAVSplitter.ax and /dev/null differ diff --git a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x86/LAVSplitter.ax.bak b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x86/LAVSplitter.ax.bak deleted file mode 100644 index 55c0113..0000000 Binary files a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x86/LAVSplitter.ax.bak and /dev/null differ diff --git a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x86/LAVVideo.ax b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x86/LAVVideo.ax deleted file mode 100644 index 3d4bdda..0000000 Binary files a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x86/LAVVideo.ax and /dev/null differ diff --git a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x86/LAVVideo.ax.bak b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x86/LAVVideo.ax.bak deleted file mode 100644 index e810f81..0000000 Binary files a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x86/LAVVideo.ax.bak and /dev/null differ diff --git a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x86/avfilter-lav-7.dll b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x86/avfilter-lav-7.dll deleted file mode 100644 index af17652..0000000 Binary files a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x86/avfilter-lav-7.dll and /dev/null differ diff --git a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x86/avformat-lav-58.dll b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x86/avformat-lav-58.dll deleted file mode 100644 index 3807115..0000000 Binary files a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x86/avformat-lav-58.dll and /dev/null differ diff --git a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x86/avresample-lav-4.dll b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x86/avresample-lav-4.dll deleted file mode 100644 index 2f8224d..0000000 Binary files a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x86/avresample-lav-4.dll and /dev/null differ diff --git a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x86/avutil-lav-56.dll b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x86/avutil-lav-56.dll deleted file mode 100644 index af4cb13..0000000 Binary files a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x86/avutil-lav-56.dll and /dev/null differ diff --git a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x86/libbluray.dll b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x86/libbluray.dll deleted file mode 100644 index 4c72866..0000000 Binary files a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x86/libbluray.dll and /dev/null differ diff --git a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x86/swscale-lav-5.dll b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x86/swscale-lav-5.dll deleted file mode 100644 index ae19eb5..0000000 Binary files a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x86/swscale-lav-5.dll and /dev/null differ diff --git a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x64/CHANGELOG.txt b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x64/CHANGELOG.txt similarity index 86% rename from QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x64/CHANGELOG.txt rename to QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x64/CHANGELOG.txt index 12b7352..92fdf59 100644 --- a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x64/CHANGELOG.txt +++ b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x64/CHANGELOG.txt @@ -1,5 +1,170 @@ LAV DirectShow Filters Changelog =================================== +0.79.2 - 2024/04/08 +LAV Splitter +- Fixed: Buffering media from a high latency source was slower then expected (since 0.79) + +LAV Audio +- Fixed: Bitstream AC3 audio could fallback to PCM on streams that start with a corrupt audio frame (since 0.78) +- Fixed: Resolved a memory leak when bitstreaming AC3 + +0.79.1 - 2024/03/28 +LAV Video +- Fixed: Resolved a glitch when playing HEVC video + +0.79.0 - 2024/03/25 +LAV Splitter +- NEW: Support for demuxing VVC video +- Changed: Updated language lists to support all relevant language codes +- Changed: Improved resilience of streaming HLS +- Changed: Tweaked frame rate detection logic + +LAV Video: +- NEW: Support for decoding VVC video + +0.78.0 - 2023/10/25 +LAV Splitter +- NEW: Added identification of DTS:X in DTS HD-HRA streams +- NEW: Support for various stream flags in Matroska containers (Hearing Impaired, and more) +- Changed: Text-based subtitle selection now uses case-insensitive matches (ASCII characters only) +- Fixed: Many stream titles in MP4 files weren't being read properly + +LAV Video +- NEW: Support for decoding SMC video +- Fixed: HLG video streams could have their HLG flag overriden in some circumstances + +LAV Audio +- Fixed: TrueHD bitstreaming of Atmos tracks could cause output timestamps to be off, confusing some audio renderers + +0.77.2 - 2023/03/08 +LAV Splitter +- NEW: Added identification for spatial/immersive audio extensions (Atmos, DTS:X) +- Changed: More reasonable rounding for odd aspect ratios, avoiding issues with some video pipelines +- Fixed: Improved compatibility with some FTP servers + +LAV Audio +- Fixed: Restored the default channel layouts for 5.1 and 7.1 to the correct layout (accidentally changed in 0.77, causing some playback issues) +- Fixed: Some TrueHD files would not decode correctly +- Fixed: Clipping protection did not engage when using Integer output + +0.77.1 - 2022/11/15 +LAV Splitter +- Fixed: More MP4 keyframe information fixes + +0.77.0 - 2022/11/10 +LAV Splitter +- Fixed: Improved handling of multichannel PCM channel assignments +- Fixed: MP4 Keyframe information could be wrong + +LAV Audio +- NEW: Support for audio with more then 8 channel, including automatic downmixing if required + +0.76.1 - 2022/02/28 +LAV Splitter +- Changed: When requesting a HTTP URL, the URL itself is send as a referrer to increase compatibility +- Fixed: The priority of "Default" subtitle tracks in MKV files was wrong when a forced track was present + +LAV Video +- Changed: Improved color reporting for DVD menus/subtitles +- Fixed: D3D11 surface clearing did not work properly on Intel GPUs + +0.76.0 - 2022/01/22 +LAV Splitter +- NEW: Added an option to re-evaluate subtitle stream selection when the audio language changes +- NEW: Improved advanced subtitle selection syntax with negated flags (positive and negative flags can now be combined for more flexible selection) +- Changed: Improved variant/stream selection in DASH and HLS streams +- Changed: Video streams with the highest bitrate are preferred (if equal resolution) + +LAV Video +- NEW: Support for passing DoVi metadata to video renderers +- NEW: BobWeaver (BWDIF) software deinterlacer (a blend of YADIF and Weston, focusing on their individual strengths) +- NEW: Support for FIC screen capture video +- Changed: D3D11 video surfaces are flushed to black before decoding, avoiding green artifacts +- Changed: D3D11 devices are created up to feature level 12.1 + +LAV Audio +- Fixed: TrueHD bitstreaming could result in A/V sync issues or drop-outs +- Removed: Support for the external DTS decoder (dtsdecoderdll.dll) has been removed + +0.75.1 - 2021/06/21 +LAV Splitter +- Changed: AV1 files with no extradata will now generate a format header with stream information for decoders to use +- Fixed: Improved stream selection when multiple "default" video tracks are present + +LAV Video +- Changed: Updated dav1d for significant improvements in AV1 10-bit decoding performance +- Changed: AV1 hardware decoding will more reliably engage when provided with additional stream information from the demuxer + +LAV Audio +- Fixed: Opus decoding had audible artifacts in some files in 0.75 + +0.75.0 - 2021/03/30 +LAV Splitter +- NEW: Support for DASH streaming +- NEW: WebVTT support in Matroska/WebM +- Changed: Improved Font support from Matroska files +- Fixed: Large queue size limits could result in the wrong limit being applied +- Fixed: Resolved a memory leak in Matroska demuxing +- Fixed: Avoid selecting a stream with only a single video frame in MP4 files, which is often a cover art +- Fixed: Seeking in Matroska files with only audio cue points did not function +- Fixed: Seeking to the beginning of certain HLS streams did not work properly +- Fixed: Duration information in Matroska files is more reliable + +LAV Video +- NEW: AV1 DXVA2/D3D11 hardware decoding support +- NEW: ProRes 4444 XQ support +- Faster: Updated dav1d decoder and improved thread configuration for significantly improved AV1 decoding speed +- Fixed: Added a workaround for VP9 hardware decoding on AMD video cards +- Fixed: H.264 streams exceeding the Level 5.1 DPB limit will no longer be hardware decoded +- Fixed: Improved handling of missing reference frames in H.264 streams with hardware decoding +- Fixed: HEVC streams encoding 8-bit video in a Main10 profile can be properly hardware decoded +- Deprecated: NVIDIA CUVID and Intel QuickSync have been deprecated for future removal/replacement + +LAV Audio +- Fixed: Resolved an issue with glitching TrueHD bitstreaming on seamless-branching titles +- Fixed: Resolved a compatibility issue with some playback applications +- Deprecated: Support for the binary DTS decoder (dtsdecoderdll.dll) has been deprecated for future removal + +0.74.1 - 2019/03/19 +LAV Video +- Fixed: VP9 video could produce wrong timestamps, resulting in a black screen or other playback disruptions +- Fixed: Decoding VP9 from a non-keyframe (ie. after a seek, or badly cut file) would not always recover properly once a keyframe was encountered + +0.74.0 - 2019/03/16 +LAV Splitter +- Changed: Using GnuTLS for HTTPS and other TLS protocols, improving performance and compatibility with a lot of web streaming services (ie. YouTube Live Streams through youtube-dl, and more) +- Fixed: Keyframes in MP4 files were being reported with a slightly offset timestamp, resulting in slow keyframe seeking +- Fixed: Subtitles that stretch over chapter boundaries could be lost in Ordered Chapter MKV files +- Fixed: Fonts embedded in MKVs without a proper mimetype were not being imported (now it checks the file extensions for .ttf/.otf as well) + +LAV Video +- NEW: Initial support for parsing HDR10+ (SMPTE ST 2094-40) metadata, and passing it to the video renderer +- NEW: Using the dav1d AV1 decoder for significantly improved AV1 decoding performance +- Changed: Re-enabled experimental hardware acceleration for H.264 MVC 3D decoding on Intel GPUs, disabled by default +- Changed: Updated Intel MediaSDK dispatchers to the latest Media SDK, fixing compatibility with newer runtimes in the Intel DCH drivers +- Changed: Improved support for additional UtVideo subtypes + +LAV Audio +- Changed: Added an option to disable the PCM fallback when bitstreaming is requested +- Fixed: Further improvements to TrueHD Bitstreaming, resolving glitching on more new titles (particularly seamless branching titles) +- Fixed: Automatic fallback from bitstreaming to PCM could crash in some situations + +0.73.1 - 2018/10/11 +LAV Video +- Fixed: Container-provided color information will only overwrite video bitstream color information if its set and valid + +LAV Audio +- Fixed: Certain multi-channel AAC streams did not decode in 0.73 + +0.73.0 - 2018/10/05 +LAV Splitter +- Changed: Export the description of cover art and attachments for use by players +- Fixed: Properly marked the packet allocator as providing read-only packets, to avoid crashes with in-place transform filters + +LAV Video +- NEW: Support for AV1 decoding using libaom +- Changed: Enabled VP9 hardware acceleration by default +- Fixed: The aspect ratio of certain WMV/VC-1 files was not being properly respected in the WMV9 MFT decoder 0.72.0 - 2018/06/19 LAV Video @@ -24,7 +189,7 @@ LAV Video - Fixed: HDR metadata was not properly communicated to madVR in DXVA2-Native mode - Fixed: Anamorphic WMV9/VC-1 videos were not being played back with the correct aspect ratio in all cases - Fixed: Changing certain settings while playback was paused could result in a deadlock -- Fixed: Playing severly corrupted HEVC streams with hardware decoding could result in playback failing entirely, instead of skipping over the corruption +- Fixed: Playing severely corrupted HEVC streams with hardware decoding could result in playback failing entirely, instead of skipping over the corruption LAV Audio - NEW: Basic support for AAC 960 streams (common in DVB radio streams) @@ -441,7 +606,7 @@ LAV Splitter LAV Video - Basic support for playing DVDs in different playback rates - Fixed DXVA2 resource cleanup which may have caused a crash in some situations with DXVA2-Native -- Fixed A/V Sync when using the WMV9 DMO decoder (especially noticable after seeking) +- Fixed A/V Sync when using the WMV9 DMO decoder (especially noticeable after seeking) LAV Audio - Improved AC3 decoding quality (thanks to madshi for the patch in ffmpeg) @@ -452,7 +617,7 @@ General LAV Splitter - Added an option to disable quality-based audio stream selection (selects the first stream matching the language preferences) -- Removed Bitrate from audio quality criterias, because its too unreliable at this point. +- Removed Bitrate from audio quality criteria, because its too unreliable at this point. LAV Video - Fixed YADIF deinterlacing (broken after a ffmpeg update on 0.55) @@ -805,7 +970,7 @@ LAV Video 0.42 - 2011/11/30 LAV Splitter - Fixed a timestamping bug in the new MKV demuxer -- Futher enhancements to explorer thumbnail generation +- Further enhancements to explorer thumbnail generation 0.41 - 2011/11/29 LAV Splitter @@ -1025,7 +1190,7 @@ LAV Audio - Support for 1.1.0.0 - Try to reverse any channel upmixing done by the decoder, outputting the audio as close to the original source as possible. - New Channel Mapping functionality - - Output only "standard" channel layouts (Mono, Stereo, 5.1, 6.1, 7.1), filling non-existant channels with silence. Required by some HDMI receivers with "odd" source layouts. (default) + - Output only "standard" channel layouts (Mono, Stereo, 5.1, 6.1, 7.1), filling non-existent channels with silence. Required by some HDMI receivers with "odd" source layouts. (default) - Convert Mono to Stereo (simply double the audio channel) - Convert 6.1 to 7.1 (Back Center gets doubled into both back channels) @@ -1181,7 +1346,7 @@ LAV Splitter - Improved MPEG-TS duration calculations. - The settings will now always be properly saved and loaded. - Disabled the limit of 20 Streams per file. -- Fixed two seperate issues that caused files to not start playing. +- Fixed two separate issues that caused files to not start playing. LAV Audio Decoder - Property Page for Configuration and Status has been added @@ -1279,4 +1444,4 @@ LAVCAudio - Fixed overflow in timestamp calculation causing AVIs to play too fast 0.1 - 2010/08/14 -- Initial Release \ No newline at end of file +- Initial Release diff --git a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x64/COPYING b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x64/COPYING similarity index 100% rename from QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x64/COPYING rename to QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x64/COPYING diff --git a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x64/IntelQuickSyncDecoder.dll b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x64/IntelQuickSyncDecoder.dll new file mode 100644 index 0000000..2a66963 Binary files /dev/null and b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x64/IntelQuickSyncDecoder.dll differ diff --git a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x64/LAVAudio.ax b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x64/LAVAudio.ax new file mode 100644 index 0000000..172a87d Binary files /dev/null and b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x64/LAVAudio.ax differ diff --git a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x64/LAVFilters.Dependencies.manifest b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x64/LAVFilters.Dependencies.manifest similarity index 53% rename from QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x64/LAVFilters.Dependencies.manifest rename to QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x64/LAVFilters.Dependencies.manifest index 0f4e5b9..5daa56c 100644 --- a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x64/LAVFilters.Dependencies.manifest +++ b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x64/LAVFilters.Dependencies.manifest @@ -1,11 +1,11 @@ - - - - - - + + + + + + diff --git a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x64/LAVSplitter.ax b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x64/LAVSplitter.ax new file mode 100644 index 0000000..c11d5c4 Binary files /dev/null and b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x64/LAVSplitter.ax differ diff --git a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x64/LAVVideo.ax b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x64/LAVVideo.ax new file mode 100644 index 0000000..6c8c137 Binary files /dev/null and b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x64/LAVVideo.ax differ diff --git a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x64/README.txt b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x64/README.txt similarity index 56% rename from QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x64/README.txt rename to QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x64/README.txt index 660fedb..c27eab1 100644 --- a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x64/README.txt +++ b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x64/README.txt @@ -9,12 +9,11 @@ Install ============================= - Unpack - Register (install_*.bat files) - Registering requires administrative rights. - On Vista/7 also make sure to start it in an elevated shell. + Registering requires administrative rights, and an elevated shell ("Run as Administrator") Using it ============================= -By default the splitter will register for all media formats that have been +By default, the splitter will register for all media formats that have been tested and found working at least partially. This currently includes (but is not limited to) MKV/WebM, AVI, MP4/MOV, TS/M2TS/MPG, FLV, OGG, BluRay (.bdmv and .mpls) @@ -24,7 +23,7 @@ to use them. The Haali Media Splitter is one of those, and to give priority to the LAVFSplitter you have to either uninstall Haali or rename its .ax file at least temporarily. -The Audio and Video Decoder will register with a relatively high merit, which should make +The Audio and Video Decoder will register with relatively high merit, which should make it the preferred decoder by default. Most players offer a way to choose the preferred decoder however. @@ -35,18 +34,18 @@ The selection of video streams is not configurable, and LAV Splitter will quite pick the one with the best quality. Audio stream selection offers some flexibility, specifically you can configure your preferred languages. -The language configuration is straight forward. Just enter a list of 3-letter language codes (ISO 639-2), +The language configuration is straightforward. Just enter a list of 3-letter language codes (ISO 639-2), separated by comma or space. For example: "eng ger fre". This would try to select a stream matching one of these languages, -in the order you specified them. First check if an English track is present, and only if not, +in the order you specified them. First, check if an English track is present, and only if not, go to German, and after that, go to French. If multiple audio tracks match one language, the choice is based on the quality. The primary attribute here -is the number of channels, and after that the codec used. PCM and lossless codecs have a higher priority -then lossy codecs. +is the number of channels, and after that is the codec used. PCM and lossless codecs have a higher priority +than lossy codecs. Subtitle selection offers the most flexibility. -There is 4 distinct modes of subtitle selection. +There are 4 distinct modes of subtitle selection. "No Subtitles" This mode is simple, by default subtitles will be off. @@ -56,7 +55,7 @@ This mode will only pre-select subtitles flagged with the "forced" flag. It'll a "Default" The default mode will select subtitles matching your language preference. If there is no match, or you didn't configure -languages, no subtitles will be activated. In addion, subtitles flagged "default" or "forced" will always be used. +languages, no subtitles will be activated. In addition, subtitles flagged "default" or "forced" will always be used. "Advanced" The advanced mode lets you write your own combinations of rules with a special syntax. It also allows selecting subtitles @@ -67,26 +66,50 @@ In this example, LAV Splitter would select German subtitles if English audio was Instead of language codes, the advanced mode supports two special cases: "*" and "off". When you specify "*" for a language code, it'll match everything. For example "*:eng" will activate English subtitles, independent -of the audio language. The reverse is also possible: "eng:*" will activate any subtitles when the audio is english. +of the audio language. The reverse is also possible: "eng:*" will activate any subtitles when the audio is English. The "off" flag is only valid for the subtitle language, and it instructs LAV Splitter to turn the subtitles off. -So "eng:off" means that when the audio is english, the subtitles will be deactivated. +So "eng:off" means that when the audio is English, the subtitles will be deactivated. -Additionally to the syntax above, two flags are supported to enhance the subtitle selection. -Specifically, LAV Splitter understands the flag "d" for default subtitles, the flag "f" for forced subtitles, -the flag "h" for hearing impaired, and the flag "n" for normal streams (not default, forced, or impaired). -In addition, flags can be negated with a leading "!" before the whole flags block - "!h" becomes "dfn", etc. -Flags are appended to the subtitle language, separated by a pipe symbol ("|"). Example: "*:*|f" -This token specifys that on any audio language, you want any subtitle that is flagged forced. - -The advanced rukes can be combined into a complete logic for subtitle selection by just appending them, separated with a comma or a space. +Additionally to the syntax above, the following flags can be appended to the subtitle token separated by a pipe symbol ("|"): + - "d" for default subtitles + - "f" for forced subtitles + - "h" for hearing impaired + - "n" for normal streams (not default, forced, or impaired). +In addition, you can also check for the absence of flags by preceding the flags with a "!". +The advanced rules can be combined into a complete logic for subtitle selection by just appending them, separated with a comma or a space. The rules will always be parsed from left to right, the first match taking precedence. -Consider the following rule set: -"eng:eng|f eng:ger|f eng:off *:eng *:ger" -This rule means the following: -If audio is english, load an english or a german forced subtitle track, otherwise turn subtitles off. -If audio is not english, load english or german subtitles. +Finally, the rules can match the name of a stream, with some limitations. Only single words can be matched, as spaces are a separator for the next token. +A text match can be added to the end of the token with an @ sign. + +Example: (basic flag usage) + "*:*|f" +Explanation: + On any audio language, load any subtitles that are flagged forced. + +Example: (basic ruleset) + "eng:eng|f eng:ger|f eng:off *:eng *:ger" +Explanation: + If the audio is English, load an English or a German forced subtitle track, otherwise, turn subtitles off. + If the audio is not English, load English or German subtitles. + +Example: (flag usage with negation) + "jpn:ger|d!f" +Explanation: + In the Japanese language, load German subtitles that have the default-flag but not together with forced-flag. + This is useful when you have files where the default and forced flags are set together. + +Example: (advanced ruleset for files with multiple audio and subtitle-tracks) + "jpn:ger|d!f jpn:ger|!f jpn:ger ger:ger|f ger:eng|f ger:*|f" +Explanation: + On Japanese audio, try to load German full subs (default but not forced), then unforced, and at last any german subs if there are no unforced subs. + On German audio load only forced subs in the following order: German, English, any. + +Example: (text match) + "*:eng@Forced" +Explanation: + On any audio, select english subtitle streams with "Forced" in the stream title. BluRay Support ============================= @@ -96,31 +119,30 @@ and start playing. Alternatively, you can also open a playlist file (*.mpls, located in BDMV/PLAYLIST), and LAV Splitter will then play that specific title. -In future versions you'll be able to choose the title from within the player, as well. +In future versions, you'll be able to choose the title from within the player, as well. Compiling ============================= -Compiling is pretty straight forward using VC++2015 U1 (included project files). -Older versions of Visual Studio are not supported. +Compiling is pretty straightforward using VS2019 (included project files). +Older versions of Visual Studio are not officially supported, but may still work. It does, however, require that you build your own ffmpeg and libbluray. -You need to place the full ffmpeg package in a directory called "ffmpeg" in the -main source directory (the directory this file was in). There are scripts to +You need to place the full ffmpeg package in a directory called "ffmpeg" in the +main source directory (the directory this file was in). There are scripts to build a proper ffmpeg included. -I recommend using my fork of ffmpeg, as it includes additional patches for +I recommend using my fork of ffmpeg, as it includes additional patches for media compatibility: -http://git.1f0.de/gitweb?p=ffmpeg.git;a=summary +https://gitea.1f0.de/LAV/FFmpeg -libbluray is compiled with the MSVC project files, however a specially modified +libbluray is compiled with the MSVC project files, however, a specially modified version of libbluray is required. Similar to ffmpeg, just place the full tree inside the "libbluray" directory in the main directory. You can get the modified version here: -http://git.1f0.de/gitweb?p=libbluray.git;a=summary +https://gitea.1f0.de/LAV/libbluray Feedback ============================= GitHub Project: https://github.com/Nevcairiel/LAVFilters -Doom9: http://forum.doom9.org/showthread.php?t=156191 -You can, additionally, reach me on IRC in the MPC-HC channel on freenode (#mpc-hc) +Doom9: https://forum.doom9.org/showthread.php?t=156191 diff --git a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x86/avcodec-lav-58.dll b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x64/avcodec-lav-61.dll similarity index 51% rename from QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x86/avcodec-lav-58.dll rename to QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x64/avcodec-lav-61.dll index a294d71..cf6950d 100644 Binary files a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x86/avcodec-lav-58.dll and b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x64/avcodec-lav-61.dll differ diff --git a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x64/avfilter-lav-10.dll b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x64/avfilter-lav-10.dll new file mode 100644 index 0000000..e56cf86 Binary files /dev/null and b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x64/avfilter-lav-10.dll differ diff --git a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x64/avformat-lav-61.dll b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x64/avformat-lav-61.dll new file mode 100644 index 0000000..7ce1772 Binary files /dev/null and b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x64/avformat-lav-61.dll differ diff --git a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x64/avutil-lav-59.dll b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x64/avutil-lav-59.dll new file mode 100644 index 0000000..eb3354f Binary files /dev/null and b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x64/avutil-lav-59.dll differ diff --git a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x64/install_audio.bat b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x64/install_audio.bat new file mode 100644 index 0000000..2c1cddd --- /dev/null +++ b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x64/install_audio.bat @@ -0,0 +1,2 @@ +cd /d "%~dp0" +regsvr32.exe LAVAudio.ax \ No newline at end of file diff --git a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x64/install_splitter.bat b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x64/install_splitter.bat new file mode 100644 index 0000000..ff38a86 --- /dev/null +++ b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x64/install_splitter.bat @@ -0,0 +1,2 @@ +cd /d "%~dp0" +regsvr32.exe LAVSplitter.ax \ No newline at end of file diff --git a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x64/install_video.bat b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x64/install_video.bat new file mode 100644 index 0000000..3fa1ada --- /dev/null +++ b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x64/install_video.bat @@ -0,0 +1,2 @@ +cd /d "%~dp0" +regsvr32.exe LAVVideo.ax \ No newline at end of file diff --git a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x64/libbluray.dll b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x64/libbluray.dll new file mode 100644 index 0000000..b15bf3a Binary files /dev/null and b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x64/libbluray.dll differ diff --git a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x64/swresample-lav-5.dll b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x64/swresample-lav-5.dll new file mode 100644 index 0000000..97174b3 Binary files /dev/null and b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x64/swresample-lav-5.dll differ diff --git a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x64/swscale-lav-8.dll b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x64/swscale-lav-8.dll new file mode 100644 index 0000000..f0b8094 Binary files /dev/null and b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x64/swscale-lav-8.dll differ diff --git a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x86/CHANGELOG.txt b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x86/CHANGELOG.txt similarity index 86% rename from QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x86/CHANGELOG.txt rename to QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x86/CHANGELOG.txt index 12b7352..92fdf59 100644 --- a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x86/CHANGELOG.txt +++ b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x86/CHANGELOG.txt @@ -1,5 +1,170 @@ LAV DirectShow Filters Changelog =================================== +0.79.2 - 2024/04/08 +LAV Splitter +- Fixed: Buffering media from a high latency source was slower then expected (since 0.79) + +LAV Audio +- Fixed: Bitstream AC3 audio could fallback to PCM on streams that start with a corrupt audio frame (since 0.78) +- Fixed: Resolved a memory leak when bitstreaming AC3 + +0.79.1 - 2024/03/28 +LAV Video +- Fixed: Resolved a glitch when playing HEVC video + +0.79.0 - 2024/03/25 +LAV Splitter +- NEW: Support for demuxing VVC video +- Changed: Updated language lists to support all relevant language codes +- Changed: Improved resilience of streaming HLS +- Changed: Tweaked frame rate detection logic + +LAV Video: +- NEW: Support for decoding VVC video + +0.78.0 - 2023/10/25 +LAV Splitter +- NEW: Added identification of DTS:X in DTS HD-HRA streams +- NEW: Support for various stream flags in Matroska containers (Hearing Impaired, and more) +- Changed: Text-based subtitle selection now uses case-insensitive matches (ASCII characters only) +- Fixed: Many stream titles in MP4 files weren't being read properly + +LAV Video +- NEW: Support for decoding SMC video +- Fixed: HLG video streams could have their HLG flag overriden in some circumstances + +LAV Audio +- Fixed: TrueHD bitstreaming of Atmos tracks could cause output timestamps to be off, confusing some audio renderers + +0.77.2 - 2023/03/08 +LAV Splitter +- NEW: Added identification for spatial/immersive audio extensions (Atmos, DTS:X) +- Changed: More reasonable rounding for odd aspect ratios, avoiding issues with some video pipelines +- Fixed: Improved compatibility with some FTP servers + +LAV Audio +- Fixed: Restored the default channel layouts for 5.1 and 7.1 to the correct layout (accidentally changed in 0.77, causing some playback issues) +- Fixed: Some TrueHD files would not decode correctly +- Fixed: Clipping protection did not engage when using Integer output + +0.77.1 - 2022/11/15 +LAV Splitter +- Fixed: More MP4 keyframe information fixes + +0.77.0 - 2022/11/10 +LAV Splitter +- Fixed: Improved handling of multichannel PCM channel assignments +- Fixed: MP4 Keyframe information could be wrong + +LAV Audio +- NEW: Support for audio with more then 8 channel, including automatic downmixing if required + +0.76.1 - 2022/02/28 +LAV Splitter +- Changed: When requesting a HTTP URL, the URL itself is send as a referrer to increase compatibility +- Fixed: The priority of "Default" subtitle tracks in MKV files was wrong when a forced track was present + +LAV Video +- Changed: Improved color reporting for DVD menus/subtitles +- Fixed: D3D11 surface clearing did not work properly on Intel GPUs + +0.76.0 - 2022/01/22 +LAV Splitter +- NEW: Added an option to re-evaluate subtitle stream selection when the audio language changes +- NEW: Improved advanced subtitle selection syntax with negated flags (positive and negative flags can now be combined for more flexible selection) +- Changed: Improved variant/stream selection in DASH and HLS streams +- Changed: Video streams with the highest bitrate are preferred (if equal resolution) + +LAV Video +- NEW: Support for passing DoVi metadata to video renderers +- NEW: BobWeaver (BWDIF) software deinterlacer (a blend of YADIF and Weston, focusing on their individual strengths) +- NEW: Support for FIC screen capture video +- Changed: D3D11 video surfaces are flushed to black before decoding, avoiding green artifacts +- Changed: D3D11 devices are created up to feature level 12.1 + +LAV Audio +- Fixed: TrueHD bitstreaming could result in A/V sync issues or drop-outs +- Removed: Support for the external DTS decoder (dtsdecoderdll.dll) has been removed + +0.75.1 - 2021/06/21 +LAV Splitter +- Changed: AV1 files with no extradata will now generate a format header with stream information for decoders to use +- Fixed: Improved stream selection when multiple "default" video tracks are present + +LAV Video +- Changed: Updated dav1d for significant improvements in AV1 10-bit decoding performance +- Changed: AV1 hardware decoding will more reliably engage when provided with additional stream information from the demuxer + +LAV Audio +- Fixed: Opus decoding had audible artifacts in some files in 0.75 + +0.75.0 - 2021/03/30 +LAV Splitter +- NEW: Support for DASH streaming +- NEW: WebVTT support in Matroska/WebM +- Changed: Improved Font support from Matroska files +- Fixed: Large queue size limits could result in the wrong limit being applied +- Fixed: Resolved a memory leak in Matroska demuxing +- Fixed: Avoid selecting a stream with only a single video frame in MP4 files, which is often a cover art +- Fixed: Seeking in Matroska files with only audio cue points did not function +- Fixed: Seeking to the beginning of certain HLS streams did not work properly +- Fixed: Duration information in Matroska files is more reliable + +LAV Video +- NEW: AV1 DXVA2/D3D11 hardware decoding support +- NEW: ProRes 4444 XQ support +- Faster: Updated dav1d decoder and improved thread configuration for significantly improved AV1 decoding speed +- Fixed: Added a workaround for VP9 hardware decoding on AMD video cards +- Fixed: H.264 streams exceeding the Level 5.1 DPB limit will no longer be hardware decoded +- Fixed: Improved handling of missing reference frames in H.264 streams with hardware decoding +- Fixed: HEVC streams encoding 8-bit video in a Main10 profile can be properly hardware decoded +- Deprecated: NVIDIA CUVID and Intel QuickSync have been deprecated for future removal/replacement + +LAV Audio +- Fixed: Resolved an issue with glitching TrueHD bitstreaming on seamless-branching titles +- Fixed: Resolved a compatibility issue with some playback applications +- Deprecated: Support for the binary DTS decoder (dtsdecoderdll.dll) has been deprecated for future removal + +0.74.1 - 2019/03/19 +LAV Video +- Fixed: VP9 video could produce wrong timestamps, resulting in a black screen or other playback disruptions +- Fixed: Decoding VP9 from a non-keyframe (ie. after a seek, or badly cut file) would not always recover properly once a keyframe was encountered + +0.74.0 - 2019/03/16 +LAV Splitter +- Changed: Using GnuTLS for HTTPS and other TLS protocols, improving performance and compatibility with a lot of web streaming services (ie. YouTube Live Streams through youtube-dl, and more) +- Fixed: Keyframes in MP4 files were being reported with a slightly offset timestamp, resulting in slow keyframe seeking +- Fixed: Subtitles that stretch over chapter boundaries could be lost in Ordered Chapter MKV files +- Fixed: Fonts embedded in MKVs without a proper mimetype were not being imported (now it checks the file extensions for .ttf/.otf as well) + +LAV Video +- NEW: Initial support for parsing HDR10+ (SMPTE ST 2094-40) metadata, and passing it to the video renderer +- NEW: Using the dav1d AV1 decoder for significantly improved AV1 decoding performance +- Changed: Re-enabled experimental hardware acceleration for H.264 MVC 3D decoding on Intel GPUs, disabled by default +- Changed: Updated Intel MediaSDK dispatchers to the latest Media SDK, fixing compatibility with newer runtimes in the Intel DCH drivers +- Changed: Improved support for additional UtVideo subtypes + +LAV Audio +- Changed: Added an option to disable the PCM fallback when bitstreaming is requested +- Fixed: Further improvements to TrueHD Bitstreaming, resolving glitching on more new titles (particularly seamless branching titles) +- Fixed: Automatic fallback from bitstreaming to PCM could crash in some situations + +0.73.1 - 2018/10/11 +LAV Video +- Fixed: Container-provided color information will only overwrite video bitstream color information if its set and valid + +LAV Audio +- Fixed: Certain multi-channel AAC streams did not decode in 0.73 + +0.73.0 - 2018/10/05 +LAV Splitter +- Changed: Export the description of cover art and attachments for use by players +- Fixed: Properly marked the packet allocator as providing read-only packets, to avoid crashes with in-place transform filters + +LAV Video +- NEW: Support for AV1 decoding using libaom +- Changed: Enabled VP9 hardware acceleration by default +- Fixed: The aspect ratio of certain WMV/VC-1 files was not being properly respected in the WMV9 MFT decoder 0.72.0 - 2018/06/19 LAV Video @@ -24,7 +189,7 @@ LAV Video - Fixed: HDR metadata was not properly communicated to madVR in DXVA2-Native mode - Fixed: Anamorphic WMV9/VC-1 videos were not being played back with the correct aspect ratio in all cases - Fixed: Changing certain settings while playback was paused could result in a deadlock -- Fixed: Playing severly corrupted HEVC streams with hardware decoding could result in playback failing entirely, instead of skipping over the corruption +- Fixed: Playing severely corrupted HEVC streams with hardware decoding could result in playback failing entirely, instead of skipping over the corruption LAV Audio - NEW: Basic support for AAC 960 streams (common in DVB radio streams) @@ -441,7 +606,7 @@ LAV Splitter LAV Video - Basic support for playing DVDs in different playback rates - Fixed DXVA2 resource cleanup which may have caused a crash in some situations with DXVA2-Native -- Fixed A/V Sync when using the WMV9 DMO decoder (especially noticable after seeking) +- Fixed A/V Sync when using the WMV9 DMO decoder (especially noticeable after seeking) LAV Audio - Improved AC3 decoding quality (thanks to madshi for the patch in ffmpeg) @@ -452,7 +617,7 @@ General LAV Splitter - Added an option to disable quality-based audio stream selection (selects the first stream matching the language preferences) -- Removed Bitrate from audio quality criterias, because its too unreliable at this point. +- Removed Bitrate from audio quality criteria, because its too unreliable at this point. LAV Video - Fixed YADIF deinterlacing (broken after a ffmpeg update on 0.55) @@ -805,7 +970,7 @@ LAV Video 0.42 - 2011/11/30 LAV Splitter - Fixed a timestamping bug in the new MKV demuxer -- Futher enhancements to explorer thumbnail generation +- Further enhancements to explorer thumbnail generation 0.41 - 2011/11/29 LAV Splitter @@ -1025,7 +1190,7 @@ LAV Audio - Support for 1.1.0.0 - Try to reverse any channel upmixing done by the decoder, outputting the audio as close to the original source as possible. - New Channel Mapping functionality - - Output only "standard" channel layouts (Mono, Stereo, 5.1, 6.1, 7.1), filling non-existant channels with silence. Required by some HDMI receivers with "odd" source layouts. (default) + - Output only "standard" channel layouts (Mono, Stereo, 5.1, 6.1, 7.1), filling non-existent channels with silence. Required by some HDMI receivers with "odd" source layouts. (default) - Convert Mono to Stereo (simply double the audio channel) - Convert 6.1 to 7.1 (Back Center gets doubled into both back channels) @@ -1181,7 +1346,7 @@ LAV Splitter - Improved MPEG-TS duration calculations. - The settings will now always be properly saved and loaded. - Disabled the limit of 20 Streams per file. -- Fixed two seperate issues that caused files to not start playing. +- Fixed two separate issues that caused files to not start playing. LAV Audio Decoder - Property Page for Configuration and Status has been added @@ -1279,4 +1444,4 @@ LAVCAudio - Fixed overflow in timestamp calculation causing AVIs to play too fast 0.1 - 2010/08/14 -- Initial Release \ No newline at end of file +- Initial Release diff --git a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x86/COPYING b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x86/COPYING similarity index 100% rename from QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x86/COPYING rename to QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x86/COPYING diff --git a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x86/IntelQuickSyncDecoder.dll b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x86/IntelQuickSyncDecoder.dll new file mode 100644 index 0000000..1e9ef1e Binary files /dev/null and b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x86/IntelQuickSyncDecoder.dll differ diff --git a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x86/LAVAudio.ax b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x86/LAVAudio.ax new file mode 100644 index 0000000..ac3ac26 Binary files /dev/null and b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x86/LAVAudio.ax differ diff --git a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x86/LAVFilters.Dependencies.manifest b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x86/LAVFilters.Dependencies.manifest similarity index 53% rename from QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x86/LAVFilters.Dependencies.manifest rename to QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x86/LAVFilters.Dependencies.manifest index 0f4e5b9..5daa56c 100644 --- a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x86/LAVFilters.Dependencies.manifest +++ b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x86/LAVFilters.Dependencies.manifest @@ -1,11 +1,11 @@ - - - - - - + + + + + + diff --git a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x86/LAVSplitter.ax b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x86/LAVSplitter.ax new file mode 100644 index 0000000..923976c Binary files /dev/null and b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x86/LAVSplitter.ax differ diff --git a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x86/LAVVideo.ax b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x86/LAVVideo.ax new file mode 100644 index 0000000..00aca26 Binary files /dev/null and b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x86/LAVVideo.ax differ diff --git a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x86/README.txt b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x86/README.txt similarity index 56% rename from QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x86/README.txt rename to QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x86/README.txt index 660fedb..c27eab1 100644 --- a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x86/README.txt +++ b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x86/README.txt @@ -9,12 +9,11 @@ Install ============================= - Unpack - Register (install_*.bat files) - Registering requires administrative rights. - On Vista/7 also make sure to start it in an elevated shell. + Registering requires administrative rights, and an elevated shell ("Run as Administrator") Using it ============================= -By default the splitter will register for all media formats that have been +By default, the splitter will register for all media formats that have been tested and found working at least partially. This currently includes (but is not limited to) MKV/WebM, AVI, MP4/MOV, TS/M2TS/MPG, FLV, OGG, BluRay (.bdmv and .mpls) @@ -24,7 +23,7 @@ to use them. The Haali Media Splitter is one of those, and to give priority to the LAVFSplitter you have to either uninstall Haali or rename its .ax file at least temporarily. -The Audio and Video Decoder will register with a relatively high merit, which should make +The Audio and Video Decoder will register with relatively high merit, which should make it the preferred decoder by default. Most players offer a way to choose the preferred decoder however. @@ -35,18 +34,18 @@ The selection of video streams is not configurable, and LAV Splitter will quite pick the one with the best quality. Audio stream selection offers some flexibility, specifically you can configure your preferred languages. -The language configuration is straight forward. Just enter a list of 3-letter language codes (ISO 639-2), +The language configuration is straightforward. Just enter a list of 3-letter language codes (ISO 639-2), separated by comma or space. For example: "eng ger fre". This would try to select a stream matching one of these languages, -in the order you specified them. First check if an English track is present, and only if not, +in the order you specified them. First, check if an English track is present, and only if not, go to German, and after that, go to French. If multiple audio tracks match one language, the choice is based on the quality. The primary attribute here -is the number of channels, and after that the codec used. PCM and lossless codecs have a higher priority -then lossy codecs. +is the number of channels, and after that is the codec used. PCM and lossless codecs have a higher priority +than lossy codecs. Subtitle selection offers the most flexibility. -There is 4 distinct modes of subtitle selection. +There are 4 distinct modes of subtitle selection. "No Subtitles" This mode is simple, by default subtitles will be off. @@ -56,7 +55,7 @@ This mode will only pre-select subtitles flagged with the "forced" flag. It'll a "Default" The default mode will select subtitles matching your language preference. If there is no match, or you didn't configure -languages, no subtitles will be activated. In addion, subtitles flagged "default" or "forced" will always be used. +languages, no subtitles will be activated. In addition, subtitles flagged "default" or "forced" will always be used. "Advanced" The advanced mode lets you write your own combinations of rules with a special syntax. It also allows selecting subtitles @@ -67,26 +66,50 @@ In this example, LAV Splitter would select German subtitles if English audio was Instead of language codes, the advanced mode supports two special cases: "*" and "off". When you specify "*" for a language code, it'll match everything. For example "*:eng" will activate English subtitles, independent -of the audio language. The reverse is also possible: "eng:*" will activate any subtitles when the audio is english. +of the audio language. The reverse is also possible: "eng:*" will activate any subtitles when the audio is English. The "off" flag is only valid for the subtitle language, and it instructs LAV Splitter to turn the subtitles off. -So "eng:off" means that when the audio is english, the subtitles will be deactivated. +So "eng:off" means that when the audio is English, the subtitles will be deactivated. -Additionally to the syntax above, two flags are supported to enhance the subtitle selection. -Specifically, LAV Splitter understands the flag "d" for default subtitles, the flag "f" for forced subtitles, -the flag "h" for hearing impaired, and the flag "n" for normal streams (not default, forced, or impaired). -In addition, flags can be negated with a leading "!" before the whole flags block - "!h" becomes "dfn", etc. -Flags are appended to the subtitle language, separated by a pipe symbol ("|"). Example: "*:*|f" -This token specifys that on any audio language, you want any subtitle that is flagged forced. - -The advanced rukes can be combined into a complete logic for subtitle selection by just appending them, separated with a comma or a space. +Additionally to the syntax above, the following flags can be appended to the subtitle token separated by a pipe symbol ("|"): + - "d" for default subtitles + - "f" for forced subtitles + - "h" for hearing impaired + - "n" for normal streams (not default, forced, or impaired). +In addition, you can also check for the absence of flags by preceding the flags with a "!". +The advanced rules can be combined into a complete logic for subtitle selection by just appending them, separated with a comma or a space. The rules will always be parsed from left to right, the first match taking precedence. -Consider the following rule set: -"eng:eng|f eng:ger|f eng:off *:eng *:ger" -This rule means the following: -If audio is english, load an english or a german forced subtitle track, otherwise turn subtitles off. -If audio is not english, load english or german subtitles. +Finally, the rules can match the name of a stream, with some limitations. Only single words can be matched, as spaces are a separator for the next token. +A text match can be added to the end of the token with an @ sign. + +Example: (basic flag usage) + "*:*|f" +Explanation: + On any audio language, load any subtitles that are flagged forced. + +Example: (basic ruleset) + "eng:eng|f eng:ger|f eng:off *:eng *:ger" +Explanation: + If the audio is English, load an English or a German forced subtitle track, otherwise, turn subtitles off. + If the audio is not English, load English or German subtitles. + +Example: (flag usage with negation) + "jpn:ger|d!f" +Explanation: + In the Japanese language, load German subtitles that have the default-flag but not together with forced-flag. + This is useful when you have files where the default and forced flags are set together. + +Example: (advanced ruleset for files with multiple audio and subtitle-tracks) + "jpn:ger|d!f jpn:ger|!f jpn:ger ger:ger|f ger:eng|f ger:*|f" +Explanation: + On Japanese audio, try to load German full subs (default but not forced), then unforced, and at last any german subs if there are no unforced subs. + On German audio load only forced subs in the following order: German, English, any. + +Example: (text match) + "*:eng@Forced" +Explanation: + On any audio, select english subtitle streams with "Forced" in the stream title. BluRay Support ============================= @@ -96,31 +119,30 @@ and start playing. Alternatively, you can also open a playlist file (*.mpls, located in BDMV/PLAYLIST), and LAV Splitter will then play that specific title. -In future versions you'll be able to choose the title from within the player, as well. +In future versions, you'll be able to choose the title from within the player, as well. Compiling ============================= -Compiling is pretty straight forward using VC++2015 U1 (included project files). -Older versions of Visual Studio are not supported. +Compiling is pretty straightforward using VS2019 (included project files). +Older versions of Visual Studio are not officially supported, but may still work. It does, however, require that you build your own ffmpeg and libbluray. -You need to place the full ffmpeg package in a directory called "ffmpeg" in the -main source directory (the directory this file was in). There are scripts to +You need to place the full ffmpeg package in a directory called "ffmpeg" in the +main source directory (the directory this file was in). There are scripts to build a proper ffmpeg included. -I recommend using my fork of ffmpeg, as it includes additional patches for +I recommend using my fork of ffmpeg, as it includes additional patches for media compatibility: -http://git.1f0.de/gitweb?p=ffmpeg.git;a=summary +https://gitea.1f0.de/LAV/FFmpeg -libbluray is compiled with the MSVC project files, however a specially modified +libbluray is compiled with the MSVC project files, however, a specially modified version of libbluray is required. Similar to ffmpeg, just place the full tree inside the "libbluray" directory in the main directory. You can get the modified version here: -http://git.1f0.de/gitweb?p=libbluray.git;a=summary +https://gitea.1f0.de/LAV/libbluray Feedback ============================= GitHub Project: https://github.com/Nevcairiel/LAVFilters -Doom9: http://forum.doom9.org/showthread.php?t=156191 -You can, additionally, reach me on IRC in the MPC-HC channel on freenode (#mpc-hc) +Doom9: https://forum.doom9.org/showthread.php?t=156191 diff --git a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x64/avcodec-lav-58.dll b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x86/avcodec-lav-61.dll similarity index 55% rename from QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x64/avcodec-lav-58.dll rename to QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x86/avcodec-lav-61.dll index c748bb5..c33dd5a 100644 Binary files a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-0.72-x64/avcodec-lav-58.dll and b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x86/avcodec-lav-61.dll differ diff --git a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x86/avfilter-lav-10.dll b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x86/avfilter-lav-10.dll new file mode 100644 index 0000000..c7f6b06 Binary files /dev/null and b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x86/avfilter-lav-10.dll differ diff --git a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x86/avformat-lav-61.dll b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x86/avformat-lav-61.dll new file mode 100644 index 0000000..e304931 Binary files /dev/null and b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x86/avformat-lav-61.dll differ diff --git a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x86/avutil-lav-59.dll b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x86/avutil-lav-59.dll new file mode 100644 index 0000000..83ce535 Binary files /dev/null and b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x86/avutil-lav-59.dll differ diff --git a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x86/install_audio.bat b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x86/install_audio.bat new file mode 100644 index 0000000..2c1cddd --- /dev/null +++ b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x86/install_audio.bat @@ -0,0 +1,2 @@ +cd /d "%~dp0" +regsvr32.exe LAVAudio.ax \ No newline at end of file diff --git a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x86/install_splitter.bat b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x86/install_splitter.bat new file mode 100644 index 0000000..ff38a86 --- /dev/null +++ b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x86/install_splitter.bat @@ -0,0 +1,2 @@ +cd /d "%~dp0" +regsvr32.exe LAVSplitter.ax \ No newline at end of file diff --git a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x86/install_video.bat b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x86/install_video.bat new file mode 100644 index 0000000..3fa1ada --- /dev/null +++ b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x86/install_video.bat @@ -0,0 +1,2 @@ +cd /d "%~dp0" +regsvr32.exe LAVVideo.ax \ No newline at end of file diff --git a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x86/libbluray.dll b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x86/libbluray.dll new file mode 100644 index 0000000..e0980ce Binary files /dev/null and b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x86/libbluray.dll differ diff --git a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x86/swresample-lav-5.dll b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x86/swresample-lav-5.dll new file mode 100644 index 0000000..7b22e64 Binary files /dev/null and b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x86/swresample-lav-5.dll differ diff --git a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x86/swscale-lav-8.dll b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x86/swscale-lav-8.dll new file mode 100644 index 0000000..ab7959d Binary files /dev/null and b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/LAVFilters-x86/swscale-lav-8.dll differ diff --git a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/MediaInfo-x64/MediaInfo.dll b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/MediaInfo-x64/MediaInfo.dll index 171477a..71385e1 100644 Binary files a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/MediaInfo-x64/MediaInfo.dll and b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/MediaInfo-x64/MediaInfo.dll differ diff --git a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/MediaInfo-x86/MediaInfo.dll b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/MediaInfo-x86/MediaInfo.dll index cd847dd..16747f3 100644 Binary files a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/MediaInfo-x86/MediaInfo.dll and b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/MediaInfo-x86/MediaInfo.dll differ diff --git a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/MediaInfo.Wrapper.dll b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/MediaInfo.Wrapper.dll deleted file mode 100644 index 7c5f31d..0000000 Binary files a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/MediaInfo.Wrapper.dll and /dev/null differ diff --git a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/MediaInfo.Wrapper.xml b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/MediaInfo.Wrapper.xml deleted file mode 100644 index f085e0f..0000000 --- a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/MediaInfo.Wrapper.xml +++ /dev/null @@ -1,3634 +0,0 @@ - - - - MediaInfo.Wrapper - - - - - Describes method to build audio stream. - - - - - - - - - - - Describes method to build chapter stream. - - - - - - - - - - - Describes media builder interface - - The type of the stream. - - - - Builds media stream. - - - - - - Describes base methods to build media stream with language - - The type of the stream. - - - - Initializes a new instance of the class. - - The media info object. - The stream number. - The stream position. - - - - - - - Describes base methods to build media stream - - The type of the stream. - - - - Converts the string representation of a value to specified type - - - The source value. - The result. - true if s was converted successfully; otherwise, false. - - - - Initializes a new instance of the class. - - The media info object. - The stream number. - The stream position. - - - - Gets the stream position. - - - The stream position. - - - - - Gets the logical stream number. - - - The logical stream number. - - - - - Gets the kind of media stream. - - - The kind of media stream. - - - - - Gets the kind of the stream. - - - The kind of the stream. - - - - - Gets the media info object to access to low-level functions. - - - The media info object. - - - - - - - - Gets the property value by the property name. - - The stream parameter name. - - The manual extract result function. - Returns property value of specified stream property name. - - - - Gets the property value by the property index. - - The stream property index. - The kind of property value - - The manual extract result function. - Returns property value of specified stream property index. - - - - Gets the specified property value by property name. - - The parameter. - The extract result. - Returns property value by name. If property does not defined will return . - - - - Gets the specified property value by the property index. - - The property index. - The kind of property value - The extract result. - Returns property value by name. If property does not defined will return . - - - - Describes method to build menu stream. - - - - - - - - - - - - - - Describes base methods to build subtitle stream. - - - - - Initializes a new instance of the class. - - The media info object. - The stream number. - The stream position. - - - - - - - - - - - - - Converts the string representation of a value to specified type - - - The source value. - The result. - true if s was converted successfully; otherwise, false. - - - - Describes base methods to build video stream. - - - - - Initializes a new instance of the class. - - The media info object. - The stream number. - The stream position. - - - - - - - - - - Describes video aspect ratio - - - - - The opaque (1:1) - - - - - The high end data graphics (5:4) - - - - - The full screen (4:3) - - - - - The standard slides (3:3) - - - - - The digital SLR cameras (3:2) - - - - - The High Definition TV (16:9) - - - - - The wide screen display (16:10) - - - - - The wide screen (1.85:1) - - - - - The cinema scope (21:9) - - - - - Defines constants for different kind of audio codecs. - - - - - The undefined audio codec - - - - - MPEG Layer 1 - - - - - MPEG Layer 2 - - - - - MPEG Layer 3 - - - - - PCM big-endian int - - - - - PCM little-endian int - - - - - PCM float IEEE - - - - - Dolby Digital - - - - - Dolby Digital Atmos - - - - - DolbyNet - - - - - DolbyNet - - - - - Dolby Digital Plus - - - - - Dolby Digital Plus Atmos - - - - - Dolby TrueHD - - - - - Dolby TrueHD Atmos - - - - - DTS - - - - - DTS-HD - - - - - Free Lossless Audio Codec - - - - - OPUS - - - - - True Audio - - - - - VORBIS - - - - - WavPack v4 - - - - - WavPack - - - - - Waveform Audio - - - - - Waveform Audio - - - - - The Real Audio - - - - - The Real Audio - - - - - The Real Audio - - - - - The Real Audio - - - - - The Real Audio - - - - - The Real Audio - - - - - Meridian Lossless - - - - - Advanced Audio Coding - - - - - Advanced Audio Coding - - - - - Advanced Audio Coding - - - - - Advanced Audio Coding - - - - - Advanced Audio Coding - - - - - Advanced Audio Coding - - - - - Advanced Audio Coding - - - - - Advanced Audio Coding - - - - - Advanced Audio Coding - - - - - Advanced Audio Coding - - - - - Advanced Audio Coding - - - - - Apple Lossless - - - - - Monkey's Audio - - - - - Windows Media Audio - - - - - Windows Media Audio v2 - - - - - Windows Media Audio 9 - - - - - Adaptive differential pulse-code modulation - - - - - Adaptive multi rate - - - - - Adaptive Transform Acoustic Coding (SDDS) - - - - - Adaptive Transform Acoustic Coding 3 - - - - - ATRAC3plus - - - - - ATRAC Advanced Lossless - - - - - ATRAC9 - - - - - Provides properties and overridden methods for the analyze audio stream - and contains information about audio stream. - - - - - - - - - - - - Gets the audio codec. - - - The audio codec. - - - - - Gets the codec friendly name. - - - The codec friendly name. - - - - - Gets the stream duration. - - - The stream duration. - - - - - Gets the audio bitrate. - - - The audio bitrate. - - - - - Gets the audio channel amount. - - - The audio channel amount. - - - - - Gets the audio sampling rate. - - - The audio sampling rate. - - - - - Gets the bit depth of stream. - - - The bit depth of stream. - - - - - Gets the audio format. - - - The audio format. - - - - - Gets the audio codec name. - - - The audio codec name. - - - - - Gets the audio channels friendly. - - - The audio channels friendly. - - - - - Gets the stream tags. - - - The stream tags. - - - - - Describes properties of the audio tags - - - - - - Gets the title of the album. - - - The title of the album. - - - - - Gets the title of the track. - - - The title of the track. - - - - - Gets the title of the subtrack. - - - The title of the subtrack. - - - - - Gets the original album name (in case of a remake/remix). - - - The original album name (in case of a remake/remix). - - - - - Gets the original track name (in case of a remake/remix). - - - The original track name (in case of a remake/remix). - - - - - Gets the number of the current track. - - - The number of the current track. - - - - - Gets the number of all tracks. - - - The number of all tracks. - - - - - Gets the number of the current part in a multi-disc album. - - - The number of the current part in a multi-disc album. - - - - - Gets the number of all parts in a multi-disc album. - - - The number of all parts in a multi-disc album. - - - - - Gets a person or band/collective generally considered responsible for the work : Singer, Implementor. - - - A person or band/collective generally considered responsible for the work : Singer, Implementor. - - - - - Gets the album artist. - - - The album artist. - - - - - Gets the official artist/performer web page. - - - The official artist/performer web page. - - - - - Gets the accompaniment name. - - - The accompaniment name. - - - - - Gets the composer name. - - - The composer name. - - - - - Gets the composer nationality. - - - The composer nationality. - - - - - Gets the arranger name. - - - The arranger name. - - - - - Gets the lyricist name. - - - The lyricist name. - - - - - Gets the conductor name. - - - The conductor name. - - - - - Gets the sound engineer name. - - - The sound engineer name. - - - - - Gets who mastered track. - - - Who mastered track. - - - - - Gets who remixed track. - - - Who remixed track. - - - - - Gets the label name. - - - The label name. - - - - - Gets the recorded date. - - - The recorded date. - - - - - Gets the genre. - - - The genre. - - - - - Gets the mood. - - - The mood. - - - - - Gets the encoded original. - - - The encoded original. - - - - - Gets the track gain. - - - The track gain. - - - - - Gets the track peak. - - - The track peak. - - - - - Gets the track ISRC. - - - The track ISRC. - - - - - Gets the track MSDI. - - - The track MSDI. - - - - - Gets the bar code. - - - The bar code. - - - - - Gets the LCCN. - - - The LCCN. - - - - - Gets the catalog number. - - - The catalog number. - - - - - Gets the label code. - - - The label code. - - - - - Gets the name of the person or organisation that encoded/ripped the audio file. - - - The name of the person or organisation that encoded/ripped the audio file. - - - - - Base class to read tags from stream - - - - - Gets or sets the tags. - - - The tags. - - - - - Gets the title of the media. - - - The title of the media. - - - - - Gets a short description of the contents, such as "Two birds flying". - - - A short description of the contents, such as "Two birds flying". - - - - - Gets the keywords to the item separated by a comma, used for searching. - - - The keywords to the item separated by a comma, used for searching. - - - - - Gets the country. - - - The country. - - - - - Gets the time that the item was originally released. - - - The time that the item was originally released. - - - - - Gets the time that the encoding of this item was completed began. - - - The time that the encoding of this item was completed began. - - - - - Gets the time that the tags were done for this item. - - - The time that the tags were done for this item. - - - - - Gets any comment related to the content. - - - Any comment related to the content. - - - - - Gets a numeric value defining how much a person likes the song/movie. The number is between 0 and 5 with decimal values possible (e.g. 2.7), 5(.0) being the highest possible rating. - - - a numeric value defining how much a person likes the song/movie. The number is between 0 and 5 with decimal values possible (e.g. 2.7), 5(.0) being the highest possible rating. - - - - - Gets the copyright attribution. - - - The copyright attribution. - - - - - Gets the name of the organization producing the track (i.e. the 'record label'). - - - The name of the organization producing the track (i.e. the 'record label'). - - - - - Gets the publishers official web page. - - - The publishers official web page. - - - - - Gets the name of the organization distributing track. - - - The name of the organization distributing track. - - - - - Gets the average number of beats per minute in the complete target. - - - The average number of beats per minute in the complete target. - - - - - Gets the cover media. - - - The cover media. - - - - - Describes properties of the cover tags - - - - - Gets a value indicating whether this is exists. - - - true if exists; otherwise, false. - - - - - Gets the description of the cover. - - - The description of the cover. - - - - - Gets the type of the cover. - - - The type of the cover. - - - - - Gets the MIME of the cover. - - - The MIME of the cover. - - - - - Gets the cover data. - - - The cover data. - - - - - Provides properties and overridden methods for the analyze chapter in media - and contains information about chapter. - - - - - - - - - - - - Gets the chapter offset. - - - The chapter offset. - - - - - Gets the chapter description. - - - The chapter description. - - - - - Static extensions for file paths - - - - - Determines whether path is live TV. - - The path. - - true if the specified path is live TV; otherwise, false. - - - - - Determines whether this instance is RTSP. - - The path. - - true if the specified path is RTSP; otherwise, false. - - - - - Determines whether path is network video. - - The path. - - true if the specified path is network video; otherwise, false. - - - - - Determines whether the specified path is video. - - The path. - - true if the specified path is video; otherwise, false. - - - - - Determines whether this instance is picture. - - The path. - - true if the specified path is picture; otherwise, false. - - - - - Determines whether is LastFM stream. - - The path. - - true if the specified path is LastFM stream; otherwise, false. - - - - - Determines whether specified path is network path. - - The path. - - true if the specified path is network path; otherwise, false. - - - - - Gets the type of the drive. - - The drive. - Returns drive type. - 0 - undefined - 2 - removable drive (Flash, Floppy) - 3 - fixed drive (HDD) - 4 - remote drive (network share) - 5 - CD/DVD drive - 6 - RAM disk drive - - - - - Determines whether the specified string path is UNC network. - - The string path. - - true if the specified string path is UNC network; otherwise, false. - - - - - Determines whether the specified string path is A/V stream. - - The string path. - - true if the specified string path is A/V stream; otherwise, false. - - - - - Determines whether the specified string path is remote URL. - - The string path. - - true if the specified string path is remote URL; otherwise, false. - - - - - Determines whether specified path is audio. - - The path. - - true if the specified path is audio; otherwise, false. - - - - - Describes methods to work with unmanaged Global memory block - - - - - - Initializes a new instance of the class. - - The handle. - - - - Finalizes an instance of the class. - - - - - Gets the handle. - - - The handle. - - - - - Releases unmanaged and - optionally - managed resources. - - - - - Strings to global ANSI string. - - The source. - - - - - Describes methods to manipulate language data - - - - - Gets the language by LCID. - - The LCID. - Returns language name - - - - Gets language by the short language name. - - The short language name. - Returns language name. - - - - Gets LCID by short language name. - - The short language. - Returns LCID. - - - - Provides properties and overridden methods for the analyze stream - and contains information about media stream. - - - - - - Gets the media stream language. - - - The media stream language. - - - - - Gets the media stream LCID. - - - The media stream LCID. - - - - - Gets a value indicating whether this is default. - - - true if default; otherwise, false. - - - - - Gets a value indicating whether this is forced. - - - true if forced; otherwise, false. - - - - - Describes kind of streams - - - - - The general (container, disk info) - - - - - The video - - - - - The audio - - - - - The subtitles and text information - - - - - The other (chapters) - - - - - The image - - - - - The menu - - - - - Describes low-level functions to access to media information - - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The path to mediainfo.dll. - - - - Finalizes an instance of the class. - - - - - Opens the specified file name. - - Name of the file. - Return internal handle to access to low-level functions. - - - - Opens the buffer initialize. - - Size of the file. - The file offset. - - - - - Opens the buffer continue. - - The buffer. - Size of the buffer. - - - - - Opens the buffer continue go to get. - - - - - - Opens the buffer finalize. - - - - - - Closes this instance. - - - - - Informs media stream data. - - - - - - Gets property value by specified stream kind and name. - - Kind of the stream. - The stream number. - The parameter. - The kind of information. - The kind of search. - Returns property value - - - - Sets value to specified option name. - - The option name. - The option value. - - - - - Gets the state. - - - - - - Gets count items of the specified stream. - - Kind of the stream. - The stream number. - - - - - Gets the specified parameter value in the stream by parameter name. - - Kind of the stream. - The stream number. - The parameter. - - - - - Gets the specified parameter value in the stream by parameter index. - - Kind of the stream. - The stream number. - The parameter. - - - - - Gets options value by the specified option name. - - The option. - - - - - Gets count of specified kind of streams. - - Kind of the streams. - - - - - Releases unmanaged and - optionally - managed resources. - - - - - Describes low-level function to access to mediaInfo lists - - - - - - Initializes a new instance of the class. - - - - - Finalizes an instance of the class. - - - - - Opens the specified file name. - - Name of the file. - The options. - - - - - Closes the specified file position. - - The file position. - - - - Informs the specified file position. - - The file position. - - - - - Gets the property value in specified file position by stream and property name. - - The file position. - Kind of the stream. - The stream number. - The property name. - The kind of information. - The kind of search. - - - - - Gets the property value in specified file position by stream and property index. - - The file position. - Kind of the stream. - The stream number. - The property index. - The kind of information. - - - - - Sets options value by the specified option name. - - The option name. - The option value. - - - - - Gets current state. - - - - - - Gets count of items in file position and stream. - - The file position. - Kind of the stream. - The stream number. - - - - - Opens the specified file name. - - Name of the file. - - - - Closes this instance. - - - - - Gets the specified file position. - - The file position. - Kind of the stream. - The stream number. - The parameter. - The kind of information. - - - - - Gets the specified file position. - - The file position. - Kind of the stream. - The stream number. - The parameter. - - - - - Gets the specified file position. - - The file position. - Kind of the stream. - The stream number. - The parameter. - - - - - Gets options value by the specified option name. - - The option name. - - - - - Gets count of specified kind of stream in th file position. - - The file position. - Kind of the streams. - - - - - Releases unmanaged and - optionally - managed resources. - - - - - Describes method and properties to retrieve information from media source - - - - - Initializes a new instance of the class. - - The file path. - - - - Initializes a new instance of the class. - - The file path. - The path to DLL. - - - - Checks if mediaInfo.dll file exist. - - The path to mediaInfo.dll - Returns true if mediaInfo.dll is exists; elsewhere false. - - - - Gets a value indicating whether this instance has video. - - - true if this instance has video; otherwise, false. - - - - - Gets a value indicating whether media has at least one video stream with stereoscopic effect. - - - true if is3d; otherwise, false. - - - - - Gets the video streams. - - - The video streams. - - - - - Gets the best video stream. - - - The best video stream. - - - - - Gets the video codec. - - - The video codec. - - - - - Gets the video frame rate. - - - The video frame rate. - - - - - Gets the video width. - - - The video width. - - - - - Gets the video height. - - - The video height. - - - - - Gets the video aspect ratio. - - - The video aspect ratio. - - - - - Gets the type of the scan. - - - The type of the scan. - - - - - Gets a value indicating whether video is interlaced. - - - true if video is interlaced; otherwise, false. - - - - - Gets the video resolution. - - - The video resolution. - - - - - Gets the video bitrate. - - - The video bitrate. - - - - - Gets the audio streams. - - - The audio streams. - - - - - Gets the best audio stream. - - - The best audio stream. - - - - - Gets the audio codec. - - - The audio codec. - - - - - Gets the audio bitrate. - - - The audio bitrate. - - - - - Gets the audio sample rate. - - - The audio sample rate. - - - - - Gets the count of audio channels. - - - The count of audio channels. - - - - - Gets the audio channels friendly name. - - - The audio channels friendly name. - - - - - Gets the list of media subtitles. - - - The media subtitles. - - - - - Gets a value indicating whether media has internal or external subtitles. - - - true if media has subtitles; otherwise, false. - - - - - Gets a value indicating whether this instance has external subtitles. - - - true if this instance has external subtitles; otherwise, false. - - - - - Gets the media chapters. - - - The media chapters. - - - - - Gets a value indicating whether media has chapters. - - - true if media has chapters; otherwise, false. - - - - - Gets the menu streams from media. - - - The menu streams. - - - - - Gets a value indicating whether media has menu. - - - true if media has menu; otherwise, false. - - - - - Gets a value indicating whether media is DVD. - - - true if media is DVD; otherwise, false. - - - - - Gets a value indicating whether media is BluRay. - - - true if media is BluRay; otherwise, false. - - - - - Gets a value indicating whether media information was not loaded. - - - true if media information was not loaded; otherwise, false. - - - - - Gets the duration of the media. - - - The duration of the media. - - - - - Gets the mediainfo.dll version. - - - The mediainfo.dll version. - - - - - Gets the media size. - - - The media size. - - - - - Gets the tags. - - - The tags. - - - - - Defines constants for media stream kinds. - - - - - The video stream - - - - - The audio stream - - - - - The subtitle stream - - - - - The image stream - - - - - Menu - - - - - Provides basic properties and instance methods for the analyze stream - and contains information about media stream. - - - - - - Gets or sets the media steam id. - - - The media steam id. - - - - - Gets or sets the name of stream. - - - The name of stream. - - - - - Gets the kind of media stream. - - - The kind of media stream. - - - - - Gets the kind of the stream. - - - The kind of the stream. - - - - - Gets the stream position. - - - The stream position. - - - - - Gets the logical stream number. - - - The logical stream number. - - - - - Describes properties of the menu - - - - - - Initializes a new instance of the class. - - - - - Gets or sets the menu duration. - - - The menu duration. - - - - - Gets the chapters. - - - The chapters. - - - - - - - - - - - Describes properties of the menu chapter - - - - - Gets or sets the menu position. - - - The menu position. - - - - - Gets or sets the menu chapter name. - - - The menu chapter name. - - - - - Describes 3D stereo mode - - - - - No 3D (mono) - - - - - The side by side left eye is first - - - - - The top bottom right eye is first - - - - - The top bottom left eye is first - - - - - The checkerboard right eye is first - - - - - The checkerboard left eye is first - - - - - The row interleaved right eye is first - - - - - The row interleaved left eye is first - - - - - The column interleaved right eye is first - - - - - The column interleaved left eye is first - - - - - The anaglyph cyan-red - - - - - The side by side right eye is first - - - - - The anaglyph green-magenta - - - - - The both eyes laced left eye is first - - - - - The both eyes laced right eye is first - - - - - Defines constants for different kind of subtitles. - - - - - The undefined type. - - - - - The Advanced SubStation Alpha subtitles. - - - - - The BMP image subtitles. - - - - - The SubStation Alpha subtitles. - - - - - The Advanced SubStation Alpha text subtitles. - - - - - The SubStation Alpha text subtitles. - - - - - The Universal Subtitle Format text subtitles. - - - - - The Unicode text subtitles. - - - - - The Universal Subtitle Format subtitles. - - - - - The Unicode subtitles. - - - - - The VOB SUB subtitles (DVD subtitles). - - - - - The Presentation Grapic Stream Subtitle Format subtitles - - - - - The HDMV Text Subtitle Format subtitles - - - - - Describes type of video codecs - - - - - The undefined - - - - - The uncompressed - - - - - Dirac - - - - - MPEG4 - - - - - MPEG4 Simple Profile - - - - - MPEG4 Advanced Simple Profile - - - - - MPEG4 Advanced Profile - - - - - MPEG4 AVC - - - - - MPEG4 ISO Simple Profile - - - - - MPEG4 ISO Advanced Simple Profile - - - - - MPEG4 ISO Advanced Profile - - - - - MPEG4 ISO AVC - - - - - MPEG4 ISO HEVC - - - - - The Windows Media MPEG4 V1 - - - - - The Windows Media MPEG4 V2 - - - - - The Windows Media MPEG4 V3 - - - - - VC1 - - - - - The MPEG1 - - - - - The MPEG2 - - - - - The ProRes - - - - - Real Video v1 - - - - - Real Video v2 - - - - - Real Video v3 - - - - - Real Video v4 - - - - - Theora - - - - - TrueMotion VP6 - - - - - VP8 - - - - - VP9 - - - - - DivX v1 - - - - - DivX v2 - - - - - DivX v3.x - - - - - DivX v4 - - - - - DivX v5 - - - - - The XVid - - - - - Sorenson Video v1 - - - - - Sorenson Video v2 - - - - - Sorenson Video v3 - - - - - The Sorenson Spark - - - - - H.260 - - - - - H.261 - - - - - H.263 - - - - - AVdv - - - - - Autodesk Digital Video v1 - - - - - FF video codec 1 - - - - - FF video codec 2 - - - - - IV21 - - - - - IV30 - - - - - IV40 - - - - - IV50 - - - - - The FFDShow MPEG-4 Video - - - - - The FFDShow MPEG-4 Video - - - - - HuffYUV 2.2 - - - - - Motion JPEG - - - - - Digital Video - - - - - Digital Video HD - - - - - DVCPRO50 - - - - - DVCPRO HD - - - - - Windows Media Video V7 - - - - - Windows Media Video V8 - - - - - Windows Media Video V9 - - - - - QuickTime 8BPS - - - - - Bink video - - - - - Describes properties of the video tags - - - - - - Gets the title of the collection. - - - The title of the collection. - - - - - Gets the title of the season. - - - The title of the season. - - - - - Gets the title of part. - - - The title of part. - - - - - Gets the title of the file for a video file. - - - The title of the file for a video file. - - - - - Gets the title of chapter. - - - The title of chapter. - - - - - Gets the original movie. - - - The original movie. - - - - - Gets the track position. - - - The track position. - - - - - Gets the composer name. - - - The composer name. - - - - - Gets the composer nationality. - - - The composer nationality. - - - - - Gets the arranger name. - - - The arranger name. - - - - - Gets the lyricist name. - - - The lyricist name. - - - - - Gets the conductor name. - - - The conductor name. - - - - - Gets the sound engineer name. - - - The sound engineer name. - - - - - Gets the real name of actor. - - - The real name of actor. - - - - - Gets the name of the character an actor or actress plays in this movie. - - - The name of the character an actor or actress plays in this movie. - - - - - Gets the author of the story or script. - - - The author of the story or script. - - - - - Gets the author of the screenplay or scenario (used for movies and TV shows). - - - The author of the screenplay or scenario (used for movies and TV shows). - - - - - Gets the name of the director. - - - The name of the director. - - - - - Gets the name of assistant director. - - - The name of assistant director. - - - - - Gets the name of the director of photography, also known as cinematographer. - - - The name of the director of photography, also known as cinematographer. - - - - - Gets the person who oversees the artists and craftspeople who build the sets. - - - The person who oversees the artists and craftspeople who build the sets. - - - - - Gets the editor name. - - - The editor name. - - - - - Gets the name of producer the movie. - - - The name of producer the movie. - - - - - Gets the name of co-producer. - - - The name of co-producer. - - - - - Gets the name of executive producer. - - - The name of executive producer. - - - - - Gets the artist responsible for designing the overall visual appearance of a movie. - - - The artist responsible for designing the overall visual appearance of a movie. - - - - - Gets the name of the costume designer. - - - The name of the costume designer. - - - - - Gets the name of the choreographer. - - - The name of the choreographer. - - - - - Gets the name of production studio. - - - The name of production studio. - - - - - Gets the time that the composition of the music/script began. - - - The time that the composition of the music/script began. - - - - - Gets the main genre of the audio or video; e.g. "classical", "ambient-house", "synthpop", "sci-fi", "drama", etc. - - - The main genre of the audio or video; e.g. "classical", "ambient-house", "synthpop", "sci-fi", "drama", etc. - - - - - Gets intended to reflect the mood of the item with a few keywords, e.g. "Romantic", "Sad", "Uplifting", etc. - - - Intended to reflect the mood of the item with a few keywords, e.g. "Romantic", "Sad", "Uplifting", etc. - - - - - Gets the name of the software package used to create the file, such as "Microsoft WaveEdit." - - - The name of the software package used to create the file, such as "Microsoft WaveEdit." - - - - - Gets the software or hardware used to encode this item; e.g. "LAME" or "XviD" - - - The software or hardware used to encode this item; e.g. "LAME" or "XviD". - - - - - Gets a list of the settings used for encoding this item. No specific format. - - - A list of the settings used for encoding this item. No specific format. - - - - - Gets a plot outline or a summary of the story. - - - A plot outline or a summary of the story. - - - - - Provides properties and overridden methods for the analyze subtitle stream - and contains information about subtitle. - - - - - - Gets the subtitle format. - - - The subtitle format. - - - - - Gets the subtitle codec. - - - The subtitle codec. - - - - - - - - - - - Describes properties of the video stream and method to analyze stream - - - - - - - - - - - - Gets or sets the video frame rate. - - - The video frame rate. - - - - - Gets or sets the video width. - - - The video width. - - - - - Gets or sets the video height. - - - The video height. - - - - - Gets or sets the video bitrate. - - - The video bitrate. - - - - - Gets or sets the video aspect ratio. - - - The video aspect ratio. - - - - - Gets or sets a value indicating whether this is interlaced. - - - true if interlaced; otherwise, false. - - - - - Gets or sets the video stereoscopic mode. - - - The video stereoscopic mode. - - - - - Gets or sets the video format. - - - The video format. - - - - - Gets or sets the video codec. - - - The video codec. - - - - - Gets or sets the stream duration. - - - The stream duration. - - - - - Gets or sets the video bit depth. - - - The video bit depth. - - - - - Gets or sets the name of the video codec. - - - The name of the video codec. - - - - - Gets the video resolution. - - - The video resolution. - - - - - Gets the video size. - - - The vidoe size. - - - - - Gets the video stream tags. - - - The video stream tags. - - - - - Indicates that the value of the marked element could be null sometimes, - so the check for null is necessary before its usage. - - - [CanBeNull] object Test() => null; - - void UseTest() { - var p = Test(); - var s = p.ToString(); // Warning: Possible 'System.NullReferenceException' - } - - - - - Indicates that the value of the marked element could never be null. - - - [NotNull] object Foo() { - return null; // Warning: Possible 'null' assignment - } - - - - - Can be appplied to symbols of types derived from IEnumerable as well as to symbols of Task - and Lazy classes to indicate that the value of a collection item, of the Task.Result property - or of the Lazy.Value property can never be null. - - - - - Can be appplied to symbols of types derived from IEnumerable as well as to symbols of Task - and Lazy classes to indicate that the value of a collection item, of the Task.Result property - or of the Lazy.Value property can be null. - - - - - Indicates that the marked method builds string by format pattern and (optional) arguments. - Parameter, which contains format string, should be given in constructor. The format string - should be in -like form. - - - [StringFormatMethod("message")] - void ShowError(string message, params object[] args) { /* do something */ } - - void Foo() { - ShowError("Failed: {0}"); // Warning: Non-existing argument in format string - } - - - - - Specifies which parameter of an annotated method should be treated as format-string - - - - - For a parameter that is expected to be one of the limited set of values. - Specify fields of which type should be used as values for this parameter. - - - - - Indicates that the function argument should be string literal and match one - of the parameters of the caller function. For example, ReSharper annotates - the parameter of . - - - void Foo(string param) { - if (param == null) - throw new ArgumentNullException("par"); // Warning: Cannot resolve symbol - } - - - - - Indicates that the method is contained in a type that implements - System.ComponentModel.INotifyPropertyChanged interface and this method - is used to notify that some property value changed. - - - The method should be non-static and conform to one of the supported signatures: - - NotifyChanged(string) - NotifyChanged(params string[]) - NotifyChanged{T}(Expression{Func{T}}) - NotifyChanged{T,U}(Expression{Func{T,U}}) - SetProperty{T}(ref T, T, string) - - - - public class Foo : INotifyPropertyChanged { - public event PropertyChangedEventHandler PropertyChanged; - - [NotifyPropertyChangedInvocator] - protected virtual void NotifyChanged(string propertyName) { ... } - - string _name; - - public string Name { - get { return _name; } - set { _name = value; NotifyChanged("LastName"); /* Warning */ } - } - } - - Examples of generated notifications: - - NotifyChanged("Property") - NotifyChanged(() => Property) - NotifyChanged((VM x) => x.Property) - SetProperty(ref myField, value, "Property") - - - - - - Describes dependency between method input and output. - - -

Function Definition Table syntax:

- - FDT ::= FDTRow [;FDTRow]* - FDTRow ::= Input => Output | Output <= Input - Input ::= ParameterName: Value [, Input]* - Output ::= [ParameterName: Value]* {halt|stop|void|nothing|Value} - Value ::= true | false | null | notnull | canbenull - - If method has single input parameter, it's name could be omitted.
- Using halt (or void/nothing, which is the same) for method output - means that the methos doesn't return normally (throws or terminates the process).
- Value canbenull is only applicable for output parameters.
- You can use multiple [ContractAnnotation] for each FDT row, or use single attribute - with rows separated by semicolon. There is no notion of order rows, all rows are checked - for applicability and applied per each program state tracked by R# analysis.
-
- - - [ContractAnnotation("=> halt")] - public void TerminationMethod() - - - [ContractAnnotation("halt <= condition: false")] - public void Assert(bool condition, string text) // regular assertion method - - - [ContractAnnotation("s:null => true")] - public bool IsNullOrEmpty(string s) // string.IsNullOrEmpty() - - - // A method that returns null if the parameter is null, - // and not null if the parameter is not null - [ContractAnnotation("null => null; notnull => notnull")] - public object Transform(object data) - - - [ContractAnnotation("=> true, result: notnull; => false, result: null")] - public bool TryParse(string s, out Person result) - - -
- - - Indicates that marked element should be localized or not. - - - [LocalizationRequiredAttribute(true)] - class Foo { - string str = "my string"; // Warning: Localizable string - } - - - - - Indicates that the value of the marked type (or its derivatives) - cannot be compared using '==' or '!=' operators and Equals() - should be used instead. However, using '==' or '!=' for comparison - with null is always permitted. - - - [CannotApplyEqualityOperator] - class NoEquality { } - - class UsesNoEquality { - void Test() { - var ca1 = new NoEquality(); - var ca2 = new NoEquality(); - if (ca1 != null) { // OK - bool condition = ca1 == ca2; // Warning - } - } - } - - - - - When applied to a target attribute, specifies a requirement for any type marked - with the target attribute to implement or inherit specific type or types. - - - [BaseTypeRequired(typeof(IComponent)] // Specify requirement - class ComponentAttribute : Attribute { } - - [Component] // ComponentAttribute requires implementing IComponent interface - class MyComponent : IComponent { } - - - - - Indicates that the marked symbol is used implicitly (e.g. via reflection, in external library), - so this symbol will not be marked as unused (as well as by other usage inspections). - - - - - Should be used on attributes and causes ReSharper to not mark symbols marked with such attributes - as unused (as well as by other usage inspections) - - - - Only entity marked with attribute considered used. - - - Indicates implicit assignment to a member. - - - - Indicates implicit instantiation of a type with fixed constructor signature. - That means any unused constructor parameters won't be reported as such. - - - - Indicates implicit instantiation of a type. - - - - Specify what is considered used implicitly when marked - with or . - - - - Members of entity marked with attribute are considered used. - - - Entity marked with attribute and all its members considered used. - - - - This attribute is intended to mark publicly available API - which should not be removed and so is treated as used. - - - - - Tells code analysis engine if the parameter is completely handled when the invoked method is on stack. - If the parameter is a delegate, indicates that delegate is executed while the method is executed. - If the parameter is an enumerable, indicates that it is enumerated while the method is executed. - - - - - Indicates that a method does not make any observable state changes. - The same as System.Diagnostics.Contracts.PureAttribute. - - - [Pure] int Multiply(int x, int y) => x * y; - - void M() { - Multiply(123, 42); // Waring: Return value of pure method is not used - } - - - - - Indicates that the return value of method invocation must be used. - - - - - Indicates the type member or parameter of some type, that should be used instead of all other ways - to get the value that type. This annotation is useful when you have some "context" value evaluated - and stored somewhere, meaning that all other ways to get this value must be consolidated with existing one. - - - class Foo { - [ProvidesContext] IBarService _barService = ...; - - void ProcessNode(INode node) { - DoSomething(node, node.GetGlobalServices().Bar); - // ^ Warning: use value of '_barService' field - } - } - - - - - Indicates that a parameter is a path to a file or a folder within a web project. - Path can be relative or absolute, starting from web root (~). - - - - - An extension method marked with this attribute is processed by ReSharper code completion - as a 'Source Template'. When extension method is completed over some expression, it's source code - is automatically expanded like a template at call site. - - - Template method body can contain valid source code and/or special comments starting with '$'. - Text inside these comments is added as source code when the template is applied. Template parameters - can be used either as additional method parameters or as identifiers wrapped in two '$' signs. - Use the attribute to specify macros for parameters. - - - In this example, the 'forEach' method is a source template available over all values - of enumerable types, producing ordinary C# 'foreach' statement and placing caret inside block: - - [SourceTemplate] - public static void forEach<T>(this IEnumerable<T> xs) { - foreach (var x in xs) { - //$ $END$ - } - } - - - - - - Allows specifying a macro for a parameter of a source template. - - - You can apply the attribute on the whole method or on any of its additional parameters. The macro expression - is defined in the property. When applied on a method, the target - template parameter is defined in the property. To apply the macro silently - for the parameter, set the property value = -1. - - - Applying the attribute on a source template method: - - [SourceTemplate, Macro(Target = "item", Expression = "suggestVariableName()")] - public static void forEach<T>(this IEnumerable<T> collection) { - foreach (var item in collection) { - //$ $END$ - } - } - - Applying the attribute on a template method parameter: - - [SourceTemplate] - public static void something(this Entity x, [Macro(Expression = "guid()", Editable = -1)] string newguid) { - /*$ var $x$Id = "$newguid$" + x.ToString(); - x.DoSomething($x$Id); */ - } - - - - - - Allows specifying a macro that will be executed for a source template - parameter when the template is expanded. - - - - - Allows specifying which occurrence of the target parameter becomes editable when the template is deployed. - - - If the target parameter is used several times in the template, only one occurrence becomes editable; - other occurrences are changed synchronously. To specify the zero-based index of the editable occurrence, - use values >= 0. To make the parameter non-editable when the template is expanded, use -1. - > - - - - Identifies the target parameter of a source template if the - is applied on a template method. - - - - - ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter - is an MVC action. If applied to a method, the MVC action name is calculated - implicitly from the context. Use this attribute for custom wrappers similar to - System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String). - - - - - ASP.NET MVC attribute. Indicates that a parameter is an MVC area. - Use this attribute for custom wrappers similar to - System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String). - - - - - ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter is - an MVC controller. If applied to a method, the MVC controller name is calculated - implicitly from the context. Use this attribute for custom wrappers similar to - System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String, String). - - - - - ASP.NET MVC attribute. Indicates that a parameter is an MVC Master. Use this attribute - for custom wrappers similar to System.Web.Mvc.Controller.View(String, String). - - - - - ASP.NET MVC attribute. Indicates that a parameter is an MVC model type. Use this attribute - for custom wrappers similar to System.Web.Mvc.Controller.View(String, Object). - - - - - ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter is an MVC - partial view. If applied to a method, the MVC partial view name is calculated implicitly - from the context. Use this attribute for custom wrappers similar to - System.Web.Mvc.Html.RenderPartialExtensions.RenderPartial(HtmlHelper, String). - - - - - ASP.NET MVC attribute. Allows disabling inspections for MVC views within a class or a method. - - - - - ASP.NET MVC attribute. Indicates that a parameter is an MVC display template. - Use this attribute for custom wrappers similar to - System.Web.Mvc.Html.DisplayExtensions.DisplayForModel(HtmlHelper, String). - - - - - ASP.NET MVC attribute. Indicates that a parameter is an MVC editor template. - Use this attribute for custom wrappers similar to - System.Web.Mvc.Html.EditorExtensions.EditorForModel(HtmlHelper, String). - - - - - ASP.NET MVC attribute. Indicates that a parameter is an MVC template. - Use this attribute for custom wrappers similar to - System.ComponentModel.DataAnnotations.UIHintAttribute(System.String). - - - - - ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter - is an MVC view component. If applied to a method, the MVC view name is calculated implicitly - from the context. Use this attribute for custom wrappers similar to - System.Web.Mvc.Controller.View(Object). - - - - - ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter - is an MVC view component name. - - - - - ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter - is an MVC view component view. If applied to a method, the MVC view component view name is default. - - - - - ASP.NET MVC attribute. When applied to a parameter of an attribute, - indicates that this parameter is an MVC action name. - - - [ActionName("Foo")] - public ActionResult Login(string returnUrl) { - ViewBag.ReturnUrl = Url.Action("Foo"); // OK - return RedirectToAction("Bar"); // Error: Cannot resolve action - } - - - - - Razor attribute. Indicates that a parameter or a method is a Razor section. - Use this attribute for custom wrappers similar to - System.Web.WebPages.WebPageBase.RenderSection(String). - - - - - Indicates how method, constructor invocation or property access - over collection type affects content of the collection. - - - - Method does not use or modify content of the collection. - - - Method only reads content of the collection but does not modify it. - - - Method can change content of the collection but does not add new elements. - - - Method can add new elements to the collection. - - - - Indicates that the marked method is assertion method, i.e. it halts control flow if - one of the conditions is satisfied. To set the condition, mark one of the parameters with - attribute. - - - - - Indicates the condition parameter of the assertion method. The method itself should be - marked by attribute. The mandatory argument of - the attribute is the assertion type. - - - - - Specifies assertion type. If the assertion method argument satisfies the condition, - then the execution continues. Otherwise, execution is assumed to be halted. - - - - Marked parameter should be evaluated to true. - - - Marked parameter should be evaluated to false. - - - Marked parameter should be evaluated to null value. - - - Marked parameter should be evaluated to not null value. - - - - Indicates that the marked method unconditionally terminates control flow execution. - For example, it could unconditionally throw exception. - - - - - Indicates that method is pure LINQ method, with postponed enumeration (like Enumerable.Select, - .Where). This annotation allows inference of [InstantHandle] annotation for parameters - of delegate type by analyzing LINQ method chains. - - - - - Indicates that IEnumerable, passed as parameter, is not enumerated. - - - - - Indicates that parameter is regular expression pattern. - - - - - Prevents the Member Reordering feature from tossing members of the marked class. - - - The attribute must be mentioned in your member reordering patterns - - - - - XAML attribute. Indicates the type that has ItemsSource property and should be treated - as ItemsControl-derived type, to enable inner items DataContext type resolve. - - - - - XAML attribute. Indicates the property of some BindingBase-derived type, that - is used to bind some item of ItemsControl-derived type. This annotation will - enable the DataContext type resolve for XAML bindings for such properties. - - - Property should have the tree ancestor of the ItemsControl type or - marked with the attribute. - - -
-
diff --git a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/QuickLook.Plugin.VideoViewer.csproj b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/QuickLook.Plugin.VideoViewer.csproj index c38c8b2..6df57df 100644 --- a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/QuickLook.Plugin.VideoViewer.csproj +++ b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/QuickLook.Plugin.VideoViewer.csproj @@ -75,10 +75,10 @@ PreserveNewest - + PreserveNewest - + PreserveNewest @@ -93,58 +93,6 @@ - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - - Properties\GitVersion.cs diff --git a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/ViewerPanel.xaml.cs b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/ViewerPanel.xaml.cs index 0d054e4..0f39954 100644 --- a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/ViewerPanel.xaml.cs +++ b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/ViewerPanel.xaml.cs @@ -1,17 +1,17 @@ // Copyright © 2017 Paddy Xu -// +// // This file is part of QuickLook program. -// +// // 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 3 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, see . @@ -44,7 +44,7 @@ namespace QuickLook.Plugin.VideoViewer { private readonly ContextObject _context; private BitmapSource _coverArt; - + private bool _hasVideo; private bool _isPlaying; private bool _wasPlaying; @@ -60,7 +60,7 @@ namespace QuickLook.Plugin.VideoViewer _context = context; mediaElement.MediaUriPlayer.LAVFilterDirectory = - IntPtr.Size == 8 ? "LAVFilters-0.72-x64\\" : "LAVFilters-0.72-x86\\"; + IntPtr.Size == 8 ? "LAVFilters-x64\\" : "LAVFilters-x86\\"; //ShowViedoControlContainer(null, null); viewerPanel.PreviewMouseMove += ShowViedoControlContainer; @@ -74,7 +74,7 @@ namespace QuickLook.Plugin.VideoViewer buttonPlayPause.Click += TogglePlayPause; buttonLoop.Click += ToggleShouldLoop; - buttonTime.Click += (sender, e) => buttonTime.Tag = (string) buttonTime.Tag == "Time" ? "Length" : "Time"; + buttonTime.Click += (sender, e) => buttonTime.Tag = (string)buttonTime.Tag == "Time" ? "Length" : "Time"; buttonMute.Click += (sender, e) => volumeSliderLayer.Visibility = Visibility.Visible; volumeSliderLayer.MouseDown += (sender, e) => volumeSliderLayer.Visibility = Visibility.Collapsed; @@ -88,7 +88,7 @@ namespace QuickLook.Plugin.VideoViewer if (_wasPlaying) mediaElement.Play(); }; - PreviewMouseWheel += (sender, e) => ChangeVolume((double) e.Delta / 120 * 0.04); + PreviewMouseWheel += (sender, e) => ChangeVolume((double)e.Delta / 120 * 0.04); } public bool HasVideo @@ -178,10 +178,10 @@ namespace QuickLook.Plugin.VideoViewer private void MediaFailed(object sender, MediaFailedEventArgs e) { - ((MediaUriElement) sender).Dispatcher.BeginInvoke(new Action(() => + ((MediaUriElement)sender).Dispatcher.BeginInvoke(new Action(() => { _context.ViewerContent = - new Label {Content = e.Exception, VerticalAlignment = VerticalAlignment.Center}; + new Label { Content = e.Exception, VerticalAlignment = VerticalAlignment.Center }; _context.IsBusy = false; })); } @@ -201,14 +201,14 @@ namespace QuickLook.Plugin.VideoViewer else { IsPlaying = false; - + mediaElement.Pause(); } } private void ShowViedoControlContainer(object sender, MouseEventArgs e) { - var show = (Storyboard) videoControlContainer.FindResource("ShowControlStoryboard"); + var show = (Storyboard)videoControlContainer.FindResource("ShowControlStoryboard"); if (videoControlContainer.Opacity == 0 || videoControlContainer.Opacity == 1) show.Begin(); } @@ -221,7 +221,7 @@ namespace QuickLook.Plugin.VideoViewer if (videoControlContainer.IsMouseOver) return; - var hide = (Storyboard) videoControlContainer.FindResource("HideControlStoryboard"); + var hide = (Storyboard)videoControlContainer.FindResource("HideControlStoryboard"); hide.Begin(); } @@ -233,6 +233,7 @@ namespace QuickLook.Plugin.VideoViewer case PlayerState.Playing: IsPlaying = true; break; + case PlayerState.Paused: case PlayerState.Stopped: case PlayerState.Closed: @@ -290,6 +291,7 @@ namespace QuickLook.Plugin.VideoViewer // A change in amplitude by a factor of 10 corresponds to a 20 dB change private const double DecibelAmplitudeMult = 20.0; + public double LinearVolume { // mediaElement.Volume returns [0,1] where 0 = -100db, 1 = 0db diff --git a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/WPFMediaKit.dll b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/WPFMediaKit.dll deleted file mode 100644 index c2522bc..0000000 Binary files a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/WPFMediaKit.dll and /dev/null differ diff --git a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/WPFMediaKit.xml b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/WPFMediaKit.xml deleted file mode 100644 index 0fd0950..0000000 --- a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/WPFMediaKit.xml +++ /dev/null @@ -1,2759 +0,0 @@ - - - - WPFMediaKit - - - - - The D3DRenderer class provides basic functionality needed - to render a D3D surface. This class is abstract. - - - - - The D3DImage used to render video - - - - - The Image control that has the source - to the D3DImage - - - - - We keep reference to the D3D surface so - we can delay loading it to avoid a black flicker - when loading new media - - - - - Flag to tell us if we have a new D3D - Surface available - - - - - A weak reference of D3DRenderers that have been cloned - - - - - Backing field for the RenderOnCompositionTargetRendering flag. - - - - - Temporary storage for the RenderOnCompositionTargetRendering flag. - This is used to remember the value for when the control is loaded and unloaded. - - - - - TryLock timeout for the invalidate video image. Low values means higher UI responsivity, but more video dropped frames. - - - - - Flag to reduce redundant calls to the AddDirtyRect when the rendering thread is busy. - Int instead of bool for Interlocked support. - - - - - Defines what rules are applied to the stretching of the video - - - - - Gets or Sets the value that indicates how the video is scaled. This is a dependency property. - - - - - Enables or disables rendering of the video - - - - - Gets the natural pixel height of the current media. - The value will be 0 if there is no video in the media. - - - - - Internal method to set the read-only NaturalVideoHeight DP - - - - - Gets the natural pixel width of the current media. - The value will be 0 if there is no video in the media. - - - - - Internal method to set the read-only NaturalVideoWidth DP - - - - - Is true if the media contains renderable video - - - - - Internal method for setting the read-only HasVideo DP - - - - - Handler for when the D3DRenderer is unloaded - - - - - Handler for when the D3DRenderer is loaded - - - - - Initializes the D3DRenderer control - - - - - Sets the backbuffer for any cloned D3DRenderers - - - - - Configures D3DImage with a new surface. This happens immediately - - - - - Invalidates any possible cloned renderer we may have - - - - - Cleans up any dead references we may have to any cloned renderers - - - - - Used as a clone for a D3DRenderer - - - - - Renders the video with WPF's rendering using the CompositionTarget.Rendering event - - - - - Configures D3DImage with a new surface. The back buffer is - not set until we actually receive a frame, this way we - can avoid a black flicker between media changes - - The unmanaged pointer to the Direct3D Surface - - - - Invalidates the entire Direct3D image, notifying WPF to redraw - - - - - TryLock timeout for the invalidate video image. Low values means higher UI responsivity, but more video dropped frames. - - - - - Creates a clone of the D3DRenderer. This is a work for the visual - brush not working cross-threaded - - - - - - Creates a cloned D3DImage image of the current video frame. - Return null in case of the frame is not valid. - The image can be used thread-safe. - - - - - - Fires when a DVD specific error occurs - - - - - Gets if the mouse is over a DVD button. This is a dependency property. - - - - - Gets or sets if the DVD automatically plays when a DVD is inserted into the computer. - This is a dependency property. - - - - - This event is fired when a DVD is ejected from the computer. This is a bubbled, routed event. - - - - - Fires when a DVD is inserted into the computer. - This is a bubbled, routed event. - - - - - Gets the current time the DVD playback is at. This is a read-only, - dependency property. - - - - - Gets or sets the directory the DVD is located at (ie D:\VIDEO_TS). If this is empty or null, - then DirectShow will try to play the first DVD found in the computer. - This is a dependency property. - - - - - The SelectAngle method sets the new angle when the DVD Navigator is in an angle block - - Value of the new angle, which must be from 1 through 9 - - - - Returns the display from a submenu to its parent menu. - - - - - Selects the specified relative button (upper, lower, right, left) - - Value indicating the button to select - - - - Leaves a menu and resumes playback. - - - - - Plays the DVD forward at a specific speed - - The speed multiplier to play back. - - - - Plays the DVD backwards at a specific speed - - The speed multiplier to play back - - - - Play a title - - The index of the title to play back - - - - Plays the next chapter in the volume. - - - - - Plays the previous chapter in the volume. - - - - - Goes to the root menu of the DVD. - - - - - Goes to the title menu of the DVD - - - - - The Play method is overrided so we can - set the source to the media - - - - - The handler for when a new DVD is hit. The event is fired by the DVDPlayer class. - - - - - The handler for when the mouse is over a DVD button. This event is fired by the DVD Player class. - - - - - Fires when a new DVD is inserted into a DVD player on the computer. - - - - - Fires when the DVD is ejected from the computer. - - - - - This control is not finished. Do not use it ;) - - - - - The MediaElementBase is the base WPF control for - making custom media players. The MediaElement uses the - D3DRenderer class for rendering video - - - - - Fires when media has successfully been opened - - - - - Fires when media has been closed - - - - - Fires when media has completed playing - - - - - Get the current state of the media player - - - - - Defines the behavior of the control when it is unloaded - - - - - Defines the behavior of the control when it is loaded - - - - - Gets or sets the audio volume. Specifies the volume, as a - number from 0 to 1. Full volume is 1, and 0 is silence. - - - - - Gets or sets the balance on the audio. - The value can range from -1 to 1. The value -1 means the right channel is attenuated by 100 dB - and is effectively silent. The value 1 means the left channel is silent. The neutral value is 0, - which means that both channels are at full volume. When one channel is attenuated, the other - remains at full volume. - - - - - Notifies when the media has failed and produced an exception - - - - - Initializes the media player, hooking into events - and other general setup. - - - - - Fires the MediaFailed event - - The failed media arguments - - - - Executes when a media operation failed - - The failed event arguments - - - - Is executes when a new D3D surfaces has been allocated - - The pointer to the D3D surface - - - - Called for every frame in media that has video - - - - - /// Called when the state of the player has changed - - Previous state - New State - - - - Called when the media has been closed - - - - - Called when the media has ended - - - - - Executed when media has successfully been opened. - - - - - Fires when the owner window is closed. Nothing will happen - if the visual does not belong to the visual tree with a root - of a WPF window - - - - - Local handler for the Loaded event - - - - - Local handler for the Unloaded event - - - - - Runs when the Loaded event is fired and executes - the LoadedBehavior - - - - - Runs when the Unloaded event is fired and executes - the UnloadedBehavior - - - - - Executes the actions associated to a MediaState - - The MediaState to execute - - - - Plays the media - - - - - Pauses the media - - - - - Closes the media - - - - - Stops the media - - - - - Called when a MediaPlayerBase is required. - - This method must return a valid (not null) MediaPlayerBase - - - - The MediaSeekingElement adds media seeking functionality to - the MediaElementBase class. - - - - - This flag is used to ignore PropertyChangedCallbacks - for when a DependencyProperty is needs to be updated - from the media player thread - - - - - Is invoked whenever the current media position is changed. - - - - - Gets or sets the media position in units of CurrentPositionFormat - - - - - Used to set the MediaPosition without firing the - PropertyChanged callback - - The value to set the MediaPosition to - - - - Gets the duration of the media in the units of CurrentPositionFormat - - - - - Internal method to set the read-only MediaDuration - - - - - The current position format that the media is currently using - - - - - The MediaPositionFormat that is prefered to be used - - - - - Executes when a the prefered position format has changed - - - - - Gets or sets the rate the media is played back - - - - - Internal reference to the MediaSeekingPlayer - - - - - Fires when a media operation has failed - - The failed arguments - - - - Occurs when the media player is being initialized. Here - the method is overridden as to attach to media seeking - related functionality - - - - - A private handler for the MediaPositionChanged event of the media player - - - - - Runs when the media player's position has changed - - - - - Runs when the MediaPlayer has successfully opened media - - - - - The MediaUriElement is a WPF control that plays media of a given - Uri. The Uri can be a file path or a Url to media. The MediaUriElement - inherits from the MediaSeekingElement, so where available, seeking is - also supported. - - - - - The current MediaUriPlayer - - - - - Step the count of frames. - - count of frames to step - - - - The name of the audio renderer device to use. Null to disable audio. - - - - - The Uri source to the media. This can be a file path or a - URL source - - - - - Gets or sets whether the media should return to the begining - once the end has reached - - - - - The Play method is overrided so we can - set the source to the media - - - - - The Pause method is overrided so we can - set the source to the media - - - - - Gets the instance of the media player to initialize - our base classes with - - - - - The private cache of the audio renderer names - - - - - An array of audio renderer device names - on the current system - - - - - The private cache of the video input names - - - - - An array of video input device names - on the current system - - - - - Converter used to convert MediaTime format to seconds - if the current MediaSeekingElement is using MediaTime - format. If the MediaSeekingElement is not using - MediaTime, then the converter will return the input - passed as the MediaTime. - - - - - Converts MediaTime to seconds - - There are two parameters to pass. The first is a MediaSeekingElement, - the second is a long of the MediaTime - - - - The time in seconds if MediaTime is being used, else the second input parameter is passed back - - - - The VideoCaptureElement is a WPF control that - displays video from a capture device, such as - a web cam. - - - - - Handles changes to the UseYuv property. - - - - - Provides derived classes an opportunity to handle changes to the UseYuv property. - - - - - Sets the parameters to the video capture player - - - - - The types of position formats that - are available for seeking media - - - - - Delegate signature to notify of a new surface - - The sender of the event - The pointer to the D3D surface - - - - The arguments that store information about a failed media attempt - - - - - The custom allocator interface. All custom allocators need - to implement this interface. - - - - - Invokes when a new frame has been allocated - to a surface - - - - - Invokes when a new surface has been allocated - - - - - A low level window class that is used to provide interop with libraries - that require an hWnd - - - - - Invokes the windows procedure associated to this window - - The window message to send to window - - - - Specifies different types of DirectShow - Video Renderers - - - - - The MediaPlayerBase is a base class to build raw, DirectShow based players. - It inherits from DispatcherObject to allow easy communication with COM objects - from different apartment thread models. - - - - - A static value to hold a count for all graphs. Each graph - has it's own value that it uses and is updated by the - GraphInstanceCookie property in the get method - - - - - The custom windows message constant for graph events - - - - - One second in 100ns units - - - - - The IBasicAudio volume value for silence - - - - - The IBasicAudio volume value for full volume - - - - - The IBasicAudio balance max absolute value - - - - - Rate which our DispatcherTimer polls the graph - - - - - UserId value for the VMR9 Allocator - Not entirely useful - for this application of the VMR - - - - - Static lock. Seems multiple EVR controls instantiated at the same time crash - - - - - DirectShow interface for controlling audio - functions such as volume and balance - - - - - The custom DirectShow allocator - - - - - The DirectShow filter graph reference - - - - - The hWnd pointer we use for D3D stuffs - - - - - The DirectShow interface for controlling the - filter graph. This provides, Play, Pause, Stop, etc - functionality. - - - - - The DirectShow interface for getting events - that occur in the FilterGraph. - - - - - Flag for if our media has video - - - - - The natural video pixel height, if applicable - - - - - The natural video pixel width, if applicable - - - - - Our Win32 timer to poll the DirectShow graph - - - - - The current state of the player - - - - - This objects last stand - - - - - The global instance Id of the graph. We use this - for the WndProc callback method. - - - - - The globally unqiue identifier of the graph - - - - - Helper function to get a valid hWnd to - use with DirectShow and Direct3D - - - - - Is true if the media contains renderable video - - - - - Gets the natural pixel width of the current media. - The value will be 0 if there is no video in the media. - - - - - Gets the natural pixel height of the current media. - The value will be 0 if there is no video in the media. - - - - - Gets or sets the audio volume. Specifies the volume, as a - number from 0 to 1. Full volume is 1, and 0 is silence. - - - - - Gets or sets the balance on the audio. - The value can range from -1 to 1. The value -1 means the right channel is attenuated by 100 dB - and is effectively silent. The value 1 means the left channel is silent. The neutral value is 0, - which means that both channels are at full volume. When one channel is attenuated, the other - remains at full volume. - - - - - Get the current state of the player - - - - - Event notifies when there is a new video frame - to be rendered - - - - - Event notifies when there is a new surface allocated - - - - - Event notifies when the player changes state - - - - - Frees any remaining memory - - - - - Part of the dispose pattern - - - - - Polls the graph for various data about the media that is playing - - - - - Is called when a new media event code occurs on the graph - - The event code that occured - The first parameter sent by the graph - The second parameter sent by the graph - - - - Starts the graph polling timer to update possibly needed - things like the media position - - - - - Stops the graph polling timer - - - - - Removes our hook that listens to windows messages - - - - - Adds a hook that listens to windows messages - - - - - Receives windows messages. This is primarily used to get - events that happen on our graph - - The window handle - The message Id - The message's wParam value - The message's lParam value - A value that indicates whether the message was handled. Set the value to true if the message was handled; otherwise, false. - - - - Unhooks the IMediaEventEx from the notification hWnd - - - - - Sets the MediaEventEx interface - - - - - Configures all general DirectShow interfaces that the - FilterGraph supplies. - - The FilterGraph to setup - - - - Sets the MediaControl interface - - - - - Sets the basic audio interface for controlling - volume and balance - - - - - Notifies when the media has successfully been opened - - - - - Notifies when the media has been closed - - - - - Notifies when the media has failed and produced an exception - - - - - Notifies when the media has completed - - - - - Registers the custom allocator and hooks into it's supplied events - - - - - Local event handler for the custom allocator's new surface event - - - - - Local event handler for the custom allocator's new frame event - - - - - Disposes of the current allocator - - - - - Resets the local graph resources to their - default settings - - - - - Frees any allocated or unmanaged resources - - - - - Creates a new renderer and configures it with a custom allocator - - The type of renderer we wish to choose - The DirectShow graph to add the renderer to - Number of input pins for the renderer - An initialized DirectShow renderer - - - - Creates a new renderer and configures it with a custom allocator - - The type of renderer we wish to choose - The DirectShow graph to add the renderer to - An initialized DirectShow renderer - - - - Creates an instance of the EVR - - - - - Creates a new VMR9 renderer and configures it with an allocator. - - COMException is transalted to the WPFMediaKitException. - - - An initialized DirectShow VMR9 renderer. - When creating of VMR9 fails. - - - - Creates a new VMR9 renderer and configures it with an allocator. - - An initialized DirectShow VMR9 renderer. - When creating of VMR9 fails. - When creating of VMR9 fails. - - - - Plays the media - - - - - Stops the media - - - - - Stops the media, but does not VerifyAccess() on - the Dispatcher. This can be used by destructors - because it happens on another thread and our - DirectShow graph and COM run in MTA - - - - - Closes the media and frees its resources - - - - - Pauses the media - - - - - Invokes the MediaEnded event, notifying any subscriber that - media has reached the end - - - - - Invokes the MediaOpened event, notifying any subscriber that - media has successfully been opened - - - - - Invokes the MediaClosed event, notifying any subscriber that - the opened media has been closed - - - - - Invokes the MediaFailed event, notifying any subscriber that there was - a media exception. - - The MediaFailedEventArgs contains the exception that caused this event to fire - - - - Invokes the NewAllocatorFrame event, notifying any subscriber that new frame - is ready to be presented. - - - - - Invokes the NewAllocatorSurface event, notifying any subscriber of a new surface - - The COM pointer to the D3D surface - - - - Sets the natural pixel resolution the video in the graph - - The video renderer - - - - Gets the video resolution of a pin on a renderer. - - The renderer to inspect - The direction the pin is - The zero based index of the pin to inspect - If successful a video resolution is returned. If not, a 0x0 size is returned - - - - Removes all filters from a DirectShow graph - - The DirectShow graph to remove all the filters from - - - - Adds a filter to a DirectShow graph based on it's name and filter category - - The graph builder to add the filter to - The category the filter belongs to - The friendly name of the filter - Reference to the IBaseFilter that was added to the graph or returns null if unsuccessful - - - - Finds a pin that exists in a graph. - - The GUID of the major or minor type of the media - The direction of the pin - in/out - The graph to search in - Returns null if the pin was not found, or if a pin is found, returns the first instance of it - - - Prevent instantiation. - - - The File Writer filter can be used to write files to disc regardless of format. - - - The Filter Graph Manager builds and controls filter graphs. - - - The WM ASF Writer filter accepts a variable number of input streams and creates an ASF file. - - - The RecComp object creates new content recordings by concatenating existing recordings. - - - The Recording object creates permanent recordings from streams that the Stream Buffer Sink filter captures. - - - The WavDes filter writes an audio stream to a WAV file. - - - The Decrypter/Detagger filter conditionally decrypts samples that are encrypted by the Encrypter/Tagger filter. - - - Creates an instance of a COM object by class ID. - The class ID of the component to instantiate. - A new instance of the class. - - - - Arguments for an event reporting that the user's - mouse is over a Dvd button. - - - - - Flag that defines if the cursor is over a Dvd butotn - - - - - Value indicating the button to select - - - - - Left button - - - - - Lower button - - - - - Right button - - - - - Upper button - - - - - Defines Dvd error conditions - - - - - Something unexpected happened; perhaps content is authored incorrectly. Playback is stopped. - - - - - Key exchange for DVD copy protection failed. Playback is stopped. - - - - - DVD-Video disc is authored incorrectly for specification version 1. x. Playback is stopped. - - - - - The disc cannot be played because it is not authored to play in the system region. - You can try fixing the region mismatch by changing the system region with Dvdrgn.exe. - - - - - Player parental level is lower than the lowest parental level available in the DVD content. Playback is stopped. - - - - - Analog copy protection distribution failed. Playback stopped. - - - - - No discs can be played because the system region does not match the decoder region. - - - - - The disc cannot be played because the disc is not authored to be played in the decoder's region. - - - - - Arguments for an event reporting a new DVD time. - - - - - The current Dvd time reported. - - - - - Plays a DVD disc or will play DVD video files from a path. - Normally, when a DVD is played with a custom allocator, IVideoWindow will - be queried from the graph. Since there will be no IVideoWindow in this graph - the IDvdControl2 will crash when we try to use the SelectAtPosition and - ActivateAtPosition. We get around this by sacrificing the Line21 pin and - connecting it to another video renderer that does have an IVideoWindow, but - we make sure to keep the actual hWnd hidden. - - - - - Constant value for converting media time back and forth - to milliseconds; - - - - - The current time the DVD playback is at - - - - - Reference to the hidden render window - - - - - The total number of DVD buttons currently on screen - - - - - The main interface for DVD control - - - - - The main interface for DVD information - - - - - The DirectShow filter graph - - - - - The renderer used to render video to WPF - - - - - Used to store the dummy renderer target coords of the subpicture video - - - - - The GUID of the DVD subpicture media type - - - - - Flag to remember if we are over a DVD button. - - - - - The input pin of the dummy renderer - - - - - Fires when a DVD has been inserted - - - - - Fires when a DVD has been ejected - - - - - Fires when the DVD time changes - - - - - Fires when the mouse is over a DVD button - - - - - Fires when a DVD specific error occurs - - - - - The directory to try to play the DVD from. If this is null then - DirectShow will search for a DVD to play. - - - - - Navigates to the Root menu of the DVD title - - - - - Gets the total number of titles on the DVD - - - - - Navigates to the Title menu of the DVD - - - - - Returns the display from a submenu to its parent menu - - - - - The SelectAngle method sets the new angle when the DVD Navigator is in an angle block - - Value of the new angle, which must be from 1 through 9 - - - - Leaves a menu and resumes playback. - - - - - Selects the specified relative button (upper, lower, right, left) - - - - - Selects a menu item at a certain position on the video - - The percentage to the right - The percentage to the bottom - - - - Activates a menu item at a certain position on the video - - The ratio to the right - The ratio to the bottom - - - - Sets the number of DVD buttons found in the current DVD video - - The total number of buttons - - - - Plays a specific title by a given title index - - - - - Plays the next chapter of the DVD - - - - - Plays the DVD forward - - The speed at which the playback is done - - - - Plays the DVD backwards - - The speed at the playback is done - - - - Plays the previous chapter of the DVD - - - - - Builds the DVD DirectShow graph - - - - - Configures our "dummy" IVideoWindow to work well - with our interactive menus and to make sure the - window remains hidden from view. - - - - - Gets or sets the position in miliseconds of the media - - - - - Here we extract out the new Dvd duration of - the title currently being played - - - - - Is called when a new media event code occurs on the graph - - The event code that occured - The first parameter sent by the graph - The second parameter sent by the graph - - - - Plays the Dvd - - - - - Frees any allocated or unmanaged resources - - - - - Helper class to load s from a file. It's not needed that the filter is registered. - - - - - The GetProcAddress function retrieves the address of an exported function or variable from the specified dynamic-link library (DLL). - - Handle to the DLL module that contains the function or variable. The LoadLibrary or GetModuleHandle function returns this handle. - Pointer to a null-terminated string containing the function or variable name, or the function's ordinal value. If this parameter is an ordinal value, it must be in the low-order word; the high-order word must be zero. - If the function succeeds, the return value is the address of the exported function or variable.


If the function fails, the return value is NULL. To get extended error information, call Marshal.GetLastWin32Error.
-
- - - Loads the specified module into the address space of the calling process. The specified module may cause other modules to be loaded. - - Pointer to a null-terminated string that names the executable module (either a .dll or .exe file). The name specified is the file name of the module and is not related to the name stored in the library module itself, as specified by the LIBRARY keyword in the module-definition (.def) file. - This parameter is reserved for future use. It must be IntPtr.Zero. - The action to be taken when loading the module. If no flags are specified, the behavior of this function is identical to that of the function. - If the function succeeds, the return value is a handle to the module.
If the function fails, the return value is NULL. To get extended error information, call Marshal.GetLastWin32Error.
-
- - - The FreeLibrary function decrements the reference count of the loaded dynamic-link library (DLL). When the reference count reaches zero, the module is unmapped from the address space of the calling process and the handle is no longer valid. - - Handle to the loaded DLL module. The LoadLibrary or GetModuleHandle function returns this handle. - If the function succeeds, the return value is nonzero.


If the function fails, the return value is zero. To get extended error information, call Marshal.GetLastWin32Error.
-
- - - Holds a list of dll handles and unloads the dlls in the destructor. - - - - - Gets a class factory for a specific COM Class ID. - - The dll where the COM class is implemented. - The requested Class ID. - IClassFactory instance used to create instances of that class. - - - - Loads an COM .dll or .ax and creates an instance of the given Interface with IID . - - Filename of a .dll or .ax component - Interface to create an object instance for - Combine the given file name to a full path - Instance or null - - - - Builds a full path for a given that is located in the same folder as the . - - File name - Combined path - - - - Provides collections of devices and compression codecs - installed on the system. - - - Devices and compression codecs are implemented in DirectShow - as filters, see the class for more - information. To list the available video devices: -
- Filters filters = new Filters(); - foreach ( Filter f in filters.VideoInputDevices ) - { - Debug.WriteLine( f.Name ); - } -
- -
-
- - Collection of available video capture devices. - - - Collection of available audio capture devices. - - - Collection of available video compressors. - - - Collection of available audio compressors. - - - - A collection of Filter objects (DirectShow filters). - This is used by the class to provide - lists of capture devices and compression filters. This class - cannot be created directly. - - - - Populate the collection with a list of filters from a particular category. - - - Populate the collection with a list of filters from a particular category. - - - Populate the InnerList with a list of filters from a particular category - - - Get the filter at the specified index. - - - - Represents a DirectShow filter (e.g. video capture device, - compression codec). - - - To save a chosen filer for later recall - save the MonikerString property on the filter: -
- string savedMonikerString = myFilter.MonikerString; -
- - To recall the filter create a new Filter class and pass the - string to the constructor: -
- Filter mySelectedFilter = new Filter( savedMonikerString ); -
-
-
- - Human-readable name of the filter - - - Unique string referencing this filter. This string can be used to recreate this filter. - - - getAnyMoniker take very long time, so use a cached value - - - Create a new filter from its moniker string. - - - Create a new filter from its moniker - - - Retrieve the a moniker's display name (i.e. it's unique string) - - - Retrieve the human-readable name of the filter - - - Get a moniker's human-readable name based on a moniker string. - - - - This method gets a System.Runtime.InteropServices.ComTypes.IMoniker object. - - HACK: The only way to create a System.Runtime.InteropServices.ComTypes.IMoniker from a moniker - string is to use System.Runtime.InteropServices.ComTypes.IMoniker.ParseDisplayName(). So I - need ANY System.Runtime.InteropServices.ComTypes.IMoniker object so that I can call - ParseDisplayName(). Does anyone have a better solution? - - This assumes there is at least one video compressor filter - installed on the system. - - - - - Compares the current instance with another object of - the same type. - - - - CLSID_AudioRendererCategory, audio render category - - - CLSID_AudioInputDeviceCategory, audio capture category - - - CLSID_VideoInputDeviceCategory, video capture category - - - CLSID_VideoCompressorCategory, Video compressor category - - - CLSID_AudioCompressorCategory, audio compressor category - - - CLSID_LegacyAmFilterCategory, legacy filters - - - - #MW# CLSID_ActiveMovieCategory, a superset of all the available filters - - - - - The MediaDetector class allows to query meta data from audio/video media files. - This includes CODEC information and the ability to grab video snapshots. - - - - - The video framerate - - - - - The video CODEC tag - - - - - The bits per pixel of the video - - - - - The length of the video stream - - - - - The length of the audio stream - - - - - The number of bits per sample in the audio stream - - - - - The HZ of the audio samples - - - - - The number of audio channels in audio stream - - - - - The filename of the loaded media - - - - - The native pixel size of the video, if a - video stream exists - - - - - The total amount of streams that exist in the media - - - - - Is true if the loaded media has an audio stream - - - - - Is true if the loaded media has a video stream - - - - - Frees any memory and resets to a default state - - - - - Converts a FourCC code to a string - - - - - Loads a media file. - - The full path of the media file to load - - - - Reads the audio stream information from the media file - - - - - Reads the video stream information for the media file - - - - - Gets an image snapshot from the media file that was opened - - The media time position for the requested thumbnail - Returns a BitmapSource of the video position. - - - - The MediaSeekingPlayer adds media seeking functionality to - to the MediaPlayerBase class - - - - - Local cache of the current position - - - - - The DirectShow media seeking interface - - - - - Gets the duration in miliseconds, of the media that is opened - - - - - Sets the rate at which the media plays back - - - - - Gets or sets the position in miliseconds of the media - - - - - The current position format the media is using - - - - - The prefered position format to use with the media - - - - - The current media positioning format - - - - - The prefered media positioning format - - - - - Notifies when the position of the media has changed - - - - - This method is overriden to get out the seeking - interfaces from the DirectShow graph - - - - - Frees any allocated or unmanaged resources - - - - - Polls the graph for various data about the media that is playing - - - - - Converts a MediaPositionFormat enum to a DShow TimeFormat GUID - - - - - Converts a DirectShow TimeFormat GUID to a MediaPositionFormat enum - - - - - Setup the IMediaSeeking interface - - - - - The MediaUriPlayer plays media files from a given Uri. - - - - - The name of the default audio render. This is the - same on all versions of windows - - - - - Set the default audio renderer property backing - - - - - The DirectShow graph interface. In this example - We keep reference to this so we can dispose - of it later. - - - - - The media Uri - - - - - Gets or sets the Uri source of the media - - - - - Return Source as a string path or uri. - - - - - The renderer type to use when - rendering video - - - - - Implementation of framestepinterface to step video forward by minimum of one frame e.g. by mousewheel - - - - - step the frames - - - - - The name of the audio renderer device - - - - - Gets or sets if the media should play in loop - or if it should just stop when the media is complete - - - - - Is ran everytime a new media event occurs on the graph - - The Event code that occured - The first event parameter sent by the graph - The second event parameter sent by the graph - - - - Opens the media by initializing the DirectShow graph - - - - - Inserts the audio renderer by the name. - - - - - Frees all unmanaged memory and resets the object back - to its initial state - - - - - A Player that plays video from a video capture device. - - - - - The video capture pixel height - - - - - The video capture pixel width - - - - - The video capture's frames per second - - - - - Our DirectShow filter graph - - - - - The DirectShow video renderer - - - - - The capture device filter - - - - - The name of the video capture source device - - - - - Flag to detect if the capture source has changed - - - - - The video capture device - - - - - Flag to detect if the capture source device has changed - - - - - The sample grabber interface used for getting samples in a callback - - - - - Gets or sets if the instance fires an event for each of the samples - - - - - Fires when a new video sample is ready - - - - - The name of the video capture source to use - - - - - The frames per-second to play - the capture device back at - - - - - Gets or sets if Yuv is the prefered color space - - - - - The desired pixel width of the video - - - - - The desired pixel height of the video - - - - - Plays the video capture device - - - - - Pauses the video capture device - - - - - Configures the DirectShow graph to play the selected video capture - device with the selected parameters - - - - - Sets the capture parameters for the video capture device - - - - - The Vmr9Allocator is a custom allocator for the VideoMixingRenderer9 - - - - - Base constant for FAIL error codes - - - - - The SDK version of D3D we are using - - - - - Lock for shared resources - - - - - Direct3D functions - - - - - Direct3D functions of Vista - - - - - The window handle, needed for D3D intialization - - - - - The Direct3D device - - - - - Lock for instance's resources - - - - - Part of the "Dispose" pattern - - - - - Applications use this interface to set a custom allocator-presenter - and the allocator-presenter uses this interface to inform the VMR of - changes to the system environment that affect the Direct3D surfaces. - - - - - Fires each time a frame needs to be presented - - - - - Fires when new D3D surfaces are allocated - - - - - Private surface for YUV stuffs - - - - - Private texture for YUV stuffs - - - - - Creates a new VMR9 custom allocator to use with Direct3D - - - - - Fires the OnNewAllocatorSurface event, notifying the - subscriber that new surfaces are available - - - - - Fires the NewAllocatorFrame event notifying the - subscriber that a new frame is ready to be presented - - - - - Frees any remaining unmanaged memory - - - - - Part of the dispose pattern - - - - - Current Direct3D surfaces our allocator has ready and allocated - - - - - The StartPresenting method is called just before the video starts playing. - The allocator-presenter should perform any necessary configuration in this method. - - - An application-defined DWORD_PTR cookie that uniquely identifies this instance of the - VMR for use in scenarios when one instance of the allocator-presenter is used with multiple VMR instances. - - Returns an HRESULT - - - - The StopPresenting method is called just after the video stops playing. - The allocator-presenter should perform any necessary cleanup in this method. - - - An application-defined DWORD_PTR cookie that uniquely identifies this instance of the - VMR for use in scenarios when one instance of the allocator-presenter is used with multiple VMR instances. - - - - - - The PresentImage method is called at precisely the moment this video frame should be presented. - - - An application-defined DWORD_PTR that uniquely identifies this instance of the VMR in scenarios when - multiple instances of the VMR are being used with a single instance of an allocator-presenter. - - - Specifies a VMR9PresentationInfo structure that contains information about the video frame. - - Returns an HRESULT - - - - Tests if the D3D device has been lost and if it has - it is retored. This happens on XP with things like - resolution changes or pressing ctrl + alt + del. With - Vista, this will most likely never be called unless the - video driver hangs or is changed. - - - - - Gets the pointer to the adapter monitor - - The ordinal of the adapter - A pointer to the adaptor monitor - - - - The InitializeDevice method is called by the Video Mixing Renderer 9 (VMR-9) - when it needs the allocator-presenter to allocate surfaces. - - - Application-defined identifier. This value is the same value that the application - passed to the IVMRSurfaceAllocatorNotify9.AdviseSurfaceAllocator method in the - dwUserID parameter. - - - Pointer to a VMR9AllocationInfo structure that contains a description of the surfaces to create. - - - On input, specifies the number of surfaces to create. When the method returns, - this parameter contains the number of buffers that were actually allocated. - - Returns an HRESULT code - - - - The TerminateDevice method releases the Direct3D device. - - - Application-defined identifier. This value is the same value that the application - passed to the IVMRSurfaceAllocatorNotify9.AdviseSurfaceAllocator method - in the dwUserID parameter. - - - - - - The GetSurface method retrieves a Direct3D surface - - - Application-defined identifier. This value is - the same value that the application passed to the - IVMRSurfaceAllocatorNotify9.AdviseSurfaceAllocator - method in the dwUserID parameter. - - - Specifies the index of the surface to retrieve. - - - - Address of a variable that receives an IDirect3DSurface9 - interface pointer. The caller must release the interface. - - - - - The AdviseNotify method provides the allocator-presenter with the VMR-9 filter's - interface for notification callbacks. If you are using a custom allocator-presenter, - the application must call this method on the allocator-presenter, with a pointer to - the VMR's IVMRSurfaceAllocatorNotify9 interface. The allocator-presenter uses this - interface to communicate with the VMR. - - - Specifies the IVMRSurfaceAllocatorNotify9 interface that the allocator-presenter will - use to pass notifications back to the VMR. - Returns an HRESULT value - - - - Gets a native pointer to a COM object. This method does not - add a reference count. - - The RCW to the COM object - Pointer to the COM object - - - - Gets if the current operating system is - Windows Vista or higher. - - - - - Creates a Direct3D device - - - - - Releases reference to all allocated D3D surfaces - - - - - CLSID_IDirect3DDevice9 - - - - - This is a WPF pixel shader effect that will scale 16-235 HD-TV pixel output to - 0-255 pixel values for deeper color on video. - - - - - A logger. - - - - - If the info level is enabled. - - - - - If the debug level is enabled. - - - - - - - - - Log the error without an exception. - - - - - Logging to . - - - - - No-op implementation of ILog. - - - - - Log manager for the WPF-MediaKit. Set to change the logging. - - - - - Main func to get an for the provided logger name. Default is set to . - - May be changed by the user code. Set to to switch off the logging. - - - - - - Returns an for the provided logger name. - - - - - Retuns an for the provided logger name. - - - - - Check if a COM Object is available - - The CLSID of this object - true if the object is available, false if not - - - - Release a ComObject - - - ref counter of the object - - - - Try (final) release a Com-Object and set the obj to null - - - - true if object is released (not null and a com object) - - - Function to get a COM object from file (dll) - a (unmanaged) dll-file where the COM object is implemented - objects Guid - a interface or null if not loaded - Thrown if the method can't creat COM-object - Thrown if the dll not found - - - - - Utility class to get a Class Factory for a certain Class ID - by loading the dll that implements that class - - - - - Gets a class factory for a specific COM Class ID. - - The dll where the COM class is implemented - The requested Class ID - IClassFactory instance used to create instances of that class - Thrown if the method can't creat COM-object - Thrown if the dll not found - - - - Builds a full path for a given that is located in the same folder as the . - - File name - Combined path - - - - The GetProcAddress function retrieves the address of an exported function or variable from the specified dynamic-link library (DLL). - - Handle to the DLL module that contains the function or variable. - The LoadLibrary or GetModuleHandle function returns this handle. - Pointer to a null-terminated string containing the function or variable name, - or the function's ordinal value. If this parameter is an ordinal value, - it must be in the low-order word; the high-order word must be zero. - If the function succeeds, the return value is the address of the exported function or variable.

-
If the function fails, the return value is NULL. To get extended error information, call Marshal.GetLastWin32Error.
-
- - - LoadLibrary function maps the specified executable module into the address space of the calling process. - - Pointer to a null-terminated string that names the executable module. - The name specified is the file name of the module and is not related to the name stored in the library module itself, - as specified by the LIBRARY keyword in the module-definition (.def) file. - If the function succeeds, the return value is a handle to the module.

-
If the function fails, the return value is NULL. To get extended error information, call Marshal.GetLastWin32Error.
-
- - - The FreeLibrary function decrements the reference count of the loaded dynamic-link library (DLL). - When the reference count reaches zero, the module is unmapped from the address space of the calling process and the handle is no longer valid. - - Handle to the loaded DLL module. The LoadLibrary or GetModuleHandle function returns this handle. - If the function succeeds, the return value is nonzero.


- If the function fails, the return value is zero. To get extended error information, call Marshal.GetLastWin32Error.
-
- - - GetDLLHandle - - - the handle from registered dll - - - - The GUID of our EVR custom presenter COM object - - - - - The custom EVR video presenter COM object - - - - - Invokes when a new frame has been allocated - to a surface - - - - - Invokes when a new surface has been allocated - - - - - Called by the custom EVR Presenter, notifying that - there is a new D3D surface and/or there needs to be - a frame rendered - - The Direct3D surface - A HRESULT - - - - Create a new EVR video presenter - - - - - - Fires the NewAllocatorFrame event - - - - - Fires the NewAlloctorSurface event - - D3D surface pointer - - - - Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. - - - - - Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird. - - - - - Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle - Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden. - - - - - Custom dispatcher to deal with MTA and DShow, - see https://groups.google.com/forum/#!topic/wpf-disciples/kLdMgVzeWig - - - - - Flag to set if the dispatcher needs to shutdown - - - - - Queue of delegates to execute - - - - - The thread this dispatcher is running on - - - - - The message to post to our message pump to wake it up - for processing the managed delegate queue - - - - - Windows message notifiying listener's of the pump we outta there - and the pump is about to end - - - - - The OS's thread identifier - - - - - The thread that the dispatcher is running under - - - - - Flag, that the dispatcher is in the shutting down process. - - - - - Flag that the dispather has shut down. - - - - - Async executes a method on our Dispatcher's thread - - The delegate to execute - - - - Wakes up the pump to notify there are delegates to execute - - - - - Shuts down the dispatcher and completes any - delegates or messages that are in the queue - - - - - Forces execution of any messages in the queue - - - - - Runs the message pump in the Dispatcher - - - - - Executes all the queued delegates - - - - - Posts a quit message to the message queue. - This lets all pump listeners know that - the end is near and abandon all resources - - - - - The heart of the message pump. This method - will not return until the message pump has - been terminated. - - - - - GeneratedInternalTypeHelper - - - - - CreateInstance - - - - - GetPropertyValue - - - - - SetPropertyValue - - - - - CreateDelegate - - - - - AddEventHandler - - -
-