vlc | branch: master | Niklas Haas <[email protected]> | Wed Oct 10 03:46:33 2018 +0200| [4049ce12316127cf6e8c3adbf6fc61477cc826a5] | committer: Thomas Guillem
fourcc: add a generic GetFallback helper function There's only GetYUVFallback and GetRGBFallback. This one picks the right function based on the type of fourcc in use. Signed-off-by: Thomas Guillem <[email protected]> > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=4049ce12316127cf6e8c3adbf6fc61477cc826a5 --- include/vlc_fourcc.h | 9 +++++++++ src/libvlccore.sym | 1 + src/misc/fourcc.c | 7 +++++++ 3 files changed, 17 insertions(+) diff --git a/include/vlc_fourcc.h b/include/vlc_fourcc.h index 871f01043a..bd192b160c 100644 --- a/include/vlc_fourcc.h +++ b/include/vlc_fourcc.h @@ -686,6 +686,15 @@ VLC_API const vlc_fourcc_t * vlc_fourcc_GetYUVFallback( vlc_fourcc_t ); VLC_API const vlc_fourcc_t * vlc_fourcc_GetRGBFallback( vlc_fourcc_t ); /** + * It returns a list (terminated with the value 0) of fourccs in decreasing + * priority order for the given chroma. It will return either YUV or RGB + * fallbacks depending on whether or not the fourcc given is YUV. + * + * It will always return a non NULL pointer that must not be freed. + */ +VLC_API const vlc_fourcc_t * vlc_fourcc_GetFallback( vlc_fourcc_t ); + +/** * It returns true if the given fourcc is YUV and false otherwise. */ VLC_API bool vlc_fourcc_IsYUV( vlc_fourcc_t ); diff --git a/src/libvlccore.sym b/src/libvlccore.sym index cf0a7e091c..f5bacd3e93 100644 --- a/src/libvlccore.sym +++ b/src/libvlccore.sym @@ -577,6 +577,7 @@ vlc_fourcc_GetChromaDescription vlc_fourcc_IsYUV vlc_fourcc_GetRGBFallback vlc_fourcc_GetYUVFallback +vlc_fourcc_GetFallback vlc_fourcc_AreUVPlanesSwapped vlc_getaddrinfo vlc_getaddrinfo_i11e diff --git a/src/misc/fourcc.c b/src/misc/fourcc.c index e99ac32774..98fa40cf79 100644 --- a/src/misc/fourcc.c +++ b/src/misc/fourcc.c @@ -620,6 +620,13 @@ const vlc_fourcc_t *vlc_fourcc_GetRGBFallback( vlc_fourcc_t i_fourcc ) return GetFallback( i_fourcc, pp_RGB_fallback, p_RGB32_fallback ); } +const vlc_fourcc_t *vlc_fourcc_GetFallback( vlc_fourcc_t i_fourcc ) +{ + return vlc_fourcc_IsYUV( i_fourcc) + ? vlc_fourcc_GetYUVFallback( i_fourcc ) + : vlc_fourcc_GetRGBFallback( i_fourcc ); +} + bool vlc_fourcc_AreUVPlanesSwapped( vlc_fourcc_t a, vlc_fourcc_t b ) { static const vlc_fourcc_t pp_swapped[][4] = { _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
