diff options
author | Tom Yan <tom.ty89@gmail.com> | 2018-08-09 16:19:10 +0800 |
---|---|---|
committer | Jan Ekström <jeebjp@gmail.com> | 2018-09-29 22:22:20 +0300 |
commit | 4243d067616c867d748f91f73e8154697e8e5a90 (patch) | |
tree | 486f19921fd2d7682fd7151fefe24946d8de538e | |
parent | 4d074a960dcb9563e24cfbe9acfee4eec0872a2e (diff) | |
download | mpv-4243d067616c867d748f91f73e8154697e8e5a90.tar.bz2 mpv-4243d067616c867d748f91f73e8154697e8e5a90.tar.xz |
audio/format: decouple af_fmt_is_planar from af_fmt_to_planar
so that af_fmt_to_planar (and hence af_fmt_from_planar) can just
return the input when it is not an interleaved (planar) format.
(cherry picked from commit f2311ff51461ec9539efb00458b8a54ded56511b)
-rw-r--r-- | audio/format.c | 31 |
1 files changed, 15 insertions, 16 deletions
diff --git a/audio/format.c b/audio/format.c index 7004409d10..a5fcf36e37 100644 --- a/audio/format.c +++ b/audio/format.c @@ -55,12 +55,6 @@ bool af_fmt_is_int(int format) return format && !af_fmt_is_spdif(format) && !af_fmt_is_float(format); } -// false for interleaved and AF_FORMAT_UNKNOWN -bool af_fmt_is_planar(int format) -{ - return format && af_fmt_to_planar(format) == format; -} - bool af_fmt_is_spdif(int format) { return af_format_sample_alignment(format) > 1; @@ -79,32 +73,37 @@ static const int planar_formats[][2] = { {AF_FORMAT_DOUBLEP, AF_FORMAT_DOUBLE}, }; +bool af_fmt_is_planar(int format) +{ + for (int n = 0; n < MP_ARRAY_SIZE(planar_formats); n++) { + if (planar_formats[n][0] == format) + return true; + } + return false; +} + // Return the planar format corresponding to the given format. -// If the format is already planar, return it. -// Return 0 if there's no equivalent. +// If the format is already planar or if there's no equivalent, +// return it. int af_fmt_to_planar(int format) { for (int n = 0; n < MP_ARRAY_SIZE(planar_formats); n++) { if (planar_formats[n][1] == format) return planar_formats[n][0]; - if (planar_formats[n][0] == format) - return format; } - return 0; + return format; } // Return the interleaved format corresponding to the given format. -// If the format is already interleaved, return it. -// Return 0 if there's no equivalent. +// If the format is already interleaved or if there's no equivalent, +// return it. int af_fmt_from_planar(int format) { for (int n = 0; n < MP_ARRAY_SIZE(planar_formats); n++) { if (planar_formats[n][0] == format) return planar_formats[n][1]; - if (planar_formats[n][1] == format) - return format; } - return 0; + return format; } bool af_fmt_is_valid(int format) |