vout_snapshot_Init(&vout->p->snapshot);
/* Initialize locks */
- vlc_mutex_init(&vout->p->picture_lock);
vlc_mutex_init(&vout->p->filter.lock);
vlc_mutex_init(&vout->p->spu_lock);
/* Destroy the locks */
vlc_mutex_destroy(&vout->p->spu_lock);
- vlc_mutex_destroy(&vout->p->picture_lock);
vlc_mutex_destroy(&vout->p->filter.lock);
vout_control_Clean(&vout->p->control);
}
- vlc_mutex_lock(&vout->p->picture_lock);
picture = picture_pool_Get(vout->p->decoder_pool);
if (picture != NULL)
msg_Err(vout, "pictures leaked, trying to workaround");
picture_pool_NonEmpty(vout->p->decoder_pool);
}
- vlc_mutex_unlock(&vout->p->picture_lock);
}
void vout_NextPicture(vout_thread_t *vout, mtime_t *duration)
*/
picture_t *vout_GetPicture(vout_thread_t *vout)
{
- /* Get lock */
- vlc_mutex_lock(&vout->p->picture_lock);
picture_t *picture = picture_pool_Get(vout->p->decoder_pool);
if (picture) {
picture_Reset(picture);
VideoFormatCopyCropAr(&picture->format, &vout->p->original);
}
- vlc_mutex_unlock(&vout->p->picture_lock);
return picture;
}
*/
void vout_ReleasePicture(vout_thread_t *vout, picture_t *picture)
{
- vlc_mutex_lock(&vout->p->picture_lock);
-
picture_Release(picture);
-
- vlc_mutex_unlock(&vout->p->picture_lock);
}
/* */
if (ThreadControl(vout, cmd))
return NULL;
- vlc_mutex_lock(&sys->picture_lock);
-
deadline = VLC_TS_INVALID;
while (!ThreadDisplayPicture(vout, &deadline))
;
const bool picture_interlaced = sys->displayed.is_interlaced;
- vlc_mutex_unlock(&sys->picture_lock);
-
vout_SetInterlacingState(vout, &interlacing, picture_interlaced);
vout_ManageWrapper(vout);
}