Some fixes by Stefano. For detailed authorship see SOC repo Signed-off-by: Anton Khirnov <anton@khirnov.net>tags/n0.9
| @@ -44,6 +44,7 @@ easier to use. The changes are: | |||||
| - Windows Media Image decoder | - Windows Media Image decoder | ||||
| - LATM muxer | - LATM muxer | ||||
| - showinfo filter | - showinfo filter | ||||
| - split filter | |||||
| version 0.7: | version 0.7: | ||||
| @@ -46,6 +46,7 @@ OBJS-$(CONFIG_SETSAR_FILTER) += vf_aspect.o | |||||
| OBJS-$(CONFIG_SETTB_FILTER) += vf_settb.o | OBJS-$(CONFIG_SETTB_FILTER) += vf_settb.o | ||||
| OBJS-$(CONFIG_SHOWINFO_FILTER) += vf_showinfo.o | OBJS-$(CONFIG_SHOWINFO_FILTER) += vf_showinfo.o | ||||
| OBJS-$(CONFIG_SLICIFY_FILTER) += vf_slicify.o | OBJS-$(CONFIG_SLICIFY_FILTER) += vf_slicify.o | ||||
| OBJS-$(CONFIG_SPLIT_FILTER) += vf_split.o | |||||
| OBJS-$(CONFIG_TRANSPOSE_FILTER) += vf_transpose.o | OBJS-$(CONFIG_TRANSPOSE_FILTER) += vf_transpose.o | ||||
| OBJS-$(CONFIG_UNSHARP_FILTER) += vf_unsharp.o | OBJS-$(CONFIG_UNSHARP_FILTER) += vf_unsharp.o | ||||
| OBJS-$(CONFIG_VFLIP_FILTER) += vf_vflip.o | OBJS-$(CONFIG_VFLIP_FILTER) += vf_vflip.o | ||||
| @@ -67,6 +67,7 @@ void avfilter_register_all(void) | |||||
| REGISTER_FILTER (SETTB, settb, vf); | REGISTER_FILTER (SETTB, settb, vf); | ||||
| REGISTER_FILTER (SHOWINFO, showinfo, vf); | REGISTER_FILTER (SHOWINFO, showinfo, vf); | ||||
| REGISTER_FILTER (SLICIFY, slicify, vf); | REGISTER_FILTER (SLICIFY, slicify, vf); | ||||
| REGISTER_FILTER (SPLIT, split, vf); | |||||
| REGISTER_FILTER (TRANSPOSE, transpose, vf); | REGISTER_FILTER (TRANSPOSE, transpose, vf); | ||||
| REGISTER_FILTER (UNSHARP, unsharp, vf); | REGISTER_FILTER (UNSHARP, unsharp, vf); | ||||
| REGISTER_FILTER (VFLIP, vflip, vf); | REGISTER_FILTER (VFLIP, vflip, vf); | ||||
| @@ -29,7 +29,7 @@ | |||||
| #include "libavutil/rational.h" | #include "libavutil/rational.h" | ||||
| #define LIBAVFILTER_VERSION_MAJOR 2 | #define LIBAVFILTER_VERSION_MAJOR 2 | ||||
| #define LIBAVFILTER_VERSION_MINOR 5 | |||||
| #define LIBAVFILTER_VERSION_MINOR 6 | |||||
| #define LIBAVFILTER_VERSION_MICRO 0 | #define LIBAVFILTER_VERSION_MICRO 0 | ||||
| #define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \ | #define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \ | ||||
| @@ -0,0 +1,66 @@ | |||||
| /* | |||||
| * Copyright (c) 2007 Bobby Bingham | |||||
| * | |||||
| * 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 | |||||
| */ | |||||
| /** | |||||
| * @file | |||||
| * Video splitter | |||||
| */ | |||||
| #include "avfilter.h" | |||||
| static void start_frame(AVFilterLink *inlink, AVFilterBufferRef *picref) | |||||
| { | |||||
| avfilter_start_frame(inlink->dst->outputs[0], | |||||
| avfilter_ref_buffer(picref, ~AV_PERM_WRITE)); | |||||
| avfilter_start_frame(inlink->dst->outputs[1], | |||||
| avfilter_ref_buffer(picref, ~AV_PERM_WRITE)); | |||||
| } | |||||
| static void draw_slice(AVFilterLink *inlink, int y, int h, int slice_dir) | |||||
| { | |||||
| avfilter_draw_slice(inlink->dst->outputs[0], y, h, slice_dir); | |||||
| avfilter_draw_slice(inlink->dst->outputs[1], y, h, slice_dir); | |||||
| } | |||||
| static void end_frame(AVFilterLink *inlink) | |||||
| { | |||||
| avfilter_end_frame(inlink->dst->outputs[0]); | |||||
| avfilter_end_frame(inlink->dst->outputs[1]); | |||||
| avfilter_unref_buffer(inlink->cur_buf); | |||||
| } | |||||
| AVFilter avfilter_vf_split = { | |||||
| .name = "split", | |||||
| .description = NULL_IF_CONFIG_SMALL("Pass on the input to two outputs."), | |||||
| .inputs = (AVFilterPad[]) {{ .name = "default", | |||||
| .type = AVMEDIA_TYPE_VIDEO, | |||||
| .get_video_buffer= avfilter_null_get_video_buffer, | |||||
| .start_frame = start_frame, | |||||
| .draw_slice = draw_slice, | |||||
| .end_frame = end_frame, }, | |||||
| { .name = NULL}}, | |||||
| .outputs = (AVFilterPad[]) {{ .name = "output1", | |||||
| .type = AVMEDIA_TYPE_VIDEO, }, | |||||
| { .name = "output2", | |||||
| .type = AVMEDIA_TYPE_VIDEO, }, | |||||
| { .name = NULL}}, | |||||
| }; | |||||