Those functions are only useful inside filters. It is better to not support user filters until the API is more stable.
		
			
				
	
	
		
			81 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			81 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/*
 | 
						|
 * This file is part of Libav.
 | 
						|
 *
 | 
						|
 * Libav is free software; you can redistribute it and/or
 | 
						|
 * modify it under the terms of the GNU Lesser General Public
 | 
						|
 * License as published by the Free Software Foundation; either
 | 
						|
 * version 2.1 of the License, or (at your option) any later version.
 | 
						|
 *
 | 
						|
 * Libav is distributed in the hope that it will be useful,
 | 
						|
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
						|
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
						|
 * Lesser General Public License for more details.
 | 
						|
 *
 | 
						|
 * You should have received a copy of the GNU Lesser General Public
 | 
						|
 * License along with Libav; if not, write to the Free Software
 | 
						|
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
 | 
						|
 */
 | 
						|
 | 
						|
#ifndef AVFILTER_FORMATS_H
 | 
						|
#define AVFILTER_FORMATS_H
 | 
						|
 | 
						|
#include "avfilter.h"
 | 
						|
 | 
						|
typedef struct AVFilterChannelLayouts {
 | 
						|
    uint64_t *channel_layouts;  ///< list of channel layouts
 | 
						|
    int    nb_channel_layouts;  ///< number of channel layouts
 | 
						|
 | 
						|
    unsigned refcount;          ///< number of references to this list
 | 
						|
    struct AVFilterChannelLayouts ***refs; ///< references to this list
 | 
						|
} AVFilterChannelLayouts;
 | 
						|
 | 
						|
/**
 | 
						|
 * Return a channel layouts/samplerates list which contains the intersection of
 | 
						|
 * the layouts/samplerates of a and b. Also, all the references of a, all the
 | 
						|
 * references of b, and a and b themselves will be deallocated.
 | 
						|
 *
 | 
						|
 * If a and b do not share any common elements, neither is modified, and NULL
 | 
						|
 * is returned.
 | 
						|
 */
 | 
						|
AVFilterChannelLayouts *ff_merge_channel_layouts(AVFilterChannelLayouts *a,
 | 
						|
                                                 AVFilterChannelLayouts *b);
 | 
						|
AVFilterFormats *ff_merge_samplerates(AVFilterFormats *a,
 | 
						|
                                      AVFilterFormats *b);
 | 
						|
 | 
						|
/**
 | 
						|
 * Construct an empty AVFilterChannelLayouts/AVFilterFormats struct --
 | 
						|
 * representing any channel layout/sample rate.
 | 
						|
 */
 | 
						|
AVFilterChannelLayouts *ff_all_channel_layouts(void);
 | 
						|
AVFilterFormats *ff_all_samplerates(void);
 | 
						|
 | 
						|
/**
 | 
						|
 * A helper for query_formats() which sets all links to the same list of channel
 | 
						|
 * layouts/sample rates. If there are no links hooked to this filter, the list
 | 
						|
 * is freed.
 | 
						|
 */
 | 
						|
void ff_set_common_channel_layouts(AVFilterContext *ctx,
 | 
						|
                                   AVFilterChannelLayouts *layouts);
 | 
						|
void ff_set_common_samplerates(AVFilterContext *ctx,
 | 
						|
                               AVFilterFormats *samplerates);
 | 
						|
 | 
						|
int ff_add_channel_layout(AVFilterChannelLayouts **l, uint64_t channel_layout);
 | 
						|
 | 
						|
/**
 | 
						|
 * Add *ref as a new reference to f.
 | 
						|
 */
 | 
						|
void ff_channel_layouts_ref(AVFilterChannelLayouts *f,
 | 
						|
                            AVFilterChannelLayouts **ref);
 | 
						|
 | 
						|
/**
 | 
						|
 * Remove a reference to a channel layouts list.
 | 
						|
 */
 | 
						|
void ff_channel_layouts_unref(AVFilterChannelLayouts **ref);
 | 
						|
 | 
						|
void ff_channel_layouts_changeref(AVFilterChannelLayouts **oldref,
 | 
						|
                                  AVFilterChannelLayouts **newref);
 | 
						|
 | 
						|
int ff_default_query_formats(AVFilterContext *ctx);
 | 
						|
 | 
						|
#endif // AVFILTER_FORMATS_H
 |