fprintf(out,
" (default: autodetected from file name)\n"
" -m, --markers Add chapter markers\n"
- " -4, --large-file Create 64-bit mp4 files that can hold more than 4 GB\n"
- " of data. Note: breaks pre-iOS iPod compatibility.\n"
" -O, --optimize Optimize mp4 files for HTTP streaming (\"fast start\")\n"
" -I, --ipod-atom Mark mp4 files so 5.5G iPods will accept them\n"
" -P, --use-opencl Use OpenCL where applicable\n"
printf("\n< Devices\n");
printf("\n + Universal: -e x264 -q 20.0 -r 30 --pfr -a 1,1 -E ffaac,copy:ac3 -B 160,160 -6 dpl2,none -R Auto,Auto -D 0.0,0.0 --audio-copy-mask aac,ac3,dtshd,dts,mp3 --audio-fallback ffac3 -f mp4 -X 720 -Y 576 --loose-anamorphic --modulus 2 -m --x264-preset fast --h264-profile baseline --h264-level 3.0\n");
printf("\n + iPod: -e x264 -q 22.0 -r 30 --pfr -a 1 -E ffaac -B 160 -6 dpl2 -R Auto -D 0.0 --audio-copy-mask aac,ac3,dtshd,dts,mp3 --audio-fallback ffac3 -f mp4 -I -X 320 -Y 240 --modulus 2 -m --x264-preset medium --h264-profile baseline --h264-level 1.3\n");
- printf("\n + iPhone & iPod touch: -e x264 -q 22.0 -r 30 --pfr -a 1 -E ffaac -B 160 -6 dpl2 -R Auto -D 0.0 --audio-copy-mask aac,ac3,dtshd,dts,mp3 --audio-fallback ffac3 -f mp4 -4 -X 960 -Y 640 --loose-anamorphic --modulus 2 -m --x264-preset medium --h264-profile high --h264-level 3.1\n");
- printf("\n + iPad: -e x264 -q 20.0 -r 30 --pfr -a 1 -E ffaac -B 160 -6 dpl2 -R Auto -D 0.0 --audio-copy-mask aac,ac3,dtshd,dts,mp3 --audio-fallback ffac3 -f mp4 -4 -X 1280 -Y 720 --loose-anamorphic --modulus 2 -m --x264-preset medium --h264-profile high --h264-level 3.1\n");
- printf("\n + AppleTV: -e x264 -q 20.0 -r 30 --pfr -a 1,1 -E ffaac,copy:ac3 -B 160,160 -6 dpl2,none -R Auto,Auto -D 0.0,0.0 --audio-copy-mask aac,ac3,dtshd,dts,mp3 --audio-fallback ffac3 -f mp4 -4 -X 960 -Y 720 --loose-anamorphic --modulus 2 -m --x264-preset medium --h264-profile high --h264-level 3.1 -x qpmin=4:cabac=0:ref=2:b-pyramid=none:weightb=0:weightp=0:vbv-maxrate=9500:vbv-bufsize=9500\n");
- printf("\n + AppleTV 2: -e x264 -q 20.0 -r 30 --pfr -a 1,1 -E ffaac,copy:ac3 -B 160,160 -6 dpl2,none -R Auto,Auto -D 0.0,0.0 --audio-copy-mask aac,ac3,dtshd,dts,mp3 --audio-fallback ffac3 -f mp4 -4 -X 1280 -Y 720 --loose-anamorphic --modulus 2 -m --x264-preset medium --h264-profile high --h264-level 3.1\n");
- printf("\n + AppleTV 3: -e x264 -q 20.0 -r 30 --pfr -a 1,1 -E ffaac,copy:ac3 -B 160,160 -6 dpl2,none -R Auto,Auto -D 0.0,0.0 --audio-copy-mask aac,ac3,dtshd,dts,mp3 --audio-fallback ffac3 -f mp4 -4 -X 1920 -Y 1080 --decomb=fast --loose-anamorphic --modulus 2 -m --x264-preset medium --h264-profile high --h264-level 4.0\n");
+ printf("\n + iPhone & iPod touch: -e x264 -q 22.0 -r 30 --pfr -a 1 -E ffaac -B 160 -6 dpl2 -R Auto -D 0.0 --audio-copy-mask aac,ac3,dtshd,dts,mp3 --audio-fallback ffac3 -f mp4 -X 960 -Y 640 --loose-anamorphic --modulus 2 -m --x264-preset medium --h264-profile high --h264-level 3.1\n");
+ printf("\n + iPad: -e x264 -q 20.0 -r 30 --pfr -a 1 -E ffaac -B 160 -6 dpl2 -R Auto -D 0.0 --audio-copy-mask aac,ac3,dtshd,dts,mp3 --audio-fallback ffac3 -f mp4 -X 1280 -Y 720 --loose-anamorphic --modulus 2 -m --x264-preset medium --h264-profile high --h264-level 3.1\n");
+ printf("\n + AppleTV: -e x264 -q 20.0 -r 30 --pfr -a 1,1 -E ffaac,copy:ac3 -B 160,160 -6 dpl2,none -R Auto,Auto -D 0.0,0.0 --audio-copy-mask aac,ac3,dtshd,dts,mp3 --audio-fallback ffac3 -f mp4 -X 960 -Y 720 --loose-anamorphic --modulus 2 -m --x264-preset medium --h264-profile high --h264-level 3.1 -x qpmin=4:cabac=0:ref=2:b-pyramid=none:weightb=0:weightp=0:vbv-maxrate=9500:vbv-bufsize=9500\n");
+ printf("\n + AppleTV 2: -e x264 -q 20.0 -r 30 --pfr -a 1,1 -E ffaac,copy:ac3 -B 160,160 -6 dpl2,none -R Auto,Auto -D 0.0,0.0 --audio-copy-mask aac,ac3,dtshd,dts,mp3 --audio-fallback ffac3 -f mp4 -X 1280 -Y 720 --loose-anamorphic --modulus 2 -m --x264-preset medium --h264-profile high --h264-level 3.1\n");
+ printf("\n + AppleTV 3: -e x264 -q 20.0 -r 30 --pfr -a 1,1 -E ffaac,copy:ac3 -B 160,160 -6 dpl2,none -R Auto,Auto -D 0.0,0.0 --audio-copy-mask aac,ac3,dtshd,dts,mp3 --audio-fallback ffac3 -f mp4 -X 1920 -Y 1080 --decomb=fast --loose-anamorphic --modulus 2 -m --x264-preset medium --h264-profile high --h264-level 4.0\n");
printf("\n + Android: -e x264 -q 22.0 -r 30 --pfr -a 1 -E ffaac -B 128 -6 dpl2 -R Auto -D 0.0 --audio-copy-mask aac,ac3,dtshd,dts,mp3 --audio-fallback ffac3 -f mp4 -X 720 -Y 576 --loose-anamorphic --modulus 2 --x264-preset medium --h264-profile main --h264-level 3.0\n");
printf("\n + Android Tablet: -e x264 -q 22.0 -r 30 --pfr -a 1 -E ffaac -B 128 -6 dpl2 -R Auto -D 0.0 --audio-copy-mask aac,ac3,dtshd,dts,mp3 --audio-fallback ffac3 -f mp4 -X 1280 -Y 720 --loose-anamorphic --modulus 2 --x264-preset medium --h264-profile main --h264-level 3.1\n");
printf("\n + Windows Phone 8: -e x264 -q 22.0 -r 30 --pfr -a 1 -E ffaac -B 128 -6 dpl2 -R Auto -D 0.0 --audio-copy-mask aac,ac3,dtshd,dts,mp3 --audio-fallback ffac3 -f mp4 -X 1280 -Y 720 --modulus 2 --x264-preset medium --h264-profile main --h264-level 3.1\n");
printf("\n>\n");
printf("\n< Regular\n");
printf("\n + Normal: -e x264 -q 20.0 -a 1 -E ffaac -B 160 -6 dpl2 -R Auto -D 0.0 --audio-copy-mask aac,ac3,dtshd,dts,mp3 --audio-fallback ffac3 -f mp4 --loose-anamorphic --modulus 2 -m --x264-preset veryfast --h264-profile main --h264-level 4.0\n");
- printf("\n + High Profile: -e x264 -q 20.0 -a 1,1 -E ffaac,copy:ac3 -B 160,160 -6 dpl2,none -R Auto,Auto -D 0.0,0.0 --audio-copy-mask aac,ac3,dtshd,dts,mp3 --audio-fallback ffac3 -f mp4 -4 --decomb --loose-anamorphic --modulus 2 -m --x264-preset medium --h264-profile high --h264-level 4.1\n");
+ printf("\n + High Profile: -e x264 -q 20.0 -a 1,1 -E ffaac,copy:ac3 -B 160,160 -6 dpl2,none -R Auto,Auto -D 0.0,0.0 --audio-copy-mask aac,ac3,dtshd,dts,mp3 --audio-fallback ffac3 -f mp4 --decomb --loose-anamorphic --modulus 2 -m --x264-preset medium --h264-profile high --h264-level 4.1\n");
printf("\n>\n");
}
\r
<Grid VerticalAlignment="Top" HorizontalAlignment="Center">\r
<Grid.RowDefinitions>\r
- <RowDefinition Height="Auto" />\r
- <RowDefinition Height="Auto" />\r
<RowDefinition Height="Auto" />\r
<RowDefinition Height="Auto" />\r
<RowDefinition Height="*" />\r
Minimum="0" Maximum="1000" Number="{Binding TitleSpecificScan, Mode=TwoWay}" />\r
</StackPanel>\r
\r
- <TextBlock Text="Then choose your source: " Margin="0,10,0,0" />\r
+ <TextBlock Text="Then choose the video(s) you'd like to encode: " Margin="0,10,0,0" />\r
</StackPanel>\r
\r
<!-- Source Type -->\r
- <StackPanel Grid.Row="2" Orientation="Vertical" HorizontalAlignment="Left" Margin="5,5,0,0">\r
+ <Grid Grid.Row="2" HorizontalAlignment="Left" Margin="5,5,0,0">\r
+ \r
+ <Grid.RowDefinitions>\r
+ <RowDefinition Height="Auto" />\r
+ <RowDefinition Height="Auto" />\r
+ <RowDefinition Height="*" />\r
+ </Grid.RowDefinitions>\r
\r
<!-- Ctrl + R -->\r
- <Button AutomationProperties.Name="Choose Folder to Scan" Style="{StaticResource {x:Static ToolBar.ButtonStyleKey}}" cal:Message.Attach="[Event Click] = [Action FolderScan]"\r
+ <Button Grid.Row="0" AutomationProperties.Name="Choose Folder to Scan" Style="{StaticResource {x:Static ToolBar.ButtonStyleKey}}" cal:Message.Attach="[Event Click] = [Action FolderScan]"\r
Margin="0,0,0,7" Padding="8" HorizontalAlignment="Left">\r
\r
<StackPanel Orientation="Horizontal" MinWidth="100">\r
<Image Source="../Views/Images/folder32.png" Width="32" />\r
<StackPanel Orientation="Vertical">\r
<TextBlock Text="Folder" VerticalAlignment="Center" Margin="5,0,0,0" />\r
- <TextBlock Text="Open a VIDEO_TS folder or a batch of files" VerticalAlignment="Center" Margin="5,0,0,0" />\r
+ <TextBlock Text="Open a folder with one or more files." VerticalAlignment="Center" Margin="5,0,0,0" />\r
</StackPanel> \r
</StackPanel>\r
</Button>\r
\r
<!--Ctrl + F-->\r
- <Button AutomationProperties.Name="Choose File to Scan" Style="{StaticResource {x:Static ToolBar.ButtonStyleKey}}" cal:Message.Attach="[Event Click] = [Action FileScan]"\r
+ <Button Grid.Row="1" AutomationProperties.Name="Choose File to Scan" Style="{StaticResource {x:Static ToolBar.ButtonStyleKey}}" cal:Message.Attach="[Event Click] = [Action FileScan]"\r
Margin="0,0,0,7" Padding="8" HorizontalAlignment="Left">\r
<StackPanel Orientation="Horizontal" MinWidth="100">\r
<Image Source="../Views/Images/File32.png" Width="32" />\r
<StackPanel Orientation="Vertical">\r
<TextBlock Text="File" VerticalAlignment="Center" Margin="5,0,0,0" />\r
- <TextBlock Text="Open a single file." VerticalAlignment="Center" Margin="5,0,0,0" />\r
+ <TextBlock Text="Open a single video file." VerticalAlignment="Center" Margin="5,0,0,0" />\r
</StackPanel>\r
</StackPanel>\r
</Button>\r
- \r
- <ListBox ItemsSource="{Binding Drives}" Background="Transparent" BorderThickness="0">\r
+\r
+ <ListBox Grid.Row="2" ItemsSource="{Binding Drives}" Background="Transparent" BorderThickness="0">\r
<ListBox.ItemTemplate>\r
<DataTemplate>\r
<Button Style="{StaticResource {x:Static ToolBar.ButtonStyleKey}}" \r
</ListBox.ItemTemplate>\r
\r
</ListBox>\r
- </StackPanel>\r
+ </Grid>\r
\r
<!-- Cancel Window -->\r
<StackPanel Grid.Row="3" Orientation="Horizontal" HorizontalAlignment="Right" Margin="0,10,10,10">\r
\r
namespace HandBrakeWPF.ViewModels.Interfaces\r
{\r
+ using System.Windows;\r
+\r
using HandBrake.ApplicationServices.Model;\r
\r
/// <summary>\r
/// The show cli query.\r
/// </summary>\r
void ShowCliQuery();\r
+\r
+ /// <summary>\r
+ /// The files dropped on window.\r
+ /// </summary>\r
+ /// <param name="e">\r
+ /// The e.\r
+ /// </param>\r
+ void FilesDroppedOnWindow(DragEventArgs e);\r
}\r
}
\ No newline at end of file
\r
namespace HandBrakeWPF.ViewModels\r
{\r
+ using System.IO;\r
+ using System.Linq;\r
using System.Windows;\r
\r
using Caliburn.Micro;\r
\r
#endregion\r
\r
+ /// <summary>\r
+ /// The files dropped on window. Pass this through to the active view model.\r
+ /// </summary>\r
+ /// <param name="e">\r
+ /// The DragEventArgs.\r
+ /// </param>\r
+ public void FilesDroppedOnWindow(DragEventArgs e)\r
+ {\r
+ this.MainViewModel.FilesDroppedOnWindow(e);\r
+ }\r
+\r
/// <summary>\r
/// Checks with the use if this window can be closed.\r
/// </summary>\r
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"\r
xmlns:Controls="clr-namespace:HandBrakeWPF.Controls"\r
xmlns:Converters="clr-namespace:HandBrakeWPF.Converters"\r
- xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"\r
- xmlns:Micro="clr-namespace:Caliburn.Micro;assembly=Caliburn.Micro"\r
- xmlns:attachedProperties="clr-namespace:HandBrakeWPF.AttachedProperties"\r
+ xmlns:Micro="clr-namespace:Caliburn.Micro;assembly=Caliburn.Micro"\r
AllowDrop="True"\r
FontSize="11"\r
Micro:Message.Attach="[Event Loaded] = [Action Load]"\r
UseLayoutRounding="True"\r
>\r
\r
- <i:Interaction.Triggers>\r
- <i:EventTrigger EventName="Drop">\r
- <Micro:ActionMessage MethodName="FilesDroppedOnWindow">\r
- <Micro:Parameter Value="$eventArgs" />\r
- </Micro:ActionMessage>\r
- </i:EventTrigger>\r
- </i:Interaction.Triggers>\r
-\r
<UserControl.Resources>\r
<Converters:BooleanConverter x:Key="booleanConverter" />\r
<Converters:EnumComboConverter x:Key="enumComboConverter" />\r
xmlns:Data="clr-namespace:System.Windows.Data;assembly=PresentationFramework"\r
xmlns:Converters="clr-namespace:HandBrakeWPF.Converters"\r
xmlns:views="clr-namespace:HandBrakeWPF.Views"\r
+ xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"\r
+ xmlns:cal="http://www.caliburnproject.org"\r
Title="{Data:Binding Path=WindowTitle}"\r
Width="1015"\r
Height="675"\r
<Window.Resources>\r
<Converters:BooleanToVisibilityConverter x:Key="boolToVisConverter" />\r
</Window.Resources>\r
- \r
+\r
+ <i:Interaction.Triggers>\r
+ <i:EventTrigger EventName="Drop">\r
+ <cal:ActionMessage MethodName="FilesDroppedOnWindow">\r
+ <cal:Parameter Value="$eventArgs" />\r
+ </cal:ActionMessage>\r
+ </i:EventTrigger>\r
+ </i:Interaction.Triggers>\r
+\r
<Grid>\r
<ContentControl x:Name="MainViewModel" Visibility="{Binding ShowMainWindow, Converter={StaticResource boolToVisConverter}, ConverterParameter=false}" />\r
<ContentControl x:Name="OptionsViewModel" Visibility="{Binding ShowOptions, Converter={StaticResource boolToVisConverter}, ConverterParameter=false}" />\r