Merge branch 'mr200701' into 'master'

vlc_filter: allow subpicture updater

See merge request videolan/vlc!443
This commit is contained in:
François Cartegnie 2024-04-28 07:11:08 +00:00
commit 4d08913bce
2 changed files with 13 additions and 5 deletions

View File

@ -58,7 +58,7 @@ struct filter_audio_callbacks
struct filter_subpicture_callbacks
{
subpicture_t *(*buffer_new)(filter_t *);
subpicture_t *(*buffer_new)(filter_t *, const subpicture_updater_t *);
};
typedef struct filter_owner_t
@ -343,14 +343,21 @@ static inline void filter_SendAudioLoudness(filter_t *filter,
* \param p_filter filter_t object
* \return new subpicture
*/
static inline subpicture_t *filter_NewSubpicture( filter_t *p_filter )
static inline subpicture_t *
filter_NewUpdatableSubpicture( filter_t *p_filter,
const subpicture_updater_t *p_dyn )
{
subpicture_t *subpic = p_filter->owner.sub->buffer_new( p_filter );
subpicture_t *subpic = p_filter->owner.sub->buffer_new( p_filter, p_dyn );
if( subpic == NULL )
msg_Warn( p_filter, "can't get output subpicture" );
return subpic;
}
static inline subpicture_t *filter_NewSubpicture( filter_t *p_filter )
{
return filter_NewUpdatableSubpicture( p_filter, NULL );
}
/**
* This function gives all input attachments at once.
*

View File

@ -1559,11 +1559,12 @@ static void UpdateSPU(spu_t *spu, const vlc_spu_highlight_t *hl)
* Buffers allocation callbacks for the filters
*****************************************************************************/
static subpicture_t *sub_new_buffer(filter_t *filter)
static subpicture_t *sub_new_buffer(filter_t *filter,
const subpicture_updater_t *p_dyn)
{
ssize_t channel = *(ssize_t *)filter->owner.sys;
subpicture_t *subpicture = subpicture_New(NULL);
subpicture_t *subpicture = subpicture_New(p_dyn);
if (subpicture)
subpicture->i_channel = channel;
return subpicture;