Opened 6 years ago

Closed 5 years ago

Last modified 5 years ago

#7157 closed defect (needs_more_info)

Fieild Order isn't recognized

Reported by: ponpon Owned by:
Priority: normal Component: undetermined
Version: unspecified Keywords:
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

Fieild Order isn't recognized
Source

ffmpeg -f lavfi -i yuvtestsrc=r=50 -vf tinterlace=interleave_top,setfield=mode=tff -x264opts tff=1 -t 1 -field_order tt -pix_fmt yuv420p -y tff.mp4
ffmpeg -i tff.mp4
ffmpeg version N-90810-g153e920892 Copyright (c) 2000-2018 the FFmpeg developers
  built with clang version 5.0.1 (tags/RELEASE_501/final)
  configuration: --prefix=/sw --cc=clang-mp-5.0 --cxx=clang++-mp-5.0 --disable-shared --enable-static --enable-gpl --enable-version3 --enable-nonfree --enable-pthreads --optflags=-Ofast --extra-cflags='-I/sw/include -I/opt/local/include ' --extra-ldflags=' -L/sw/lib -L/opt/local/lib -fopenmp' --extra-ldsoflags='-L/sw/lib -L/opt/local/lib -static--target-os=darwin' --arch=x86_64 --cpu=kabylake --enable-avresample --enable-libfdk-aac --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libxvid --enable-libfreetype --enable-gcrypt --enable-gmp --enable-openssl --enable-librtmp --enable-libass --enable-fontconfig --enable-libfribidi --enable-libbluray --enable-libdc1394 --enable-libmodplug --enable-lzma --enable-libx264 --enable-libx265 --enable-libzimg --enable-libvidstab --enable-libsoxr --enable-libsmbclient --enable-libcdio --enable-libtesseract --enable-opengl --enable-opencl --pkg-config-flags=' --libs --static'
  libavutil      56. 15.100 / 56. 15.100
  libavcodec     58. 19.100 / 58. 19.100
  libavformat    58. 13.100 / 58. 13.100
  libavdevice    58.  4.100 / 58.  4.100
  libavfilter     7. 19.100 /  7. 19.100
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  2.100 /  5.  2.100
  libswresample   3.  2.100 /  3.  2.100
  libpostproc    55.  2.100 / 55.  2.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'tff.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf58.13.100
  Duration: 00:00:01.00, start: 0.000000, bitrate: 24 kb/s
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 320x240 [SAR 1:1 DAR 4:3], 14 kb/s, 25 fps, 25 tbr, 12800 tbn, 50 tbc (default)
    Metadata:
      handler_name    : VideoHandler
At least one output file must be specified
ffprobe -select_streams v:0 -show_entries stream=field_order tff.mp4
ffprobe version N-90810-g153e920892 Copyright (c) 2007-2018 the FFmpeg developers
  built with clang version 5.0.1 (tags/RELEASE_501/final)
  configuration: --prefix=/sw --cc=clang-mp-5.0 --cxx=clang++-mp-5.0 --disable-shared --enable-static --enable-gpl --enable-version3 --enable-nonfree --enable-pthreads --optflags=-Ofast --extra-cflags='-I/sw/include -I/opt/local/include ' --extra-ldflags=' -L/sw/lib -L/opt/local/lib -fopenmp' --extra-ldsoflags='-L/sw/lib -L/opt/local/lib -static--target-os=darwin' --arch=x86_64 --cpu=kabylake --enable-avresample --enable-libfdk-aac --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libxvid --enable-libfreetype --enable-gcrypt --enable-gmp --enable-openssl --enable-librtmp --enable-libass --enable-fontconfig --enable-libfribidi --enable-libbluray --enable-libdc1394 --enable-libmodplug --enable-lzma --enable-libx264 --enable-libx265 --enable-libzimg --enable-libvidstab --enable-libsoxr --enable-libsmbclient --enable-libcdio --enable-libtesseract --enable-opengl --enable-opencl --pkg-config-flags=' --libs --static'
  libavutil      56. 15.100 / 56. 15.100
  libavcodec     58. 19.100 / 58. 19.100
  libavformat    58. 13.100 / 58. 13.100
  libavdevice    58.  4.100 / 58.  4.100
  libavfilter     7. 19.100 /  7. 19.100
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  2.100 /  5.  2.100
  libswresample   3.  2.100 /  3.  2.100
  libpostproc    55.  2.100 / 55.  2.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'tff.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf58.13.100
  Duration: 00:00:01.00, start: 0.000000, bitrate: 24 kb/s
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 320x240 [SAR 1:1 DAR 4:3], 14 kb/s, 25 fps, 25 tbr, 12800 tbn, 50 tbc (default)
    Metadata:
      handler_name    : VideoHandler
