vout: fix direct cast

Use the actual type passed to as opaque to the filter callbacks.
The vlc_object may not be the first element in the structure.
This commit is contained in:
Steve Lhomme 2023-01-16 08:35:19 +01:00
parent 894ecb9fc8
commit da8f676083
2 changed files with 8 additions and 4 deletions

View File

@ -718,7 +718,8 @@ static int FilterRestartCallback(vlc_object_t *p_this, char const *psz_var,
static int DelFilterCallbacks(filter_t *filter, void *opaque)
{
filter_DelProxyCallbacks((vlc_object_t*)opaque, filter,
vout_thread_sys_t *sys = opaque;
filter_DelProxyCallbacks(VLC_OBJECT(sys), filter,
FilterRestartCallback);
return VLC_SUCCESS;
}

View File

@ -1372,14 +1372,16 @@ static int RestartSubFilterCallback(vlc_object_t *obj, char const *psz_var,
static int SubFilterAddProxyCallbacks(filter_t *filter, void *opaque)
{
filter_AddProxyCallbacks((vlc_object_t *)opaque, filter,
vout_thread_t *vout = opaque;
filter_AddProxyCallbacks(VLC_OBJECT(vout), filter,
RestartSubFilterCallback);
return VLC_SUCCESS;
}
static int SubFilterDelProxyCallbacks(filter_t *filter, void *opaque)
{
filter_DelProxyCallbacks((vlc_object_t *)opaque, filter,
vout_thread_t *vout = opaque;
filter_DelProxyCallbacks(VLC_OBJECT(vout), filter,
RestartSubFilterCallback);
return VLC_SUCCESS;
}
@ -1401,7 +1403,8 @@ static int SubSourceAddProxyCallbacks(filter_t *filter, void *opaque)
static int SubSourceDelProxyCallbacks(filter_t *filter, void *opaque)
{
filter_DelProxyCallbacks((vlc_object_t *)opaque, filter,
vout_thread_t *vout = opaque;
filter_DelProxyCallbacks(VLC_OBJECT(vout), filter,
RestartSubSourceCallback);
return VLC_SUCCESS;
}