-
- for( i = 0; i < PICTURE_RING_SIZE; i++ )
- {
- if ( pp_ring[i] != NULL )
- {
- if ( pp_ring[i]->i_status == DESTROYED_PICTURE )
- {
- free( pp_ring[i]->p_data_orig );
- free( pp_ring[i]->p_sys );
- free( pp_ring[i] );
- }
- else
- {
- pp_ring[i]->p_sys->b_dead = true;
- }
- pp_ring[i] = NULL;
- }
- }
- }
-
- /* Find an empty space in the picture ring buffer */
- for( i = 0; i < PICTURE_RING_SIZE; i++ )
- {
- if( pp_ring[i] != NULL && pp_ring[i]->i_status == DESTROYED_PICTURE )
- {
- pp_ring[i]->i_status = RESERVED_PICTURE;
- pp_ring[i]->i_refcount = 1;
- return pp_ring[i];
- }
- }
- for( i = 0; i < PICTURE_RING_SIZE; i++ )
- {
- if( pp_ring[i] == NULL ) break;