mirror of
				https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
				synced 2025-11-03 09:01:50 -05:00 
			
		
		
		
	Keep track of the memblock pointer internally and do not rely on subsequent calls to pass it back in for unref'ing
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/coling@2484 fefdeb5f-60dc-0310-8127-8f9354f1896f
This commit is contained in:
		
							parent
							
								
									8108121fa7
								
							
						
					
					
						commit
						b93e9e80ec
					
				
					 1 changed files with 6 additions and 6 deletions
				
			
		| 
						 | 
					@ -96,6 +96,7 @@ struct pa_raop_client {
 | 
				
			||||||
    void* closed_userdata;
 | 
					    void* closed_userdata;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    uint8_t *buffer;
 | 
					    uint8_t *buffer;
 | 
				
			||||||
 | 
					    pa_memblock *memblock;
 | 
				
			||||||
    size_t buffer_length;
 | 
					    size_t buffer_length;
 | 
				
			||||||
    uint8_t *buffer_index;
 | 
					    uint8_t *buffer_index;
 | 
				
			||||||
    uint16_t buffer_count;
 | 
					    uint16_t buffer_count;
 | 
				
			||||||
| 
						 | 
					@ -443,15 +444,14 @@ int pa_raop_client_encode_sample(pa_raop_client* c, pa_memchunk* raw, pa_memchun
 | 
				
			||||||
    /* Leave 16 bytes extra to allow for the ALAC header which is about 55 bits */
 | 
					    /* Leave 16 bytes extra to allow for the ALAC header which is about 55 bits */
 | 
				
			||||||
    bufmax = length + header_size + 16;
 | 
					    bufmax = length + header_size + 16;
 | 
				
			||||||
    if (bufmax > c->buffer_length) {
 | 
					    if (bufmax > c->buffer_length) {
 | 
				
			||||||
        if (encoded->memblock)
 | 
					 | 
				
			||||||
            pa_memblock_unref(encoded->memblock);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        c->buffer = pa_xrealloc(c->buffer, bufmax);
 | 
					        c->buffer = pa_xrealloc(c->buffer, bufmax);
 | 
				
			||||||
        c->buffer_length = bufmax;
 | 
					        c->buffer_length = bufmax;
 | 
				
			||||||
        encoded->memblock = pa_memblock_new_user(c->core->mempool, c->buffer, bufmax, noop, 0);
 | 
					        if (c->memblock)
 | 
				
			||||||
 | 
					            pa_memblock_unref(c->memblock);
 | 
				
			||||||
 | 
					        c->memblock = pa_memblock_new_user(c->core->mempool, c->buffer, bufmax, noop, 0);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    encoded->index = 0;
 | 
					    pa_memchunk_reset(encoded);
 | 
				
			||||||
    encoded->length = 0;
 | 
					    encoded->memblock = c->memblock;
 | 
				
			||||||
    b = pa_memblock_acquire(encoded->memblock);
 | 
					    b = pa_memblock_acquire(encoded->memblock);
 | 
				
			||||||
    memcpy(b, header, header_size);
 | 
					    memcpy(b, header, header_size);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue