Fixes the framesize number of bytestream parsing
and exponential framesize memcpy sending cpu rocket
high, 4M+ memcpy vs 800 for same 10s sample on variable
frame length.
Minimizes the number of required allocs.
Previous CRC errors also dissapeared.
Required for early recovering.
As frame size is checked using CRC, injecting non
contiguous data will break everything until max_framesize +
next sync code distance.
Inherit "deinterlace" and "deinterlace-mode" values from libvlc (values are set
from libvlc-module.c).
Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
And move the code to avoid declaration + definition.
Make Direct3D11UnmapPoolTexture void to be compatible with the pool unlock
prototype.
Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
Based on the d3d_format_t matching the texture format.
Allow targetting a particular slice index in the texture slice array.
Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
Since we place the texture correctly we don't need an intermediate copy to crop
it.
Fixes the green display when decoding with the CPU.
Close#17982#17978
Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
Now we always copy the whole texture area and move the boundaries in the
viewport to match the offset/visible dimensions.
Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
No need to extract into a secondary one to send to the vout and so a
CopySubresourceRegion() for every frame decoded.
Rework the mutex locking as in this new case we don't do anything in
Extract() anymore.
Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
although we deliver full range RGB the Xbox assumes it's studio range RGB and
expand the values even more. So we don't apply the studio->full range already
in the pixel shaders.
Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
The previous loop condition suffers from an off-by-one error, meaning
that the last resource in p_sys->pp_sps and p_sys->pp_pps would never
be released if populated.
fixes#17987
Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
We delay the creation of the decoder pool when we know it's going to require
more than one picture. At that point we know the vout is in DR more or not,
once and for all. We can allocate things accordingly from that point.
Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
Not the sub resources formats.
Now we refuse to render if we the pixel shader doesn't match a known format.
Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
access_t.pf_read did not expect a NULL output pointer before the merge
of access_t and stream_t. For files, this caused an EFAULT error, but
for other input types, it would likely crash.