Opened 5 years ago
Last modified 11 months ago
#8515 open defect
vc1_parser erroneously flagged every packet as keyframe
Reported by: | HolyWu | Owned by: | |
---|---|---|---|
Priority: | important | Component: | avcodec |
Version: | git-master | Keywords: | vc1 regression |
Cc: | Mika Fischer | Blocked By: | |
Blocking: | Reproduced by developer: | no | |
Analyzed by developer: | no |
Description (last modified by )
Since 701e8b42e12ad625c64ceae2252acb1de390278c, vc-1 parser erroneously flagged every packet as keyframe. If you recompile the tool with that commit reverted, you will get the expected result.
The first shows the result with that commit. The second shows the result without that commit.
$ ffprobe -pretty -show_packets vc1_sample.mkv [PACKET] codec_type=video stream_index=0 pts=N/A pts_time=N/A dts=959 dts_time=0:00:00.959000 duration=41 duration_time=0:00:00.041000 convergence_duration=N/A convergence_duration_time=N/A size=9.016602 Kibyte pos=5494 flags=K_ [/PACKET] [PACKET] codec_type=video stream_index=0 pts=N/A pts_time=N/A dts=1001 dts_time=0:00:01.001000 duration=41 duration_time=0:00:00.041000 convergence_duration=N/A convergence_duration_time=N/A size=1.524414 Kibyte pos=14734 flags=K_ [/PACKET] [PACKET] codec_type=video stream_index=0 pts=N/A pts_time=N/A dts=1043 dts_time=0:00:01.043000 duration=41 duration_time=0:00:00.041000 convergence_duration=N/A convergence_duration_time=N/A size=1.524414 Kibyte pos=16302 flags=K_ [/PACKET] [PACKET] codec_type=video stream_index=0 pts=N/A pts_time=N/A dts=1084 dts_time=0:00:01.084000 duration=41 duration_time=0:00:00.041000 convergence_duration=N/A convergence_duration_time=N/A size=5 byte pos=17869 flags=K_ [/PACKET] [PACKET] codec_type=video stream_index=0 pts=N/A pts_time=N/A dts=1126 dts_time=0:00:01.126000 duration=41 duration_time=0:00:00.041000 convergence_duration=N/A convergence_duration_time=N/A size=1.524414 Kibyte pos=17881 flags=K_ [/PACKET] [PACKET] codec_type=video stream_index=0 pts=N/A pts_time=N/A dts=1168 dts_time=0:00:01.168000 duration=41 duration_time=0:00:00.041000 convergence_duration=N/A convergence_duration_time=N/A size=1.524414 Kibyte pos=19449 flags=K_ [/PACKET] [PACKET] codec_type=video stream_index=0 pts=N/A pts_time=N/A dts=1210 dts_time=0:00:01.210000 duration=41 duration_time=0:00:00.041000 convergence_duration=N/A convergence_duration_time=N/A size=5 byte pos=21016 flags=K_ [/PACKET] [PACKET] codec_type=video stream_index=0 pts=N/A pts_time=N/A dts=1251 dts_time=0:00:01.251000 duration=41 duration_time=0:00:00.041000 convergence_duration=N/A convergence_duration_time=N/A size=1.524414 Kibyte pos=21028 flags=K_ [/PACKET] [PACKET] codec_type=video stream_index=0 pts=N/A pts_time=N/A dts=1293 dts_time=0:00:01.293000 duration=41 duration_time=0:00:00.041000 convergence_duration=N/A convergence_duration_time=N/A size=1.524414 Kibyte pos=22596 flags=K_ [/PACKET] [PACKET] codec_type=video stream_index=0 pts=N/A pts_time=N/A dts=1335 dts_time=0:00:01.335000 duration=41 duration_time=0:00:00.041000 convergence_duration=N/A convergence_duration_time=N/A size=5 byte pos=24163 flags=K_ [/PACKET] [PACKET] codec_type=video stream_index=0 pts=N/A pts_time=N/A dts=1376 dts_time=0:00:01.376000 duration=41 duration_time=0:00:00.041000 convergence_duration=N/A convergence_duration_time=N/A size=1.524414 Kibyte pos=24175 flags=K_ [/PACKET] [PACKET] codec_type=video stream_index=0 pts=N/A pts_time=N/A dts=1418 dts_time=0:00:01.418000 duration=41 duration_time=0:00:00.041000 convergence_duration=N/A convergence_duration_time=N/A size=1.524414 Kibyte pos=25743 flags=K_ [/PACKET] [PACKET] codec_type=video stream_index=0 pts=N/A pts_time=N/A dts=1460 dts_time=0:00:01.460000 duration=41 duration_time=0:00:00.041000 convergence_duration=N/A convergence_duration_time=N/A size=5 byte pos=27310 flags=K_ [/PACKET] [PACKET] codec_type=video stream_index=0 pts=N/A pts_time=N/A dts=1502 dts_time=0:00:01.502000 duration=41 duration_time=0:00:00.041000 convergence_duration=N/A convergence_duration_time=N/A size=1.524414 Kibyte pos=27322 flags=K_ [/PACKET] [PACKET] codec_type=video stream_index=0 pts=N/A pts_time=N/A dts=1543 dts_time=0:00:01.543000 duration=41 duration_time=0:00:00.041000 convergence_duration=N/A convergence_duration_time=N/A size=1.524414 Kibyte pos=28890 flags=K_ [/PACKET] [PACKET] codec_type=video stream_index=0 pts=N/A pts_time=N/A dts=1585 dts_time=0:00:01.585000 duration=41 duration_time=0:00:00.041000 convergence_duration=N/A convergence_duration_time=N/A size=5 byte pos=30457 flags=K_ [/PACKET] [PACKET] codec_type=video stream_index=0 pts=N/A pts_time=N/A dts=1627 dts_time=0:00:01.627000 duration=41 duration_time=0:00:00.041000 convergence_duration=N/A convergence_duration_time=N/A size=1.524414 Kibyte pos=30469 flags=K_ [/PACKET] [PACKET] codec_type=video stream_index=0 pts=N/A pts_time=N/A dts=1668 dts_time=0:00:01.668000 duration=41 duration_time=0:00:00.041000 convergence_duration=N/A convergence_duration_time=N/A size=1.524414 Kibyte pos=32037 flags=K_ [/PACKET] [PACKET] codec_type=video stream_index=0 pts=N/A pts_time=N/A dts=1710 dts_time=0:00:01.710000 duration=41 duration_time=0:00:00.041000 convergence_duration=N/A convergence_duration_time=N/A size=5 byte pos=33604 flags=K_ [/PACKET] [PACKET] codec_type=video stream_index=0 pts=N/A pts_time=N/A dts=1752 dts_time=0:00:01.752000 duration=41 duration_time=0:00:00.041000 convergence_duration=N/A convergence_duration_time=N/A size=1.524414 Kibyte pos=33616 flags=K_ [/PACKET] [PACKET] codec_type=video stream_index=0 pts=N/A pts_time=N/A dts=1793 dts_time=0:00:01.793000 duration=41 duration_time=0:00:00.041000 convergence_duration=N/A convergence_duration_time=N/A size=1.524414 Kibyte pos=35184 flags=K_ [/PACKET] [PACKET] codec_type=video stream_index=0 pts=N/A pts_time=N/A dts=1835 dts_time=0:00:01.835000 duration=41 duration_time=0:00:00.041000 convergence_duration=N/A convergence_duration_time=N/A size=5 byte pos=36751 flags=K_ [/PACKET] [PACKET] codec_type=video stream_index=0 pts=N/A pts_time=N/A dts=1877 dts_time=0:00:01.877000 duration=41 duration_time=0:00:00.041000 convergence_duration=N/A convergence_duration_time=N/A size=1.524414 Kibyte pos=36763 flags=K_ [/PACKET] [PACKET] codec_type=video stream_index=0 pts=N/A pts_time=N/A dts=1919 dts_time=0:00:01.919000 duration=41 duration_time=0:00:00.041000 convergence_duration=N/A convergence_duration_time=N/A size=1.524414 Kibyte pos=38331 flags=K_ [/PACKET] ffprobe version 4.2.git Copyright (c) 2007-2020 the FFmpeg developers built with gcc 9.2.0 (Rev2, Built by MSYS2 project) configuration: --enable-gpl --enable-version3 --disable-doc --disable-debug libavutil 56. 39.100 / 56. 39.100 libavcodec 58. 68.100 / 58. 68.100 libavformat 58. 38.100 / 58. 38.100 libavdevice 58. 9.103 / 58. 9.103 libavfilter 7. 75.100 / 7. 75.100 libswscale 5. 6.100 / 5. 6.100 libswresample 3. 6.100 / 3. 6.100 libpostproc 55. 6.100 / 55. 6.100 Input #0, matroska,webm, from 'vc1_sample.mkv': Metadata: encoder : libebml v1.3.10 + libmatroska v1.5.2 creation_time : 2020-02-09T07:04:30.000000Z Duration: 00:00:01.00, bitrate: 321 kb/s Stream #0:0: Video: vc1 (Advanced) (WVC1 / 0x31435657), yuv420p(progressive), 1920x1080 [SAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc (default) Metadata: BPS-eng : 273405 DURATION-eng : 00:00:01.002000000 NUMBER_OF_FRAMES-eng: 24 NUMBER_OF_BYTES-eng: 34244 _STATISTICS_WRITING_APP-eng: mkvmerge v43.0.0 ('The Quartermaster') 64-bit _STATISTICS_WRITING_DATE_UTC-eng: 2020-02-09 07:04:30 _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
$ ffprobe -pretty -show_packets vc1_sample.mkv [PACKET] codec_type=video stream_index=0 pts=N/A pts_time=N/A dts=959 dts_time=0:00:00.959000 duration=41 duration_time=0:00:00.041000 convergence_duration=N/A convergence_duration_time=N/A size=9.016602 Kibyte pos=5494 flags=K_ [/PACKET] [PACKET] codec_type=video stream_index=0 pts=1001 pts_time=0:00:01.001000 dts=1001 dts_time=0:00:01.001000 duration=41 duration_time=0:00:00.041000 convergence_duration=N/A convergence_duration_time=N/A size=1.524414 Kibyte pos=14734 flags=__ [/PACKET] [PACKET] codec_type=video stream_index=0 pts=1043 pts_time=0:00:01.043000 dts=1043 dts_time=0:00:01.043000 duration=41 duration_time=0:00:00.041000 convergence_duration=N/A convergence_duration_time=N/A size=1.524414 Kibyte pos=16302 flags=__ [/PACKET] [PACKET] codec_type=video stream_index=0 pts=N/A pts_time=N/A dts=1084 dts_time=0:00:01.084000 duration=41 duration_time=0:00:00.041000 convergence_duration=N/A convergence_duration_time=N/A size=5 byte pos=17869 flags=__ [/PACKET] [PACKET] codec_type=video stream_index=0 pts=1126 pts_time=0:00:01.126000 dts=1126 dts_time=0:00:01.126000 duration=41 duration_time=0:00:00.041000 convergence_duration=N/A convergence_duration_time=N/A size=1.524414 Kibyte pos=17881 flags=__ [/PACKET] [PACKET] codec_type=video stream_index=0 pts=1168 pts_time=0:00:01.168000 dts=1168 dts_time=0:00:01.168000 duration=41 duration_time=0:00:00.041000 convergence_duration=N/A convergence_duration_time=N/A size=1.524414 Kibyte pos=19449 flags=__ [/PACKET] [PACKET] codec_type=video stream_index=0 pts=N/A pts_time=N/A dts=1210 dts_time=0:00:01.210000 duration=41 duration_time=0:00:00.041000 convergence_duration=N/A convergence_duration_time=N/A size=5 byte pos=21016 flags=__ [/PACKET] [PACKET] codec_type=video stream_index=0 pts=1251 pts_time=0:00:01.251000 dts=1251 dts_time=0:00:01.251000 duration=41 duration_time=0:00:00.041000 convergence_duration=N/A convergence_duration_time=N/A size=1.524414 Kibyte pos=21028 flags=__ [/PACKET] [PACKET] codec_type=video stream_index=0 pts=1293 pts_time=0:00:01.293000 dts=1293 dts_time=0:00:01.293000 duration=41 duration_time=0:00:00.041000 convergence_duration=N/A convergence_duration_time=N/A size=1.524414 Kibyte pos=22596 flags=__ [/PACKET] [PACKET] codec_type=video stream_index=0 pts=N/A pts_time=N/A dts=1335 dts_time=0:00:01.335000 duration=41 duration_time=0:00:00.041000 convergence_duration=N/A convergence_duration_time=N/A size=5 byte pos=24163 flags=__ [/PACKET] [PACKET] codec_type=video stream_index=0 pts=1376 pts_time=0:00:01.376000 dts=1376 dts_time=0:00:01.376000 duration=41 duration_time=0:00:00.041000 convergence_duration=N/A convergence_duration_time=N/A size=1.524414 Kibyte pos=24175 flags=__ [/PACKET] [PACKET] codec_type=video stream_index=0 pts=1418 pts_time=0:00:01.418000 dts=1418 dts_time=0:00:01.418000 duration=41 duration_time=0:00:00.041000 convergence_duration=N/A convergence_duration_time=N/A size=1.524414 Kibyte pos=25743 flags=__ [/PACKET] [PACKET] codec_type=video stream_index=0 pts=N/A pts_time=N/A dts=1460 dts_time=0:00:01.460000 duration=41 duration_time=0:00:00.041000 convergence_duration=N/A convergence_duration_time=N/A size=5 byte pos=27310 flags=__ [/PACKET] [PACKET] codec_type=video stream_index=0 pts=1502 pts_time=0:00:01.502000 dts=1502 dts_time=0:00:01.502000 duration=41 duration_time=0:00:00.041000 convergence_duration=N/A convergence_duration_time=N/A size=1.524414 Kibyte pos=27322 flags=__ [/PACKET] [PACKET] codec_type=video stream_index=0 pts=1543 pts_time=0:00:01.543000 dts=1543 dts_time=0:00:01.543000 duration=41 duration_time=0:00:00.041000 convergence_duration=N/A convergence_duration_time=N/A size=1.524414 Kibyte pos=28890 flags=__ [/PACKET] [PACKET] codec_type=video stream_index=0 pts=N/A pts_time=N/A dts=1585 dts_time=0:00:01.585000 duration=41 duration_time=0:00:00.041000 convergence_duration=N/A convergence_duration_time=N/A size=5 byte pos=30457 flags=__ [/PACKET] [PACKET] codec_type=video stream_index=0 pts=1627 pts_time=0:00:01.627000 dts=1627 dts_time=0:00:01.627000 duration=41 duration_time=0:00:00.041000 convergence_duration=N/A convergence_duration_time=N/A size=1.524414 Kibyte pos=30469 flags=__ [/PACKET] [PACKET] codec_type=video stream_index=0 pts=1668 pts_time=0:00:01.668000 dts=1668 dts_time=0:00:01.668000 duration=41 duration_time=0:00:00.041000 convergence_duration=N/A convergence_duration_time=N/A size=1.524414 Kibyte pos=32037 flags=__ [/PACKET] [PACKET] codec_type=video stream_index=0 pts=N/A pts_time=N/A dts=1710 dts_time=0:00:01.710000 duration=41 duration_time=0:00:00.041000 convergence_duration=N/A convergence_duration_time=N/A size=5 byte pos=33604 flags=__ [/PACKET] [PACKET] codec_type=video stream_index=0 pts=1752 pts_time=0:00:01.752000 dts=1752 dts_time=0:00:01.752000 duration=41 duration_time=0:00:00.041000 convergence_duration=N/A convergence_duration_time=N/A size=1.524414 Kibyte pos=33616 flags=__ [/PACKET] [PACKET] codec_type=video stream_index=0 pts=1793 pts_time=0:00:01.793000 dts=1793 dts_time=0:00:01.793000 duration=41 duration_time=0:00:00.041000 convergence_duration=N/A convergence_duration_time=N/A size=1.524414 Kibyte pos=35184 flags=__ [/PACKET] [PACKET] codec_type=video stream_index=0 pts=N/A pts_time=N/A dts=1835 dts_time=0:00:01.835000 duration=41 duration_time=0:00:00.041000 convergence_duration=N/A convergence_duration_time=N/A size=5 byte pos=36751 flags=__ [/PACKET] [PACKET] codec_type=video stream_index=0 pts=1877 pts_time=0:00:01.877000 dts=1877 dts_time=0:00:01.877000 duration=41 duration_time=0:00:00.041000 convergence_duration=N/A convergence_duration_time=N/A size=1.524414 Kibyte pos=36763 flags=__ [/PACKET] [PACKET] codec_type=video stream_index=0 pts=1919 pts_time=0:00:01.919000 dts=1919 dts_time=0:00:01.919000 duration=41 duration_time=0:00:00.041000 convergence_duration=N/A convergence_duration_time=N/A size=1.524414 Kibyte pos=38331 flags=__ [/PACKET] ffprobe version 4.2.git Copyright (c) 2007-2020 the FFmpeg developers built with gcc 9.2.0 (Rev2, Built by MSYS2 project) configuration: --enable-gpl --enable-version3 --disable-doc --disable-debug libavutil 56. 39.100 / 56. 39.100 libavcodec 58. 68.100 / 58. 68.100 libavformat 58. 38.100 / 58. 38.100 libavdevice 58. 9.103 / 58. 9.103 libavfilter 7. 75.100 / 7. 75.100 libswscale 5. 6.100 / 5. 6.100 libswresample 3. 6.100 / 3. 6.100 libpostproc 55. 6.100 / 55. 6.100 Input #0, matroska,webm, from 'vc1_sample.mkv': Metadata: encoder : libebml v1.3.10 + libmatroska v1.5.2 creation_time : 2020-02-09T07:04:30.000000Z Duration: 00:00:01.00, bitrate: 321 kb/s Stream #0:0: Video: vc1 (Advanced) (WVC1 / 0x31435657), yuv420p(progressive), 1920x1080 [SAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc (default) Metadata: BPS-eng : 273405 DURATION-eng : 00:00:01.002000000 NUMBER_OF_FRAMES-eng: 24 NUMBER_OF_BYTES-eng: 34244 _STATISTICS_WRITING_APP-eng: mkvmerge v43.0.0 ('The Quartermaster') 64-bit _STATISTICS_WRITING_DATE_UTC-eng: 2020-02-09 07:04:30 _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
Attachments (1)
Change History (7)
by , 5 years ago
Attachment: | vc1_sample.mkv added |
---|
comment:1 by , 5 years ago
Description: | modified (diff) |
---|---|
Keywords: | vc1 regression added; vc-1 parser removed |
Priority: | normal → important |
comment:2 by , 5 years ago
Status: | new → open |
---|
comment:3 by , 4 years ago
Interestingly enough it does not happen in Blu-rays like here
Stream #0:0[0x1011]: Video: vc1 (Advanced) (VC-1 / 0x312D4356), yuv420p(bt709, progressive), 1920x1080 [SAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr, 90k tbn, 47.95 tbc
but it does show some warnings in ffplay while seeking
[vc1 @ 0000026d58d23480] warning: first frame is no keyframe
Also in THIS vc1_sample.mkv file it is a little bit different (WVC1?)
Stream #0:0: Video: vc1 (Advanced) (WVC1 / 0x31435657), yuv420p(progressive), 1920x1080 [SAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc (default)
follow-up: 5 comment:4 by , 4 years ago
It happens whenever the PARSER_FLAG_COMPLETE_FRAMES is set (it is for Matroska), because unesc_index is never reset in this case after having parsed the first frame.
comment:5 by , 3 years ago
Replying to mkver:
It happens whenever the PARSER_FLAG_COMPLETE_FRAMES is set (it is for Matroska), because unesc_index is never reset in this case after having parsed the first frame.
Can you fix it? Or just revert 701e8b42e12ad625c64ceae2252acb1de390278c.
comment:6 by , 11 months ago
Cc: | added |
---|
How does it even work if it thinks every frame is a key frame? WTF?