[Cin] Interlace driving me mad .....

Phyllis Smith phylsmith2017 at gmail.com
Sat Nov 28 01:31:56 CET 2020


Andrew,
I am still testing the interlace_aspect_autodetect-11.patch (or 12, now I
can not remember).  I got 1 crash but I can not reproduce it yet so maybe
it was there before the patch anyway.  Do not waste time looking at the
patch until I can confirm or deny.  Thanks, Phyllis
**********************************************************************
Thread 622 "ci" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7ffd71fc3700 (LWP 25673)]
0x0000000000b116c3 in FFMPEG::ff_video_mpeg_color_range
(this=0x7ffe90006340, stream=1) at ffmpeg.C:3612
3612            return ffvideo[stream]->st->codecpar->color_range ==
AVCOL_RANGE_MPEG ? 1 : 0;
Missing separate debuginfos, use: dnf debuginfo-install
OpenEXR-libs-2.3.0-5.fc32.x86_64 alsa-lib-1.2.3.2-1.fc32.x86_64
bzip2-libs-1.0.8-2.fc32.x86_64 dbus-libs-1.12.20-1.fc32.x86_64
elfutils-libelf-0.181-1.fc32.x86_64 expat-2.2.8-2.fc32.x86_64
flac-libs-1.3.3-2.fc32.x86_64 fontconfig-2.13.92-9.fc32.x86_64
freetype-2.10.2-1.fc32.x86_64 gsm-1.0.18-6.fc32.x86_64
ilmbase-2.3.0-4.fc32.x86_64 jbigkit-libs-2.1-18.fc32.x86_64
libICE-1.0.10-3.fc32.x86_64 libSM-1.2.3-5.fc32.x86_64
libX11-1.6.12-1.fc32.x86_64 libX11-xcb-1.6.12-1.fc32.x86_64
libXau-1.0.9-3.fc32.x86_64 libXcursor-1.2.0-2.fc32.x86_64
libXdamage-1.1.5-2.fc32.x86_64 libXext-1.3.4-3.fc32.x86_64
libXfixes-5.0.3-11.fc32.x86_64 libXft-2.3.3-3.fc32.x86_64
libXi-1.7.10-3.fc32.x86_64 libXinerama-1.1.4-5.fc32.x86_64
libXrender-0.9.10-11.fc32.x86_64 libXtst-1.2.3-11.fc32.x86_64
libXv-1.0.11-11.fc32.x86_64 libXxf86vm-1.1.4-13.fc32.x86_64
libasyncns-0.8-18.fc32.x86_64 libdrm-2.4.102-1.fc32.x86_64
libedit-3.1-32.20191231cvs.fc32.x86_64 libffi-3.1-24.fc32.x86_64
libgcc-10.2.1-1.fc32.x86_64 libgcrypt-1.8.5-3.fc32.x86_64
libglvnd-1.3.2-1.fc32.x86_64 libglvnd-glx-1.3.2-1.fc32.x86_64
libgpg-error-1.36-3.fc32.x86_64 libpng-1.6.37-3.fc32.x86_64
libsndfile-1.0.28-12.fc32.x86_64 libstdc++-10.2.1-1.fc32.x86_64
libusbx-1.0.23-1.fc32.x86_64 libuuid-2.35.2-1.fc32.x86_64
libvdpau-1.4-2.fc32.x86_64 libxcb-1.13.1-4.fc32.x86_64
llvm-libs-10.0.1-4.fc32.x86_64 lz4-libs-1.9.1-2.fc32.x86_64
mesa-dri-drivers-20.1.9-1.fc32.x86_64 mesa-libGL-20.1.9-1.fc32.x86_64
mesa-libGLU-9.0.1-2.fc32.x86_64 mesa-libglapi-20.1.9-1.fc32.x86_64
numactl-libs-2.0.12-4.fc32.x86_64 pcre2-10.35-7.fc32.x86_64
pulseaudio-libs-13.99.1-4.fc32.x86_64 sssd-client-2.3.1-2.fc32.x86_64
xz-libs-5.2.5-1.fc32.x86_64
(gdb)

On Wed, Nov 18, 2020 at 9:49 AM Andrew Randrianasulu via Cin <
cin at lists.cinelerra-gg.org> wrote:

> So, I grep'ed ffmpeg-4.3 sources and apparently thise falgs consumed by
> few encoders outside of mpeg2/4:
>
> guest at 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 at 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 at 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
>
> 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
> Cin at lists.cinelerra-gg.org
> https://lists.cinelerra-gg.org/mailman/listinfo/cin
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.cinelerra-gg.org/pipermail/cin/attachments/20201127/9c4a123f/attachment.htm>


More information about the Cin mailing list