From b5625a39634deaa4082b44a326614a5b79b8dc39 Mon Sep 17 00:00:00 2001 From: Laurent Aimar Date: Thu, 14 May 2009 21:35:22 +0200 Subject: [PATCH] Added a small vlc_fourcc_GetCodecFromString helper. --- include/vlc_fourcc.h | 13 ++++++++++++- src/libvlccore.sym | 1 + src/misc/fourcc.c | 9 +++++++++ 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/include/vlc_fourcc.h b/include/vlc_fourcc.h index c212f279f3..3a1e8a6d6f 100644 --- a/include/vlc_fourcc.h +++ b/include/vlc_fourcc.h @@ -313,7 +313,7 @@ #define VLC_CODEC_MP3 VLC_FOURCC('m','p','3',' ') /** - * It returns the codec associatedto a fourcc within a ES category. + * It returns the codec associated to a fourcc within a ES category. * * If not found, it will return the given fourcc. * If found, it will allways be one of the VLC_CODEC_ defined above. @@ -322,6 +322,17 @@ */ VLC_EXPORT( vlc_fourcc_t, vlc_fourcc_GetCodec, ( int i_cat, vlc_fourcc_t i_fourcc ) ); +/** + * It returns the codec associated to a fourcc store in a zero terminated + * string. + * + * If the string is NULL or does not have exactly 4 charateres, it will + * return 0, otherwise it behaves like vlc_fourcc_GetCodec. + * + * Provided for convenience. + */ +VLC_EXPORT( vlc_fourcc_t, vlc_fourcc_GetCodecFromString, ( int i_cat, const char * ) ); + /** * It returns the description of the given fourcc or NULL if not found. * diff --git a/src/libvlccore.sym b/src/libvlccore.sym index 5d64f41fe1..8adf4fb53d 100644 --- a/src/libvlccore.sym +++ b/src/libvlccore.sym @@ -453,6 +453,7 @@ vlc_event_send __vlc_execve vlc_fastmem_register vlc_fourcc_GetCodec +vlc_fourcc_GetCodecFromString vlc_fourcc_GetDescription vlc_freeaddrinfo vlc_gai_strerror diff --git a/src/misc/fourcc.c b/src/misc/fourcc.c index 5e92e19675..2690bc871a 100644 --- a/src/misc/fourcc.c +++ b/src/misc/fourcc.c @@ -1186,6 +1186,15 @@ vlc_fourcc_t vlc_fourcc_GetCodec( int i_cat, vlc_fourcc_t i_fourcc ) return CreateFourcc( e.p_class ); } +vlc_fourcc_t vlc_fourcc_GetCodecFromString( int i_cat, const char *psz_fourcc ) +{ + if( !psz_fourcc || strlen(psz_fourcc) != 4 ) + return 0; + return vlc_fourcc_GetCodec( i_cat, + VLC_FOURCC( psz_fourcc[0], psz_fourcc[1], + psz_fourcc[2], psz_fourcc[3] ) ); +} + /* */ const char *vlc_fourcc_GetDescription( int i_cat, vlc_fourcc_t i_fourcc ) { -- 2.39.2