[vlc-devel] commit: Do not access internal fetcher data from playlist and preparser. ( Laurent Aimar )
git version control
git at videolan.org
Mon Jan 5 21:26:42 CET 2009
vlc | branch: master | Laurent Aimar <fenrir at videolan.org> | Mon Dec 22 15:49:55 2008 +0100| [ab0e40f0aa5c5b624bc26797352cf7516c832be7] | committer: Laurent Aimar
Do not access internal fetcher data from playlist and preparser.
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=ab0e40f0aa5c5b624bc26797352cf7516c832be7
---
src/playlist/control.c | 4 ++--
src/playlist/preparser.c | 7 +++++--
src/playlist/preparser.h | 4 ++--
3 files changed, 9 insertions(+), 6 deletions(-)
diff --git a/src/playlist/control.c b/src/playlist/control.c
index 958af7a..a4fdbc6 100644
--- a/src/playlist/control.c
+++ b/src/playlist/control.c
@@ -480,8 +480,8 @@ int playlist_PlayItem( playlist_t *p_playlist, playlist_item_t *p_item )
}
free( psz_uri );
- /* FIXME remove access to fetcher private data */
- if( pl_priv(p_playlist)->p_fetcher->i_art_policy == ALBUM_ART_WHEN_PLAYED )
+ /* TODO store art policy in playlist private data */
+ if( var_GetInteger( p_playlist, "album-art" ) == ALBUM_ART_WHEN_PLAYED )
{
bool b_has_art;
diff --git a/src/playlist/preparser.c b/src/playlist/preparser.c
index 23d9f2f..cca3022 100644
--- a/src/playlist/preparser.c
+++ b/src/playlist/preparser.c
@@ -47,6 +47,8 @@ struct playlist_preparser_t
vlc_cond_t wait;
input_item_t **pp_waiting;
int i_waiting;
+
+ int i_art_policy;
};
static void *Thread( void * );
@@ -64,6 +66,7 @@ playlist_preparser_t *playlist_preparser_New( playlist_t *p_playlist, playlist_f
p_preparser->p_fetcher = p_fetcher;
vlc_mutex_init( &p_preparser->lock );
vlc_cond_init( &p_preparser->wait );
+ p_preparser->i_art_policy = var_GetInteger( p_playlist, "album-art" );
p_preparser->i_waiting = 0;
p_preparser->pp_waiting = NULL;
@@ -154,7 +157,7 @@ static void Art( playlist_preparser_t *p_preparser, input_item_t *p_item )
const char *psz_arturl = vlc_meta_Get( p_item->p_meta, vlc_meta_ArtworkURL );
const char *psz_name = vlc_meta_Get( p_item->p_meta, vlc_meta_Title );
- if( p_fetcher && p_fetcher->i_art_policy == ALBUM_ART_ALL &&
+ if( p_preparser->i_art_policy == ALBUM_ART_ALL &&
( !psz_arturl || strncmp( psz_arturl, "file://", 7 ) ) )
{
msg_Dbg( p_playlist, "meta ok for %s, need to fetch art", psz_name );
@@ -168,7 +171,7 @@ static void Art( playlist_preparser_t *p_preparser, input_item_t *p_item )
}
vlc_mutex_unlock( &p_item->lock );
- if( b_fetch )
+ if( b_fetch && p_fetcher )
playlist_fetcher_Push( p_fetcher, p_item );
}
diff --git a/src/playlist/preparser.h b/src/playlist/preparser.h
index 6a606d4..2df0d1a 100644
--- a/src/playlist/preparser.h
+++ b/src/playlist/preparser.h
@@ -29,7 +29,7 @@
* Preparser opaque structure.
*
* The preparser object will retreive the meta data of any given input item in
- * an asynchronious way.
+ * an asynchronous way.
* It will also issue art fetching requests.
*/
typedef struct playlist_preparser_t playlist_preparser_t;
@@ -48,7 +48,7 @@ playlist_preparser_t *playlist_preparser_New( playlist_t *, playlist_fetcher_t *
void playlist_preparser_Push( playlist_preparser_t *, input_item_t * );
/**
- * This function destroy the preparser object and thread.
+ * This function destroys the preparser object and thread.
*
* All pending input items will be released.
*/
More information about the vlc-devel
mailing list