[STREAM]
field_order=unknown
[/STREAM]

Attachments (4)

tff.mp4 (3.0 KB ) - added by ponpon 6 years ago.
tffmpeg2.vob (14.0 KB ) - added by ponpon 5 years ago.
tffx265.mp4 (4.4 KB ) - added by ponpon 5 years ago.
prog.mp4 (3.3 KB ) - added by ponpon 5 years ago.

Download all attachments as: .zip

Change History (16)

by ponpon, 6 years ago

Attachment: tff.mp4 added

comment:1 by Elon Musk, 6 years ago

It is written in frames, use -show_frames with ffprobe.

comment:2 by Elon Musk, 5 years ago

Resolution: needs_more_info
Status: newclosed

comment:3 by ponpon, 5 years ago

Sorry for not enough explanation.
As the above log, the fieild order of interlaced video made by libx264 isn't displayed.
On the other hand, mediainfo displays it.

mediainfo --"Output=Video;%ScanOrder%" tff.mp4
TFF

As reference, the fieild order of mpeg2 interlaced video made by ffmpeg is displayed as below.

ffmpeg -f lavfi -i yuvtestsrc=r=50 -vf tinterlace=interleave_top,setfield=mode=tff -c:v mpeg2video  -flags +ildct+ilme -top 1 -t 1 -pix_fmt yuv420p -y tffmpeg2.vob
ffmpeg version N-92458-gfc94e9704e Copyright (c) 2000-2018 the FFmpeg developers
  built with clang version 5.0.2 (tags/RELEASE_502/final)
  configuration: --prefix=/sw --cc=clang-mp-5.0 --cxx=clang++-mp-5.0 --disable-shared --enable-static --enable-gpl --enable-version3 --enable-nonfree --enable-pthreads --optflags=-Ofast --extra-cflags='-I/sw/include -I/opt/local/include ' --extra-ldflags=' -L/sw/lib -L/opt/local/lib -fopenmp' --extra-ldsoflags='-L/sw/lib -L/opt/local/lib -static--target-os=darwin' --arch=x86_64 --cpu=kabylake --enable-avresample --enable-libfdk-aac --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libxvid --enable-libfreetype --enable-gcrypt --enable-gmp --enable-openssl --enable-librtmp --enable-libass --enable-fontconfig --enable-libfribidi --enable-libbluray --enable-libdc1394 --enable-libmodplug --enable-lzma --enable-libx264 --enable-libx265 --enable-libzimg --enable-libvidstab --enable-libsoxr --enable-libsmbclient --enable-libcdio --enable-opengl --enable-opencl --pkg-config-flags=' --libs --static'
  libavutil      56. 23.101 / 56. 23.101
  libavcodec     58. 39.100 / 58. 39.100
  libavformat    58. 22.100 / 58. 22.100
  libavdevice    58.  6.100 / 58.  6.100
  libavfilter     7. 44.100 /  7. 44.100
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  4.100 /  5.  4.100
  libswresample   3.  4.100 /  3.  4.100
  libpostproc    55.  4.100 / 55.  4.100
Input #0, lavfi, from 'yuvtestsrc=r=50':
  Duration: N/A, start: 0.000000, bitrate: N/A
    Stream #0:0: Video: rawvideo (444P / 0x50343434), yuv444p, 320x240 [SAR 1:1 DAR 4:3], 50 tbr, 50 tbn, 50 tbc
Stream mapping:
  Stream #0:0 -> #0:0 (rawvideo (native) -> mpeg2video (native))
Press [q] to stop, [?] for help
[svcd @ 0x7fff22856200] VBV buffer size not set, using default size of 230KB
If you want the mpeg file to be compliant to some specification
Like DVD, VCD or others, make sure you set the correct buffer size
Output #0, svcd, to 'tffmpeg2.vob':
  Metadata:
    encoder         : Lavf58.22.100
    Stream #0:0: Video: mpeg2video (Main), yuv420p(top first), 320x240 [SAR 1:1 DAR 4:3], q=2-31, 200 kb/s, 25 fps, 90k tbn, 25 tbc
    Metadata:
      encoder         : Lavc58.39.100 mpeg2video
    Side data:
      cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: -1
