- int64_t id; \
- VLM_RET(p_vlm, -1); \
- if( vlm_Control( p_vlm, VLM_GET_MEDIA_ID, psz_name, &id ) || \
- vlm_Control( p_vlm, VLM_GET_MEDIA, id, &p_media ) ) { \
- libvlc_printerr( psz_error, psz_name ); \
- return -1; \
- } \
- if( !p_media ) goto error; \
- \
- code; \
- \
- if( vlm_Control( p_vlm, VLM_CHANGE_MEDIA, p_media ) ) { \
+ vlm_media_t *p_media = get_media( p_instance, &p_vlm, psz_name ); \
+ if( p_media != NULL ) { \
+ code; \
+ if( vlm_Control( p_vlm, VLM_CHANGE_MEDIA, p_media ) ) \
+ p_vlm = NULL; \