fix some scenarios where video pointers should not be replaced

remotes/1695061714407202320/main
cosmonaut 2023-06-13 19:18:23 -07:00
parent b65d4e391c
commit c83997609f
2 changed files with 25 additions and 13 deletions

View File

@ -17,7 +17,7 @@ namespace MoonWorks.Video
public uint yStride;
public uint uvStride;
public bool FrameDataUpdated { get; private set; }
public bool FrameDataUpdated { get; set; }
bool IsDisposed;
@ -44,18 +44,29 @@ namespace MoonWorks.Video
{
lock (this)
{
if (Dav1dfile.df_readvideo(
Handle,
1,
out yDataHandle,
out uDataHandle,
out vDataHandle,
out yDataLength,
out uvDataLength,
out yStride,
out uvStride) == 1
) {
FrameDataUpdated = true;
if (!Ended)
{
if (Dav1dfile.df_readvideo(
Handle,
1,
out var yDataHandle,
out var uDataHandle,
out var vDataHandle,
out var yDataLength,
out var uvDataLength,
out var yStride,
out var uvStride) == 1
) {
this.yDataHandle = yDataHandle;
this.uDataHandle = uDataHandle;
this.vDataHandle = vDataHandle;
this.yDataLength = yDataLength;
this.uvDataLength = uvDataLength;
this.yStride = yStride;
this.uvStride = uvStride;
FrameDataUpdated = true;
}
}
}
}

View File

@ -170,6 +170,7 @@ namespace MoonWorks.Video
if (CurrentStream.FrameDataUpdated)
{
UpdateRenderTexture();
CurrentStream.FrameDataUpdated = false;
}
currentFrame = thisFrame;