frame=   25 fps=0.0 q=1.6 Lsize=      14kB time=00:00:00.92 bitrate= 124.7kbits/s speed=43.5x    
video:12kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 20.127367%

Result of ffprobbe

ffprobe -select_streams v:0 -show_entries stream=field_order tffmpeg2.vob
ffprobe version N-92458-gfc94e9704e Copyright (c) 2007-2018 the FFmpeg developers
  built with clang version 5.0.2 (tags/RELEASE_502/final)
  configuration: --prefix=/sw --cc=clang-mp-5.0 --cxx=clang++-mp-5.0 --disable-shared --enable-static --enable-gpl --enable-version3 --enable-nonfree --enable-pthreads --optflags=-Ofast --extra-cflags='-I/sw/include -I/opt/local/include ' --extra-ldflags=' -L/sw/lib -L/opt/local/lib -fopenmp' --extra-ldsoflags='-L/sw/lib -L/opt/local/lib -static--target-os=darwin' --arch=x86_64 --cpu=kabylake --enable-avresample --enable-libfdk-aac --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libxvid --enable-libfreetype --enable-gcrypt --enable-gmp --enable-openssl --enable-librtmp --enable-libass --enable-fontconfig --enable-libfribidi --enable-libbluray --enable-libdc1394 --enable-libmodplug --enable-lzma --enable-libx264 --enable-libx265 --enable-libzimg --enable-libvidstab --enable-libsoxr --enable-libsmbclient --enable-libcdio --enable-opengl --enable-opencl --pkg-config-flags=' --libs --static'
  libavutil      56. 23.101 / 56. 23.101
  libavcodec     58. 39.100 / 58. 39.100
  libavformat    58. 22.100 / 58. 22.100
  libavdevice    58.  6.100 / 58.  6.100
  libavfilter     7. 44.100 /  7. 44.100
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  4.100 /  5.  4.100
  libswresample   3.  4.100 /  3.  4.100
  libpostproc    55.  4.100 / 55.  4.100
Input #0, mpeg, from 'tffmpeg2.vob':
  Duration: 00:00:00.72, start: 0.540000, bitrate: 159 kb/s
    Stream #0:0[0x1e0]: Video: mpeg2video (Main), yuv420p(tv, top first), 320x240 [SAR 1:1 DAR 4:3], 25 fps, 25 tbr, 90k tbn, 50 tbc
[STREAM]
field_order=tt
[/STREAM]

Result of mediainfo

mediainfo --"Output=Video;%ScanOrder%" tffmpeg2.vob
TFF

The result of libx265 is also strange though it may be another ticket.

ffmpeg -f lavfi -i yuvtestsrc=r=50 -vf tinterlace=interleave_top,setfield=mode=tff -c:v libx265 -x265-params interlace=tff -t 1 -pix_fmt yuv420p -y tffx265.mp4
ffmpeg version N-92458-gfc94e9704e Copyright (c) 2000-2018 the FFmpeg developers
  built with clang version 5.0.2 (tags/RELEASE_502/final)
  configuration: --prefix=/sw --cc=clang-mp-5.0 --cxx=clang++-mp-5.0 --disable-shared --enable-static --enable-gpl --enable-version3 --enable-nonfree --enable-pthreads --optflags=-Ofast --extra-cflags='-I/sw/include -I/opt/local/include ' --extra-ldflags=' -L/sw/lib -L/opt/local/lib -fopenmp' --extra-ldsoflags='-L/sw/lib -L/opt/local/lib -static--target-os=darwin' --arch=x86_64 --cpu=kabylake --enable-avresample --enable-libfdk-aac --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libxvid --enable-libfreetype --enable-gcrypt --enable-gmp --enable-openssl --enable-librtmp --enable-libass --enable-fontconfig --enable-libfribidi --enable-libbluray --enable-libdc1394 --enable-libmodplug --enable-lzma --enable-libx264 --enable-libx265 --enable-libzimg --enable-libvidstab --enable-libsoxr --enable-libsmbclient --enable-libcdio --enable-opengl --enable-opencl --pkg-config-flags=' --libs --static'
  libavutil      56. 23.101 / 56. 23.101
  libavcodec     58. 39.100 / 58. 39.100
  libavformat    58. 22.100 / 58. 22.100
  libavdevice    58.  6.100 / 58.  6.100
  libavfilter     7. 44.100 /  7. 44.100
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  4.100 /  5.  4.100
  libswresample   3.  4.100 /  3.  4.100
  libpostproc    55.  4.100 / 55.  4.100
