Skip to content

Commit 7f5bdfb

Browse files
reorganize videoeffect but crashing when create too many new videoeffects
1 parent 40d6dce commit 7f5bdfb

21 files changed

+136
-159
lines changed

Samples/StyleTransfer/AppViewModel.cs

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,9 @@ public AppViewModel()
5656
private string m_inputImageDescription;
5757
private string m_outputImageDescription;
5858
private IMediaExtension videoEffect;
59-
59+
private VideoEffectDefinition videoEffectDefinition;
60+
// Activatable Class ID of the video effect.
61+
private String _videoEffectID = "StyleTransferEffectCpp.StyleTransferEffect";
6062

6163
// Image style transfer properties
6264
uint m_inWidth, m_inHeight, m_outWidth, m_outHeight;
@@ -130,7 +132,6 @@ public async Task SetMediaSource(string src)
130132
{
131133
case "LiveStream":
132134
await StartLiveStream();
133-
// TODO: Also spin up a Capture for preview on left side
134135
break;
135136
case "AcquireImage":
136137
await StartAcquireImage();
@@ -148,6 +149,7 @@ public async Task SetMediaSource(string src)
148149

149150
public async Task SetModelSource()
150151
{
152+
CleanupCameraAsync();
151153
await LoadModelAsync();
152154

153155
switch (_appModel.InputMedia)
@@ -283,6 +285,7 @@ public async Task StartLiveStream()
283285

284286
public async Task ChangeLiveStream()
285287
{
288+
CleanupCameraAsync();
286289
Debug.WriteLine("ChangeLiveStream");
287290
SaveEnabled = false;
288291

@@ -307,7 +310,7 @@ public async Task ChangeLiveStream()
307310
await _mediaCapture.InitializeAsync(settings);
308311

309312
// Initialize VideoEffect
310-
VideoEffectDefinition videoEffectDefinition = new VideoEffectDefinition("RuntimeComponent2.Class");
313+
videoEffectDefinition = new VideoEffectDefinition(_videoEffectID);
311314
videoEffect = await _mediaCapture.AddVideoEffectAsync(videoEffectDefinition, MediaStreamType.VideoPreview);
312315
videoEffect.SetProperties(new PropertySet() {
313316
{ "Session", m_session},
@@ -412,6 +415,7 @@ private void CleanupCameraAsync()
412415
{
413416
videoEffect = null;
414417
}
418+
if (videoEffectDefinition != null) videoEffectDefinition = null;
415419
}
416420

417421
catch (Exception ex)
@@ -422,14 +426,21 @@ private void CleanupCameraAsync()
422426

423427
private void CleanupInputImage()
424428
{
425-
InputSoftwareBitmapSource?.Dispose();
426-
OutputSoftwareBitmapSource?.Dispose();
429+
try
430+
{
431+
InputSoftwareBitmapSource?.Dispose();
432+
OutputSoftwareBitmapSource?.Dispose();
427433

428-
InputSoftwareBitmapSource = new SoftwareBitmapSource();
429-
OutputSoftwareBitmapSource = new SoftwareBitmapSource();
434+
InputSoftwareBitmapSource = new SoftwareBitmapSource();
435+
OutputSoftwareBitmapSource = new SoftwareBitmapSource();
430436

431-
_appModel.OutputFrame?.Dispose();
432-
_appModel.OutputFrame = new VideoFrame(BitmapPixelFormat.Bgra8, (int)m_outWidth, (int)m_outHeight);
437+
_appModel.OutputFrame?.Dispose();
438+
_appModel.OutputFrame = new VideoFrame(BitmapPixelFormat.Bgra8, (int)m_outWidth, (int)m_outHeight);
439+
}
440+
catch (Exception e)
441+
{
442+
Debug.WriteLine(e.Message);
443+
}
433444
}
434445

435446
public void NotifyUser(bool success, string strMessage = "")

Samples/StyleTransfer/RuntimeComponent2/Class.idl

Lines changed: 0 additions & 10 deletions
This file was deleted.

Samples/StyleTransfer/RuntimeComponent2/RuntimeComponent2.sln

Lines changed: 0 additions & 43 deletions
This file was deleted.

Samples/StyleTransfer/StyleTransfer.csproj

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -250,13 +250,9 @@
250250
<Folder Include="Helpers\" />
251251
</ItemGroup>
252252
<ItemGroup>
253-
<ProjectReference Include="RuntimeComponent2\RuntimeComponent2.vcxproj">
254-
<Project>{e9c60c87-553f-406b-892e-1f827a31930d}</Project>
255-
<Name>RuntimeComponent2</Name>
256-
</ProjectReference>
257-
<ProjectReference Include="StyleTransferEffectComponent\StyleTransferEffectComponent.csproj">
258-
<Project>{62925583-4d02-451e-9a72-27b12b66712c}</Project>
259-
<Name>StyleTransferEffectComponent</Name>
253+
<ProjectReference Include="VideoEffect\StyleTransferEffectCpp\StyleTransferEffectCpp.vcxproj">
254+
<Project>{05dffb01-62c4-458c-be13-7a97e8583e43}</Project>
255+
<Name>StyleTransferEffectCpp</Name>
260256
</ProjectReference>
261257
</ItemGroup>
262258
<PropertyGroup Condition=" '$(VisualStudioVersion)' == '' or '$(VisualStudioVersion)' &lt; '14.0' ">

Samples/StyleTransfer/StyleTransfer.sln

Lines changed: 19 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,7 @@ VisualStudioVersion = 16.0.30114.105
55
MinimumVisualStudioVersion = 10.0.40219.1
66
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StyleTransfer", "StyleTransfer.csproj", "{CF93BFB0-F3B8-4D68-A044-07AA586221F0}"
77
EndProject
8-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StyleTransferEffectComponent", "StyleTransferEffectComponent\StyleTransferEffectComponent.csproj", "{62925583-4D02-451E-9A72-27B12B66712C}"
9-
EndProject
10-
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RuntimeComponent2", "RuntimeComponent2\RuntimeComponent2.vcxproj", "{E9C60C87-553F-406B-892E-1F827A31930D}"
8+
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "StyleTransferEffectCpp", "VideoEffect\StyleTransferEffectCpp\StyleTransferEffectCpp.vcxproj", "{05DFFB01-62C4-458C-BE13-7A97E8583E43}"
119
EndProject
1210
Global
1311
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -49,44 +47,24 @@ Global
4947
{CF93BFB0-F3B8-4D68-A044-07AA586221F0}.Release|x86.ActiveCfg = Release|x86
5048
{CF93BFB0-F3B8-4D68-A044-07AA586221F0}.Release|x86.Build.0 = Release|x86
5149
{CF93BFB0-F3B8-4D68-A044-07AA586221F0}.Release|x86.Deploy.0 = Release|x86
52-
{62925583-4D02-451E-9A72-27B12B66712C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
53-
{62925583-4D02-451E-9A72-27B12B66712C}.Debug|Any CPU.Build.0 = Debug|Any CPU
54-
{62925583-4D02-451E-9A72-27B12B66712C}.Debug|ARM.ActiveCfg = Debug|ARM
55-
{62925583-4D02-451E-9A72-27B12B66712C}.Debug|ARM.Build.0 = Debug|ARM
56-
{62925583-4D02-451E-9A72-27B12B66712C}.Debug|ARM64.ActiveCfg = Debug|ARM64
57-
{62925583-4D02-451E-9A72-27B12B66712C}.Debug|ARM64.Build.0 = Debug|ARM64
58-
{62925583-4D02-451E-9A72-27B12B66712C}.Debug|x64.ActiveCfg = Debug|x64
59-
{62925583-4D02-451E-9A72-27B12B66712C}.Debug|x64.Build.0 = Debug|x64
60-
{62925583-4D02-451E-9A72-27B12B66712C}.Debug|x86.ActiveCfg = Debug|x86
61-
{62925583-4D02-451E-9A72-27B12B66712C}.Debug|x86.Build.0 = Debug|x86
62-
{62925583-4D02-451E-9A72-27B12B66712C}.Release|Any CPU.ActiveCfg = Release|Any CPU
63-
{62925583-4D02-451E-9A72-27B12B66712C}.Release|Any CPU.Build.0 = Release|Any CPU
64-
{62925583-4D02-451E-9A72-27B12B66712C}.Release|ARM.ActiveCfg = Release|ARM
65-
{62925583-4D02-451E-9A72-27B12B66712C}.Release|ARM.Build.0 = Release|ARM
66-
{62925583-4D02-451E-9A72-27B12B66712C}.Release|ARM64.ActiveCfg = Release|ARM64
67-
{62925583-4D02-451E-9A72-27B12B66712C}.Release|ARM64.Build.0 = Release|ARM64
68-
{62925583-4D02-451E-9A72-27B12B66712C}.Release|x64.ActiveCfg = Release|x64
69-
{62925583-4D02-451E-9A72-27B12B66712C}.Release|x64.Build.0 = Release|x64
70-
{62925583-4D02-451E-9A72-27B12B66712C}.Release|x86.ActiveCfg = Release|x86
71-
{62925583-4D02-451E-9A72-27B12B66712C}.Release|x86.Build.0 = Release|x86
72-
{E9C60C87-553F-406B-892E-1F827A31930D}.Debug|Any CPU.ActiveCfg = Debug|Win32
73-
{E9C60C87-553F-406B-892E-1F827A31930D}.Debug|ARM.ActiveCfg = Debug|ARM
74-
{E9C60C87-553F-406B-892E-1F827A31930D}.Debug|ARM.Build.0 = Debug|ARM
75-
{E9C60C87-553F-406B-892E-1F827A31930D}.Debug|ARM64.ActiveCfg = Debug|ARM64
76-
{E9C60C87-553F-406B-892E-1F827A31930D}.Debug|ARM64.Build.0 = Debug|ARM64
77-
{E9C60C87-553F-406B-892E-1F827A31930D}.Debug|x64.ActiveCfg = Debug|x64
78-
{E9C60C87-553F-406B-892E-1F827A31930D}.Debug|x64.Build.0 = Debug|x64
79-
{E9C60C87-553F-406B-892E-1F827A31930D}.Debug|x86.ActiveCfg = Debug|Win32
80-
{E9C60C87-553F-406B-892E-1F827A31930D}.Debug|x86.Build.0 = Debug|Win32
81-
{E9C60C87-553F-406B-892E-1F827A31930D}.Release|Any CPU.ActiveCfg = Release|Win32
82-
{E9C60C87-553F-406B-892E-1F827A31930D}.Release|ARM.ActiveCfg = Release|ARM
83-
{E9C60C87-553F-406B-892E-1F827A31930D}.Release|ARM.Build.0 = Release|ARM
84-
{E9C60C87-553F-406B-892E-1F827A31930D}.Release|ARM64.ActiveCfg = Release|ARM64
85-
{E9C60C87-553F-406B-892E-1F827A31930D}.Release|ARM64.Build.0 = Release|ARM64
86-
{E9C60C87-553F-406B-892E-1F827A31930D}.Release|x64.ActiveCfg = Release|x64
87-
{E9C60C87-553F-406B-892E-1F827A31930D}.Release|x64.Build.0 = Release|x64
88-
{E9C60C87-553F-406B-892E-1F827A31930D}.Release|x86.ActiveCfg = Release|Win32
89-
{E9C60C87-553F-406B-892E-1F827A31930D}.Release|x86.Build.0 = Release|Win32
50+
{05DFFB01-62C4-458C-BE13-7A97E8583E43}.Debug|Any CPU.ActiveCfg = Debug|Win32
51+
{05DFFB01-62C4-458C-BE13-7A97E8583E43}.Debug|ARM.ActiveCfg = Debug|ARM
52+
{05DFFB01-62C4-458C-BE13-7A97E8583E43}.Debug|ARM.Build.0 = Debug|ARM
53+
{05DFFB01-62C4-458C-BE13-7A97E8583E43}.Debug|ARM64.ActiveCfg = Debug|ARM64
54+
{05DFFB01-62C4-458C-BE13-7A97E8583E43}.Debug|ARM64.Build.0 = Debug|ARM64
55+
{05DFFB01-62C4-458C-BE13-7A97E8583E43}.Debug|x64.ActiveCfg = Debug|x64
56+
{05DFFB01-62C4-458C-BE13-7A97E8583E43}.Debug|x64.Build.0 = Debug|x64
57+
{05DFFB01-62C4-458C-BE13-7A97E8583E43}.Debug|x86.ActiveCfg = Debug|Win32
58+
{05DFFB01-62C4-458C-BE13-7A97E8583E43}.Debug|x86.Build.0 = Debug|Win32
59+
{05DFFB01-62C4-458C-BE13-7A97E8583E43}.Release|Any CPU.ActiveCfg = Release|Win32
60+
{05DFFB01-62C4-458C-BE13-7A97E8583E43}.Release|ARM.ActiveCfg = Release|ARM
61+
{05DFFB01-62C4-458C-BE13-7A97E8583E43}.Release|ARM.Build.0 = Release|ARM
62+
{05DFFB01-62C4-458C-BE13-7A97E8583E43}.Release|ARM64.ActiveCfg = Release|ARM64
63+
{05DFFB01-62C4-458C-BE13-7A97E8583E43}.Release|ARM64.Build.0 = Release|ARM64
64+
{05DFFB01-62C4-458C-BE13-7A97E8583E43}.Release|x64.ActiveCfg = Release|x64
65+
{05DFFB01-62C4-458C-BE13-7A97E8583E43}.Release|x64.Build.0 = Release|x64
66+
{05DFFB01-62C4-458C-BE13-7A97E8583E43}.Release|x86.ActiveCfg = Release|Win32
67+
{05DFFB01-62C4-458C-BE13-7A97E8583E43}.Release|x86.Build.0 = Release|Win32
9068
EndGlobalSection
9169
GlobalSection(SolutionProperties) = preSolution
9270
HideSolutionNode = FALSE

Samples/StyleTransfer/StyleTransferEffectComponent/Properties/AssemblyInfo.cs renamed to Samples/StyleTransfer/VideoEffect/StyleTransferEffectComponent/Properties/AssemblyInfo.cs

File renamed without changes.

Samples/StyleTransfer/StyleTransferEffectComponent/StyleTransferEffectComponent.csproj renamed to Samples/StyleTransfer/VideoEffect/StyleTransferEffectComponent/StyleTransferEffectComponent.csproj

File renamed without changes.

Samples/StyleTransfer/StyleTransferEffectComponent/StyleTransferEffectComponent.sln renamed to Samples/StyleTransfer/VideoEffect/StyleTransferEffectComponent/StyleTransferEffectComponent.sln

File renamed without changes.

Samples/StyleTransfer/StyleTransferEffectComponent/StyleTransferVideoEffect.cs renamed to Samples/StyleTransfer/VideoEffect/StyleTransferEffectComponent/StyleTransferVideoEffect.cs

File renamed without changes.

Samples/StyleTransfer/RuntimeComponent2/PropertySheet.props renamed to Samples/StyleTransfer/VideoEffect/StyleTransferEffectCpp/PropertySheet.props

File renamed without changes.

0 commit comments

Comments
 (0)