Re: [FFmpeg-devel] [PATCH 3/5] Renamed reinterlace to tinterlace
Hello, Happy New Year. Any news about this patch? Maybe Carl Eugen Hoyos could help us with this? Best regards. On Thu, Dec 6, 2018 at 6:10 PM Vasile Toncu wrote: > Hi, > > Since this patch is passing all the current tests, all the modification > required by Thomas were implemented and from our point of view it satisfies > all requirements for adding the double license to the filter, please > approve this patch for integration. Also, there are two more patches > blocked at the moment. This two patches add new features and improvements > for the filter. > > Thank you. Regards. > > On Tue, Oct 16, 2018 at 6:40 PM Vasile Toncu > wrote: > >> Hello, >> >> Still Baptiste Coudurier and Michael Zucchi could not be reached, however >> since the old GPL tinterlace was replaced with a new LGPL implementation >> aren't we on the second course of action recommended by Nicolas George? And >> by that means can we change the license of this implementation without the >> approval of the original contributors whose code was removed? >> Maybe someone else can have a look at the new implementation and provide >> the necessary feedback in order to merge this patch and unblock the >> development of the patches with new functionalities. >> >> Thank you. >> Best regards. >> >> >> >> On Mon, Sep 17, 2018 at 8:28 AM, Vasile Toncu >> wrote: >> >>> Hello, >>> >>> Thank you Thomas for the reviews and support! >>> >>> The proposed actions, by Nicolas George in >>> https://ffmpeg.org/pipermail/ffmpeg-devel/2017-December/223072.html, >>> were taken. >>> >>> >* Can one simply change the tinterlace from GPL to LGPL? >>> * >>> Of course not. There are two non-simple courses of action to achieve it: >>> >>> - Get the approval of all copyright holders. It has been done in the >>> past for other filters. >>> >>> - Remove the GPL tinterlace and at the same time add a new LGPL filter >>> that does the same thing and is also called tinterlace. >>> >>> >>> Only two contributors approved until now, Thomas Mundt and Stefano >>> Sebatini, while Baptiste Coudurier and Michael Zucchi could not be reached. >>> Also, the new implementation supports all the features from the old >>> tinterlace and conditionally (at compile time) the same ASM optimizations >>> are used, but only if CONFIG_GPL is defined. >>> >>> Is there any way we can proceed with this patch? >>> >>> Best regards. >>> >>> >>> On Fri, Aug 17, 2018 at 5:24 PM, Thomas Mundt >>> wrote: >>> Hi, 2018-08-16 13:56 GMT+02:00 Vasile Toncu : > Hi, > > Thank you for the additional testing effort. > Fixed the issue. > > thanks, the patch looks good to me as far as I can judge. It´s up to more experienced developers now to permit the license change. Can anybody please have a look at this. Regards, Thomas ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel >>> >>> >> ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
Re: [FFmpeg-devel] [PATCH 3/5] Renamed reinterlace to tinterlace
Hi, Since this patch is passing all the current tests, all the modification required by Thomas were implemented and from our point of view it satisfies all requirements for adding the double license to the filter, please approve this patch for integration. Also, there are two more patches blocked at the moment. This two patches add new features and improvements for the filter. Thank you. Regards. On Tue, Oct 16, 2018 at 6:40 PM Vasile Toncu wrote: > Hello, > > Still Baptiste Coudurier and Michael Zucchi could not be reached, however > since the old GPL tinterlace was replaced with a new LGPL implementation > aren't we on the second course of action recommended by Nicolas George? And > by that means can we change the license of this implementation without the > approval of the original contributors whose code was removed? > Maybe someone else can have a look at the new implementation and provide > the necessary feedback in order to merge this patch and unblock the > development of the patches with new functionalities. > > Thank you. > Best regards. > > > > On Mon, Sep 17, 2018 at 8:28 AM, Vasile Toncu > wrote: > >> Hello, >> >> Thank you Thomas for the reviews and support! >> >> The proposed actions, by Nicolas George in >> https://ffmpeg.org/pipermail/ffmpeg-devel/2017-December/223072.html, >> were taken. >> >> >* Can one simply change the tinterlace from GPL to LGPL? >> * >> Of course not. There are two non-simple courses of action to achieve it: >> >> - Get the approval of all copyright holders. It has been done in the >> past for other filters. >> >> - Remove the GPL tinterlace and at the same time add a new LGPL filter >> that does the same thing and is also called tinterlace. >> >> >> Only two contributors approved until now, Thomas Mundt and Stefano >> Sebatini, while Baptiste Coudurier and Michael Zucchi could not be reached. >> Also, the new implementation supports all the features from the old >> tinterlace and conditionally (at compile time) the same ASM optimizations >> are used, but only if CONFIG_GPL is defined. >> >> Is there any way we can proceed with this patch? >> >> Best regards. >> >> >> On Fri, Aug 17, 2018 at 5:24 PM, Thomas Mundt wrote: >> >>> Hi, >>> >>> 2018-08-16 13:56 GMT+02:00 Vasile Toncu : >>> >>> > Hi, >>> > >>> > Thank you for the additional testing effort. >>> > Fixed the issue. >>> > >>> > >>> thanks, the patch looks good to me as far as I can judge. >>> It´s up to more experienced developers now to permit the license change. >>> Can anybody please have a look at this. >>> >>> Regards, >>> Thomas >>> ___ >>> ffmpeg-devel mailing list >>> ffmpeg-devel@ffmpeg.org >>> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel >>> >> >> > ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
Re: [FFmpeg-devel] [PATCH 3/5] Renamed reinterlace to tinterlace
Hello, Still Baptiste Coudurier and Michael Zucchi could not be reached, however since the old GPL tinterlace was replaced with a new LGPL implementation aren't we on the second course of action recommended by Nicolas George? And by that means can we change the license of this implementation without the approval of the original contributors whose code was removed? Maybe someone else can have a look at the new implementation and provide the necessary feedback in order to merge this patch and unblock the development of the patches with new functionalities. Thank you. Best regards. On Mon, Sep 17, 2018 at 8:28 AM, Vasile Toncu wrote: > Hello, > > Thank you Thomas for the reviews and support! > > The proposed actions, by Nicolas George in https://ffmpeg.org/pipermail/ > ffmpeg-devel/2017-December/223072.html, were taken. > > >* Can one simply change the tinterlace from GPL to LGPL? > * > Of course not. There are two non-simple courses of action to achieve it: > > - Get the approval of all copyright holders. It has been done in the > past for other filters. > > - Remove the GPL tinterlace and at the same time add a new LGPL filter > that does the same thing and is also called tinterlace. > > > Only two contributors approved until now, Thomas Mundt and Stefano > Sebatini, while Baptiste Coudurier and Michael Zucchi could not be reached. > Also, the new implementation supports all the features from the old > tinterlace and conditionally (at compile time) the same ASM optimizations > are used, but only if CONFIG_GPL is defined. > > Is there any way we can proceed with this patch? > > Best regards. > > > On Fri, Aug 17, 2018 at 5:24 PM, Thomas Mundt wrote: > >> Hi, >> >> 2018-08-16 13:56 GMT+02:00 Vasile Toncu : >> >> > Hi, >> > >> > Thank you for the additional testing effort. >> > Fixed the issue. >> > >> > >> thanks, the patch looks good to me as far as I can judge. >> It´s up to more experienced developers now to permit the license change. >> Can anybody please have a look at this. >> >> Regards, >> Thomas >> ___ >> ffmpeg-devel mailing list >> ffmpeg-devel@ffmpeg.org >> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel >> > > ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
Re: [FFmpeg-devel] [PATCH 3/5] Renamed reinterlace to tinterlace
Hello, Thank you Thomas for the reviews and support! The proposed actions, by Nicolas George in https://ffmpeg.org/pipermail/ffmpeg-devel/2017-December/223072.html, were taken. >* Can one simply change the tinterlace from GPL to LGPL? * Of course not. There are two non-simple courses of action to achieve it: - Get the approval of all copyright holders. It has been done in the past for other filters. - Remove the GPL tinterlace and at the same time add a new LGPL filter that does the same thing and is also called tinterlace. Only two contributors approved until now, Thomas Mundt and Stefano Sebatini, while Baptiste Coudurier and Michael Zucchi could not be reached. Also, the new implementation supports all the features from the old tinterlace and conditionally (at compile time) the same ASM optimizations are used, but only if CONFIG_GPL is defined. Is there any way we can proceed with this patch? Best regards. On Fri, Aug 17, 2018 at 5:24 PM, Thomas Mundt wrote: > Hi, > > 2018-08-16 13:56 GMT+02:00 Vasile Toncu : > > > Hi, > > > > Thank you for the additional testing effort. > > Fixed the issue. > > > > > thanks, the patch looks good to me as far as I can judge. > It´s up to more experienced developers now to permit the license change. > Can anybody please have a look at this. > > Regards, > Thomas > ___ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > http://ffmpeg.org/mailman/listinfo/ffmpeg-devel > ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
Re: [FFmpeg-devel] [PATCH 3/5] Renamed reinterlace to tinterlace
Hi, 2018-08-16 13:56 GMT+02:00 Vasile Toncu : > Hi, > > Thank you for the additional testing effort. > Fixed the issue. > > thanks, the patch looks good to me as far as I can judge. It´s up to more experienced developers now to permit the license change. Can anybody please have a look at this. Regards, Thomas ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
Re: [FFmpeg-devel] [PATCH 3/5] Renamed reinterlace to tinterlace
Hi, Thank you for the additional testing effort. Fixed the issue. On Tue, Aug 14, 2018 at 10:25 PM, Thomas Mundt wrote: > Hi, > > 2018-08-14 18:53 GMT+02:00 Vasile Toncu : > > > Hi Thomas, > > > > I added the log messages. > > > > Thanks for the review. > > > > I found some more time for testing this evening. Unfortunately there are > still issues. > I get half green pictures with some modes at high bit depth. > But the fix is easy. > The bytewidth in all av_image_copy_plane functions need to be adapted for > high bit depths. > > {} > > const AVPixFmtDescriptor *fmt_desc = av_pix_fmt_desc_get(out-> > format); > > int mult = (fmt_desc->comp[0].depth > 8 ? 2 : 1); > > > > You used the calculated "mult" in the av_image_copy_plane functions of > MODE_MERGE and MODE_PAD only. > And forgot the others: > > > > {} > > > +case MODE_INTERLEAVE_BOTTOM: > > +case MODE_INTERLEAVE_TOP: > > +y = y * 2; > > + > > +if (tinterlace->flags & FLAG_VLPF || tinterlace->flags & > > FLAG_CVLPF) { > > +int clip_max = (1 << fmt_desc->comp[plane].depth) - 1; > > + > > +interleave_filter_frame(tinterlace, first, out, plane, > > !!(tinterlace->flags & FLAG_CVLPF), tinterlace_mode == > MODE_INTERLEAVE_TOP, > > x, y, clip_max); > > +interleave_filter_frame(tinterlace, second, out, plane, > > !!(tinterlace->flags & FLAG_CVLPF), tinterlace_mode == > > MODE_INTERLEAVE_BOTTOM, x, y, clip_max); > > } else { > > -if (tinterlace->csp->comp[plane].depth > 8) > > -cols *= 2; > > -av_image_copy_plane(dstp, dstp_linesize, srcp, > srcp_linesize, > > cols, lines); > > +offset1 = (tinterlace_mode == MODE_INTERLEAVE_TOP) ? 0 : > > out->linesize[plane]; > > +offset2 = (tinterlace_mode == MODE_INTERLEAVE_TOP) ? 0 : > > first->linesize[plane]; > > +offset3 = (tinterlace_mode == MODE_INTERLEAVE_TOP) ? > > out->linesize[plane]: 0; > > +offset4 = (tinterlace_mode == MODE_INTERLEAVE_TOP) ? > > second->linesize[plane] : 0; > > + > > +av_image_copy_plane(out->data[plane] + offset1, 2 * > > out->linesize[plane], > > +first->data[plane] + offset2, 2 * > first->linesize[plane], > > +first->width / x, first->height / y); > > +av_image_copy_plane(out->data[plane] + offset3, 2 * > > out->linesize[plane], > > +second->data[plane] + offset4, 2 * > > second->linesize[plane], > > +second->width / x, second->height / y); > > > > Here > > } > > +break; > > + > > +case MODE_INTERLACE_X2: > > +y = y * 2; > > + > > +offset1 = 0; offset2 = 0; > > +offset3 = out->linesize[plane]; > > +offset4 = second->linesize[plane]; > > + > > +if (second->interlaced_frame && second->top_field_first) { > > +offset1 = out->linesize[plane]; > > +offset2 = first->linesize[plane]; > > +offset3 = 0; offset4 = 0; > > +} > > + > > +av_image_copy_plane(out->data[plane] + offset1, 2 * > > out->linesize[plane], > > +first->data[plane] + offset2, 2 * first->linesize[plane], > > +first->width / x, first->height / y); > > +av_image_copy_plane(out->data[plane] + offset3, 2 * > > out->linesize[plane], > > +second->data[plane] + offset4, 2 * second->linesize[plane], > > +second->width / x, second->height / y); > > > > Here > > +break; > > + > > +case MODE_MERGE_X2: > > +if (IS_ODD(tinterlace->current_frame_index - 1)) { > > +av_image_copy_plane(out->data[plane], 2 * > > out->linesize[plane], > > +second->data[plane], second->linesize[plane], > > second->width / x, second->height / y); > > +av_image_copy_plane(out->data[plane] + > out->linesize[plane], > > 2 * out->linesize[plane], > > +first->data[plane], first->linesize[plane], first->width > > / x, first->height / y); > > +} else { > > +av_image_copy_plane(out->data[plane], 2 * > > out->linesize[plane], > > +first->data[plane], first->linesize[plane], first->width > > / x, first->height / y); > > +av_image_copy_plane(out->data[plane] + > out->linesize[plane], > > 2 * out->linesize[plane], > > +second->data[plane], second->linesize[plane], > > second->width / x, second->height / y); > > > > Here. > > Sorry for the piecemeal. > > Regards, > Thomas > ___ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > http://ffmpeg.org/mailman/listinfo/ffmpeg-devel > From c00141a51b3ddbb24080fb8fdf1a056af528856f Mon Sep 17 00:00:00 2001 From: Vasile Toncu Date: Tue, 24 Jul 2018 12:02:16 +0200 Subject: [PATCH] Patch 3 - Move reinterlace to tinterlace --- configure | 1 - libavfilter/Makefile | 1 - libavfil
Re: [FFmpeg-devel] [PATCH 3/5] Renamed reinterlace to tinterlace
Hi, 2018-08-14 18:53 GMT+02:00 Vasile Toncu : > Hi Thomas, > > I added the log messages. > > Thanks for the review. > I found some more time for testing this evening. Unfortunately there are still issues. I get half green pictures with some modes at high bit depth. But the fix is easy. The bytewidth in all av_image_copy_plane functions need to be adapted for high bit depths. {} > const AVPixFmtDescriptor *fmt_desc = av_pix_fmt_desc_get(out->format); > int mult = (fmt_desc->comp[0].depth > 8 ? 2 : 1); > You used the calculated "mult" in the av_image_copy_plane functions of MODE_MERGE and MODE_PAD only. And forgot the others: > {} > +case MODE_INTERLEAVE_BOTTOM: > +case MODE_INTERLEAVE_TOP: > +y = y * 2; > + > +if (tinterlace->flags & FLAG_VLPF || tinterlace->flags & > FLAG_CVLPF) { > +int clip_max = (1 << fmt_desc->comp[plane].depth) - 1; > + > +interleave_filter_frame(tinterlace, first, out, plane, > !!(tinterlace->flags & FLAG_CVLPF), tinterlace_mode == MODE_INTERLEAVE_TOP, > x, y, clip_max); > +interleave_filter_frame(tinterlace, second, out, plane, > !!(tinterlace->flags & FLAG_CVLPF), tinterlace_mode == > MODE_INTERLEAVE_BOTTOM, x, y, clip_max); > } else { > -if (tinterlace->csp->comp[plane].depth > 8) > -cols *= 2; > -av_image_copy_plane(dstp, dstp_linesize, srcp, srcp_linesize, > cols, lines); > +offset1 = (tinterlace_mode == MODE_INTERLEAVE_TOP) ? 0 : > out->linesize[plane]; > +offset2 = (tinterlace_mode == MODE_INTERLEAVE_TOP) ? 0 : > first->linesize[plane]; > +offset3 = (tinterlace_mode == MODE_INTERLEAVE_TOP) ? > out->linesize[plane]: 0; > +offset4 = (tinterlace_mode == MODE_INTERLEAVE_TOP) ? > second->linesize[plane] : 0; > + > +av_image_copy_plane(out->data[plane] + offset1, 2 * > out->linesize[plane], > +first->data[plane] + offset2, 2 * first->linesize[plane], > +first->width / x, first->height / y); > +av_image_copy_plane(out->data[plane] + offset3, 2 * > out->linesize[plane], > +second->data[plane] + offset4, 2 * > second->linesize[plane], > +second->width / x, second->height / y); > Here } > +break; > + > +case MODE_INTERLACE_X2: > +y = y * 2; > + > +offset1 = 0; offset2 = 0; > +offset3 = out->linesize[plane]; > +offset4 = second->linesize[plane]; > + > +if (second->interlaced_frame && second->top_field_first) { > +offset1 = out->linesize[plane]; > +offset2 = first->linesize[plane]; > +offset3 = 0; offset4 = 0; > +} > + > +av_image_copy_plane(out->data[plane] + offset1, 2 * > out->linesize[plane], > +first->data[plane] + offset2, 2 * first->linesize[plane], > +first->width / x, first->height / y); > +av_image_copy_plane(out->data[plane] + offset3, 2 * > out->linesize[plane], > +second->data[plane] + offset4, 2 * second->linesize[plane], > +second->width / x, second->height / y); > Here +break; > + > +case MODE_MERGE_X2: > +if (IS_ODD(tinterlace->current_frame_index - 1)) { > +av_image_copy_plane(out->data[plane], 2 * > out->linesize[plane], > +second->data[plane], second->linesize[plane], > second->width / x, second->height / y); > +av_image_copy_plane(out->data[plane] + out->linesize[plane], > 2 * out->linesize[plane], > +first->data[plane], first->linesize[plane], first->width > / x, first->height / y); > +} else { > +av_image_copy_plane(out->data[plane], 2 * > out->linesize[plane], > +first->data[plane], first->linesize[plane], first->width > / x, first->height / y); > +av_image_copy_plane(out->data[plane] + out->linesize[plane], > 2 * out->linesize[plane], > +second->data[plane], second->linesize[plane], > second->width / x, second->height / y); > Here. Sorry for the piecemeal. Regards, Thomas ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
Re: [FFmpeg-devel] [PATCH 3/5] Renamed reinterlace to tinterlace
Hi Thomas, I added the log messages. Thanks for the review. On Tue, Aug 14, 2018 at 3:23 PM, Thomas Mundt wrote: > Hi, > > 2018-08-13 0:02 GMT+02:00 Vasile Toncu : > > > Hello, > > > > I have updated patch 3 according to review, removed all code related to > the > > new flags (MERGE_TFF, MERGE_BFF) and threading functionality. > > > > > Thanks, your patch looks fine to me now. > There is just one thing, I forgot to mention last review: > > > > {} > > -if (tinterlace->flags & (TINTERLACE_FLAG_VLPF | > TINTERLACE_FLAG_CVLPF) > > -&& !(tinterlace->mode == MODE_INTERLEAVE_TOP > > - || tinterlace->mode == MODE_INTERLEAVE_BOTTOM)) { > > -av_log(ctx, AV_LOG_WARNING, "low_pass_filter flags ignored with > > mode %d\n", > > -tinterlace->mode); > > > > {} > > +if (tinterlace->flags & FLAG_VLPF || tinterlace->flags & > FLAG_CVLPF) { > > > > -av_log(ctx, AV_LOG_VERBOSE, "mode:%d filter:%s h:%d -> h:%d\n", > > tinterlace->mode, > > - (tinterlace->flags & TINTERLACE_FLAG_CVLPF) ? "complex" : > > - (tinterlace->flags & TINTERLACE_FLAG_VLPF) ? "linear" : > "off", > > - inlink->h, outlink->h); > > > > Please keep the log messages. Nothing should change for the user. > > Regards, > Thomas > ___ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > http://ffmpeg.org/mailman/listinfo/ffmpeg-devel > From b2f8fc595312b4b89017c3689dfb80e30b3472ed Mon Sep 17 00:00:00 2001 From: Vasile Toncu Date: Tue, 24 Jul 2018 12:02:16 +0200 Subject: [PATCH] Patch 3 - Move reinterlace to tinterlace --- configure | 1 - libavfilter/Makefile | 1 - libavfilter/allfilters.c | 1 - libavfilter/reinterlace.h | 105 libavfilter/tinterlace.h | 96 ++-- libavfilter/vf_reinterlace.c | 775 -- libavfilter/vf_tinterlace.c | 689 +-- libavfilter/x86/Makefile | 1 - libavfilter/x86/vf_reinterlace_init.c | 102 libavfilter/x86/vf_tinterlace_init.c | 41 +- 10 files changed, 484 insertions(+), 1328 deletions(-) delete mode 100644 libavfilter/reinterlace.h delete mode 100644 libavfilter/vf_reinterlace.c delete mode 100644 libavfilter/x86/vf_reinterlace_init.c diff --git a/configure b/configure index e718c1531c..8f42a86f8f 100755 --- a/configure +++ b/configure @@ -3420,7 +3420,6 @@ stereo3d_filter_deps="gpl" subtitles_filter_deps="avformat avcodec libass" super2xsai_filter_deps="gpl" pixfmts_super2xsai_test_deps="super2xsai_filter" -tinterlace_filter_deps="gpl" tinterlace_merge_test_deps="tinterlace_filter" tinterlace_pad_test_deps="tinterlace_filter" tonemap_filter_deps="const_nan" diff --git a/libavfilter/Makefile b/libavfilter/Makefile index c8ba079750..245302bbe8 100644 --- a/libavfilter/Makefile +++ b/libavfilter/Makefile @@ -246,7 +246,6 @@ OBJS-$(CONFIG_IDET_FILTER) += vf_idet.o OBJS-$(CONFIG_IL_FILTER) += vf_il.o OBJS-$(CONFIG_INFLATE_FILTER)+= vf_neighbor.o OBJS-$(CONFIG_INTERLACE_FILTER) += vf_tinterlace.o -OBJS-$(CONFIG_REINTERLACE_FILTER)+= vf_reinterlace.o OBJS-$(CONFIG_INTERLEAVE_FILTER) += f_interleave.o OBJS-$(CONFIG_KERNDEINT_FILTER) += vf_kerndeint.o OBJS-$(CONFIG_LENSCORRECTION_FILTER) += vf_lenscorrection.o diff --git a/libavfilter/allfilters.c b/libavfilter/allfilters.c index 9956776938..2d19929bdc 100644 --- a/libavfilter/allfilters.c +++ b/libavfilter/allfilters.c @@ -348,7 +348,6 @@ extern AVFilter ff_vf_thumbnail; extern AVFilter ff_vf_thumbnail_cuda; extern AVFilter ff_vf_tile; extern AVFilter ff_vf_tinterlace; -extern AVFilter ff_vf_reinterlace; extern AVFilter ff_vf_tlut2; extern AVFilter ff_vf_tmix; extern AVFilter ff_vf_tonemap; diff --git a/libavfilter/reinterlace.h b/libavfilter/reinterlace.h deleted file mode 100644 index cb512c7639..00 --- a/libavfilter/reinterlace.h +++ /dev/null @@ -1,105 +0,0 @@ -/* - * Copyright (c) 2017 Vasile Toncu - * Copyright (c) 2017 Thomas Mundt - * - * This file is part of FFmpeg. - * - * FFmpeg 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. - * - * FFmpeg 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 FFmpeg; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -/** - * @file - *
Re: [FFmpeg-devel] [PATCH 3/5] Renamed reinterlace to tinterlace
Hi, 2018-08-13 0:02 GMT+02:00 Vasile Toncu : > Hello, > > I have updated patch 3 according to review, removed all code related to the > new flags (MERGE_TFF, MERGE_BFF) and threading functionality. > > Thanks, your patch looks fine to me now. There is just one thing, I forgot to mention last review: > {} > -if (tinterlace->flags & (TINTERLACE_FLAG_VLPF | TINTERLACE_FLAG_CVLPF) > -&& !(tinterlace->mode == MODE_INTERLEAVE_TOP > - || tinterlace->mode == MODE_INTERLEAVE_BOTTOM)) { > -av_log(ctx, AV_LOG_WARNING, "low_pass_filter flags ignored with > mode %d\n", > -tinterlace->mode); > > {} > +if (tinterlace->flags & FLAG_VLPF || tinterlace->flags & FLAG_CVLPF) { > > -av_log(ctx, AV_LOG_VERBOSE, "mode:%d filter:%s h:%d -> h:%d\n", > tinterlace->mode, > - (tinterlace->flags & TINTERLACE_FLAG_CVLPF) ? "complex" : > - (tinterlace->flags & TINTERLACE_FLAG_VLPF) ? "linear" : "off", > - inlink->h, outlink->h); > Please keep the log messages. Nothing should change for the user. Regards, Thomas ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
Re: [FFmpeg-devel] [PATCH 3/5] Renamed reinterlace to tinterlace
Hello, I have updated patch 3 according to review, removed all code related to the new flags (MERGE_TFF, MERGE_BFF) and threading functionality. On Sat, Jul 28, 2018 at 5:04 PM, Thomas Mundt wrote: > Hi, > > 2018-07-24 12:17 GMT+02:00 Vasile Toncu : > > > Fixed tabs. > > Thank you for the feedback. > > > > > {} > > +case MODE_INTERLEAVE_BOTTOM: > > +case MODE_INTERLEAVE_TOP: > > +y = y * 2; > > + > > +if (tinterlace->flags & FLAG_VLPF || tinterlace->flags & > > FLAG_CVLPF) { > > + > > +int lines, cols, cvlfp; > > +AVFrame *from_frame; > > +uint8_t *from, *to; > > +int from_step, to_step; > > + > > +lines = (tinterlace_mode == MODE_INTERLEAVE_TOP) ? (2 * > > out->height / y + 1) / 2 : (2 * out->height / y + 0) / 2; > > +cols = out->width / x; > > +from_frame = first; > > +from = from_frame->data[plane]; > > +to = out->data[plane]; > > + > > +if (tinterlace_mode == MODE_INTERLEAVE_BOTTOM) { > > +from = from + from_frame->linesize[plane]; > > +to = to + out->linesize[plane]; > > +} > > + > > +from_step = 2 * from_frame->linesize[plane]; > > +to_step = 2 * out->linesize[plane]; > > + > > +// when i = lines - aka first line > > +tinterlace->lowpass_line(to, cols, from, > > from_frame->linesize[plane], 0, clip_max); > > +to += to_step; > > +from += from_step; > > + > > +cvlfp = !!(tinterlace->flags & FLAG_CVLPF); > > +if (cvlfp) { > > +tinterlace->lowpass_line(to, cols, from, > > from_frame->linesize[plane], 0, clip_max); > > +to += to_step; > > +from += from_step; > > +} > > + > > +for (i = lines - 2 - 2 * cvlfp; i; i--) { > > +tinterlace->lowpass_line(to, cols, from, > > from_frame->linesize[plane], -from_frame->linesize[plane], clip_max); > > +to += to_step; > > +from += from_step; > > +} > > + > > +// when i == 1 - aka last line > > +tinterlace->lowpass_line(to, cols, from, 0, > > -from_frame->linesize[plane], clip_max); > > +to += to_step; > > +from += from_step; > > + > > +if (cvlfp) { > > +tinterlace->lowpass_line(to, cols, from, 0, > > -from_frame->linesize[plane], clip_max); > > +to += to_step; > > +from += from_step; > > +} > > + > > + > > +lines = (tinterlace_mode == MODE_INTERLEAVE_BOTTOM) ? ((2 * > > out->height / y) + 1) / 2 : (2 * out->height / y + 0) / 2; > > +cols = out->width / x; > > +from_frame = second; > > +from = from_frame->data[plane]; > > +to = out->data[plane]; > > + > > +if (tinterlace_mode == MODE_INTERLEAVE_TOP) { > > +from = from + from_frame->linesize[plane]; > > +to = to + out->linesize[plane]; > > } > > + > > +from_step = 2 * from_frame->linesize[plane]; > > +to_step = 2 * out->linesize[plane]; > > + > > +// when i = lines > > +tinterlace->lowpass_line(to, cols, from, > > from_frame->linesize[plane], 0, clip_max); > > +to += to_step; > > +from += from_step; > > + > > +if (cvlfp) { > > +tinterlace->lowpass_line(to, cols, from, > > from_frame->linesize[plane], 0, clip_max); > > +to += to_step; > > +from += from_step; > > +} > > + > > + > > +for (i = lines - 2 - 2 * cvlfp; i; i--) { > > +tinterlace->lowpass_line(to, cols, from, > > from_frame->linesize[plane], -from_frame->linesize[plane], clip_max); > > +to += to_step; > > +from += from_step; > > +} > > + > > +// when i == 1 > > +tinterlace->lowpass_line(to, cols, from, 0, > > -from_frame->linesize[plane], clip_max); > > +to += to_step; > > +from += from_step; > > + > > +if (cvlfp) { > > +tinterlace->lowpass_line(to, cols, from, 0, > > -from_frame->linesize[plane], clip_max); > > +to += to_step; > > +from += from_step; > > +} > > > > Compared to the one simple "for"-loop in the GPL version, this looks very > complicated. Maybe it´s ok here to just keep the original code since it has > been modified in the past anyway. > But at least you need to factor it out for not having the same code two > times in a row. > > {} > > +case MODE_MERGE_TFF: > > +case MODE_MERGE_BFF: > > +offset1 = (tinterlace_mode == MODE_MERGE_TFF) ? 0 : > > out->linesize[plane]; > > +offset2 = (tinterlace_mode == MODE_MERGE_TFF) ? > > out->linesize[plane]
Re: [FFmpeg-devel] [PATCH 3/5] Renamed reinterlace to tinterlace
Hi, 2018-07-24 12:17 GMT+02:00 Vasile Toncu : > Fixed tabs. > Thank you for the feedback. > > {} > +case MODE_INTERLEAVE_BOTTOM: > +case MODE_INTERLEAVE_TOP: > +y = y * 2; > + > +if (tinterlace->flags & FLAG_VLPF || tinterlace->flags & > FLAG_CVLPF) { > + > +int lines, cols, cvlfp; > +AVFrame *from_frame; > +uint8_t *from, *to; > +int from_step, to_step; > + > +lines = (tinterlace_mode == MODE_INTERLEAVE_TOP) ? (2 * > out->height / y + 1) / 2 : (2 * out->height / y + 0) / 2; > +cols = out->width / x; > +from_frame = first; > +from = from_frame->data[plane]; > +to = out->data[plane]; > + > +if (tinterlace_mode == MODE_INTERLEAVE_BOTTOM) { > +from = from + from_frame->linesize[plane]; > +to = to + out->linesize[plane]; > +} > + > +from_step = 2 * from_frame->linesize[plane]; > +to_step = 2 * out->linesize[plane]; > + > +// when i = lines - aka first line > +tinterlace->lowpass_line(to, cols, from, > from_frame->linesize[plane], 0, clip_max); > +to += to_step; > +from += from_step; > + > +cvlfp = !!(tinterlace->flags & FLAG_CVLPF); > +if (cvlfp) { > +tinterlace->lowpass_line(to, cols, from, > from_frame->linesize[plane], 0, clip_max); > +to += to_step; > +from += from_step; > +} > + > +for (i = lines - 2 - 2 * cvlfp; i; i--) { > +tinterlace->lowpass_line(to, cols, from, > from_frame->linesize[plane], -from_frame->linesize[plane], clip_max); > +to += to_step; > +from += from_step; > +} > + > +// when i == 1 - aka last line > +tinterlace->lowpass_line(to, cols, from, 0, > -from_frame->linesize[plane], clip_max); > +to += to_step; > +from += from_step; > + > +if (cvlfp) { > +tinterlace->lowpass_line(to, cols, from, 0, > -from_frame->linesize[plane], clip_max); > +to += to_step; > +from += from_step; > +} > + > + > +lines = (tinterlace_mode == MODE_INTERLEAVE_BOTTOM) ? ((2 * > out->height / y) + 1) / 2 : (2 * out->height / y + 0) / 2; > +cols = out->width / x; > +from_frame = second; > +from = from_frame->data[plane]; > +to = out->data[plane]; > + > +if (tinterlace_mode == MODE_INTERLEAVE_TOP) { > +from = from + from_frame->linesize[plane]; > +to = to + out->linesize[plane]; > } > + > +from_step = 2 * from_frame->linesize[plane]; > +to_step = 2 * out->linesize[plane]; > + > +// when i = lines > +tinterlace->lowpass_line(to, cols, from, > from_frame->linesize[plane], 0, clip_max); > +to += to_step; > +from += from_step; > + > +if (cvlfp) { > +tinterlace->lowpass_line(to, cols, from, > from_frame->linesize[plane], 0, clip_max); > +to += to_step; > +from += from_step; > +} > + > + > +for (i = lines - 2 - 2 * cvlfp; i; i--) { > +tinterlace->lowpass_line(to, cols, from, > from_frame->linesize[plane], -from_frame->linesize[plane], clip_max); > +to += to_step; > +from += from_step; > +} > + > +// when i == 1 > +tinterlace->lowpass_line(to, cols, from, 0, > -from_frame->linesize[plane], clip_max); > +to += to_step; > +from += from_step; > + > +if (cvlfp) { > +tinterlace->lowpass_line(to, cols, from, 0, > -from_frame->linesize[plane], clip_max); > +to += to_step; > +from += from_step; > +} > Compared to the one simple "for"-loop in the GPL version, this looks very complicated. Maybe it´s ok here to just keep the original code since it has been modified in the past anyway. But at least you need to factor it out for not having the same code two times in a row. {} > +case MODE_MERGE_TFF: > +case MODE_MERGE_BFF: > +offset1 = (tinterlace_mode == MODE_MERGE_TFF) ? 0 : > out->linesize[plane]; > +offset2 = (tinterlace_mode == MODE_MERGE_TFF) ? > out->linesize[plane] : 0; > + > +av_image_copy_plane(out->data[plane] + offset1, 2 * > out->linesize[plane], > +first->data[plane], first->linesize[plane], first->width / x, > first->height / y); > +av_image_copy_plane(out->data[plane] + offset2, 2 * > out->linesize[plane], > +second->data[plane], second->linesize[plane], second->width / > x, second->height / y); > +break; > These are new functions, independent from the license change
Re: [FFmpeg-devel] [PATCH 3/5] Renamed reinterlace to tinterlace
2018-07-25 17:11 GMT+02:00 Vasile Toncu : > What would be the next steps? > > On Tue, Jul 24, 2018 at 12:17 PM, Vasile Toncu > wrote: > > > Fixed tabs. > > Thank you for the feedback. > > > > On Fri, Jul 20, 2018 at 7:27 PM, Paul B Mahol wrote: > > > >> On 7/20/18, Vasile Toncu wrote: > >> > Hi, > >> > > >> > Did you have the time to take a look at patches 2 and 3? It's > everything > >> > fine? > >> > >> Yes and no, patches have tabs. Please fix that. > Please be patient. I´m just back from vacation and full of tasks at work. You took months for the revised patches. Now I need to work into it first. ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
Re: [FFmpeg-devel] [PATCH 3/5] Renamed reinterlace to tinterlace
On 7/25/18, Vasile Toncu wrote: > What would be the next steps? > Ping patch every second. ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
Re: [FFmpeg-devel] [PATCH 3/5] Renamed reinterlace to tinterlace
What would be the next steps? On Tue, Jul 24, 2018 at 12:17 PM, Vasile Toncu wrote: > Fixed tabs. > Thank you for the feedback. > > On Fri, Jul 20, 2018 at 7:27 PM, Paul B Mahol wrote: > >> On 7/20/18, Vasile Toncu wrote: >> > Hi, >> > >> > Did you have the time to take a look at patches 2 and 3? It's everything >> > fine? >> >> Yes and no, patches have tabs. Please fix that. >> ___ >> ffmpeg-devel mailing list >> ffmpeg-devel@ffmpeg.org >> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel >> > > ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
Re: [FFmpeg-devel] [PATCH 3/5] Renamed reinterlace to tinterlace
Fixed tabs. Thank you for the feedback. On Fri, Jul 20, 2018 at 7:27 PM, Paul B Mahol wrote: > On 7/20/18, Vasile Toncu wrote: > > Hi, > > > > Did you have the time to take a look at patches 2 and 3? It's everything > > fine? > > Yes and no, patches have tabs. Please fix that. > ___ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > http://ffmpeg.org/mailman/listinfo/ffmpeg-devel > From 965cb710db38ccd57213648c01ba351dc4076293 Mon Sep 17 00:00:00 2001 From: Vasile Toncu Date: Tue, 24 Jul 2018 12:02:16 +0200 Subject: [PATCH] Patch 3 - Move reinterlace to tinterlace --- configure | 1 - libavfilter/Makefile | 1 - libavfilter/allfilters.c | 1 - libavfilter/reinterlace.h | 105 libavfilter/tinterlace.h | 111 ++-- libavfilter/vf_reinterlace.c | 775 libavfilter/vf_tinterlace.c | 824 +- libavfilter/x86/Makefile | 1 - libavfilter/x86/vf_reinterlace_init.c | 102 libavfilter/x86/vf_tinterlace_init.c | 41 +- 10 files changed, 633 insertions(+), 1329 deletions(-) delete mode 100644 libavfilter/reinterlace.h delete mode 100644 libavfilter/vf_reinterlace.c delete mode 100644 libavfilter/x86/vf_reinterlace_init.c diff --git a/configure b/configure index 5783407bdc..0a33a8dcb3 100755 --- a/configure +++ b/configure @@ -3415,7 +3415,6 @@ stereo3d_filter_deps="gpl" subtitles_filter_deps="avformat avcodec libass" super2xsai_filter_deps="gpl" pixfmts_super2xsai_test_deps="super2xsai_filter" -tinterlace_filter_deps="gpl" tinterlace_merge_test_deps="tinterlace_filter" tinterlace_pad_test_deps="tinterlace_filter" tonemap_filter_deps="const_nan" diff --git a/libavfilter/Makefile b/libavfilter/Makefile index 49fad08290..5d4549e24c 100644 --- a/libavfilter/Makefile +++ b/libavfilter/Makefile @@ -245,7 +245,6 @@ OBJS-$(CONFIG_IDET_FILTER) += vf_idet.o OBJS-$(CONFIG_IL_FILTER) += vf_il.o OBJS-$(CONFIG_INFLATE_FILTER)+= vf_neighbor.o OBJS-$(CONFIG_INTERLACE_FILTER) += vf_tinterlace.o -OBJS-$(CONFIG_REINTERLACE_FILTER)+= vf_reinterlace.o OBJS-$(CONFIG_INTERLEAVE_FILTER) += f_interleave.o OBJS-$(CONFIG_KERNDEINT_FILTER) += vf_kerndeint.o OBJS-$(CONFIG_LENSCORRECTION_FILTER) += vf_lenscorrection.o diff --git a/libavfilter/allfilters.c b/libavfilter/allfilters.c index 874d25e72f..521bc53164 100644 --- a/libavfilter/allfilters.c +++ b/libavfilter/allfilters.c @@ -347,7 +347,6 @@ extern AVFilter ff_vf_thumbnail; extern AVFilter ff_vf_thumbnail_cuda; extern AVFilter ff_vf_tile; extern AVFilter ff_vf_tinterlace; -extern AVFilter ff_vf_reinterlace; extern AVFilter ff_vf_tlut2; extern AVFilter ff_vf_tmix; extern AVFilter ff_vf_tonemap; diff --git a/libavfilter/reinterlace.h b/libavfilter/reinterlace.h deleted file mode 100644 index cb512c7639..00 --- a/libavfilter/reinterlace.h +++ /dev/null @@ -1,105 +0,0 @@ -/* - * Copyright (c) 2017 Vasile Toncu - * Copyright (c) 2017 Thomas Mundt - * - * This file is part of FFmpeg. - * - * FFmpeg 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. - * - * FFmpeg 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 FFmpeg; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -/** - * @file - * Reinterlace filter - */ - -#ifndef AVFILTER_REINTERLACE_H -#define AVFILTER_REINTERLACE_H - -#include "avfilter.h" -#include "formats.h" -#include "internal.h" -#include "video.h" -#include "libavutil/avassert.h" -#include "libavutil/imgutils.h" -#include "libavutil/opt.h" -#include "libavutil/pixdesc.h" -#include "libavutil/bswap.h" - -enum FilterMode { -MODE_MERGE, -MODE_DROP_EVEN, -MODE_DROP_ODD, -MODE_PAD, -MODE_INTERLEAVE_TOP, -MODE_INTERLEAVE_BOTTOM, -MODE_INTERLACE_X2, -MODE_MERGE_X2, -MODE_MERGE_TFF, -MODE_MERGE_BFF, -MODE_NB, - }; - -enum FilterFlags { -FLAG_NOTHING= 0x00, -FLAG_VLPF = 0x01, -FLAG_EXACT_TB = 0x02, -FLAG_CVLPF = 0x04, -FLAG_NB -}; - -typedef struct { -const AVClass *class; -int mode; -int flags; - -AVFrame *prev_frame, *current_frame; -int64_t current_frame_index; - -uint8_t *black_vec[4]; -int black_linesize[4]; - -int skip_next_frame; - -void *thread_dat
Re: [FFmpeg-devel] [PATCH 3/5] Renamed reinterlace to tinterlace
On 7/20/18, Vasile Toncu wrote: > Hi, > > Did you have the time to take a look at patches 2 and 3? It's everything > fine? Yes and no, patches have tabs. Please fix that. ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
Re: [FFmpeg-devel] [PATCH 3/5] Renamed reinterlace to tinterlace
Hi, Did you have the time to take a look at patches 2 and 3? It's everything fine? Regards, Vasile On Mon, Jul 16, 2018 at 5:51 PM, Vasile Toncu wrote: > Hello, > > I have updated patch 3, it shall work now. > > Thank you, > Vasile Toncu > ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
Re: [FFmpeg-devel] [PATCH 3/5] Renamed reinterlace to tinterlace
Hello, I have updated patch 3, it shall work now. Thank you, Vasile Toncu From 23bdcea190ccb801e3d5a0eb081fb28b17144452 Mon Sep 17 00:00:00 2001 From: Vasile Toncu Date: Mon, 16 Jul 2018 16:13:10 +0200 Subject: [PATCH] Patch 3 - Move reinterlace to tinterlace --- configure | 1 - libavfilter/Makefile | 1 - libavfilter/allfilters.c | 1 - libavfilter/reinterlace.h | 105 libavfilter/tinterlace.h | 113 ++-- libavfilter/vf_reinterlace.c | 775 libavfilter/vf_tinterlace.c | 822 +- libavfilter/x86/Makefile | 1 - libavfilter/x86/vf_reinterlace_init.c | 102 libavfilter/x86/vf_tinterlace_init.c | 41 +- 10 files changed, 633 insertions(+), 1329 deletions(-) delete mode 100644 libavfilter/reinterlace.h delete mode 100644 libavfilter/vf_reinterlace.c delete mode 100644 libavfilter/x86/vf_reinterlace_init.c diff --git a/configure b/configure index 5783407bdc..0a33a8dcb3 100755 --- a/configure +++ b/configure @@ -3415,7 +3415,6 @@ stereo3d_filter_deps="gpl" subtitles_filter_deps="avformat avcodec libass" super2xsai_filter_deps="gpl" pixfmts_super2xsai_test_deps="super2xsai_filter" -tinterlace_filter_deps="gpl" tinterlace_merge_test_deps="tinterlace_filter" tinterlace_pad_test_deps="tinterlace_filter" tonemap_filter_deps="const_nan" diff --git a/libavfilter/Makefile b/libavfilter/Makefile index 49fad08290..5d4549e24c 100644 --- a/libavfilter/Makefile +++ b/libavfilter/Makefile @@ -245,7 +245,6 @@ OBJS-$(CONFIG_IDET_FILTER) += vf_idet.o OBJS-$(CONFIG_IL_FILTER) += vf_il.o OBJS-$(CONFIG_INFLATE_FILTER)+= vf_neighbor.o OBJS-$(CONFIG_INTERLACE_FILTER) += vf_tinterlace.o -OBJS-$(CONFIG_REINTERLACE_FILTER)+= vf_reinterlace.o OBJS-$(CONFIG_INTERLEAVE_FILTER) += f_interleave.o OBJS-$(CONFIG_KERNDEINT_FILTER) += vf_kerndeint.o OBJS-$(CONFIG_LENSCORRECTION_FILTER) += vf_lenscorrection.o diff --git a/libavfilter/allfilters.c b/libavfilter/allfilters.c index 874d25e72f..521bc53164 100644 --- a/libavfilter/allfilters.c +++ b/libavfilter/allfilters.c @@ -347,7 +347,6 @@ extern AVFilter ff_vf_thumbnail; extern AVFilter ff_vf_thumbnail_cuda; extern AVFilter ff_vf_tile; extern AVFilter ff_vf_tinterlace; -extern AVFilter ff_vf_reinterlace; extern AVFilter ff_vf_tlut2; extern AVFilter ff_vf_tmix; extern AVFilter ff_vf_tonemap; diff --git a/libavfilter/reinterlace.h b/libavfilter/reinterlace.h deleted file mode 100644 index b75a79d7ae..00 --- a/libavfilter/reinterlace.h +++ /dev/null @@ -1,105 +0,0 @@ -/* - * Copyright (c) 2017 Vasile Toncu - * Copyright (c) 2017 Thomas Mundt - * - * This file is part of FFmpeg. - * - * FFmpeg 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. - * - * FFmpeg 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 FFmpeg; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -/** - * @file - * Reinterlace filter - */ - -#ifndef AVFILTER_REINTERLACE_H -#define AVFILTER_REINTERLACE_H - -#include "avfilter.h" -#include "formats.h" -#include "internal.h" -#include "video.h" -#include "libavutil/avassert.h" -#include "libavutil/imgutils.h" -#include "libavutil/opt.h" -#include "libavutil/pixdesc.h" -#include "libavutil/bswap.h" - -enum FilterMode { -MODE_MERGE, -MODE_DROP_EVEN, -MODE_DROP_ODD, -MODE_PAD, - MODE_INTERLEAVE_TOP, -MODE_INTERLEAVE_BOTTOM, -MODE_INTERLACE_X2, -MODE_MERGE_X2, -MODE_MERGE_TFF, -MODE_MERGE_BFF, -MODE_NB, - }; - -enum FilterFlags { -FLAG_NOTHING= 0x00, -FLAG_VLPF = 0x01, -FLAG_EXACT_TB = 0x02, -FLAG_CVLPF = 0x04, -FLAG_NB -}; - -typedef struct { -const AVClass *class; -int mode; -int flags; - -AVFrame *prev_frame, *current_frame; -int64_t current_frame_index; - -uint8_t *black_vec[4]; -int black_linesize[4]; - -int skip_next_frame; - -void *thread_data; - -uint8_t bit_depth; - -void (*lowpass_line)(uint8_t *dstp, ptrdiff_t width, const uint8_t *srcp, - ptrdiff_t mref, ptrdiff_t pref, int clip_max); - -AVRational preout_time_base; - - } ReInterlaceContext; - -#if CONFIG_GPL -void ff_reinterlace_init_x86(ReInterlaceContext *reinterlace); -#endif - -#define OFFSET(x) offsetof
Re: [FFmpeg-devel] [PATCH 3/5] Renamed reinterlace to tinterlace
Hi, 2018-05-30 16:10 GMT+02:00 Vasile Toncu : > Hello, > > I've sent a wrong version in the previous email for patch 3. Please > ignore. This is the corect one. the compiler warnings are gone, but fate-filter-pixfmts-tinterlace_pad still fails. Why do you replace the usage of draw utils for generating the black lines in pad mode? It´s not necessary for the relicensing since I implemented their usage in vf_tintelace: https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/58ca446672fec10e851b820ce7df64bd2d1f3a70 Regards, Thomas ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
Re: [FFmpeg-devel] [PATCH 3/5] Renamed reinterlace to tinterlace
Hello, I've sent a wrong version in the previous email for patch 3. Please ignore. This is the corect one. Have a good day, Vasile Toncu >From 5898c531066f8e6c034eb1c882000f60ba4f0cb9 Mon Sep 17 00:00:00 2001 From: Vasile Toncu Date: Tue, 29 May 2018 18:29:06 +0300 Subject: [PATCH] Reint-Patch3 --- configure | 1 - libavfilter/Makefile | 1 - libavfilter/allfilters.c | 1 - libavfilter/reinterlace.h | 131 -- libavfilter/tinterlace.h | 116 +++-- libavfilter/vf_reinterlace.c | 768 --- libavfilter/vf_tinterlace.c | 834 ++ libavfilter/x86/Makefile | 1 - libavfilter/x86/vf_reinterlace_init.c | 101 libavfilter/x86/vf_tinterlace_init.c | 41 +- 10 files changed, 651 insertions(+), 1344 deletions(-) delete mode 100644 libavfilter/reinterlace.h delete mode 100644 libavfilter/vf_reinterlace.c delete mode 100644 libavfilter/x86/vf_reinterlace_init.c diff --git a/configure b/configure index 22eeca2..20d9eee 100755 --- a/configure +++ b/configure @@ -3400,7 +3400,6 @@ stereo3d_filter_deps="gpl" subtitles_filter_deps="avformat avcodec libass" super2xsai_filter_deps="gpl" pixfmts_super2xsai_test_deps="super2xsai_filter" -tinterlace_filter_deps="gpl" tinterlace_merge_test_deps="tinterlace_filter" tinterlace_pad_test_deps="tinterlace_filter" tonemap_filter_deps="const_nan" diff --git a/libavfilter/Makefile b/libavfilter/Makefile index 39f9cb7..c68ef05 100644 --- a/libavfilter/Makefile +++ b/libavfilter/Makefile @@ -239,7 +239,6 @@ OBJS-$(CONFIG_IDET_FILTER) += vf_idet.o OBJS-$(CONFIG_IL_FILTER) += vf_il.o OBJS-$(CONFIG_INFLATE_FILTER)+= vf_neighbor.o OBJS-$(CONFIG_INTERLACE_FILTER) += vf_tinterlace.o -OBJS-$(CONFIG_REINTERLACE_FILTER)+= vf_reinterlace.o OBJS-$(CONFIG_INTERLEAVE_FILTER) += f_interleave.o OBJS-$(CONFIG_KERNDEINT_FILTER) += vf_kerndeint.o OBJS-$(CONFIG_LENSCORRECTION_FILTER) += vf_lenscorrection.o diff --git a/libavfilter/allfilters.c b/libavfilter/allfilters.c index 0b6f585..b44093d 100644 --- a/libavfilter/allfilters.c +++ b/libavfilter/allfilters.c @@ -340,7 +340,6 @@ extern AVFilter ff_vf_thumbnail; extern AVFilter ff_vf_thumbnail_cuda; extern AVFilter ff_vf_tile; extern AVFilter ff_vf_tinterlace; -extern AVFilter ff_vf_reinterlace; extern AVFilter ff_vf_tlut2; extern AVFilter ff_vf_tmix; extern AVFilter ff_vf_tonemap; diff --git a/libavfilter/reinterlace.h b/libavfilter/reinterlace.h deleted file mode 100644 index 1035a5b..000 --- a/libavfilter/reinterlace.h +++ /dev/null @@ -1,131 +0,0 @@ -/* - * Copyright (c) 2017 Vasile Toncu - * Copyright (c) 2017 Thomas Mundt - * - * This file is part of FFmpeg. - * - * FFmpeg 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. - * - * FFmpeg 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 FFmpeg; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -/** - * @file - * Reinterlace filter - */ - -#include - -#include "avfilter.h" -#include "formats.h" -#include "internal.h" -#include "video.h" -#include "libavutil/avassert.h" -#include "libavutil/imgutils.h" -#include "libavutil/opt.h" -#include "libavutil/pixdesc.h" - -#include "libavutil/bswap.h" - -enum FilterMode { -MODE_MERGE, -MODE_DROP_EVEN, -MODE_DROP_ODD, -MODE_PAD, -MODE_INTERLEAVE_TOP, -MODE_INTERLEAVE_BOTTOM, -MODE_INTERLACE_X2, -MODE_MERGE_X2, -MODE_MERGE_TFF, -MODE_MERGE_BFF, -MODE_NB -}; - -enum FilterFlags { -FLAG_NOTHING= 0x00, -FLAG_VLPF = 0x01, -FLAG_EXACT_TB = 0x02, -FLAG_CVLPF = 0x04, -FLAG_NB -}; - -static const AVRational standard_tbs[] = { -{1, 25}, -{1, 30}, -{1001, 3}, -}; - -typedef struct { -const AVClass *class; -int mode; -int flags; - -AVFrame *prev_frame, *current_frame; -int64_t current_frame_index; - -void *black_vec[4]; - -int skip_next_frame; - -void *thread_data; - -uint8_t bit_depth; - -void (*lowpass_line)(uint8_t *dstp, ptrdiff_t width, const uint8_t *srcp, - ptrdiff_t mref, ptrdiff_t pref, int clip_max); - -AVRational preout_time_base; - -} ReInterlaceContext; - -#if CONFIG_GPL -void ff_reinterlace_init_x86(ReInterlaceContext *rei
Re: [FFmpeg-devel] [PATCH 3/5] Renamed reinterlace to tinterlace
Hello, Here is patch 3 which renames reinterlace to tinterlace. Fate tests and warnings should be ok now. In patch 4 I will add the new options to the filter. Thank you, Vasile Toncu >From 25d4f0154fe2a8bde3a47491f80ce131ebb20330 Mon Sep 17 00:00:00 2001 From: Vasile Toncu Date: Tue, 29 May 2018 18:29:06 +0300 Subject: [PATCH] Reint-Patch3 --- configure | 1 - libavfilter/Makefile | 1 - libavfilter/allfilters.c | 1 - libavfilter/reinterlace.h | 131 -- libavfilter/tinterlace.h | 156 +-- libavfilter/vf_reinterlace.c | 768 --- libavfilter/vf_tinterlace.c | 826 ++ libavfilter/x86/Makefile | 1 - libavfilter/x86/vf_reinterlace_init.c | 101 - libavfilter/x86/vf_tinterlace_init.c | 41 +- 10 files changed, 668 insertions(+), 1359 deletions(-) delete mode 100644 libavfilter/reinterlace.h delete mode 100644 libavfilter/vf_reinterlace.c delete mode 100644 libavfilter/x86/vf_reinterlace_init.c diff --git a/configure b/configure index 22eeca2..20d9eee 100755 --- a/configure +++ b/configure @@ -3400,7 +3400,6 @@ stereo3d_filter_deps="gpl" subtitles_filter_deps="avformat avcodec libass" super2xsai_filter_deps="gpl" pixfmts_super2xsai_test_deps="super2xsai_filter" -tinterlace_filter_deps="gpl" tinterlace_merge_test_deps="tinterlace_filter" tinterlace_pad_test_deps="tinterlace_filter" tonemap_filter_deps="const_nan" diff --git a/libavfilter/Makefile b/libavfilter/Makefile index 39f9cb7..c68ef05 100644 --- a/libavfilter/Makefile +++ b/libavfilter/Makefile @@ -239,7 +239,6 @@ OBJS-$(CONFIG_IDET_FILTER) += vf_idet.o OBJS-$(CONFIG_IL_FILTER) += vf_il.o OBJS-$(CONFIG_INFLATE_FILTER)+= vf_neighbor.o OBJS-$(CONFIG_INTERLACE_FILTER) += vf_tinterlace.o -OBJS-$(CONFIG_REINTERLACE_FILTER)+= vf_reinterlace.o OBJS-$(CONFIG_INTERLEAVE_FILTER) += f_interleave.o OBJS-$(CONFIG_KERNDEINT_FILTER) += vf_kerndeint.o OBJS-$(CONFIG_LENSCORRECTION_FILTER) += vf_lenscorrection.o diff --git a/libavfilter/allfilters.c b/libavfilter/allfilters.c index 0b6f585..b44093d 100644 --- a/libavfilter/allfilters.c +++ b/libavfilter/allfilters.c @@ -340,7 +340,6 @@ extern AVFilter ff_vf_thumbnail; extern AVFilter ff_vf_thumbnail_cuda; extern AVFilter ff_vf_tile; extern AVFilter ff_vf_tinterlace; -extern AVFilter ff_vf_reinterlace; extern AVFilter ff_vf_tlut2; extern AVFilter ff_vf_tmix; extern AVFilter ff_vf_tonemap; diff --git a/libavfilter/reinterlace.h b/libavfilter/reinterlace.h deleted file mode 100644 index 1035a5b..000 --- a/libavfilter/reinterlace.h +++ /dev/null @@ -1,131 +0,0 @@ -/* - * Copyright (c) 2017 Vasile Toncu - * Copyright (c) 2017 Thomas Mundt - * - * This file is part of FFmpeg. - * - * FFmpeg 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. - * - * FFmpeg 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 FFmpeg; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -/** - * @file - * Reinterlace filter - */ - -#include - -#include "avfilter.h" -#include "formats.h" -#include "internal.h" -#include "video.h" -#include "libavutil/avassert.h" -#include "libavutil/imgutils.h" -#include "libavutil/opt.h" -#include "libavutil/pixdesc.h" - -#include "libavutil/bswap.h" - -enum FilterMode { -MODE_MERGE, -MODE_DROP_EVEN, -MODE_DROP_ODD, -MODE_PAD, -MODE_INTERLEAVE_TOP, -MODE_INTERLEAVE_BOTTOM, -MODE_INTERLACE_X2, -MODE_MERGE_X2, -MODE_MERGE_TFF, -MODE_MERGE_BFF, -MODE_NB -}; - -enum FilterFlags { -FLAG_NOTHING= 0x00, -FLAG_VLPF = 0x01, -FLAG_EXACT_TB = 0x02, -FLAG_CVLPF = 0x04, -FLAG_NB -}; - -static const AVRational standard_tbs[] = { -{1, 25}, -{1, 30}, -{1001, 3}, -}; - -typedef struct { -const AVClass *class; -int mode; -int flags; - -AVFrame *prev_frame, *current_frame; -int64_t current_frame_index; - -void *black_vec[4]; - -int skip_next_frame; - -void *thread_data; - -uint8_t bit_depth; - -void (*lowpass_line)(uint8_t *dstp, ptrdiff_t width, const uint8_t *srcp, - ptrdiff_t mref, ptrdiff_t pref, int clip_max); - -AVRational preout_time_base; - -} ReInterlaceContext; - -#if CONFIG_GPL -voi
Re: [FFmpeg-devel] [PATCH 3/5] Renamed reinterlace to tinterlace
Hi, 2018-04-25 16:24 GMT+02:00 Vasile Toncu : > Hello, > > Here is patch 3. I renamed reinterlace to tinterlace and replaced the > functionality of tinterlace with the one from reinterlace. Please review. > > Thank you, > Vasile > Same as I wrote for your previous version. Lots of compiler warnings. Fate tests fail. Please fix. Regards, Thomas ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
Re: [FFmpeg-devel] [PATCH 3/5] Renamed reinterlace to tinterlace
On 4/25/2018 7:54 PM, Vasile Toncu wrote: Hello, Here is patch 3. I renamed reinterlace to tinterlace and replaced the functionality of tinterlace with the one from reinterlace. Please review. If any options are new or different from the original tinterlace filter, please add doc entries for them in doc/filters.texi Thanks, Gyan ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
Re: [FFmpeg-devel] [PATCH 3/5] Renamed reinterlace to tinterlace
Hello, Here is patch 3. I renamed reinterlace to tinterlace and replaced the functionality of tinterlace with the one from reinterlace. Please review. Thank you, Vasile >From ee33ed769207a99adb193eece32a5043ff0b6d94 Mon Sep 17 00:00:00 2001 From: Vasile Toncu Date: Wed, 25 Apr 2018 11:02:46 +0300 Subject: [PATCH] Patch3 Signed-off-by: Vasile Toncu --- configure | 1 - libavfilter/Makefile | 1 - libavfilter/allfilters.c | 1 - libavfilter/reinterlace.h | 125 - libavfilter/tinterlace.h | 155 +-- libavfilter/vf_reinterlace.c | 765 --- libavfilter/vf_tinterlace.c | 831 +- libavfilter/x86/Makefile | 1 - libavfilter/x86/vf_reinterlace_init.c | 102 - libavfilter/x86/vf_tinterlace_init.c | 42 +- 10 files changed, 664 insertions(+), 1360 deletions(-) delete mode 100644 libavfilter/reinterlace.h delete mode 100644 libavfilter/vf_reinterlace.c delete mode 100644 libavfilter/x86/vf_reinterlace_init.c diff --git a/configure b/configure index dee507c..d8bc940 100755 --- a/configure +++ b/configure @@ -3388,7 +3388,6 @@ stereo3d_filter_deps="gpl" subtitles_filter_deps="avformat avcodec libass" super2xsai_filter_deps="gpl" pixfmts_super2xsai_test_deps="super2xsai_filter" -tinterlace_filter_deps="gpl" tinterlace_merge_test_deps="tinterlace_filter" tinterlace_pad_test_deps="tinterlace_filter" tonemap_filter_deps="const_nan" diff --git a/libavfilter/Makefile b/libavfilter/Makefile index af702ba..8f41805 100644 --- a/libavfilter/Makefile +++ b/libavfilter/Makefile @@ -294,7 +294,6 @@ OBJS-$(CONFIG_RANDOM_FILTER) += vf_random.o OBJS-$(CONFIG_READEIA608_FILTER) += vf_readeia608.o OBJS-$(CONFIG_READVITC_FILTER) += vf_readvitc.o OBJS-$(CONFIG_REALTIME_FILTER) += f_realtime.o -OBJS-$(CONFIG_REINTERLACE_FILTER)+= vf_reinterlace.o OBJS-$(CONFIG_REMAP_FILTER) += vf_remap.o framesync.o OBJS-$(CONFIG_REMOVEGRAIN_FILTER)+= vf_removegrain.o OBJS-$(CONFIG_REMOVELOGO_FILTER) += bbox.o lswsutils.o lavfutils.o vf_removelogo.o diff --git a/libavfilter/allfilters.c b/libavfilter/allfilters.c index 5488ff4..643eec2 100644 --- a/libavfilter/allfilters.c +++ b/libavfilter/allfilters.c @@ -285,7 +285,6 @@ extern AVFilter ff_vf_random; extern AVFilter ff_vf_readeia608; extern AVFilter ff_vf_readvitc; extern AVFilter ff_vf_realtime; -extern AVFilter ff_vf_reinterlace; extern AVFilter ff_vf_remap; extern AVFilter ff_vf_removegrain; extern AVFilter ff_vf_removelogo; diff --git a/libavfilter/reinterlace.h b/libavfilter/reinterlace.h deleted file mode 100644 index f90b43a..000 --- a/libavfilter/reinterlace.h +++ /dev/null @@ -1,125 +0,0 @@ -/* - * Copyright (c) 2018 Vasile Toncu - * Copyright (c) 2017 Thomas Mundt - * - * This file is part of FFmpeg. - * - * FFmpeg 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. - * - * FFmpeg 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 FFmpeg; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include - -#include "avfilter.h" -#include "formats.h" -#include "internal.h" -#include "video.h" -#include "libavutil/avassert.h" -#include "libavutil/imgutils.h" -#include "libavutil/opt.h" -#include "libavutil/pixdesc.h" - -#include "libavutil/bswap.h" - -enum FilterMode { -MODE_MERGE, -MODE_DROP_EVEN, -MODE_DROP_ODD, -MODE_PAD, -MODE_INTERLEAVE_TOP, -MODE_INTERLEAVE_BOTTOM, -MODE_INTERLACE_X2, -MODE_MERGE_X2, -MODE_MERGE_TFF, -MODE_MERGE_BFF, -MODE_NB -}; - -enum FilterFlags { -FLAG_NOTHING= 0x00, -FLAG_VLPF = 0x01, -FLAG_EXACT_TB = 0x02, -FLAG_CVLPF = 0x04, -FLAG_NB -}; - -static const AVRational standard_tbs[] = { -{1, 25}, -{1, 30}, -{1001, 3}, -}; - -typedef struct { -const AVClass *class; -int mode; -int flags; - -AVFrame *prev_frame, *current_frame; -int64_t current_frame_index; - -void *black_vec[4]; - -int skip_next_frame; - -void *thread_data; - -uint8_t bit_depth; - -void (*lowpass_line)(uint8_t *dstp, ptrdiff_t width, const uint8_t *srcp, - ptrdiff_t mref, ptrdiff_t pref, int clip_max); - -AVRational preout_time_base; - -} ReInterlaceContext; - -#if CON