Input #0, lavfi, from 'yuvtestsrc=r=50':
  Duration: N/A, start: 0.000000, bitrate: N/A
    Stream #0:0: Video: rawvideo (444P / 0x50343434), yuv444p, 320x240 [SAR 1:1 DAR 4:3], 50 tbr, 50 tbn, 50 tbc
Stream mapping:
  Stream #0:0 -> #0:0 (rawvideo (native) -> hevc (libx265))
Press [q] to stop, [?] for help
x265 [info]: HEVC encoder version 2.8+68-fa57fa584898
x265 [info]: build info [Mac OS X][clang 5.0.2][64 bit] 8bit+10bit+12bit
x265 [info]: using cpu capabilities: MMX2 SSE2Fast LZCNT SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
x265 [warning]: Support for interlaced video is experimental
x265 [info]: Main profile, Level-2 (Main tier)
x265 [info]: Thread pool created using 8 threads
x265 [info]: Slices                              : 1
x265 [info]: frame threads / pool features       : 3 / wpp(4 rows)
x265 [warning]: Source height < 720p; disabling lookahead-slices
x265 [info]: Interlaced field inputs             : tff
x265 [info]: Coding QT: max CU size, min CU size : 64 / 8
x265 [info]: Residual QT: max TU size, max depth : 32 / 1 inter / 1 intra
x265 [info]: ME / range / subpel / merge         : hex / 57 / 2 / 2
x265 [info]: Keyframe min / max / scenecut / bias: 25 / 250 / 40 / 5.00
x265 [info]: Lookahead / bframes / badapt        : 20 / 4 / 2
x265 [info]: b-pyramid / weightp / weightb       : 1 / 1 / 0
x265 [info]: References / ref-limit  cu / depth  : 3 / on / on
x265 [info]: AQ: mode / str / qg-size / cu-tree  : 1 / 1.0 / 32 / 1
x265 [info]: Rate Control / qCompress            : CRF-28.0 / 0.60
x265 [info]: tools: rd=3 psy-rd=2.00 rskip signhide tmvp strong-intra-smoothing
x265 [info]: tools: deblock sao
Output #0, mp4, to 'tffx265.mp4':
  Metadata:
    encoder         : Lavf58.22.100
    Stream #0:0: Video: hevc (libx265) (hev1 / 0x31766568), yuv420p, 320x240 [SAR 1:1 DAR 4:3], q=2-31, 25 fps, 12800 tbn, 25 tbc
    Metadata:
      encoder         : Lavc58.39.100 libx265
frame=   25 fps=0.0 q=-0.0 Lsize=       4kB time=00:00:00.88 bitrate=  41.0kbits/s speed=9.39x    
video:1kB audio:0kB subtitle:0kB other streams:0kB global headers:2kB muxing overhead: 258.393005%
x265 [info]: frame I:      1, Avg QP:26.62  kb/s: 74.40   
x265 [info]: frame P:      5, Avg QP:33.00  kb/s: 5.24    
x265 [info]: frame B:     19, Avg QP:35.74  kb/s: 4.52    
x265 [info]: Weighted P-Frames: Y:0.0% UV:0.0%
x265 [info]: consecutive B-frames: 16.7% 0.0% 0.0% 16.7% 66.7% 

encoded 25 frames in 0.09s (291.11 fps), 7.46 kb/s, Avg QP:34.82

Result of ffprobe

 ffprobe -select_streams v:0 -show_entries stream=field_order tffx265.mp4
