* commit '1961e46c15c23a041f8d8614a25388a3ee9eff63': lavfi: remove disabled FF_API_FILTERS_PUBLIC cruft lavfi: remove disabled FF_API_DEFAULT_CONFIG_OUTPUT_LINK cruft lavfi: use proper FF_API guards for different deprecated functions lavfi: remove disabled FF_API_VSRC_BUFFER_ADD_FRAME cruft lavfi: remove disabled FF_API_SAMPLERATE64 cruft lavfi: remove disabled FF_API_GRAPH_AVCLASS cruft Conflicts: libavfilter/avfilter.c libavfilter/avfilter.h libavfilter/buffersrc.c libavfilter/formats.c libavfilter/graphparser.c libavfilter/version.h libavfilter/video.c libavfilter/vsrc_buffer.h Merged-by: Michael Niedermayer <michaelni@gmx.at>tags/n1.0
| @@ -22,7 +22,6 @@ HEADERS = asrc_abuffer.h \ | |||||
| buffersink.h \ | buffersink.h \ | ||||
| buffersrc.h \ | buffersrc.h \ | ||||
| version.h \ | version.h \ | ||||
| vsrc_buffer.h \ | |||||
| OBJS = allfilters.o \ | OBJS = allfilters.o \ | ||||
| audio.o \ | audio.o \ | ||||
| @@ -119,11 +119,7 @@ static int config_output(AVFilterLink *outlink) | |||||
| av_get_channel_layout_string(buf2, sizeof(buf2), | av_get_channel_layout_string(buf2, sizeof(buf2), | ||||
| -1, outlink->channel_layout); | -1, outlink->channel_layout); | ||||
| av_log(ctx, AV_LOG_VERBOSE, | av_log(ctx, AV_LOG_VERBOSE, | ||||
| #if FF_API_SAMPLERATE64 | |||||
| "fmt:%s srate:%"PRId64" cl:%s -> fmt:%s srate:%"PRId64" cl:%s\n", | |||||
| #else | |||||
| "fmt:%s srate:%d cl:%s -> fmt:%s srate:%d cl:%s\n", | "fmt:%s srate:%d cl:%s -> fmt:%s srate:%d cl:%s\n", | ||||
| #endif /* FF_API_SAMPLERATE64 */ | |||||
| av_get_sample_fmt_name(inlink ->format), inlink ->sample_rate, buf1, | av_get_sample_fmt_name(inlink ->format), inlink ->sample_rate, buf1, | ||||
| av_get_sample_fmt_name(outlink->format), outlink->sample_rate, buf2); | av_get_sample_fmt_name(outlink->format), outlink->sample_rate, buf2); | ||||
| @@ -560,38 +560,3 @@ enum AVMediaType avfilter_pad_get_type(AVFilterPad *pads, int pad_idx) | |||||
| { | { | ||||
| return pads[pad_idx].type; | return pads[pad_idx].type; | ||||
| } | } | ||||
| #if FF_API_DEFAULT_CONFIG_OUTPUT_LINK | |||||
| void avfilter_insert_pad(unsigned idx, unsigned *count, size_t padidx_off, | |||||
| AVFilterPad **pads, AVFilterLink ***links, | |||||
| AVFilterPad *newpad) | |||||
| { | |||||
| ff_insert_pad(idx, count, padidx_off, pads, links, newpad); | |||||
| } | |||||
| void avfilter_insert_inpad(AVFilterContext *f, unsigned index, | |||||
| AVFilterPad *p) | |||||
| { | |||||
| ff_insert_pad(index, &f->nb_inputs, offsetof(AVFilterLink, dstpad), | |||||
| &f->input_pads, &f->inputs, p); | |||||
| #if FF_API_FOO_COUNT | |||||
| f->input_count = f->nb_inputs; | |||||
| #endif | |||||
| } | |||||
| void avfilter_insert_outpad(AVFilterContext *f, unsigned index, | |||||
| AVFilterPad *p) | |||||
| { | |||||
| ff_insert_pad(index, &f->nb_outputs, offsetof(AVFilterLink, srcpad), | |||||
| &f->output_pads, &f->outputs, p); | |||||
| #if FF_API_FOO_COUNT | |||||
| f->output_count = f->nb_outputs; | |||||
| #endif | |||||
| } | |||||
| int avfilter_poll_frame(AVFilterLink *link) | |||||
| { | |||||
| return ff_poll_frame(link); | |||||
| } | |||||
| int avfilter_request_frame(AVFilterLink *link) | |||||
| { | |||||
| return ff_request_frame(link); | |||||
| } | |||||
| #endif | |||||
| @@ -208,143 +208,6 @@ void avfilter_unref_buffer(AVFilterBufferRef *ref); | |||||
| */ | */ | ||||
| void avfilter_unref_bufferp(AVFilterBufferRef **ref); | void avfilter_unref_bufferp(AVFilterBufferRef **ref); | ||||
| #if FF_API_FILTERS_PUBLIC | |||||
| /** | |||||
| * A list of supported formats for one end of a filter link. This is used | |||||
| * during the format negotiation process to try to pick the best format to | |||||
| * use to minimize the number of necessary conversions. Each filter gives a | |||||
| * list of the formats supported by each input and output pad. The list | |||||
| * given for each pad need not be distinct - they may be references to the | |||||
| * same list of formats, as is often the case when a filter supports multiple | |||||
| * formats, but will always output the same format as it is given in input. | |||||
| * | |||||
| * In this way, a list of possible input formats and a list of possible | |||||
| * output formats are associated with each link. When a set of formats is | |||||
| * negotiated over a link, the input and output lists are merged to form a | |||||
| * new list containing only the common elements of each list. In the case | |||||
| * that there were no common elements, a format conversion is necessary. | |||||
| * Otherwise, the lists are merged, and all other links which reference | |||||
| * either of the format lists involved in the merge are also affected. | |||||
| * | |||||
| * For example, consider the filter chain: | |||||
| * filter (a) --> (b) filter (b) --> (c) filter | |||||
| * | |||||
| * where the letters in parenthesis indicate a list of formats supported on | |||||
| * the input or output of the link. Suppose the lists are as follows: | |||||
| * (a) = {A, B} | |||||
| * (b) = {A, B, C} | |||||
| * (c) = {B, C} | |||||
| * | |||||
| * First, the first link's lists are merged, yielding: | |||||
| * filter (a) --> (a) filter (a) --> (c) filter | |||||
| * | |||||
| * Notice that format list (b) now refers to the same list as filter list (a). | |||||
| * Next, the lists for the second link are merged, yielding: | |||||
| * filter (a) --> (a) filter (a) --> (a) filter | |||||
| * | |||||
| * where (a) = {B}. | |||||
| * | |||||
| * Unfortunately, when the format lists at the two ends of a link are merged, | |||||
| * we must ensure that all links which reference either pre-merge format list | |||||
| * get updated as well. Therefore, we have the format list structure store a | |||||
| * pointer to each of the pointers to itself. | |||||
| * @addtogroup lavfi_deprecated | |||||
| * @deprecated Those functions are only useful inside filters and | |||||
| * user filters are not supported at this point. | |||||
| * @{ | |||||
| */ | |||||
| struct AVFilterFormats { | |||||
| unsigned format_count; ///< number of formats | |||||
| int *formats; ///< list of media formats | |||||
| unsigned refcount; ///< number of references to this list | |||||
| struct AVFilterFormats ***refs; ///< references to this list | |||||
| }; | |||||
| /** | |||||
| * Create a list of supported formats. This is intended for use in | |||||
| * AVFilter->query_formats(). | |||||
| * | |||||
| * @param fmts list of media formats, terminated by -1. If NULL an | |||||
| * empty list is created. | |||||
| * @return the format list, with no existing references | |||||
| */ | |||||
| attribute_deprecated | |||||
| AVFilterFormats *avfilter_make_format_list(const int *fmts); | |||||
| /** | |||||
| * Add fmt to the list of media formats contained in *avff. | |||||
| * If *avff is NULL the function allocates the filter formats struct | |||||
| * and puts its pointer in *avff. | |||||
| * | |||||
| * @return a non negative value in case of success, or a negative | |||||
| * value corresponding to an AVERROR code in case of error | |||||
| * @deprecated Use ff_all_formats() instead. | |||||
| */ | |||||
| attribute_deprecated | |||||
| int avfilter_add_format(AVFilterFormats **avff, int64_t fmt); | |||||
| attribute_deprecated | |||||
| AVFilterFormats *avfilter_all_formats(enum AVMediaType type); | |||||
| /** | |||||
| * Return a list of all formats supported by FFmpeg for the given media type. | |||||
| */ | |||||
| AVFilterFormats *avfilter_make_all_formats(enum AVMediaType type); | |||||
| /** | |||||
| * A list of all channel layouts supported by libavfilter. | |||||
| */ | |||||
| extern const int64_t avfilter_all_channel_layouts[]; | |||||
| /** | |||||
| * Return a format list which contains the intersection of the formats 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 formats, neither is modified, and NULL | |||||
| * is returned. | |||||
| */ | |||||
| attribute_deprecated | |||||
| AVFilterFormats *avfilter_merge_formats(AVFilterFormats *a, AVFilterFormats *b); | |||||
| /** | |||||
| * Add *ref as a new reference to formats. | |||||
| * That is the pointers will point like in the ASCII art below: | |||||
| * ________ | |||||
| * |formats |<--------. | |||||
| * | ____ | ____|___________________ | |||||
| * | |refs| | | __|_ | |||||
| * | |* * | | | | | | AVFilterLink | |||||
| * | |* *--------->|*ref| | |||||
| * | |____| | | |____| | |||||
| * |________| |________________________ | |||||
| */ | |||||
| attribute_deprecated | |||||
| void avfilter_formats_ref(AVFilterFormats *formats, AVFilterFormats **ref); | |||||
| attribute_deprecated | |||||
| void avfilter_formats_unref(AVFilterFormats **ref); | |||||
| attribute_deprecated | |||||
| void avfilter_formats_changeref(AVFilterFormats **oldref, | |||||
| AVFilterFormats **newref); | |||||
| /** | |||||
| * Helpers for query_formats() which set all links to the same list of | |||||
| * formats/layouts. If there are no links hooked to this filter, the list | |||||
| * of formats is freed. | |||||
| */ | |||||
| attribute_deprecated | |||||
| void avfilter_set_common_formats(AVFilterContext *ctx, AVFilterFormats *formats); | |||||
| attribute_deprecated | |||||
| void avfilter_set_common_pixel_formats(AVFilterContext *ctx, AVFilterFormats *formats); | |||||
| attribute_deprecated | |||||
| void avfilter_set_common_sample_formats(AVFilterContext *ctx, AVFilterFormats *formats); | |||||
| attribute_deprecated | |||||
| void avfilter_set_common_channel_layouts(AVFilterContext *ctx, AVFilterFormats *formats); | |||||
| /** | |||||
| * @} | |||||
| */ | |||||
| #endif | |||||
| #if FF_API_AVFILTERPAD_PUBLIC | #if FF_API_AVFILTERPAD_PUBLIC | ||||
| /** | /** | ||||
| @@ -518,44 +381,6 @@ enum AVMediaType avfilter_pad_get_type(AVFilterPad *pads, int pad_idx); | |||||
| attribute_deprecated | attribute_deprecated | ||||
| void avfilter_default_end_frame(AVFilterLink *link); | void avfilter_default_end_frame(AVFilterLink *link); | ||||
| #if FF_API_FILTERS_PUBLIC | |||||
| /** default handler for start_frame() for video inputs */ | |||||
| attribute_deprecated | |||||
| void avfilter_default_start_frame(AVFilterLink *link, AVFilterBufferRef *picref); | |||||
| /** default handler for draw_slice() for video inputs */ | |||||
| attribute_deprecated | |||||
| void avfilter_default_draw_slice(AVFilterLink *link, int y, int h, int slice_dir); | |||||
| /** default handler for get_video_buffer() for video inputs */ | |||||
| attribute_deprecated | |||||
| AVFilterBufferRef *avfilter_default_get_video_buffer(AVFilterLink *link, | |||||
| int perms, int w, int h); | |||||
| /** Default handler for query_formats() */ | |||||
| attribute_deprecated | |||||
| int avfilter_default_query_formats(AVFilterContext *ctx); | |||||
| #endif | |||||
| #if FF_API_FILTERS_PUBLIC | |||||
| /** start_frame() handler for filters which simply pass video along */ | |||||
| attribute_deprecated | |||||
| void avfilter_null_start_frame(AVFilterLink *link, AVFilterBufferRef *picref); | |||||
| /** draw_slice() handler for filters which simply pass video along */ | |||||
| attribute_deprecated | |||||
| void avfilter_null_draw_slice(AVFilterLink *link, int y, int h, int slice_dir); | |||||
| /** end_frame() handler for filters which simply pass video along */ | |||||
| attribute_deprecated | |||||
| void avfilter_null_end_frame(AVFilterLink *link); | |||||
| /** get_video_buffer() handler for filters which simply pass video along */ | |||||
| attribute_deprecated | |||||
| AVFilterBufferRef *avfilter_null_get_video_buffer(AVFilterLink *link, | |||||
| int perms, int w, int h); | |||||
| #endif | |||||
| /** | /** | ||||
| * Filter definition. This defines the pads a filter contains, and all the | * Filter definition. This defines the pads a filter contains, and all the | ||||
| * callback functions used to interact with the filter. | * callback functions used to interact with the filter. | ||||
| @@ -669,11 +494,8 @@ struct AVFilterLink { | |||||
| AVRational sample_aspect_ratio; ///< agreed upon sample aspect ratio | AVRational sample_aspect_ratio; ///< agreed upon sample aspect ratio | ||||
| /* These parameters apply only to audio */ | /* These parameters apply only to audio */ | ||||
| uint64_t channel_layout; ///< channel layout of current buffer (see libavutil/audioconvert.h) | uint64_t channel_layout; ///< channel layout of current buffer (see libavutil/audioconvert.h) | ||||
| #if FF_API_SAMPLERATE64 | |||||
| int64_t sample_rate; ///< samples per second | |||||
| #else | |||||
| int sample_rate; ///< samples per second | int sample_rate; ///< samples per second | ||||
| #endif | |||||
| int format; ///< agreed upon media format | int format; ///< agreed upon media format | ||||
| /** | /** | ||||
| @@ -788,12 +610,6 @@ void avfilter_link_free(AVFilterLink **link); | |||||
| */ | */ | ||||
| int avfilter_config_links(AVFilterContext *filter); | int avfilter_config_links(AVFilterContext *filter); | ||||
| #if FF_API_FILTERS_PUBLIC | |||||
| attribute_deprecated | |||||
| AVFilterBufferRef *avfilter_get_video_buffer(AVFilterLink *link, int perms, | |||||
| int w, int h); | |||||
| #endif | |||||
| /** | /** | ||||
| * Create a buffer reference wrapped around an already allocated image | * Create a buffer reference wrapped around an already allocated image | ||||
| * buffer. | * buffer. | ||||
| @@ -827,34 +643,6 @@ AVFilterBufferRef *avfilter_get_audio_buffer_ref_from_arrays(uint8_t **data, | |||||
| enum AVSampleFormat sample_fmt, | enum AVSampleFormat sample_fmt, | ||||
| uint64_t channel_layout); | uint64_t channel_layout); | ||||
| #if FF_API_FILTERS_PUBLIC | |||||
| /** | |||||
| * Request an input frame from the filter at the other end of the link. | |||||
| * | |||||
| * @param link the input link | |||||
| * @return zero on success or a negative error code; in particular: | |||||
| * AVERROR_EOF means that the end of frames have been reached; | |||||
| * AVERROR(EAGAIN) means that no frame could be immediately | |||||
| * produced. | |||||
| */ | |||||
| int avfilter_request_frame(AVFilterLink *link); | |||||
| attribute_deprecated | |||||
| int avfilter_poll_frame(AVFilterLink *link); | |||||
| attribute_deprecated | |||||
| void avfilter_start_frame(AVFilterLink *link, AVFilterBufferRef *picref); | |||||
| /** | |||||
| * Notify the next filter that the current frame has finished. | |||||
| * | |||||
| * @param link the output link the frame was sent over | |||||
| */ | |||||
| attribute_deprecated | |||||
| void avfilter_end_frame(AVFilterLink *link); | |||||
| attribute_deprecated | |||||
| void avfilter_draw_slice(AVFilterLink *link, int y, int h, int slice_dir); | |||||
| #endif | |||||
| #define AVFILTER_CMD_FLAG_ONE 1 ///< Stop once a filter understood the command (for target=all for example), fast filters are favored automatically | #define AVFILTER_CMD_FLAG_ONE 1 ///< Stop once a filter understood the command (for target=all for example), fast filters are favored automatically | ||||
| #define AVFILTER_CMD_FLAG_FAST 2 ///< Only execute command when its fast (like a video out that supports contrast adjustment in hw) | #define AVFILTER_CMD_FLAG_FAST 2 ///< Only execute command when its fast (like a video out that supports contrast adjustment in hw) | ||||
| @@ -942,18 +730,4 @@ void avfilter_free(AVFilterContext *filter); | |||||
| int avfilter_insert_filter(AVFilterLink *link, AVFilterContext *filt, | int avfilter_insert_filter(AVFilterLink *link, AVFilterContext *filt, | ||||
| unsigned filt_srcpad_idx, unsigned filt_dstpad_idx); | unsigned filt_srcpad_idx, unsigned filt_dstpad_idx); | ||||
| #if FF_API_FILTERS_PUBLIC | |||||
| attribute_deprecated | |||||
| void avfilter_insert_pad(unsigned idx, unsigned *count, size_t padidx_off, | |||||
| AVFilterPad **pads, AVFilterLink ***links, | |||||
| AVFilterPad *newpad); | |||||
| attribute_deprecated | |||||
| void avfilter_insert_inpad(AVFilterContext *f, unsigned index, | |||||
| AVFilterPad *p); | |||||
| attribute_deprecated | |||||
| void avfilter_insert_outpad(AVFilterContext *f, unsigned index, | |||||
| AVFilterPad *p); | |||||
| #endif | |||||
| #endif /* AVFILTER_AVFILTER_H */ | #endif /* AVFILTER_AVFILTER_H */ | ||||
| @@ -47,9 +47,7 @@ AVFilterGraph *avfilter_graph_alloc(void) | |||||
| AVFilterGraph *ret = av_mallocz(sizeof(AVFilterGraph)); | AVFilterGraph *ret = av_mallocz(sizeof(AVFilterGraph)); | ||||
| if (!ret) | if (!ret) | ||||
| return NULL; | return NULL; | ||||
| #if FF_API_GRAPH_AVCLASS | |||||
| ret->av_class = &filtergraph_class; | ret->av_class = &filtergraph_class; | ||||
| #endif | |||||
| return ret; | return ret; | ||||
| } | } | ||||
| @@ -26,9 +26,7 @@ | |||||
| #include "libavutil/log.h" | #include "libavutil/log.h" | ||||
| typedef struct AVFilterGraph { | typedef struct AVFilterGraph { | ||||
| #if FF_API_GRAPH_AVCLASS | |||||
| const AVClass *av_class; | const AVClass *av_class; | ||||
| #endif | |||||
| unsigned filter_count; | unsigned filter_count; | ||||
| AVFilterContext **filters; | AVFilterContext **filters; | ||||
| @@ -29,7 +29,6 @@ | |||||
| #include "formats.h" | #include "formats.h" | ||||
| #include "internal.h" | #include "internal.h" | ||||
| #include "video.h" | #include "video.h" | ||||
| #include "vsrc_buffer.h" | |||||
| #include "avcodec.h" | #include "avcodec.h" | ||||
| #include "libavutil/audioconvert.h" | #include "libavutil/audioconvert.h" | ||||
| @@ -525,45 +525,6 @@ int ff_parse_channel_layout(int64_t *ret, const char *arg, void *log_ctx) | |||||
| return 0; | return 0; | ||||
| } | } | ||||
| #if FF_API_FILTERS_PUBLIC | |||||
| int avfilter_default_query_formats(AVFilterContext *ctx) | |||||
| { | |||||
| return ff_default_query_formats(ctx); | |||||
| } | |||||
| void avfilter_set_common_formats(AVFilterContext *ctx, AVFilterFormats *formats) | |||||
| { | |||||
| ff_set_common_formats(ctx, formats); | |||||
| } | |||||
| AVFilterFormats *avfilter_make_format_list(const int *fmts) | |||||
| { | |||||
| return ff_make_format_list(fmts); | |||||
| } | |||||
| int avfilter_add_format(AVFilterFormats **avff, int64_t fmt) | |||||
| { | |||||
| return ff_add_format(avff, fmt); | |||||
| } | |||||
| AVFilterFormats *avfilter_all_formats(enum AVMediaType type) | |||||
| { | |||||
| return ff_all_formats(type); | |||||
| } | |||||
| AVFilterFormats *avfilter_merge_formats(AVFilterFormats *a, AVFilterFormats *b) | |||||
| { | |||||
| return ff_merge_formats(a, b); | |||||
| } | |||||
| void avfilter_formats_ref(AVFilterFormats *f, AVFilterFormats **ref) | |||||
| { | |||||
| ff_formats_ref(f, ref); | |||||
| } | |||||
| void avfilter_formats_unref(AVFilterFormats **ref) | |||||
| { | |||||
| ff_formats_unref(ref); | |||||
| } | |||||
| void avfilter_formats_changeref(AVFilterFormats **oldref, | |||||
| AVFilterFormats **newref) | |||||
| { | |||||
| ff_formats_changeref(oldref, newref); | |||||
| } | |||||
| #endif | |||||
| #ifdef TEST | #ifdef TEST | ||||
| #undef printf | #undef printf | ||||
| @@ -582,3 +543,4 @@ int main(void) | |||||
| } | } | ||||
| #endif | #endif | ||||
| @@ -61,7 +61,6 @@ | |||||
| * get updated as well. Therefore, we have the format list structure store a | * get updated as well. Therefore, we have the format list structure store a | ||||
| * pointer to each of the pointers to itself. | * pointer to each of the pointers to itself. | ||||
| */ | */ | ||||
| #if !FF_API_FILTERS_PUBLIC | |||||
| struct AVFilterFormats { | struct AVFilterFormats { | ||||
| unsigned format_count; ///< number of formats | unsigned format_count; ///< number of formats | ||||
| int *formats; ///< list of media formats | int *formats; ///< list of media formats | ||||
| @@ -69,7 +68,6 @@ struct AVFilterFormats { | |||||
| unsigned refcount; ///< number of references to this list | unsigned refcount; ///< number of references to this list | ||||
| struct AVFilterFormats ***refs; ///< references to this list | struct AVFilterFormats ***refs; ///< references to this list | ||||
| }; | }; | ||||
| #endif | |||||
| typedef struct AVFilterChannelLayouts { | typedef struct AVFilterChannelLayouts { | ||||
| uint64_t *channel_layouts; ///< list of channel layouts | uint64_t *channel_layouts; ///< list of channel layouts | ||||
| @@ -350,12 +350,6 @@ static int parse_outputs(const char **buf, AVFilterInOut **curr_inputs, | |||||
| return pad; | return pad; | ||||
| } | } | ||||
| #if FF_API_GRAPH_AVCLASS | |||||
| #define log_ctx graph | |||||
| #else | |||||
| #define log_ctx NULL | |||||
| #endif | |||||
| static int parse_sws_flags(const char **buf, AVFilterGraph *graph) | static int parse_sws_flags(const char **buf, AVFilterGraph *graph) | ||||
| { | { | ||||
| char *p = strchr(*buf, ';'); | char *p = strchr(*buf, ';'); | ||||
| @@ -364,7 +358,7 @@ static int parse_sws_flags(const char **buf, AVFilterGraph *graph) | |||||
| return 0; | return 0; | ||||
| if (!p) { | if (!p) { | ||||
| av_log(log_ctx, AV_LOG_ERROR, "sws_flags not terminated with ';'.\n"); | |||||
| av_log(graph, AV_LOG_ERROR, "sws_flags not terminated with ';'.\n"); | |||||
| return AVERROR(EINVAL); | return AVERROR(EINVAL); | ||||
| } | } | ||||
| @@ -397,17 +391,17 @@ int avfilter_graph_parse2(AVFilterGraph *graph, const char *filters, | |||||
| AVFilterContext *filter; | AVFilterContext *filter; | ||||
| filters += strspn(filters, WHITESPACES); | filters += strspn(filters, WHITESPACES); | ||||
| if ((ret = parse_inputs(&filters, &curr_inputs, &open_outputs, log_ctx)) < 0) | |||||
| if ((ret = parse_inputs(&filters, &curr_inputs, &open_outputs, graph)) < 0) | |||||
| goto end; | goto end; | ||||
| if ((ret = parse_filter(&filter, &filters, graph, index, log_ctx)) < 0) | |||||
| if ((ret = parse_filter(&filter, &filters, graph, index, graph)) < 0) | |||||
| goto end; | goto end; | ||||
| if ((ret = link_filter_inouts(filter, &curr_inputs, &open_inputs, log_ctx)) < 0) | |||||
| if ((ret = link_filter_inouts(filter, &curr_inputs, &open_inputs, graph)) < 0) | |||||
| goto end; | goto end; | ||||
| if ((ret = parse_outputs(&filters, &curr_inputs, &open_inputs, &open_outputs, | if ((ret = parse_outputs(&filters, &curr_inputs, &open_inputs, &open_outputs, | ||||
| log_ctx)) < 0) | |||||
| graph)) < 0) | |||||
| goto end; | goto end; | ||||
| filters += strspn(filters, WHITESPACES); | filters += strspn(filters, WHITESPACES); | ||||
| @@ -419,7 +413,7 @@ int avfilter_graph_parse2(AVFilterGraph *graph, const char *filters, | |||||
| } while (chr == ',' || chr == ';'); | } while (chr == ',' || chr == ';'); | ||||
| if (chr) { | if (chr) { | ||||
| av_log(log_ctx, AV_LOG_ERROR, | |||||
| av_log(graph, AV_LOG_ERROR, | |||||
| "Unable to parse graph description substring: \"%s\"\n", | "Unable to parse graph description substring: \"%s\"\n", | ||||
| filters - 1); | filters - 1); | ||||
| ret = AVERROR(EINVAL); | ret = AVERROR(EINVAL); | ||||
| @@ -446,7 +440,6 @@ int avfilter_graph_parse2(AVFilterGraph *graph, const char *filters, | |||||
| return ret; | return ret; | ||||
| } | } | ||||
| #undef log_ctx | |||||
| int avfilter_graph_parse(AVFilterGraph *graph, const char *filters, | int avfilter_graph_parse(AVFilterGraph *graph, const char *filters, | ||||
| AVFilterInOut **open_inputs_ptr, AVFilterInOut **open_outputs_ptr, | AVFilterInOut **open_inputs_ptr, AVFilterInOut **open_outputs_ptr, | ||||
| @@ -47,21 +47,6 @@ | |||||
| #ifndef FF_API_OLD_ALL_FORMATS_API | #ifndef FF_API_OLD_ALL_FORMATS_API | ||||
| #define FF_API_OLD_ALL_FORMATS_API (LIBAVFILTER_VERSION_MAJOR < 3) | #define FF_API_OLD_ALL_FORMATS_API (LIBAVFILTER_VERSION_MAJOR < 3) | ||||
| #endif | #endif | ||||
| #ifndef FF_API_GRAPH_AVCLASS | |||||
| #define FF_API_GRAPH_AVCLASS (LIBAVFILTER_VERSION_MAJOR > 2) | |||||
| #endif | |||||
| #ifndef FF_API_SAMPLERATE64 | |||||
| #define FF_API_SAMPLERATE64 (LIBAVFILTER_VERSION_MAJOR < 3) | |||||
| #endif | |||||
| #ifndef FF_API_VSRC_BUFFER_ADD_FRAME | |||||
| #define FF_API_VSRC_BUFFER_ADD_FRAME (LIBAVFILTER_VERSION_MAJOR < 3) | |||||
| #endif | |||||
| #ifndef FF_API_DEFAULT_CONFIG_OUTPUT_LINK | |||||
| #define FF_API_DEFAULT_CONFIG_OUTPUT_LINK (LIBAVFILTER_VERSION_MAJOR < 3) | |||||
| #endif | |||||
| #ifndef FF_API_FILTERS_PUBLIC | |||||
| #define FF_API_FILTERS_PUBLIC (LIBAVFILTER_VERSION_MAJOR < 3) | |||||
| #endif | |||||
| #ifndef FF_API_AVFILTERPAD_PUBLIC | #ifndef FF_API_AVFILTERPAD_PUBLIC | ||||
| #define FF_API_AVFILTERPAD_PUBLIC (LIBAVFILTER_VERSION_MAJOR < 4) | #define FF_API_AVFILTERPAD_PUBLIC (LIBAVFILTER_VERSION_MAJOR < 4) | ||||
| #endif | #endif | ||||
| @@ -326,49 +326,3 @@ void avfilter_default_end_frame(AVFilterLink *inlink) | |||||
| default_end_frame(inlink); | default_end_frame(inlink); | ||||
| } | } | ||||
| #if FF_API_FILTERS_PUBLIC | |||||
| AVFilterBufferRef *avfilter_default_get_video_buffer(AVFilterLink *link, int perms, int w, int h) | |||||
| { | |||||
| return ff_default_get_video_buffer(link, perms, w, h); | |||||
| } | |||||
| void avfilter_default_start_frame(AVFilterLink *inlink, AVFilterBufferRef *picref) | |||||
| { | |||||
| default_start_frame(inlink, picref); | |||||
| } | |||||
| void avfilter_default_draw_slice(AVFilterLink *inlink, int y, int h, int slice_dir) | |||||
| { | |||||
| default_draw_slice(inlink, y, h, slice_dir); | |||||
| } | |||||
| AVFilterBufferRef *avfilter_null_get_video_buffer(AVFilterLink *link, int perms, int w, int h) | |||||
| { | |||||
| return ff_null_get_video_buffer(link, perms, w, h); | |||||
| } | |||||
| void avfilter_null_start_frame(AVFilterLink *link, AVFilterBufferRef *picref) | |||||
| { | |||||
| ff_null_start_frame(link, picref); | |||||
| } | |||||
| void avfilter_null_end_frame(AVFilterLink *link) | |||||
| { | |||||
| ff_null_end_frame(link); | |||||
| } | |||||
| void avfilter_null_draw_slice(AVFilterLink *link, int y, int h, int slice_dir) | |||||
| { | |||||
| ff_null_draw_slice(link, y, h, slice_dir); | |||||
| } | |||||
| void avfilter_start_frame(AVFilterLink *link, AVFilterBufferRef *picref) | |||||
| { | |||||
| ff_start_frame(link, picref); | |||||
| } | |||||
| void avfilter_end_frame(AVFilterLink *link) | |||||
| { | |||||
| ff_end_frame(link); | |||||
| } | |||||
| void avfilter_draw_slice(AVFilterLink *link, int y, int h, int slice_dir) | |||||
| { | |||||
| ff_draw_slice(link, y, h, slice_dir); | |||||
| } | |||||
| AVFilterBufferRef *avfilter_get_video_buffer(AVFilterLink *link, int perms, int w, int h) | |||||
| { | |||||
| return ff_get_video_buffer(link, perms, w, h); | |||||
| } | |||||
| #endif | |||||