[vlc-devel] [PATCH 10/11] picture_chain: pass a vlc_picture_chain_t to vlc_picture_chain_Pop/PeekFront
Steve Lhomme
robux4 at ycbcr.xyz
Fri Sep 25 07:09:14 CEST 2020
Also side-note, I did not change vlc_picture_chain_AppendChain because
in the end it will go away. It's not a local picture chain but a way for
filters to output more than one picture.
On 2020-09-24 17:32, Steve Lhomme wrote:
> On 2020-09-24 17:28, Thomas Guillem wrote:
>> Is it possible to put 10 and 11/ before all other commits?
>
> Now that I cleaned mosaic, it should be possible after #3
>
>>
>> On Thu, Sep 24, 2020, at 16:49, Steve Lhomme wrote:
>>> ---
>>> include/vlc_picture.h | 10 +++++-----
>>> modules/hw/mmal/converter.c | 2 +-
>>> modules/spu/mosaic.c | 6 +++---
>>> modules/stream_out/mosaic_bridge.c | 2 +-
>>> src/misc/filter_chain.c | 2 +-
>>> src/misc/picture_fifo.c | 4 ++--
>>> src/video_output/snapshot.c | 4 ++--
>>> 7 files changed, 15 insertions(+), 15 deletions(-)
>>>
>>> diff --git a/include/vlc_picture.h b/include/vlc_picture.h
>>> index c19a8c91c9c..7ea85456a08 100644
>>> --- a/include/vlc_picture.h
>>> +++ b/include/vlc_picture.h
>>> @@ -194,12 +194,12 @@ static inline bool
>>> vlc_picture_chain_IsEmpty(const vlc_picture_chain_t *chain)
>>> *
>>> * \return the front of the picture chain (the picture itself)
>>> */
>>> -static inline picture_t * vlc_picture_chain_PopFront(picture_t **chain)
>>> +static inline picture_t *
>>> vlc_picture_chain_PopFront(vlc_picture_chain_t *chain)
>>> {
>>> - picture_t *front = *chain;
>>> + picture_t *front = chain->front;
>>> if (front)
>>> {
>>> - *chain = front->p_next;
>>> + chain->front = front->p_next;
>>> // unlink the front picture from the rest of the chain
>>> front->p_next = NULL;
>>> }
>>> @@ -213,9 +213,9 @@ static inline picture_t *
>>> vlc_picture_chain_PopFront(picture_t **chain)
>>> *
>>> * \return the front of the picture chain (the picture itself)
>>> */
>>> -static inline picture_t * vlc_picture_chain_PeekFront(picture_t
>>> **chain)
>>> +static inline picture_t *
>>> vlc_picture_chain_PeekFront(vlc_picture_chain_t *chain)
>>> {
>>> - return *chain;
>>> + return chain->front;
>>> }
>>> /**
>>> diff --git a/modules/hw/mmal/converter.c b/modules/hw/mmal/converter.c
>>> index c8af63a0782..bc1150b2da3 100644
>>> --- a/modules/hw/mmal/converter.c
>>> +++ b/modules/hw/mmal/converter.c
>>> @@ -118,7 +118,7 @@ static MMAL_FOURCC_T
>>> pic_to_slice_mmal_fourcc(MMAL_FOURCC_T fcc)
>>> static picture_t * pic_fifo_get(vlc_picture_chain_t * const pf)
>>> {
>>> - return vlc_picture_chain_PopFront( &pf->front );
>>> + return vlc_picture_chain_PopFront( &pf );
>>> }
>>> static void pic_fifo_release_all(vlc_picture_chain_t * const pf)
>>> diff --git a/modules/spu/mosaic.c b/modules/spu/mosaic.c
>>> index c1c19653052..557f619992f 100644
>>> --- a/modules/spu/mosaic.c
>>> +++ b/modules/spu/mosaic.c
>>> @@ -531,14 +531,14 @@ static subpicture_t *Filter( filter_t *p_filter,
>>> vlc_tick_t date )
>>> while ( !vlc_picture_chain_IsEmpty( &p_es->pictures ) )
>>> {
>>> - picture_t *front = vlc_picture_chain_PeekFront(
>>> &p_es->pictures.front );
>>> + picture_t *front = vlc_picture_chain_PeekFront(
>>> &p_es->pictures );
>>> if ( front->date + p_sys->i_delay >= date )
>>> break; // front picture not late
>>> if ( picture_HasChainedPics( front ) )
>>> {
>>> // front picture is late and has more pictures
>>> chained, skip it
>>> - front = vlc_picture_chain_PopFront(
>>> &p_es->pictures.front );
>>> + front = vlc_picture_chain_PopFront( &p_es->pictures );
>>> picture_Release( front );
>>> continue;
>>> }
>>> @@ -589,7 +589,7 @@ static subpicture_t *Filter( filter_t *p_filter,
>>> vlc_tick_t date )
>>> video_format_Init( &fmt_in, 0 );
>>> video_format_Init( &fmt_out, 0 );
>>> - p_converted = vlc_picture_chain_PeekFront(
>>> &p_es->pictures.front );
>>> + p_converted = vlc_picture_chain_PeekFront( &p_es->pictures );
>>> if ( !p_sys->b_keep )
>>> {
>>> /* Convert the images */
>>> diff --git a/modules/stream_out/mosaic_bridge.c
>>> b/modules/stream_out/mosaic_bridge.c
>>> index 38d32a311be..964c28e52d4 100644
>>> --- a/modules/stream_out/mosaic_bridge.c
>>> +++ b/modules/stream_out/mosaic_bridge.c
>>> @@ -461,7 +461,7 @@ static void Del( sout_stream_t *p_stream, void *id )
>>> p_es->b_empty = true;
>>> while ( !vlc_picture_chain_IsEmpty( &p_es->pictures ) )
>>> {
>>> - picture_t *es_picture = vlc_picture_chain_PopFront(
>>> &p_es->pictures.front );
>>> + picture_t *es_picture = vlc_picture_chain_PopFront(
>>> &p_es->pictures );
>>> picture_Release( es_picture );
>>> }
>>> diff --git a/src/misc/filter_chain.c b/src/misc/filter_chain.c
>>> index f32fd1b6798..dcc27dd8f94 100644
>>> --- a/src/misc/filter_chain.c
>>> +++ b/src/misc/filter_chain.c
>>> @@ -532,7 +532,7 @@ static void FilterDeletePictures(
>>> vlc_picture_chain_t *pictures )
>>> {
>>> while( !vlc_picture_chain_IsEmpty( pictures ) )
>>> {
>>> - picture_t *next = vlc_picture_chain_PopFront( &pictures->front
>>> );
>>> + picture_t *next = vlc_picture_chain_PopFront( pictures );
>>> picture_Release( next );
>>> }
>>> }
>>> diff --git a/src/misc/picture_fifo.c b/src/misc/picture_fifo.c
>>> index ae1c66c2ada..9178166765f 100644
>>> --- a/src/misc/picture_fifo.c
>>> +++ b/src/misc/picture_fifo.c
>>> @@ -52,7 +52,7 @@ static void PictureFifoPush(picture_fifo_t *fifo,
>>> picture_t *picture)
>>> }
>>> static picture_t *PictureFifoPop(picture_fifo_t *fifo)
>>> {
>>> - return vlc_picture_chain_PopFront( &fifo->pics.front );
>>> + return vlc_picture_chain_PopFront( &fifo->pics );
>>> }
>>> picture_fifo_t *picture_fifo_New(void)
>>> @@ -101,7 +101,7 @@ void picture_fifo_Flush(picture_fifo_t *fifo,
>>> vlc_tick_t date, bool flush_before
>>> PictureFifoReset(&tmp);
>>> while ( !vlc_picture_chain_IsEmpty( &old_chain ) ) {
>>> - picture_t *picture = vlc_picture_chain_PopFront(
>>> &old_chain.front );
>>> + picture_t *picture = vlc_picture_chain_PopFront( &old_chain );
>>> if ((date == VLC_TICK_INVALID) ||
>>> ( flush_before && picture->date <= date) ||
>>> diff --git a/src/video_output/snapshot.c b/src/video_output/snapshot.c
>>> index 485e37eb717..5213428bcc8 100644
>>> --- a/src/video_output/snapshot.c
>>> +++ b/src/video_output/snapshot.c
>>> @@ -70,7 +70,7 @@ void vout_snapshot_Destroy(vout_snapshot_t *snap)
>>> return;
>>> while ( !vlc_picture_chain_IsEmpty( &snap->pics ) ) {
>>> - picture_t *picture = vlc_picture_chain_PopFront(
>>> &snap->pics.front );
>>> + picture_t *picture = vlc_picture_chain_PopFront( &snap->pics );
>>> picture_Release(picture);
>>> }
>>> @@ -108,7 +108,7 @@ picture_t *vout_snapshot_Get(vout_snapshot_t *snap,
>>> vlc_tick_t timeout)
>>> vlc_cond_timedwait(&snap->wait, &snap->lock, deadline) == 0);
>>> /* */
>>> - picture_t *picture = vlc_picture_chain_PopFront(
>>> &snap->pics.front );
>>> + picture_t *picture = vlc_picture_chain_PopFront( &snap->pics );
>>> if (!picture && snap->request_count > 0)
>>> snap->request_count--;
>>> --
>>> 2.26.2
>>>
>>> _______________________________________________
>>> vlc-devel mailing list
>>> To unsubscribe or modify your subscription options:
>>> https://mailman.videolan.org/listinfo/vlc-devel
>> _______________________________________________
>> vlc-devel mailing list
>> To unsubscribe or modify your subscription options:
>> https://mailman.videolan.org/listinfo/vlc-devel
>>
> _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> https://mailman.videolan.org/listinfo/vlc-devel
More information about the vlc-devel
mailing list