Andras, Thank you! I am trying to learn C++ by looking at the code but mostly all I can do is copy other working parts that were patches.
On Sun, Feb 21, 2021 at 7:43 AM Reuss András via Cin < [email protected]> wrote: > Hi, Phyllis, > Not a real problem, here is a patch. > > br > andras > > On 2021. 02. 20. 1:22, Phyllis Smith via Cin wrote: > > Andrew, > > I just noticed these error messages today and was hoping for a > > solution as the interlace mods may not be working as you expected. > > Specifically in the interlace_aspect_autodetect-12 patch that was > > checked into GIT on January 18 the compiler is giving the errors: > > > > fileffmpeg.C: In member function ‘virtual int > > FFOptionsFormatView::handle_event()’: > > fileffmpeg.C:1947:24: warning: ISO C++ forbids converting a string > > constant to ‘char*’ [-Wwrite-strings] > > 1947 | char *replace_name0 = "mov"; > > | ^~~~~ > > fileffmpeg.C:1948:24: warning: ISO C++ forbids converting a string > > constant to ‘char*’ [-Wwrite-strings] > > 1948 | char *replace_name1 = "mpegts"; > > | ^~~~~~~~ > > fileffmpeg.C:1949:24: warning: ISO C++ forbids converting a string > > constant to ‘char*’ [-Wwrite-strings] > > 1949 | char *replace_name2 = "matroska"; > > > > _The patch code was:_ > > --- a/cinelerra-5.1/cinelerra/fileffmpeg.C > > +++ b/cinelerra-5.1/cinelerra/fileffmpeg.C > > @@ -326,7 +326,7 @@ int FileFFMPEG::open_file(int rd, int wr) > > int result = 0; > > if( ff ) return 1; > > ff = new FFMPEG(this); > > ... > > @@ -1938,6 +1943,15 @@ int FFOptionsFormatView::handle_event() > > { > > Asset *asset = fmt_config->asset; > > char *format_name = asset->fformat; > > *+ char *replace_name0 = "mov"; > > + char *replace_name1 = "mpegts"; > > + char *replace_name2 = "matroska";* > > + if (!strcmp(format_name, "qt")) > > > > On Wed, Nov 18, 2020 at 9:49 AM Andrew Randrianasulu via Cin > > <[email protected] <mailto:[email protected]>> wrote: > > > > So, I grep'ed ffmpeg-4.3 sources and apparently thise falgs > > consumed by few encoders outside of mpeg2/4: > > > > guest@slax:/dev/shm/cinelerra/cinelerra-5.1/cinelerra$ grep > > 'AV_CODEC_FLAG_INTERLACED_DCT' ../thirdparty/ffmpeg-4.3/libav > > libavcodec/ libavdevice/ libavfilter/ libavformat/ > > libavresample/ libavutil/ > > guest@slax:/dev/shm/cinelerra/cinelerra-5.1/cinelerra$ grep > > 'AV_CODEC_FLAG_INTERLACED_DCT' > > ../thirdparty/ffmpeg-4.3/libavcodec/*.c > > ../thirdparty/ffmpeg-4.3/libavcodec/cuviddec.c: > > avctx->flags |= AV_CODEC_FLAG_INTERLACED_DCT; > > ../thirdparty/ffmpeg-4.3/libavcodec/cuviddec.c: > > avctx->flags &= ~AV_CODEC_FLAG_INTERLACED_DCT; > > ../thirdparty/ffmpeg-4.3/libavcodec/dnxhddata.c: > > interlaced == !!(avctx->flags & AV_CODEC_FLAG_INTERLACED_DCT) && > > ../thirdparty/ffmpeg-4.3/libavcodec/dnxhdenc.c: if > > (avctx->flags & AV_CODEC_FLAG_INTERLACED_DCT) { > > ../thirdparty/ffmpeg-4.3/libavcodec/dvenc.c: if > > (s->avctx->flags & AV_CODEC_FLAG_INTERLACED_DCT) { > > ../thirdparty/ffmpeg-4.3/libavcodec/libx264.c: > > x4->params.b_interlaced = avctx->flags & > > AV_CODEC_FLAG_INTERLACED_DCT; > > ../thirdparty/ffmpeg-4.3/libavcodec/libxavs.c: > > x4->params.b_interlaced = avctx->flags & > > AV_CODEC_FLAG_INTERLACED_DCT; > > ../thirdparty/ffmpeg-4.3/libavcodec/mpegvideo_enc.c: if > > ((s->avctx->flags & (AV_CODEC_FLAG_INTERLACED_DCT | > > AV_CODEC_FLAG_INTERLACED_ME)) && > > ../thirdparty/ffmpeg-4.3/libavcodec/mpegvideo_enc.c: > > s->progressive_sequence = !(avctx->flags & > > (AV_CODEC_FLAG_INTERLACED_DCT | > > ../thirdparty/ffmpeg-4.3/libavcodec/mpegvideo_enc.c: if > > (s->avctx->flags & AV_CODEC_FLAG_INTERLACED_DCT) { > > ../thirdparty/ffmpeg-4.3/libavcodec/mpegvideo_enc.c: if > > (s->avctx->flags & AV_CODEC_FLAG_INTERLACED_DCT) { > > ../thirdparty/ffmpeg-4.3/libavcodec/nvenc.c: if (ret < 1 && > > avctx->flags & AV_CODEC_FLAG_INTERLACED_DCT) { > > ../thirdparty/ffmpeg-4.3/libavcodec/nvenc.c: if (avctx->flags > > & AV_CODEC_FLAG_INTERLACED_DCT) { > > ../thirdparty/ffmpeg-4.3/libavcodec/nvenc.c: if > > (avctx->flags & AV_CODEC_FLAG_INTERLACED_DCT) { > > ../thirdparty/ffmpeg-4.3/libavcodec/pngenc.c: > > s->is_progressive = !!(avctx->flags & AV_CODEC_FLAG_INTERLACED_DCT); > > ../thirdparty/ffmpeg-4.3/libavcodec/proresenc_anatoliy.c: > > ctx->is_interlaced = !!(avctx->flags & > > AV_CODEC_FLAG_INTERLACED_DCT); > > ../thirdparty/ffmpeg-4.3/libavcodec/proresenc_kostya.c: if > > (avctx->flags & AV_CODEC_FLAG_INTERLACED_DCT) > > ../thirdparty/ffmpeg-4.3/libavcodec/proresenc_kostya.c: int > > interlaced = !!(avctx->flags & AV_CODEC_FLAG_INTERLACED_DCT); > > ../thirdparty/ffmpeg-4.3/libavcodec/qsvenc.c: if > > (avctx->flags & AV_CODEC_FLAG_INTERLACED_DCT) { > > guest@slax:/dev/shm/cinelerra/cinelerra-5.1/cinelerra$ grep > > 'AV_CODEC_FLAG_INTERLACED_ME' > > ../thirdparty/ffmpeg-4.3/libavcodec/*.c > > ../thirdparty/ffmpeg-4.3/libavcodec/huffyuvenc.c: > > s->interlaced = avctx->flags & AV_CODEC_FLAG_INTERLACED_ME ? 1 : 0; > > ../thirdparty/ffmpeg-4.3/libavcodec/motion_est.c: if > > ((s->avctx->flags & AV_CODEC_FLAG_INTERLACED_ME) > > ../thirdparty/ffmpeg-4.3/libavcodec/motion_est.c: if > > ((s->avctx->flags & AV_CODEC_FLAG_INTERLACED_ME) > > ../thirdparty/ffmpeg-4.3/libavcodec/motion_est.c: if > > (s->avctx->flags & AV_CODEC_FLAG_INTERLACED_ME) { > > ../thirdparty/ffmpeg-4.3/libavcodec/mpegvideo.c: > > (s->avctx->flags & AV_CODEC_FLAG_INTERLACED_ME)) { > > ../thirdparty/ffmpeg-4.3/libavcodec/mpegvideo_enc.c: if > > ((s->avctx->flags & (AV_CODEC_FLAG_INTERLACED_DCT | > > AV_CODEC_FLAG_INTERLACED_ME)) && > > ../thirdparty/ffmpeg-4.3/libavcodec/mpegvideo_enc.c: > > AV_CODEC_FLAG_INTERLACED_ME) || > > ../thirdparty/ffmpeg-4.3/libavcodec/mpegvideo_enc.c: > > if (s->avctx->flags & AV_CODEC_FLAG_INTERLACED_ME) { > > ../thirdparty/ffmpeg-4.3/libavcodec/mpegvideo_enc.c: > > if (s->avctx->flags & AV_CODEC_FLAG_INTERLACED_ME) { > > ../thirdparty/ffmpeg-4.3/libavcodec/mpegvideo_enc.c: > > if (s->avctx->flags & AV_CODEC_FLAG_INTERLACED_ME) { > > > > > > So, reworked this section again ... basically only excluding > > mjpeg codec case from setting those flags, instead of > > whilelisting mpeg2/4 only > > > > Strangely ffv1/avi shows interlace (with my patch) if source was > > Top Field First and not showing it if source was Bottom Field > > First ..:/ > > > > dv file re-encoded as dv_ntsc.avi shows bff correctly, it seems. > > mp4 container with h264 also gets it right now .... > > mpeg2 works (but not sure if field order correct or now ..I'm > > confused by ffmpeg source :/) > > mkv seems to work (but it was working before) > > > > https://cloud.mail.ru/public/5AM1/275yC576u > > <https://cloud.mail.ru/public/5AM1/275yC576u> > > > > How to test those 'tb/bb/tt/bt' cases? There must be some > > artificial picture clearly showing if I did it wrong ..Not found > > it yet. > > > > > > > > > > -- > > Cin mailing list > > [email protected] <mailto:[email protected]> > > https://lists.cinelerra-gg.org/mailman/listinfo/cin > > <https://lists.cinelerra-gg.org/mailman/listinfo/cin> > > > > > > -- > Cin mailing list > [email protected] > https://lists.cinelerra-gg.org/mailman/listinfo/cin >
-- Cin mailing list [email protected] https://lists.cinelerra-gg.org/mailman/listinfo/cin

