mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-11-21 10:55:51 +02:00
fc49f22c3b
Some of the FATE changes are due to off-by-one different rounding being used (lrintf vs av_rescale_q). Some fate changes are due to 1 audio frame less being encoded (the new variant seems matching what qatar does and according to ffprobe its closer to the requested duration) the mapchan feature sadly is lost in this commit because it depends on resampling being done in ffmpeg.c which is now moved completely into the av filter layer -async is broken after this commit, this will be fixed in subsequent commits the new filter reconfiguration system is flawed and will drop a frame on each parameter change which is why the nelly moser checksums need updating. Conflicts: ffmpeg.c tests/ref/fate/smjpeg
89 lines
2.5 KiB
C
89 lines
2.5 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_BUFFERSRC_H
|
|
#define AVFILTER_BUFFERSRC_H
|
|
|
|
/**
|
|
* @file
|
|
* Memory buffer source API.
|
|
*/
|
|
|
|
#include "avfilter.h"
|
|
|
|
#if 1
|
|
enum {
|
|
|
|
/**
|
|
* Do not check for format changes.
|
|
*/
|
|
AV_BUFFERSRC_FLAG_NO_CHECK_FORMAT = 1,
|
|
|
|
/**
|
|
* Do not copy buffer data.
|
|
*/
|
|
AV_BUFFERSRC_FLAG_NO_COPY = 2,
|
|
|
|
};
|
|
|
|
/**
|
|
* Add buffer data in picref to buffer_src.
|
|
*
|
|
* @param buffer_src pointer to a buffer source context
|
|
* @param picref a buffer reference, or NULL to mark EOF
|
|
* @param flags a combination of AV_BUFFERSRC_FLAG_*
|
|
* @return >= 0 in case of success, a negative AVERROR code
|
|
* in case of failure
|
|
*/
|
|
int av_buffersrc_add_ref(AVFilterContext *buffer_src,
|
|
AVFilterBufferRef *picref, int flags);
|
|
|
|
/**
|
|
* Get the number of failed requests.
|
|
*
|
|
* A failed request is when the request_frame method is called while no
|
|
* frame is present in the buffer.
|
|
* The number is reset when a frame is added.
|
|
*/
|
|
unsigned av_buffersrc_get_nb_failed_requests(AVFilterContext *buffer_src);
|
|
|
|
#else
|
|
/**
|
|
* Add a buffer to the filtergraph s.
|
|
*
|
|
* @param buf buffer containing frame data to be passed down the filtergraph.
|
|
* This function will take ownership of buf, the user must not free it.
|
|
* A NULL buf signals EOF -- i.e. no more frames will be sent to this filter.
|
|
*/
|
|
int av_buffersrc_buffer(AVFilterContext *s, AVFilterBufferRef *buf);
|
|
|
|
/**
|
|
* Add a frame to the buffer source.
|
|
*
|
|
* @param s an instance of the buffersrc filter.
|
|
* @param frame frame to be added.
|
|
*
|
|
* @warning frame data will be memcpy()ed, which may be a big performance
|
|
* hit. Use av_buffersrc_buffer() to avoid copying the data.
|
|
*/
|
|
int av_buffersrc_write_frame(AVFilterContext *s, AVFrame *frame);
|
|
#endif
|
|
|
|
#endif /* AVFILTER_BUFFERSRC_H */
|