]> git.sesse.net Git - vlc/blob - src/misc/fingerprinter.c
decoder: inline DecoderSignalWait()
[vlc] / src / misc / fingerprinter.c
1 /*****************************************************************************
2  * fingerprinter.c: Fingerprinter creator and destructor
3  *****************************************************************************
4  * Copyright (C) 2012 VLC authors and VideoLAN
5  *
6  * This program is free software; you can redistribute it and/or modify it
7  * under the terms of the GNU Lesser General Public License as published by
8  * the Free Software Foundation; either version 2.1 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public License
17  * along with this program; if not, write to the Free Software Foundation,
18  * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
19  *****************************************************************************/
20
21 #ifdef HAVE_CONFIG_H
22 #include "config.h"
23 #endif
24
25 #include <vlc_common.h>
26 #include <vlc_fingerprinter.h>
27 #include <vlc_modules.h>
28 #include "libvlc.h"
29
30 fingerprinter_thread_t *fingerprinter_Create( vlc_object_t *p_this )
31 {
32     fingerprinter_thread_t *p_fingerprint;
33
34     p_fingerprint = ( fingerprinter_thread_t * )
35             vlc_custom_create( p_this, sizeof( *p_fingerprint ), "fingerprinter" );
36     if( !p_fingerprint )
37     {
38         msg_Err( p_this, "unable to create fingerprinter" );
39         return NULL;
40     }
41
42     p_fingerprint->p_module = module_need( p_fingerprint, "fingerprinter",
43                                            NULL, false );
44     if( !p_fingerprint->p_module )
45     {
46         vlc_object_release( p_fingerprint );
47         msg_Err( p_this, "AcoustID fingerprinter not found" );
48         return NULL;
49     }
50
51     return p_fingerprint;
52 }
53
54 void fingerprinter_Destroy( fingerprinter_thread_t *p_fingerprint )
55 {
56     module_unneed( p_fingerprint, p_fingerprint->p_module );
57     vlc_object_release( p_fingerprint );
58 }