mirror of
https://github.com/mpv-player/mpv
synced 2025-04-01 23:00:41 +00:00
af_convert24: fix complicated and incorrect format negotiation
The conversion works for native endian only. The correct check lists supported format combination explicitly, but is also much simpler.
This commit is contained in:
parent
31f409a3c5
commit
5735b684de
@ -23,15 +23,10 @@
|
||||
|
||||
static bool test_conversion(int src_format, int dst_format)
|
||||
{
|
||||
if (!(src_format & AF_FORMAT_POINT_MASK) == AF_FORMAT_I)
|
||||
return false;
|
||||
if ((src_format & ~AF_FORMAT_BITS_MASK) !=
|
||||
(dst_format & ~AF_FORMAT_BITS_MASK))
|
||||
return false;
|
||||
int srcbits = src_format & AF_FORMAT_BITS_MASK;
|
||||
int dstbits = dst_format & AF_FORMAT_BITS_MASK;
|
||||
return (srcbits == AF_FORMAT_24BIT && dstbits == AF_FORMAT_32BIT) ||
|
||||
(srcbits == AF_FORMAT_32BIT && dstbits == AF_FORMAT_24BIT);
|
||||
return (src_format == AF_FORMAT_U24_NE && dst_format == AF_FORMAT_U32_NE) ||
|
||||
(src_format == AF_FORMAT_S24_NE && dst_format == AF_FORMAT_S32_NE) ||
|
||||
(src_format == AF_FORMAT_U32_NE && dst_format == AF_FORMAT_U24_NE) ||
|
||||
(src_format == AF_FORMAT_S32_NE && dst_format == AF_FORMAT_S24_NE);
|
||||
}
|
||||
|
||||
static int control(struct af_instance *af, int cmd, void *arg)
|
||||
|
Loading…
Reference in New Issue
Block a user