ffprobe version N-92458-gfc94e9704e Copyright (c) 2007-2018 the FFmpeg developers
  built with clang version 5.0.2 (tags/RELEASE_502/final)
  configuration: --prefix=/sw --cc=clang-mp-5.0 --cxx=clang++-mp-5.0 --disable-shared --enable-static --enable-gpl --enable-version3 --enable-nonfree --enable-pthreads --optflags=-Ofast --extra-cflags='-I/sw/include -I/opt/local/include ' --extra-ldflags=' -L/sw/lib -L/opt/local/lib -fopenmp' --extra-ldsoflags='-L/sw/lib -L/opt/local/lib -static--target-os=darwin' --arch=x86_64 --cpu=kabylake --enable-avresample --enable-libfdk-aac --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libxvid --enable-libfreetype --enable-gcrypt --enable-gmp --enable-openssl --enable-librtmp --enable-libass --enable-fontconfig --enable-libfribidi --enable-libbluray --enable-libdc1394 --enable-libmodplug --enable-lzma --enable-libx264 --enable-libx265 --enable-libzimg --enable-libvidstab --enable-libsoxr --enable-libsmbclient --enable-libcdio --enable-opengl --enable-opencl --pkg-config-flags=' --libs --static'
  libavutil      56. 23.101 / 56. 23.101
  libavcodec     58. 39.100 / 58. 39.100
  libavformat    58. 22.100 / 58. 22.100
  libavdevice    58.  6.100 / 58.  6.100
  libavfilter     7. 44.100 /  7. 44.100
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  4.100 /  5.  4.100
  libswresample   3.  4.100 /  3.  4.100
  libpostproc    55.  4.100 / 55.  4.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'tffx265.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2mp41
    encoder         : Lavf58.22.100
  Duration: 00:00:01.00, start: 0.000000, bitrate: 36 kb/s
    Stream #0:0(und): Video: hevc (Main) (hev1 / 0x31766568), yuv420p(tv, top coded first (swapped)), 320x240 [SAR 1:1 DAR 4:3], 10 kb/s, 25 fps, 25 tbr, 12800 tbn, 25 tbc (default)
    Metadata:
      handler_name    : VideoHandler
[STREAM]
field_order=tb
[/STREAM]

Result of mediainfo

mediainfo --"Output=Video;%ScanOrder%" tffx265.mp4
TFF

comment:4 by ponpon, 5 years ago

files

Last edited 5 years ago by ponpon (previous) (diff)

by ponpon, 5 years ago

Attachment: tffmpeg2.vob added

by ponpon, 5 years ago

Attachment: tffx265.mp4 added

comment:5 by Elon Musk, 5 years ago

For mov/mp4 files, only fiel atom signals field order from stream level. And it is not set for h264 codec.

in reply to:  5 comment:6 by ponpon, 5 years ago

Replying to richardpl:
Thank you for your reply and help.
For h265,

[STREAM]
field_order=tb
[/STREAM]

is displayed though -x265-params interlace=tff is set.
Should I make a new ticket?

comment:7 by Elon Musk, 5 years ago

Why? What is actual bug you see?

in reply to:  7 comment:8 by ponpon, 5 years ago

Replying to richardpl:
I understand that tb is top coded first and bottom displayed first.
I expected tt (top field coded and displayed first).
My misunderstanding?

comment:9 by Elon Musk, 5 years ago

For h265 case you do not set field_order at all.
For h264 i sent patch.

in reply to:  9 comment:10 by ponpon, 5 years ago

Replying to richardpl:

For h264 i sent patch.

GJ! The patch works well in my test!

For h265 case you do not set field_order at all.

Is -x265-params interlace=tff a wrong option?

comment:11 by Elon Musk, 5 years ago

No, the hevc decoder might need similar patch.

in reply to:  11 comment:12 by ponpon, 5 years ago

Replying to richardpl:
Thank you for the explanation.
I am looking forward to merge your patch.

In my retest, progressive is not displayed. Is it normal?

ffmpeg -f lavfi -i yuvtestsrc=r=50 -t 1 -pix_fmt yuv420p -y prog.mp4
ffprobe -select_streams v:0 -show_entries stream=field_order prog.mp4
ffprobe version N-92499-gfe9b990ec9 Copyright (c) 2007-2018 the FFmpeg developers
  built with clang version 5.0.2 (tags/RELEASE_502/final)
  configuration: --prefix= --cc=clang-mp-5.0 --cxx=clang++-mp-5.0
  libavutil      56. 23.101 / 56. 23.101
  libavcodec     58. 39.100 / 58. 39.100
  libavformat    58. 22.100 / 58. 22.100
  libavdevice    58.  6.100 / 58.  6.100
  libavfilter     7. 46.100 /  7. 46.100
  libswscale      5.  4.100 /  5.  4.100
  libswresample   3.  4.100 /  3.  4.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'prog.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf58.22.100
  Duration: 00:00:01.00, start: 0.000000, bitrate: 26 kb/s
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 320x240 [SAR 1:1 DAR 4:3], 15 kb/s, 50 fps, 50 tbr, 12800 tbn, 100 tbc (default)
    Metadata:
      handler_name    : VideoHandler
[STREAM]
field_order=unknown
[/STREAM]

by ponpon, 5 years ago

Attachment: prog.mp4 added
Note: See TracTickets for help on using tickets.