mirror of
https://github.com/QL-Win/QuickLook.git
synced 2025-09-11 17:59:17 +00:00
switch to new FFME control
This commit is contained in:
@@ -35,7 +35,7 @@ namespace QuickLook.Plugin.ImageViewer
|
||||
".orf", ".pef", ".ptx", ".pxn", ".r3d", ".raf", ".raw", ".rwl", ".rw2", ".rwz", ".sr2", ".srf", ".srw",
|
||||
".tif", ".x3f",
|
||||
// normal
|
||||
".bmp", ".gif", ".ico", ".icon", ".jpg", ".jpeg", ".png", ".psd", ".svg", ".wdp", ".tiff", ".tga", ".webp"
|
||||
".bmp", ".ggg", ".ico", ".icon", ".jpg", ".jpeg", ".png", ".psd", ".svg", ".wdp", ".tiff", ".tga", ".webp"
|
||||
};
|
||||
private Size _imageSize;
|
||||
private ImagePanel _ip;
|
||||
@@ -67,10 +67,15 @@ namespace QuickLook.Plugin.ImageViewer
|
||||
context.SetPreferredSizeFit(_imageSize, 0.8);
|
||||
else
|
||||
context.PreferredSize = new Size(1024, 768);
|
||||
|
||||
Directory.SetCurrentDirectory(App.AppPath);
|
||||
}
|
||||
|
||||
public void View(string path, ContextObject context)
|
||||
{
|
||||
// set dcraw.exe for Magick.NET
|
||||
Directory.SetCurrentDirectory(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location));
|
||||
|
||||
_ip = new ImagePanel();
|
||||
|
||||
context.ViewerContent = _ip;
|
||||
@@ -81,11 +86,12 @@ namespace QuickLook.Plugin.ImageViewer
|
||||
LoadImage(_ip, path);
|
||||
|
||||
context.IsBusy = false;
|
||||
|
||||
Directory.SetCurrentDirectory(App.AppPath);
|
||||
}
|
||||
|
||||
public void Cleanup()
|
||||
{
|
||||
Directory.SetCurrentDirectory(App.AppPath);
|
||||
_ip = null;
|
||||
}
|
||||
|
||||
|
@@ -58,6 +58,24 @@ namespace QuickLook.Plugin.VideoViewer
|
||||
}
|
||||
}
|
||||
|
||||
public sealed class BooleanToVisibilityVisibleConverter : DependencyObject, IValueConverter
|
||||
{
|
||||
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
if (value == null)
|
||||
return Visibility.Visible;
|
||||
|
||||
var v = (bool) value;
|
||||
|
||||
return v ? Visibility.Visible : Visibility.Hidden;
|
||||
}
|
||||
|
||||
object IValueConverter.ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
|
||||
public sealed class BooleanToVisibilityHiddenConverter : DependencyObject, IValueConverter
|
||||
{
|
||||
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
@@ -78,8 +96,7 @@ namespace QuickLook.Plugin.VideoViewer
|
||||
|
||||
public class TimeSpanToSecondsConverter : IValueConverter
|
||||
{
|
||||
public object Convert(object value, Type targetType,
|
||||
object parameter, CultureInfo culture)
|
||||
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
if (value is TimeSpan) return ((TimeSpan) value).TotalSeconds;
|
||||
if (value is Duration)
|
||||
@@ -88,15 +105,29 @@ namespace QuickLook.Plugin.VideoViewer
|
||||
return 0d;
|
||||
}
|
||||
|
||||
public object ConvertBack(object value, Type targetType,
|
||||
object parameter, CultureInfo culture)
|
||||
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
var result = TimeSpan.FromTicks((long) Math.Round(TimeSpan.TicksPerSecond * (double) value, 0));
|
||||
// Do the conversion from visibility to bool
|
||||
|
||||
if (targetType == typeof(TimeSpan)) return result;
|
||||
if (targetType == typeof(Duration)) return new Duration(result);
|
||||
|
||||
return Activator.CreateInstance(targetType);
|
||||
}
|
||||
}
|
||||
|
||||
public class DurationToTimeSpanConverter : IValueConverter
|
||||
{
|
||||
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
var val = (Duration) value;
|
||||
|
||||
return val.HasTimeSpan ? val.TimeSpan : TimeSpan.Zero;
|
||||
}
|
||||
|
||||
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
}
|
@@ -18,6 +18,7 @@
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Reflection;
|
||||
using System.Text;
|
||||
using System.Windows;
|
||||
using System.Xml.XPath;
|
||||
|
||||
@@ -47,6 +48,7 @@ namespace QuickLook.Plugin.VideoViewer.FFmpeg
|
||||
p.StartInfo.RedirectStandardOutput = true;
|
||||
p.StartInfo.FileName = _probePath;
|
||||
p.StartInfo.Arguments = $"-v quiet -print_format xml -show_streams -show_format \"{media}\"";
|
||||
p.StartInfo.StandardOutputEncoding = Encoding.UTF8;
|
||||
p.Start();
|
||||
p.WaitForExit();
|
||||
|
||||
@@ -67,7 +69,7 @@ namespace QuickLook.Plugin.VideoViewer.FFmpeg
|
||||
|
||||
public bool CanDecode()
|
||||
{
|
||||
var info = infoNavigator.SelectSingleNode("/ffprobe/streams");
|
||||
var info = infoNavigator.SelectSingleNode("/ffprobe/format");
|
||||
|
||||
return info != null;
|
||||
}
|
||||
|
@@ -15,6 +15,8 @@
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
@@ -26,6 +28,7 @@ namespace QuickLook.Plugin.VideoViewer
|
||||
{
|
||||
public class Plugin : IViewer
|
||||
{
|
||||
private Size _mediaSize;
|
||||
private ViewerPanel _vp;
|
||||
|
||||
public int Priority => int.MaxValue;
|
||||
@@ -43,25 +46,28 @@ namespace QuickLook.Plugin.VideoViewer
|
||||
if (Directory.Exists(path))
|
||||
return false;
|
||||
|
||||
var formats = new[]
|
||||
var blacklist = new[]
|
||||
{
|
||||
".3g2", ".3gp", ".3gp2", ".3gpp", ".amv", ".asf", ".asf", ".avi", ".flv", ".m2ts", ".m4v", ".mkv",
|
||||
".mov", ".mp4", ".mp4v", ".mpeg", ".mpg", ".ogv", ".qt", ".vob", ".webm", ".wmv"
|
||||
".txt", ".jpg", ".bmp"
|
||||
};
|
||||
|
||||
if (formats.Contains(Path.GetExtension(path).ToLower()))
|
||||
return true;
|
||||
|
||||
if (blacklist.Contains(Path.GetExtension(path).ToLower()))
|
||||
return false;
|
||||
|
||||
return new FFprobe(path).CanDecode();
|
||||
}
|
||||
|
||||
public void Prepare(string path, ContextObject context)
|
||||
{
|
||||
var def = new Size(1024, 768);
|
||||
var def = new Size(450, 450);
|
||||
|
||||
var real = new FFprobe(path).GetViewSize();
|
||||
_mediaSize = new FFprobe(path).GetViewSize();
|
||||
|
||||
context.SetPreferredSizeFit(real == Size.Empty ? def : real, 0.6);
|
||||
var windowSize = _mediaSize == Size.Empty ? def : _mediaSize;
|
||||
windowSize.Width = Math.Max(def.Width, windowSize.Width);
|
||||
windowSize.Height = Math.Max(def.Height, windowSize.Height);
|
||||
|
||||
context.SetPreferredSizeFit(windowSize, 0.6);
|
||||
}
|
||||
|
||||
public void View(string path, ContextObject context)
|
||||
@@ -70,11 +76,16 @@ namespace QuickLook.Plugin.VideoViewer
|
||||
|
||||
context.ViewerContent = _vp;
|
||||
|
||||
Debug.WriteLine("ViewerContent done");
|
||||
_vp.LoadAndPlay(path);
|
||||
Debug.WriteLine("LoadAndPlay done");
|
||||
|
||||
_vp.mediaElement.MediaOpened += (sender, e) => context.IsBusy = false;
|
||||
|
||||
var info = _mediaSize == Size.Empty ? "Audio" : $"{_mediaSize.Width}×{_mediaSize.Height}";
|
||||
|
||||
context.Title =
|
||||
$"{Path.GetFileName(path)} ({_vp.mediaElement.NaturalVideoWidth}×{_vp.mediaElement.NaturalVideoHeight})";
|
||||
context.IsBusy = false;
|
||||
$"{Path.GetFileName(path)} ({info})";
|
||||
}
|
||||
|
||||
public void Cleanup()
|
||||
|
@@ -62,6 +62,7 @@
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Xaml">
|
||||
<RequiredTargetFramework>4.0</RequiredTargetFramework>
|
||||
</Reference>
|
||||
@@ -105,8 +106,13 @@
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="ffme\ffme.dll" />
|
||||
<Resource Include="Resources\compact-disc.png">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</Resource>
|
||||
<Resource Include="ffme\ffme.xml" />
|
||||
<Content Include="ffme\ffme.pdb" />
|
||||
<Content Include="ffme\ffmpeg.dll" />
|
||||
<Content Include="ffme\ffmpeg.pdb" />
|
||||
<Content Include="FFmpeg\x64\avcodec-57.dll">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</Content>
|
||||
|
Binary file not shown.
After Width: | Height: | Size: 22 KiB |
@@ -4,8 +4,8 @@
|
||||
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
||||
<Style x:Key="ControlButtonStyle" TargetType="Grid">
|
||||
<Setter Property="Height" Value="50" />
|
||||
<Setter Property="Width" Value="50" />
|
||||
<Setter Property="Height" Value="35" />
|
||||
<Setter Property="Width" Value="35" />
|
||||
<Setter Property="Cursor" Value="Hand" />
|
||||
<Setter Property="VerticalAlignment" Value="Center" />
|
||||
<Setter Property="HorizontalAlignment" Value="Center" />
|
||||
|
@@ -7,26 +7,45 @@
|
||||
xmlns:local="clr-namespace:QuickLook.Plugin.VideoViewer"
|
||||
xmlns:ffmpeg="clr-namespace:Unosquare.FFME;assembly=ffme"
|
||||
mc:Ignorable="d"
|
||||
Background="#B2454545"
|
||||
d:DesignHeight="449.167" d:DesignWidth="767">
|
||||
x:Name="userControl"
|
||||
Background="#CC4E4E4E"
|
||||
d:DesignHeight="450" d:DesignWidth="450">
|
||||
<Grid>
|
||||
<Grid.Resources>
|
||||
<ResourceDictionary>
|
||||
<local:TimeSpanToSecondsConverter x:Key="TimeSpanToSecondsConverter" />
|
||||
<local:BooleanToVisibilityVisibleConverter x:Key="BooleanToVisibilityVisibleConverter" />
|
||||
<local:BooleanToVisibilityHiddenConverter x:Key="BooleanToVisibilityHiddenConverter" />
|
||||
<local:DurationToTimeSpanConverter x:Key="DurationToTimeSpanConverter" />
|
||||
<ResourceDictionary.MergedDictionaries>
|
||||
<ResourceDictionary Source="Styles.xaml" />
|
||||
</ResourceDictionary.MergedDictionaries>
|
||||
</ResourceDictionary>
|
||||
</Grid.Resources>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="7*" />
|
||||
<RowDefinition Height="3*" />
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<ffmpeg:MediaElement Grid.RowSpan="255" x:Name="mediaElement" />
|
||||
<ffmpeg:MediaElement x:Name="mediaElement" />
|
||||
|
||||
<Grid Grid.Row="1">
|
||||
<Image Margin="50" Source="Resources/compact-disc.png">
|
||||
<Image.Style>
|
||||
<Style TargetType="Image">
|
||||
<Setter Property="Visibility" Value="Collapsed" />
|
||||
<Style.Triggers>
|
||||
<MultiDataTrigger>
|
||||
<MultiDataTrigger.Conditions>
|
||||
<Condition Binding="{Binding IsOpen, ElementName=mediaElement}" Value="True" />
|
||||
<Condition Binding="{Binding HasVideo, ElementName=mediaElement}" Value="False" />
|
||||
</MultiDataTrigger.Conditions>
|
||||
<MultiDataTrigger.Setters>
|
||||
<Setter Property="Visibility" Value="Visible" />
|
||||
</MultiDataTrigger.Setters>
|
||||
</MultiDataTrigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
</Image.Style>
|
||||
</Image>
|
||||
|
||||
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Bottom" Height="100"
|
||||
Visibility="{Binding NaturalDuration.HasTimeSpan, ElementName=mediaElement, Converter={StaticResource BooleanToVisibilityVisibleConverter}}">
|
||||
<Grid.Background>
|
||||
<LinearGradientBrush EndPoint="0,1" StartPoint="0,0">
|
||||
<GradientStop Offset="0.0" Color="#00000000" />
|
||||
@@ -42,22 +61,30 @@
|
||||
<Grid.Style>
|
||||
<Style TargetType="{x:Type Grid}">
|
||||
<Style.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Trigger.EnterActions>
|
||||
<MultiDataTrigger>
|
||||
<MultiDataTrigger.Conditions>
|
||||
<Condition Binding="{Binding Path=IsMouseOver, RelativeSource={RelativeSource Self}}"
|
||||
Value="True" />
|
||||
<Condition Binding="{Binding IsOpen, ElementName=mediaElement}" Value="True" />
|
||||
<Condition Binding="{Binding HasVideo, ElementName=mediaElement}" Value="True" />
|
||||
</MultiDataTrigger.Conditions>
|
||||
<MultiDataTrigger.EnterActions>
|
||||
<BeginStoryboard>
|
||||
<Storyboard>
|
||||
<DoubleAnimation Storyboard.TargetProperty="Opacity" To="1" Duration="0:0:0.2" />
|
||||
<DoubleAnimation Storyboard.TargetProperty="Opacity" To="1"
|
||||
Duration="0:0:0.2" />
|
||||
</Storyboard>
|
||||
</BeginStoryboard>
|
||||
</Trigger.EnterActions>
|
||||
<Trigger.ExitActions>
|
||||
</MultiDataTrigger.EnterActions>
|
||||
<MultiDataTrigger.ExitActions>
|
||||
<BeginStoryboard>
|
||||
<Storyboard>
|
||||
<DoubleAnimation Storyboard.TargetProperty="Opacity" To="0" Duration="0:0:0.2" />
|
||||
<DoubleAnimation Storyboard.TargetProperty="Opacity" To="0"
|
||||
Duration="0:0:0.2" />
|
||||
</Storyboard>
|
||||
</BeginStoryboard>
|
||||
</Trigger.ExitActions>
|
||||
</Trigger>
|
||||
</MultiDataTrigger.ExitActions>
|
||||
</MultiDataTrigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
</Grid.Style>
|
||||
@@ -72,13 +99,13 @@
|
||||
<Grid Grid.Row="2">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="149" />
|
||||
<ColumnDefinition Width="*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<StackPanel Grid.Column="0" HorizontalAlignment="Left" VerticalAlignment="Center"
|
||||
Orientation="Horizontal" Margin="20,0,0,0">
|
||||
<StackPanel Grid.Column="0" VerticalAlignment="Center"
|
||||
Orientation="Horizontal" Margin="10,0,0,0">
|
||||
<Grid x:Name="buttonMute" Style="{StaticResource ControlButtonStyle}">
|
||||
<fa:ImageAwesome Height="30" Width="30" Foreground="#FFEFEFEF">
|
||||
<fa:ImageAwesome Height="23" Width="23" Foreground="#FFEFEFEF">
|
||||
<fa:ImageAwesome.Style>
|
||||
<Style TargetType="fa:ImageAwesome">
|
||||
<Setter Property="Icon" Value="VolumeOff" />
|
||||
@@ -92,17 +119,18 @@
|
||||
</fa:ImageAwesome.Style>
|
||||
</fa:ImageAwesome>
|
||||
</Grid>
|
||||
<Slider Style="{StaticResource CustomSliderStyle}" Width="80" Maximum="1"
|
||||
<Slider Style="{StaticResource CustomSliderStyle}" MaxWidth="75" Maximum="1"
|
||||
Value="{Binding Volume, ElementName=mediaElement}"
|
||||
Visibility="{Binding IsMuted, ElementName=mediaElement, Converter={StaticResource BooleanToVisibilityHiddenConverter}}" />
|
||||
Visibility="{Binding IsMuted, ElementName=mediaElement, Converter={StaticResource BooleanToVisibilityHiddenConverter}}"
|
||||
BorderThickness="0,0,5,0" />
|
||||
</StackPanel>
|
||||
<StackPanel Grid.Column="1" Orientation="Horizontal" HorizontalAlignment="Center">
|
||||
<Grid x:Name="buttonBackward" Style="{StaticResource ControlButtonStyle}">
|
||||
<fa:ImageAwesome Icon="Backward" Height="27" Width="27" Foreground="#FFEFEFEF" />
|
||||
<fa:ImageAwesome Icon="Backward" Height="23" Width="23" Foreground="#FFEFEFEF" />
|
||||
</Grid>
|
||||
<Grid Width="7" />
|
||||
<Grid Width="3" />
|
||||
<Grid x:Name="buttonPlayPause" Style="{StaticResource ControlButtonStyle}">
|
||||
<fa:ImageAwesome Height="30" Width="30" Foreground="#FFEFEFEF">
|
||||
<fa:ImageAwesome Height="23" Width="23" Foreground="#FFEFEFEF">
|
||||
<fa:ImageAwesome.Style>
|
||||
<Style>
|
||||
<Setter Property="fa:ImageAwesome.Icon" Value="Pause" />
|
||||
@@ -116,22 +144,22 @@
|
||||
</fa:ImageAwesome.Style>
|
||||
</fa:ImageAwesome>
|
||||
</Grid>
|
||||
<Grid Width="7" />
|
||||
<Grid Width="3" />
|
||||
<Grid x:Name="buttonStop" Style="{StaticResource ControlButtonStyle}">
|
||||
<fa:ImageAwesome Icon="Stop" Height="27" Width="27" Foreground="#FFEFEFEF" />
|
||||
<fa:ImageAwesome Icon="Stop" Height="21" Width="21" Foreground="#FFEFEFEF" />
|
||||
</Grid>
|
||||
<Grid Width="7" />
|
||||
<Grid Width="3" />
|
||||
<Grid x:Name="buttonForward" Style="{StaticResource ControlButtonStyle}">
|
||||
<fa:ImageAwesome Icon="Forward" Height="27" Width="27" Foreground="#FFEFEFEF" />
|
||||
<fa:ImageAwesome Icon="Forward" Height="23" Width="23" Foreground="#FFEFEFEF" />
|
||||
</Grid>
|
||||
</StackPanel>
|
||||
<StackPanel Grid.Column="2" HorizontalAlignment="Right" VerticalAlignment="Center"
|
||||
Orientation="Horizontal" Margin="0,0,20,0">
|
||||
<TextBlock FontSize="16" Foreground="#FFEFEFEF"
|
||||
Orientation="Horizontal" Margin="0,0,10,0">
|
||||
<TextBlock FontSize="14" Foreground="#FFEFEFEF"
|
||||
Text="{Binding Position, StringFormat=hh\\:mm\\:ss, ElementName=mediaElement}" />
|
||||
<TextBlock FontSize="16" Text=" / " Foreground="#FFEFEFEF" />
|
||||
<TextBlock FontSize="16" Foreground="#FFEFEFEF"
|
||||
Text="{Binding NaturalDuration.TimeSpan, StringFormat=hh\\:mm\\:ss, ElementName=mediaElement}" />
|
||||
<TextBlock FontSize="14" Text=" / " Foreground="#FFEFEFEF" />
|
||||
<TextBlock FontSize="14" Foreground="#FFEFEFEF"
|
||||
Text="{Binding NaturalDuration, StringFormat=hh\\:mm\\:ss, ElementName=mediaElement, Converter={StaticResource DurationToTimeSpanConverter}}" />
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</Grid>
|
||||
|
@@ -30,6 +30,8 @@ namespace QuickLook.Plugin.VideoViewer
|
||||
{
|
||||
private readonly ContextObject _context;
|
||||
|
||||
private bool _wasPlaying;
|
||||
|
||||
public ViewerPanel(ContextObject context)
|
||||
{
|
||||
InitializeComponent();
|
||||
@@ -47,7 +49,25 @@ namespace QuickLook.Plugin.VideoViewer
|
||||
buttonBackward.MouseLeftButtonUp += (sender, e) => SeekBackward();
|
||||
buttonForward.MouseLeftButtonUp += (sender, e) => SeekForward();
|
||||
|
||||
sliderProgress.PreviewMouseDown += (sender, e) =>
|
||||
{
|
||||
_wasPlaying = mediaElement.IsPlaying;
|
||||
mediaElement.Pause();
|
||||
};
|
||||
sliderProgress.PreviewMouseUp += (sender, e) =>
|
||||
{
|
||||
if (_wasPlaying) mediaElement.Play();
|
||||
};
|
||||
|
||||
mediaElement.MediaFailed += ShowErrorNotification;
|
||||
mediaElement.MediaEnded += (s, e) =>
|
||||
{
|
||||
if (!mediaElement.NaturalDuration.HasTimeSpan)
|
||||
{
|
||||
mediaElement.Stop();
|
||||
mediaElement.Play();
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
@@ -55,23 +75,39 @@ namespace QuickLook.Plugin.VideoViewer
|
||||
mediaElement?.Stop();
|
||||
mediaElement?.Dispose();
|
||||
mediaElement = null;
|
||||
Debug.WriteLine("dispose done");
|
||||
}
|
||||
|
||||
private void ResumePlaying()
|
||||
{
|
||||
_wasPlaying = mediaElement.IsPlaying;
|
||||
}
|
||||
|
||||
private void SeekBackward()
|
||||
{
|
||||
_wasPlaying = mediaElement.IsPlaying;
|
||||
mediaElement.Pause();
|
||||
|
||||
var pos = mediaElement.Position;
|
||||
var delta = TimeSpan.FromSeconds(15);
|
||||
|
||||
mediaElement.Position = pos < pos - delta ? TimeSpan.Zero : pos - delta;
|
||||
|
||||
if (_wasPlaying) mediaElement.Play();
|
||||
}
|
||||
|
||||
private void SeekForward()
|
||||
{
|
||||
_wasPlaying = mediaElement.IsPlaying;
|
||||
mediaElement.Pause();
|
||||
|
||||
var pos = mediaElement.Position;
|
||||
var len = mediaElement.NaturalDuration.TimeSpan;
|
||||
var delta = TimeSpan.FromSeconds(15);
|
||||
|
||||
mediaElement.Position = pos + delta > len ? len : pos + delta;
|
||||
|
||||
if (_wasPlaying) mediaElement.Play();
|
||||
}
|
||||
|
||||
private void TogglePlayPause(object sender, MouseButtonEventArgs e)
|
||||
@@ -86,12 +122,12 @@ namespace QuickLook.Plugin.VideoViewer
|
||||
private void ShowErrorNotification(object sender, ExceptionRoutedEventArgs exceptionRoutedEventArgs)
|
||||
{
|
||||
_context.ShowNotification("", "An error occurred while loading the video.");
|
||||
mediaElement.Stop();
|
||||
mediaElement?.Close();
|
||||
|
||||
Dispose();
|
||||
|
||||
|
||||
throw new Exception("fallback to default viewer.");
|
||||
//throw new Exception("fallback to default viewer.");
|
||||
}
|
||||
|
||||
public void LoadAndPlay(string path)
|
||||
|
Binary file not shown.
@@ -1,5 +1,4 @@
|
||||
<?xml version="1.0"?>
|
||||
|
||||
<doc>
|
||||
<assembly>
|
||||
<name>ffme</name>
|
||||
@@ -92,8 +91,7 @@
|
||||
Represents a command to be executed against an intance of the MediaElement
|
||||
</summary>
|
||||
</member>
|
||||
<member
|
||||
name="M:Unosquare.FFME.Commands.MediaCommand.#ctor(Unosquare.FFME.Commands.MediaCommandManager,Unosquare.FFME.Commands.MediaCommandType)">
|
||||
<member name="M:Unosquare.FFME.Commands.MediaCommand.#ctor(Unosquare.FFME.Commands.MediaCommandManager,Unosquare.FFME.Commands.MediaCommandType)">
|
||||
<summary>
|
||||
Initializes a new instance of the <see cref="T:Unosquare.FFME.Commands.MediaCommand" /> class.
|
||||
</summary>
|
||||
@@ -203,8 +201,7 @@
|
||||
</summary>
|
||||
<returns>The awaitable task</returns>
|
||||
</member>
|
||||
<member
|
||||
name="M:Unosquare.FFME.Commands.MediaCommandManager.PendingCountOf(Unosquare.FFME.Commands.MediaCommandType)">
|
||||
<member name="M:Unosquare.FFME.Commands.MediaCommandManager.PendingCountOf(Unosquare.FFME.Commands.MediaCommandType)">
|
||||
<summary>
|
||||
Gets the pending count of the given command type.
|
||||
</summary>
|
||||
@@ -257,8 +254,7 @@
|
||||
</summary>
|
||||
<seealso cref="T:Unosquare.FFME.Commands.MediaCommand" />
|
||||
</member>
|
||||
<member
|
||||
name="M:Unosquare.FFME.Commands.SeekCommand.#ctor(Unosquare.FFME.Commands.MediaCommandManager,System.TimeSpan)">
|
||||
<member name="M:Unosquare.FFME.Commands.SeekCommand.#ctor(Unosquare.FFME.Commands.MediaCommandManager,System.TimeSpan)">
|
||||
<summary>
|
||||
Initializes a new instance of the <see cref="T:Unosquare.FFME.Commands.SeekCommand" /> class.
|
||||
</summary>
|
||||
@@ -284,8 +280,7 @@
|
||||
</summary>
|
||||
<seealso cref="T:Unosquare.FFME.Commands.MediaCommand" />
|
||||
</member>
|
||||
<member
|
||||
name="M:Unosquare.FFME.Commands.SpeedRatioCommand.#ctor(Unosquare.FFME.Commands.MediaCommandManager,System.Double)">
|
||||
<member name="M:Unosquare.FFME.Commands.SpeedRatioCommand.#ctor(Unosquare.FFME.Commands.MediaCommandManager,System.Double)">
|
||||
<summary>
|
||||
Initializes a new instance of the <see cref="T:Unosquare.FFME.Commands.SpeedRatioCommand"/> class.
|
||||
</summary>
|
||||
@@ -527,60 +522,6 @@
|
||||
<param name="source">The source.</param>
|
||||
<param name="length">The length.</param>
|
||||
</member>
|
||||
<member name="T:Unosquare.FFME.Core.ThreadTiming">
|
||||
<summary>
|
||||
Provides thread timing function alternatives to the
|
||||
blocking Thread.Sleep or the overhead-incurring await Task.Delay
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Unosquare.FFME.Core.ThreadTiming.#ctor">
|
||||
<summary>
|
||||
Prevents a default instance of the <see cref="T:Unosquare.FFME.Core.ThreadTiming" /> class from being created.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Unosquare.FFME.Core.ThreadTiming.Instance">
|
||||
<summary>
|
||||
Gets the singleton, lazy-loaded instance.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Unosquare.FFME.Core.ThreadTiming.Suspend(System.Int32)">
|
||||
<summary>
|
||||
Suspends the thread for at most the specified timeout.
|
||||
</summary>
|
||||
<param name="timeoutMilliseconds">The timeout milliseconds.</param>
|
||||
</member>
|
||||
<member name="M:Unosquare.FFME.Core.ThreadTiming.SuspendOne">
|
||||
<summary>
|
||||
Suspends the thread for at most 1 timer cycle.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Unosquare.FFME.Core.ThreadTiming.Sleep(System.Int32)">
|
||||
<summary>
|
||||
Alternative thread sleep method by suspending the thread by at least
|
||||
the sepcifed timeout milliseconds.
|
||||
</summary>
|
||||
<param name="timeoutMilliseconds">The timeout milliseconds.</param>
|
||||
</member>
|
||||
<member name="M:Unosquare.FFME.Core.ThreadTiming.SleepBlock(System.Int32)">
|
||||
<summary>
|
||||
Calls the classic Thread.Sleep method directly.
|
||||
</summary>
|
||||
<param name="timeoutMilliseconds">The timeout milliseconds.</param>
|
||||
</member>
|
||||
<member name="M:Unosquare.FFME.Core.ThreadTiming.SuspendAsync(System.Int32)">
|
||||
<summary>
|
||||
Calls the classic Task.Delay method directly.
|
||||
</summary>
|
||||
<param name="timeoutMilliseconds">The timeout milliseconds.</param>
|
||||
<returns>The awaitable task</returns>
|
||||
</member>
|
||||
<member name="M:Unosquare.FFME.Core.ThreadTiming.PromiseDelay(System.Double)">
|
||||
<summary>
|
||||
Promises the delay.
|
||||
</summary>
|
||||
<param name="timeoutMilliseconds">The timeout milliseconds.</param>
|
||||
<returns>The awaitable task</returns>
|
||||
</member>
|
||||
<member name="T:Unosquare.FFME.Core.CircularBuffer">
|
||||
<summary>
|
||||
A fixed-size buffer that acts as an infinite length one.
|
||||
@@ -678,8 +619,7 @@
|
||||
<param name="targetOffset">The target offset.</param>
|
||||
<exception cref="T:System.InvalidOperationException">When requested GT readble</exception>
|
||||
</member>
|
||||
<member
|
||||
name="M:Unosquare.FFME.Core.CircularBuffer.Write(System.IntPtr,System.Int32,System.TimeSpan,System.Boolean)">
|
||||
<member name="M:Unosquare.FFME.Core.CircularBuffer.Write(System.IntPtr,System.Int32,System.TimeSpan,System.Boolean)">
|
||||
<summary>
|
||||
Writes data to the backing buffer using the specified pointer and length.
|
||||
and associating a write tag for this operation.
|
||||
@@ -827,8 +767,7 @@
|
||||
<param name="frame">The frame.</param>
|
||||
<returns>The audio parameters</returns>
|
||||
</member>
|
||||
<member
|
||||
name="M:Unosquare.FFME.Core.AudioParams.AreCompatible(Unosquare.FFME.Core.AudioParams,Unosquare.FFME.Core.AudioParams)">
|
||||
<member name="M:Unosquare.FFME.Core.AudioParams.AreCompatible(Unosquare.FFME.Core.AudioParams,Unosquare.FFME.Core.AudioParams)">
|
||||
<summary>
|
||||
Determines if the audio specs are compatible between them.
|
||||
They must share format, channel count, layout and sample rate
|
||||
@@ -842,8 +781,7 @@
|
||||
A single codec option along with a stream specifier.
|
||||
</summary>
|
||||
</member>
|
||||
<member
|
||||
name="M:Unosquare.FFME.Core.CodecOption.#ctor(Unosquare.FFME.Core.StreamSpecifier,System.String,System.String)">
|
||||
<member name="M:Unosquare.FFME.Core.CodecOption.#ctor(Unosquare.FFME.Core.StreamSpecifier,System.String,System.String)">
|
||||
<summary>
|
||||
Initializes a new instance of the <see cref="T:Unosquare.FFME.Core.CodecOption"/> class.
|
||||
</summary>
|
||||
@@ -927,8 +865,7 @@
|
||||
Initializes a new instance of the <see cref="T:Unosquare.FFME.Core.FFDictionary"/> class.
|
||||
</summary>
|
||||
</member>
|
||||
<member
|
||||
name="M:Unosquare.FFME.Core.FFDictionary.#ctor(System.Collections.Generic.Dictionary{System.String,System.String})">
|
||||
<member name="M:Unosquare.FFME.Core.FFDictionary.#ctor(System.Collections.Generic.Dictionary{System.String,System.String})">
|
||||
<summary>
|
||||
Initializes a new instance of the <see cref="T:Unosquare.FFME.Core.FFDictionary"/> class.
|
||||
</summary>
|
||||
@@ -959,8 +896,7 @@
|
||||
<param name="dictionary">The dictionary to convert from.</param>
|
||||
<returns>the converterd dictionary</returns>
|
||||
</member>
|
||||
<member
|
||||
name="M:Unosquare.FFME.Core.FFDictionary.GetEntry(FFmpeg.AutoGen.AVDictionary*,System.String,System.Boolean)">
|
||||
<member name="M:Unosquare.FFME.Core.FFDictionary.GetEntry(FFmpeg.AutoGen.AVDictionary*,System.String,System.Boolean)">
|
||||
<summary>
|
||||
A wrapper for the av_dict_get method
|
||||
</summary>
|
||||
@@ -969,8 +905,7 @@
|
||||
<param name="matchCase">if set to <c>true</c> [match case].</param>
|
||||
<returns>The Entry</returns>
|
||||
</member>
|
||||
<member
|
||||
name="M:Unosquare.FFME.Core.FFDictionary.Fill(System.Collections.Generic.Dictionary{System.String,System.String})">
|
||||
<member name="M:Unosquare.FFME.Core.FFDictionary.Fill(System.Collections.Generic.Dictionary{System.String,System.String})">
|
||||
<summary>
|
||||
Fills this dictionary with a set of options
|
||||
</summary>
|
||||
@@ -1212,20 +1147,6 @@
|
||||
<param name="rational">The rational.</param>
|
||||
<returns>The value</returns>
|
||||
</member>
|
||||
<member name="M:Unosquare.FFME.Core.Utils.RoundTicks(System.Int64)">
|
||||
<summary>
|
||||
Rounds the ticks.
|
||||
</summary>
|
||||
<param name="ticks">The ticks.</param>
|
||||
<returns>The ticks</returns>
|
||||
</member>
|
||||
<member name="M:Unosquare.FFME.Core.Utils.RoundSeconds(System.Decimal)">
|
||||
<summary>
|
||||
Rounds the seconds to 4 decimals.
|
||||
</summary>
|
||||
<param name="seconds">The seconds.</param>
|
||||
<returns>The seconds</returns>
|
||||
</member>
|
||||
<member name="M:Unosquare.FFME.Core.Utils.RegisterFFmpeg(System.String)">
|
||||
<summary>
|
||||
Registers FFmpeg library and initializes its components.
|
||||
@@ -1236,8 +1157,27 @@
|
||||
<returns>Returns the path that FFmpeg was registered from.</returns>
|
||||
<exception cref="T:System.IO.FileNotFoundException">When the folder is not found</exception>
|
||||
</member>
|
||||
<member
|
||||
name="M:Unosquare.FFME.Core.Utils.InvokeAsync(System.Windows.Threading.Dispatcher,System.Windows.Threading.DispatcherPriority,System.Delegate,System.Object[])">
|
||||
<member name="M:Unosquare.FFME.Core.Utils.PromiseDelay(System.Double)">
|
||||
<summary>
|
||||
Promises the delay.
|
||||
</summary>
|
||||
<param name="timeoutMilliseconds">The timeout milliseconds.</param>
|
||||
<returns>
|
||||
The awaitable task
|
||||
</returns>
|
||||
</member>
|
||||
<member name="M:Unosquare.FFME.Core.Utils.PumpInvokeAsync(System.Windows.Threading.Dispatcher,System.Delegate,System.Object[])">
|
||||
<summary>
|
||||
Invoke the given action asynchronously by starting a new background thread and continuing
|
||||
dispatcher processing. This method is somewhat expensive but it guarantees
|
||||
pending operations on the selected dispatcher do not cause a deadlock.
|
||||
</summary>
|
||||
<param name="dispatcher">The dispatcher.</param>
|
||||
<param name="action">The action.</param>
|
||||
<param name="args">The arguments.</param>
|
||||
<returns>The awaitable promise.</returns>
|
||||
</member>
|
||||
<member name="M:Unosquare.FFME.Core.Utils.InvokeAsync(System.Windows.Threading.Dispatcher,System.Windows.Threading.DispatcherPriority,System.Delegate,System.Object[])">
|
||||
<summary>
|
||||
Invokes the specified delegate on the specified dispatcher.
|
||||
</summary>
|
||||
@@ -1254,8 +1194,7 @@
|
||||
<param name="priority">The priority. Set it to Normal by default.</param>
|
||||
<param name="action">The action.</param>
|
||||
</member>
|
||||
<member
|
||||
name="M:Unosquare.FFME.Core.Utils.UIEnqueueInvoke(System.Windows.Threading.DispatcherPriority,System.Delegate,System.Object[])">
|
||||
<member name="M:Unosquare.FFME.Core.Utils.UIEnqueueInvoke(System.Windows.Threading.DispatcherPriority,System.Delegate,System.Object[])">
|
||||
<summary>
|
||||
Enqueues the given instructions with the given arguments on the main application dispatcher.
|
||||
This is a way to execute code in a fire-and-forget style
|
||||
@@ -1273,8 +1212,7 @@
|
||||
<param name="message">The message.</param>
|
||||
<exception cref="T:System.ArgumentNullException">sender</exception>
|
||||
</member>
|
||||
<member
|
||||
name="M:Unosquare.FFME.Core.Utils.LogRenderBlock(Unosquare.FFME.MediaElement,Unosquare.FFME.Decoding.MediaBlock,System.TimeSpan,System.Int32)">
|
||||
<member name="M:Unosquare.FFME.Core.Utils.LogRenderBlock(Unosquare.FFME.MediaElement,Unosquare.FFME.Decoding.MediaBlock,System.TimeSpan,System.Int32)">
|
||||
<summary>
|
||||
Logs a block rendering operation as a Trace Message
|
||||
if the debugger is attached.
|
||||
@@ -1884,8 +1822,7 @@
|
||||
The CC4 Track Packets
|
||||
</summary>
|
||||
</member>
|
||||
<member
|
||||
name="M:Unosquare.FFME.Decoding.ClosedCaptions.ClosedCaptionCollection.Add(Unosquare.FFME.Decoding.ClosedCaptions.ClosedCaptionPacket)">
|
||||
<member name="M:Unosquare.FFME.Decoding.ClosedCaptions.ClosedCaptionCollection.Add(Unosquare.FFME.Decoding.ClosedCaptions.ClosedCaptionPacket)">
|
||||
<summary>
|
||||
Adds the specified packet and automatically places it on the right track.
|
||||
If the track requires sorting it does so by reordering packets based on their timestamp.
|
||||
@@ -1903,21 +1840,17 @@
|
||||
Holds the data bytes
|
||||
</summary>
|
||||
</member>
|
||||
<member
|
||||
name="M:Unosquare.FFME.Decoding.ClosedCaptions.ClosedCaptionPacket.#ctor(System.TimeSpan,System.Byte[],System.Int32)">
|
||||
<member name="M:Unosquare.FFME.Decoding.ClosedCaptions.ClosedCaptionPacket.#ctor(System.TimeSpan,System.Byte[],System.Int32)">
|
||||
<summary>
|
||||
Initializes a new instance of the <see cref="T:Unosquare.FFME.Decoding.ClosedCaptions.ClosedCaptionPacket" />
|
||||
class.
|
||||
Initializes a new instance of the <see cref="T:Unosquare.FFME.Decoding.ClosedCaptions.ClosedCaptionPacket"/> class.
|
||||
</summary>
|
||||
<param name="timestamp">The timestamp.</param>
|
||||
<param name="source">The source.</param>
|
||||
<param name="offset">The offset.</param>
|
||||
</member>
|
||||
<member
|
||||
name="M:Unosquare.FFME.Decoding.ClosedCaptions.ClosedCaptionPacket.#ctor(System.TimeSpan,System.Byte,System.Byte,System.Byte)">
|
||||
<member name="M:Unosquare.FFME.Decoding.ClosedCaptions.ClosedCaptionPacket.#ctor(System.TimeSpan,System.Byte,System.Byte,System.Byte)">
|
||||
<summary>
|
||||
Initializes a new instance of the <see cref="T:Unosquare.FFME.Decoding.ClosedCaptions.ClosedCaptionPacket" />
|
||||
class.
|
||||
Initializes a new instance of the <see cref="T:Unosquare.FFME.Decoding.ClosedCaptions.ClosedCaptionPacket"/> class.
|
||||
</summary>
|
||||
<param name="timestamp">The timestamp.</param>
|
||||
<param name="header">The header.</param>
|
||||
@@ -2010,9 +1943,7 @@
|
||||
</summary>
|
||||
<param name="obj">An object to compare with this instance.</param>
|
||||
<returns>
|
||||
A value that indicates the relative order of the objects being compared. The return value has these meanings: Value Meaning Less than zero This instance precedes
|
||||
<paramref name="obj" /> in the sort order. Zero This instance occurs in the same position in the sort order as
|
||||
<paramref name="obj" />. Greater than zero This instance follows <paramref name="obj" /> in the sort order.
|
||||
A value that indicates the relative order of the objects being compared. The return value has these meanings: Value Meaning Less than zero This instance precedes <paramref name="obj" /> in the sort order. Zero This instance occurs in the same position in the sort order as <paramref name="obj" />. Greater than zero This instance follows <paramref name="obj" /> in the sort order.
|
||||
</returns>
|
||||
</member>
|
||||
<member name="M:Unosquare.FFME.Decoding.ClosedCaptions.ClosedCaptionPacket.HeaderHasMarkers(System.Byte)">
|
||||
@@ -2039,8 +1970,7 @@
|
||||
<param name="data">The data.</param>
|
||||
<returns>The field type</returns>
|
||||
</member>
|
||||
<member
|
||||
name="M:Unosquare.FFME.Decoding.ClosedCaptions.ClosedCaptionPacket.IsEmptyChannelData(System.Byte,System.Byte)">
|
||||
<member name="M:Unosquare.FFME.Decoding.ClosedCaptions.ClosedCaptionPacket.IsEmptyChannelData(System.Byte,System.Byte)">
|
||||
<summary>
|
||||
Determines whether the data is null padding
|
||||
</summary>
|
||||
@@ -2161,8 +2091,7 @@
|
||||
<seealso cref="T:Unosquare.FFME.Decoding.MediaFrame" />
|
||||
<seealso cref="T:System.IDisposable" />
|
||||
</member>
|
||||
<member
|
||||
name="M:Unosquare.FFME.Decoding.AudioFrame.#ctor(FFmpeg.AutoGen.AVFrame*,Unosquare.FFME.Decoding.MediaComponent)">
|
||||
<member name="M:Unosquare.FFME.Decoding.AudioFrame.#ctor(FFmpeg.AutoGen.AVFrame*,Unosquare.FFME.Decoding.MediaComponent)">
|
||||
<summary>
|
||||
Initializes a new instance of the <see cref="T:Unosquare.FFME.Decoding.AudioFrame" /> class.
|
||||
</summary>
|
||||
@@ -2304,8 +2233,7 @@
|
||||
<param name="current">The current block.</param>
|
||||
<returns>The next media block</returns>
|
||||
</member>
|
||||
<member
|
||||
name="M:Unosquare.FFME.Decoding.MediaBlockBuffer.Add(Unosquare.FFME.Decoding.MediaFrame,Unosquare.FFME.Decoding.MediaContainer)">
|
||||
<member name="M:Unosquare.FFME.Decoding.MediaBlockBuffer.Add(Unosquare.FFME.Decoding.MediaFrame,Unosquare.FFME.Decoding.MediaContainer)">
|
||||
<summary>
|
||||
Adds a block to the playback blocks by converting the given frame.
|
||||
If there are no more blocks in the pool, the oldest block is returned to the pool
|
||||
@@ -2398,8 +2326,7 @@
|
||||
Gets the bits per sample.
|
||||
</summary>
|
||||
</member>
|
||||
<member
|
||||
name="M:Unosquare.FFME.Decoding.AudioComponent.MaterializeFrame(Unosquare.FFME.Decoding.MediaFrame,Unosquare.FFME.Decoding.MediaBlock@)">
|
||||
<member name="M:Unosquare.FFME.Decoding.AudioComponent.MaterializeFrame(Unosquare.FFME.Decoding.MediaFrame,Unosquare.FFME.Decoding.MediaBlock@)">
|
||||
<summary>
|
||||
Converts decoded, raw frame data in the frame source into a a usable frame. <br />
|
||||
The process includes performing picture, samples or text conversions
|
||||
@@ -2484,9 +2411,7 @@
|
||||
</summary>
|
||||
<param name="other">An object to compare with this instance.</param>
|
||||
<returns>
|
||||
A value that indicates the relative order of the objects being compared. The return value has these meanings: Value Meaning Less than zero This instance precedes
|
||||
<paramref name="other" /> in the sort order. Zero This instance occurs in the same position in the sort order as
|
||||
<paramref name="other" />. Greater than zero This instance follows <paramref name="other" /> in the sort order.
|
||||
A value that indicates the relative order of the objects being compared. The return value has these meanings: Value Meaning Less than zero This instance precedes <paramref name="other" /> in the sort order. Zero This instance occurs in the same position in the sort order as <paramref name="other" />. Greater than zero This instance follows <paramref name="other" /> in the sort order.
|
||||
</returns>
|
||||
</member>
|
||||
<member name="M:Unosquare.FFME.Decoding.MediaFrame.Dispose">
|
||||
@@ -2621,9 +2546,7 @@
|
||||
</summary>
|
||||
<param name="other">An object to compare with this instance.</param>
|
||||
<returns>
|
||||
A value that indicates the relative order of the objects being compared. The return value has these meanings: Value Meaning Less than zero This instance precedes
|
||||
<paramref name="other" /> in the sort order. Zero This instance occurs in the same position in the sort order as
|
||||
<paramref name="other" />. Greater than zero This instance follows <paramref name="other" /> in the sort order.
|
||||
A value that indicates the relative order of the objects being compared. The return value has these meanings: Value Meaning Less than zero This instance precedes <paramref name="other" /> in the sort order. Zero This instance occurs in the same position in the sort order as <paramref name="other" />. Greater than zero This instance follows <paramref name="other" /> in the sort order.
|
||||
</returns>
|
||||
</member>
|
||||
<member name="M:Unosquare.FFME.Decoding.MediaBlock.Dispose">
|
||||
@@ -2778,8 +2701,7 @@
|
||||
</summary>
|
||||
<returns>The received Media Frames</returns>
|
||||
</member>
|
||||
<member
|
||||
name="M:Unosquare.FFME.Decoding.MediaComponent.MaterializeFrame(Unosquare.FFME.Decoding.MediaFrame,Unosquare.FFME.Decoding.MediaBlock@)">
|
||||
<member name="M:Unosquare.FFME.Decoding.MediaComponent.MaterializeFrame(Unosquare.FFME.Decoding.MediaFrame,Unosquare.FFME.Decoding.MediaBlock@)">
|
||||
<summary>
|
||||
Converts decoded, raw frame data in the frame source into a a usable frame. <br />
|
||||
The process includes performing picture, samples or text conversions
|
||||
@@ -3029,8 +2951,7 @@
|
||||
</summary>
|
||||
<seealso cref="T:Unosquare.FFME.Decoding.MediaFrame" />
|
||||
</member>
|
||||
<member
|
||||
name="M:Unosquare.FFME.Decoding.SubtitleFrame.#ctor(FFmpeg.AutoGen.AVSubtitle*,Unosquare.FFME.Decoding.MediaComponent)">
|
||||
<member name="M:Unosquare.FFME.Decoding.SubtitleFrame.#ctor(FFmpeg.AutoGen.AVSubtitle*,Unosquare.FFME.Decoding.MediaComponent)">
|
||||
<summary>
|
||||
Initializes a new instance of the <see cref="T:Unosquare.FFME.Decoding.SubtitleFrame" /> class.
|
||||
</summary>
|
||||
@@ -3167,8 +3088,7 @@
|
||||
</summary>
|
||||
<seealso cref="T:Unosquare.FFME.Decoding.MediaFrame" />
|
||||
</member>
|
||||
<member
|
||||
name="M:Unosquare.FFME.Decoding.VideoFrame.#ctor(FFmpeg.AutoGen.AVFrame*,Unosquare.FFME.Decoding.MediaComponent)">
|
||||
<member name="M:Unosquare.FFME.Decoding.VideoFrame.#ctor(FFmpeg.AutoGen.AVFrame*,Unosquare.FFME.Decoding.MediaComponent)">
|
||||
<summary>
|
||||
Initializes a new instance of the <see cref="T:Unosquare.FFME.Decoding.VideoFrame" /> class.
|
||||
</summary>
|
||||
@@ -3278,8 +3198,7 @@
|
||||
When a read operation is started, this is set to the ticks of UTC now.
|
||||
</summary>
|
||||
</member>
|
||||
<member
|
||||
name="M:Unosquare.FFME.Decoding.MediaContainer.#ctor(System.String,Unosquare.FFME.Core.IMediaLogger,System.String)">
|
||||
<member name="M:Unosquare.FFME.Decoding.MediaContainer.#ctor(System.String,Unosquare.FFME.Core.IMediaLogger,System.String)">
|
||||
<summary>
|
||||
Initializes a new instance of the <see cref="T:Unosquare.FFME.Decoding.MediaContainer" /> class.
|
||||
</summary>
|
||||
@@ -3287,8 +3206,7 @@
|
||||
<param name="logger">The logger.</param>
|
||||
<param name="protocolPrefix">
|
||||
The protocol prefix. See https://ffmpeg.org/ffmpeg-protocols.html
|
||||
Leave null if setting it is not intended.
|
||||
</param>
|
||||
Leave null if setting it is not intended.</param>
|
||||
<exception cref="T:System.ArgumentNullException">mediaUrl</exception>
|
||||
</member>
|
||||
<member name="M:Unosquare.FFME.Decoding.MediaContainer.Finalize">
|
||||
@@ -3468,8 +3386,7 @@
|
||||
</summary>
|
||||
<returns>The list of media frames</returns>
|
||||
</member>
|
||||
<member
|
||||
name="M:Unosquare.FFME.Decoding.MediaContainer.Convert(Unosquare.FFME.Decoding.MediaFrame,Unosquare.FFME.Decoding.MediaBlock@,System.Boolean)">
|
||||
<member name="M:Unosquare.FFME.Decoding.MediaContainer.Convert(Unosquare.FFME.Decoding.MediaFrame,Unosquare.FFME.Decoding.MediaBlock@,System.Boolean)">
|
||||
<summary>
|
||||
Performs audio, video and subtitle conversions on the decoded input frame so data
|
||||
can be used as a Frame. Please note that if the output is passed as a reference.
|
||||
@@ -3549,8 +3466,7 @@
|
||||
Resumes the reads of network streams
|
||||
</summary>
|
||||
</member>
|
||||
<member
|
||||
name="M:Unosquare.FFME.Decoding.MediaContainer.DropSeekFrames(System.Collections.Generic.List{Unosquare.FFME.Decoding.MediaFrame},System.TimeSpan)">
|
||||
<member name="M:Unosquare.FFME.Decoding.MediaContainer.DropSeekFrames(System.Collections.Generic.List{Unosquare.FFME.Decoding.MediaFrame},System.TimeSpan)">
|
||||
<summary>
|
||||
Drops the seek frames that are no longer needed.
|
||||
Target time should be provided in absolute, 0-based time
|
||||
@@ -3572,8 +3488,7 @@
|
||||
<param name="targetTime">The target time.</param>
|
||||
<returns>The list of media frames</returns>
|
||||
</member>
|
||||
<member
|
||||
name="M:Unosquare.FFME.Decoding.MediaContainer.StreamSeekDecode(System.Collections.Generic.List{Unosquare.FFME.Decoding.MediaFrame},System.TimeSpan,Unosquare.FFME.Decoding.SeekRequirement)">
|
||||
<member name="M:Unosquare.FFME.Decoding.MediaContainer.StreamSeekDecode(System.Collections.Generic.List{Unosquare.FFME.Decoding.MediaFrame},System.TimeSpan,Unosquare.FFME.Decoding.SeekRequirement)">
|
||||
<summary>
|
||||
Reads and decodes packets untill the required media components have frames on or right before the target time.
|
||||
</summary>
|
||||
@@ -3587,8 +3502,7 @@
|
||||
Releases unmanaged and - optionally - managed resources.
|
||||
</summary>
|
||||
<param name="alsoManaged">
|
||||
<c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources.
|
||||
</param>
|
||||
<c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources.</param>
|
||||
</member>
|
||||
<member name="T:Unosquare.FFME.Decoding.PacketQueue">
|
||||
<summary>
|
||||
@@ -3666,16 +3580,14 @@
|
||||
</summary>
|
||||
<seealso cref="T:Unosquare.FFME.Decoding.MediaComponent" />
|
||||
</member>
|
||||
<member
|
||||
name="M:Unosquare.FFME.Decoding.SubtitleComponent.#ctor(Unosquare.FFME.Decoding.MediaContainer,System.Int32)">
|
||||
<member name="M:Unosquare.FFME.Decoding.SubtitleComponent.#ctor(Unosquare.FFME.Decoding.MediaContainer,System.Int32)">
|
||||
<summary>
|
||||
Initializes a new instance of the <see cref="T:Unosquare.FFME.Decoding.SubtitleComponent"/> class.
|
||||
</summary>
|
||||
<param name="container">The container.</param>
|
||||
<param name="streamIndex">Index of the stream.</param>
|
||||
</member>
|
||||
<member
|
||||
name="M:Unosquare.FFME.Decoding.SubtitleComponent.MaterializeFrame(Unosquare.FFME.Decoding.MediaFrame,Unosquare.FFME.Decoding.MediaBlock@)">
|
||||
<member name="M:Unosquare.FFME.Decoding.SubtitleComponent.MaterializeFrame(Unosquare.FFME.Decoding.MediaFrame,Unosquare.FFME.Decoding.MediaBlock@)">
|
||||
<summary>
|
||||
Converts decoded, raw frame data in the frame source into a a usable frame. <br />
|
||||
The process includes performing picture, samples or text conversions
|
||||
@@ -3745,8 +3657,7 @@
|
||||
Gets the height of the picture frame.
|
||||
</summary>
|
||||
</member>
|
||||
<member
|
||||
name="M:Unosquare.FFME.Decoding.VideoComponent.MaterializeFrame(Unosquare.FFME.Decoding.MediaFrame,Unosquare.FFME.Decoding.MediaBlock@)">
|
||||
<member name="M:Unosquare.FFME.Decoding.VideoComponent.MaterializeFrame(Unosquare.FFME.Decoding.MediaFrame,Unosquare.FFME.Decoding.MediaBlock@)">
|
||||
<summary>
|
||||
Converts decoded, raw frame data in the frame source into a a usable frame. <br />
|
||||
The process includes performing picture, samples or text conversions
|
||||
@@ -3843,8 +3754,7 @@
|
||||
Ensure you handle this quickly before you get choppy subtitles.
|
||||
</summary>
|
||||
</member>
|
||||
<member
|
||||
name="M:Unosquare.FFME.MediaElement.RaiseRenderingVideoEvent(System.Windows.Media.Imaging.WriteableBitmap,Unosquare.FFME.StreamInfo,System.TimeSpan,System.TimeSpan,System.TimeSpan)">
|
||||
<member name="M:Unosquare.FFME.MediaElement.RaiseRenderingVideoEvent(System.Windows.Media.Imaging.WriteableBitmap,Unosquare.FFME.StreamInfo,System.TimeSpan,System.TimeSpan,System.TimeSpan)">
|
||||
<summary>
|
||||
Raises the rendering video event.
|
||||
</summary>
|
||||
@@ -3854,16 +3764,14 @@
|
||||
<param name="duration">The duration.</param>
|
||||
<param name="clock">The clock.</param>
|
||||
</member>
|
||||
<member
|
||||
name="M:Unosquare.FFME.MediaElement.RaiseRenderingAudioEvent(Unosquare.FFME.Decoding.AudioBlock,System.TimeSpan)">
|
||||
<member name="M:Unosquare.FFME.MediaElement.RaiseRenderingAudioEvent(Unosquare.FFME.Decoding.AudioBlock,System.TimeSpan)">
|
||||
<summary>
|
||||
Raises the rendering audio event.
|
||||
</summary>
|
||||
<param name="audioBlock">The audio block.</param>
|
||||
<param name="clock">The clock.</param>
|
||||
</member>
|
||||
<member
|
||||
name="M:Unosquare.FFME.MediaElement.RaiseRenderingSubtitlesEvent(Unosquare.FFME.Decoding.SubtitleBlock,System.TimeSpan)">
|
||||
<member name="M:Unosquare.FFME.MediaElement.RaiseRenderingSubtitlesEvent(Unosquare.FFME.Decoding.SubtitleBlock,System.TimeSpan)">
|
||||
<summary>
|
||||
Raises the rendering subtitles event.
|
||||
</summary>
|
||||
@@ -3926,8 +3834,7 @@
|
||||
<c>true</c> if this instance [can read more frames of] the specified t; otherwise, <c>false</c>.
|
||||
</returns>
|
||||
</member>
|
||||
<member
|
||||
name="M:Unosquare.FFME.MediaElement.SendBlockToRenderer(Unosquare.FFME.Decoding.MediaBlock,System.TimeSpan)">
|
||||
<member name="M:Unosquare.FFME.MediaElement.SendBlockToRenderer(Unosquare.FFME.Decoding.MediaBlock,System.TimeSpan)">
|
||||
<summary>
|
||||
Sends the given block to its corresponding media renderer.
|
||||
</summary>
|
||||
@@ -3996,6 +3903,11 @@
|
||||
or if the Position property is being driven from within
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Unosquare.FFME.MediaElement.IsDisposed">
|
||||
<summary>
|
||||
To detect redundant calls
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Unosquare.FFME.MediaElement.m_FFmpegDirectory">
|
||||
<summary>
|
||||
The ffmpeg directory
|
||||
@@ -4095,25 +4007,19 @@
|
||||
<typeparam name="T">Type of the property.</typeparam>
|
||||
<param name="storage">Reference to a property with both getter and setter.</param>
|
||||
<param name="value">Desired value for the property.</param>
|
||||
<param name="propertyName">
|
||||
Name of the property used to notify listeners. This
|
||||
<param name="propertyName">Name of the property used to notify listeners. This
|
||||
value is optional and can be provided automatically when invoked from compilers that
|
||||
support CallerMemberName.
|
||||
</param>
|
||||
<returns>
|
||||
True if the value was changed, false if the existing value matched the
|
||||
desired value.
|
||||
</returns>
|
||||
support CallerMemberName.</param>
|
||||
<returns>True if the value was changed, false if the existing value matched the
|
||||
desired value.</returns>
|
||||
</member>
|
||||
<member name="M:Unosquare.FFME.MediaElement.OnPropertyChanged(System.String)">
|
||||
<summary>
|
||||
Notifies listeners that a property value has changed.
|
||||
</summary>
|
||||
<param name="propertyName">
|
||||
Name of the property used to notify listeners. This
|
||||
<param name="propertyName">Name of the property used to notify listeners. This
|
||||
value is optional and can be provided automatically when invoked from compilers
|
||||
that support <see cref="T:System.Runtime.CompilerServices.CallerMemberNameAttribute" />.
|
||||
</param>
|
||||
that support <see cref="T:System.Runtime.CompilerServices.CallerMemberNameAttribute"/>.</param>
|
||||
</member>
|
||||
<member name="M:Unosquare.FFME.MediaElement.Dispose(System.Boolean)">
|
||||
<summary>
|
||||
@@ -4541,8 +4447,7 @@
|
||||
Raises the media opening event.
|
||||
</summary>
|
||||
</member>
|
||||
<member
|
||||
name="M:Unosquare.FFME.MediaElement.CreateExceptionRoutedEventArgs(System.Windows.RoutedEvent,System.Object,System.Exception)">
|
||||
<member name="M:Unosquare.FFME.MediaElement.CreateExceptionRoutedEventArgs(System.Windows.RoutedEvent,System.Object,System.Exception)">
|
||||
<summary>
|
||||
Creates a new instance of exception routed event arguments.
|
||||
This method exists because the constructor has not been made public for that class.
|
||||
@@ -4596,8 +4501,7 @@
|
||||
</summary>
|
||||
<seealso cref="T:System.EventArgs" />
|
||||
</member>
|
||||
<member
|
||||
name="M:Unosquare.FFME.RenderingEventArgs.#ctor(Unosquare.FFME.StreamInfo,System.TimeSpan,System.TimeSpan,System.TimeSpan)">
|
||||
<member name="M:Unosquare.FFME.RenderingEventArgs.#ctor(Unosquare.FFME.StreamInfo,System.TimeSpan,System.TimeSpan,System.TimeSpan)">
|
||||
<summary>
|
||||
Initializes a new instance of the <see cref="T:Unosquare.FFME.RenderingEventArgs" /> class.
|
||||
</summary>
|
||||
@@ -4634,8 +4538,7 @@
|
||||
</summary>
|
||||
<seealso cref="T:System.EventArgs" />
|
||||
</member>
|
||||
<member
|
||||
name="M:Unosquare.FFME.RenderingAudioEventArgs.#ctor(System.IntPtr,System.Int32,Unosquare.FFME.StreamInfo,System.TimeSpan,System.TimeSpan,System.TimeSpan)">
|
||||
<member name="M:Unosquare.FFME.RenderingAudioEventArgs.#ctor(System.IntPtr,System.Int32,Unosquare.FFME.StreamInfo,System.TimeSpan,System.TimeSpan,System.TimeSpan)">
|
||||
<summary>
|
||||
Initializes a new instance of the <see cref="T:Unosquare.FFME.RenderingAudioEventArgs" /> class.
|
||||
</summary>
|
||||
@@ -4688,8 +4591,7 @@
|
||||
</summary>
|
||||
<seealso cref="T:System.EventArgs" />
|
||||
</member>
|
||||
<member
|
||||
name="M:Unosquare.FFME.RenderingSubtitlesEventArgs.#ctor(System.Collections.Generic.List{System.String},System.Collections.Generic.List{System.String},FFmpeg.AutoGen.AVSubtitleType,Unosquare.FFME.StreamInfo,System.TimeSpan,System.TimeSpan,System.TimeSpan)">
|
||||
<member name="M:Unosquare.FFME.RenderingSubtitlesEventArgs.#ctor(System.Collections.Generic.List{System.String},System.Collections.Generic.List{System.String},FFmpeg.AutoGen.AVSubtitleType,Unosquare.FFME.StreamInfo,System.TimeSpan,System.TimeSpan,System.TimeSpan)">
|
||||
<summary>
|
||||
Initializes a new instance of the <see cref="T:Unosquare.FFME.RenderingSubtitlesEventArgs" /> class.
|
||||
</summary>
|
||||
@@ -4726,8 +4628,7 @@
|
||||
</summary>
|
||||
<seealso cref="T:System.EventArgs" />
|
||||
</member>
|
||||
<member
|
||||
name="M:Unosquare.FFME.RenderingVideoEventArgs.#ctor(System.Windows.Media.Imaging.WriteableBitmap,Unosquare.FFME.StreamInfo,System.TimeSpan,System.TimeSpan,System.TimeSpan)">
|
||||
<member name="M:Unosquare.FFME.RenderingVideoEventArgs.#ctor(System.Windows.Media.Imaging.WriteableBitmap,Unosquare.FFME.StreamInfo,System.TimeSpan,System.TimeSpan,System.TimeSpan)">
|
||||
<summary>
|
||||
Initializes a new instance of the <see cref="T:Unosquare.FFME.RenderingVideoEventArgs" /> class.
|
||||
</summary>
|
||||
@@ -4816,8 +4717,7 @@
|
||||
<param name="ic">The ic.</param>
|
||||
<returns>The list of stream infos</returns>
|
||||
</member>
|
||||
<member
|
||||
name="M:Unosquare.FFME.MediaInfo.FindBestStreams(FFmpeg.AutoGen.AVFormatContext*,System.Collections.ObjectModel.ReadOnlyDictionary{System.Int32,Unosquare.FFME.StreamInfo})">
|
||||
<member name="M:Unosquare.FFME.MediaInfo.FindBestStreams(FFmpeg.AutoGen.AVFormatContext*,System.Collections.ObjectModel.ReadOnlyDictionary{System.Int32,Unosquare.FFME.StreamInfo})">
|
||||
<summary>
|
||||
Finds the best streams for audio video, and subtitles.
|
||||
</summary>
|
||||
@@ -4832,8 +4732,7 @@
|
||||
<param name="ic">The ic.</param>
|
||||
<returns>The chapters</returns>
|
||||
</member>
|
||||
<member
|
||||
name="M:Unosquare.FFME.MediaInfo.ExtractPrograms(FFmpeg.AutoGen.AVFormatContext*,System.Collections.ObjectModel.ReadOnlyDictionary{System.Int32,Unosquare.FFME.StreamInfo})">
|
||||
<member name="M:Unosquare.FFME.MediaInfo.ExtractPrograms(FFmpeg.AutoGen.AVFormatContext*,System.Collections.ObjectModel.ReadOnlyDictionary{System.Int32,Unosquare.FFME.StreamInfo})">
|
||||
<summary>
|
||||
Extracts the programs from the input and creates associations between programs and streams.
|
||||
</summary>
|
||||
@@ -5083,8 +4982,7 @@
|
||||
</summary>
|
||||
<seealso cref="T:System.EventArgs" />
|
||||
</member>
|
||||
<member
|
||||
name="M:Unosquare.FFME.MediaLogMessagEventArgs.#ctor(Unosquare.FFME.MediaElement,Unosquare.FFME.MediaLogMessageType,System.String)">
|
||||
<member name="M:Unosquare.FFME.MediaLogMessagEventArgs.#ctor(Unosquare.FFME.MediaElement,Unosquare.FFME.MediaLogMessageType,System.String)">
|
||||
<summary>
|
||||
Initializes a new instance of the <see cref="T:Unosquare.FFME.MediaLogMessagEventArgs" /> class.
|
||||
</summary>
|
||||
@@ -5629,8 +5527,7 @@
|
||||
A wrapper class for MmException.
|
||||
</summary>
|
||||
</member>
|
||||
<member
|
||||
name="M:Unosquare.FFME.Rendering.Wave.MmException.#ctor(Unosquare.FFME.Rendering.Wave.MmResult,System.String)">
|
||||
<member name="M:Unosquare.FFME.Rendering.Wave.MmException.#ctor(Unosquare.FFME.Rendering.Wave.MmResult,System.String)">
|
||||
<summary>
|
||||
Initializes a new instance of the <see cref="T:Unosquare.FFME.Rendering.Wave.MmException"/> class.
|
||||
</summary>
|
||||
@@ -5642,16 +5539,14 @@
|
||||
Returns the Windows API result
|
||||
</summary>
|
||||
</member>
|
||||
<member
|
||||
name="M:Unosquare.FFME.Rendering.Wave.MmException.Try(Unosquare.FFME.Rendering.Wave.MmResult,System.String)">
|
||||
<member name="M:Unosquare.FFME.Rendering.Wave.MmException.Try(Unosquare.FFME.Rendering.Wave.MmResult,System.String)">
|
||||
<summary>
|
||||
Helper function to automatically raise an exception on failure
|
||||
</summary>
|
||||
<param name="result">The result of the API call</param>
|
||||
<param name="function">The API function name</param>
|
||||
</member>
|
||||
<member
|
||||
name="M:Unosquare.FFME.Rendering.Wave.MmException.ErrorMessage(Unosquare.FFME.Rendering.Wave.MmResult,System.String)">
|
||||
<member name="M:Unosquare.FFME.Rendering.Wave.MmException.ErrorMessage(Unosquare.FFME.Rendering.Wave.MmResult,System.String)">
|
||||
<summary>
|
||||
Creates an error message base don an erro result.
|
||||
</summary>
|
||||
@@ -5664,8 +5559,7 @@
|
||||
A buffer of Wave samples for streaming to a Wave Output device
|
||||
</summary>
|
||||
</member>
|
||||
<member
|
||||
name="M:Unosquare.FFME.Rendering.Wave.WaveOutBuffer.#ctor(System.IntPtr,System.Int32,Unosquare.FFME.Rendering.Wave.IWaveProvider,System.Object)">
|
||||
<member name="M:Unosquare.FFME.Rendering.Wave.WaveOutBuffer.#ctor(System.IntPtr,System.Int32,Unosquare.FFME.Rendering.Wave.IWaveProvider,System.Object)">
|
||||
<summary>
|
||||
Initializes a new instance of the <see cref="T:Unosquare.FFME.Rendering.Wave.WaveOutBuffer"/> class.
|
||||
</summary>
|
||||
@@ -5696,7 +5590,8 @@
|
||||
</member>
|
||||
<member name="M:Unosquare.FFME.Rendering.Wave.WaveOutBuffer.OnDone">
|
||||
<summary>
|
||||
this is called by the WAVE callback and should be used to refill the buffer
|
||||
this is called by the Wave callback and should be used to refill the buffer.
|
||||
This calls the .Read method on the stream
|
||||
</summary>
|
||||
<returns>true when bytes were written. False if no bytes were written.</returns>
|
||||
</member>
|
||||
@@ -5814,8 +5709,7 @@
|
||||
The manufacturer guid (if provided)
|
||||
</summary>
|
||||
</member>
|
||||
<member
|
||||
name="M:Unosquare.FFME.Rendering.Wave.WaveOutCapabilities.SupportsWaveFormat(Unosquare.FFME.Rendering.Wave.SupportedWaveFormat)">
|
||||
<member name="M:Unosquare.FFME.Rendering.Wave.WaveOutCapabilities.SupportsWaveFormat(Unosquare.FFME.Rendering.Wave.SupportedWaveFormat)">
|
||||
<summary>
|
||||
Checks to see if a given SupportedWaveFormat is supported
|
||||
</summary>
|
||||
@@ -5936,7 +5830,7 @@
|
||||
<summary>
|
||||
Closes the WaveOut device and disposes of buffers
|
||||
</summary>
|
||||
<param name="disposing">True if called from <see>Dispose</see></param>
|
||||
<param name="alsoManaged">True if called from <see>Dispose</see></param>
|
||||
</member>
|
||||
<member name="M:Unosquare.FFME.Rendering.Wave.WavePlayer.Resume">
|
||||
<summary>
|
||||
@@ -6087,8 +5981,7 @@
|
||||
<param name="requestedBytes">The requested bytes.</param>
|
||||
<returns>The number of bytes that were read.</returns>
|
||||
</member>
|
||||
<member
|
||||
name="M:Unosquare.FFME.Rendering.AudioRenderer.OnApplicationExit(System.Object,System.Windows.ExitEventArgs)">
|
||||
<member name="M:Unosquare.FFME.Rendering.AudioRenderer.OnApplicationExit(System.Object,System.Windows.ExitEventArgs)">
|
||||
<summary>
|
||||
Called when [application exit].
|
||||
</summary>
|
||||
@@ -6135,8 +6028,7 @@
|
||||
</summary>
|
||||
<param name="requestedBytes">The requested bytes.</param>
|
||||
</member>
|
||||
<member
|
||||
name="M:Unosquare.FFME.Rendering.AudioRenderer.ApplyVolumeAndBalance(System.Byte[],System.Int32,System.Int32)">
|
||||
<member name="M:Unosquare.FFME.Rendering.AudioRenderer.ApplyVolumeAndBalance(System.Byte[],System.Int32,System.Int32)">
|
||||
<summary>
|
||||
Applies volume and balance to the audio samples storead in RedBuffer and writes them
|
||||
to the specified target buffer.
|
||||
@@ -6150,8 +6042,7 @@
|
||||
Releases unmanaged and - optionally - managed resources.
|
||||
</summary>
|
||||
<param name="alsoManaged">
|
||||
<c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources.
|
||||
</param>
|
||||
<c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources.</param>
|
||||
</member>
|
||||
<member name="T:Unosquare.FFME.Rendering.IRenderer">
|
||||
<summary>
|
||||
@@ -6260,8 +6151,7 @@
|
||||
Waits for the renderer to be ready to render.
|
||||
</summary>
|
||||
</member>
|
||||
<member
|
||||
name="M:Unosquare.FFME.Rendering.SubtitleRenderer.Render(Unosquare.FFME.Decoding.MediaBlock,System.TimeSpan)">
|
||||
<member name="M:Unosquare.FFME.Rendering.SubtitleRenderer.Render(Unosquare.FFME.Decoding.MediaBlock,System.TimeSpan)">
|
||||
<summary>
|
||||
Renders the specified media block.
|
||||
</summary>
|
||||
@@ -6557,8 +6447,7 @@
|
||||
<param name="streamType">Type of the stream.</param>
|
||||
<param name="streamIndex">Index of the stream.</param>
|
||||
</member>
|
||||
<member
|
||||
name="M:Unosquare.FFME.MediaCodecOptions.FilterOptions(FFmpeg.AutoGen.AVCodecID,FFmpeg.AutoGen.AVFormatContext*,FFmpeg.AutoGen.AVStream*,FFmpeg.AutoGen.AVCodec*)">
|
||||
<member name="M:Unosquare.FFME.MediaCodecOptions.FilterOptions(FFmpeg.AutoGen.AVCodecID,FFmpeg.AutoGen.AVFormatContext*,FFmpeg.AutoGen.AVStream*,FFmpeg.AutoGen.AVCodec*)">
|
||||
<summary>
|
||||
Retrieves a dictionary with the options for the specified codec.
|
||||
Port of filter_codec_opts
|
||||
@@ -6591,8 +6480,7 @@
|
||||
</summary>
|
||||
<seealso cref="T:System.Windows.RoutedEventArgs" />
|
||||
</member>
|
||||
<member
|
||||
name="M:Unosquare.FFME.MediaOpeningRoutedEventArgs.#ctor(System.Windows.RoutedEvent,System.Object,Unosquare.FFME.MediaOptions,Unosquare.FFME.MediaInfo)">
|
||||
<member name="M:Unosquare.FFME.MediaOpeningRoutedEventArgs.#ctor(System.Windows.RoutedEvent,System.Object,Unosquare.FFME.MediaOptions,Unosquare.FFME.MediaInfo)">
|
||||
<summary>
|
||||
Initializes a new instance of the <see cref="T:Unosquare.FFME.MediaOpeningRoutedEventArgs" /> class.
|
||||
</summary>
|
||||
|
Binary file not shown.
Reference in New Issue
Block a user