Opened 18 months ago
Last modified 9 months ago
#11504 new defect
Some of the hdr10+ sidedata parameter values are incorrect / missing
| Reported by: | uttam_32472 | Owned by: | |
|---|---|---|---|
| Priority: | normal | Component: | undetermined |
| Version: | 7.1 | Keywords: | hdr10plus |
| Cc: | Blocked By: | ||
| Blocking: | Reproduced by developer: | no | |
| Analyzed by developer: | no |
Description
Regarding hdr10+ sidedata handling:
1) Following 3 parameters are missing from corresponding struct: terminal_provide_code, terminal_provider_oriented_code, application_identifier.
The AVDynamicHDRPlus struct doesn't have above three variables: https://github.com/FFmpeg/FFmpeg/blob/49c8f33262d7c113c71cee9cd30b990a92afa0a1/libavutil/hdr_dynamic_metadata.h#L243
2) The member variable itu_t_t35_country_code is incorrectly set to 0.
It can be checked by adding new print statement for this variable via showinfo filter: https://github.com/FFmpeg/FFmpeg/blob/49c8f33262d7c113c71cee9cd30b990a92afa0a1/libavfilter/vf_showinfo.c#L214
Sample command mentioned below which can be tried with any hdr10+ input video file.
./ffmpeg -y -xerror -c:v hevc -i any_hdr10_plus_input.mp4 -filter_complex "showinfo" -vframes 5 -f NULL -
ffmpeg version n7.1.1-2-g68b5db2464 Copyright (c) 2000-2024 the FFmpeg developers
built with gcc 11 (Ubuntu 11.4.0-1ubuntu1~22.04)
configuration: --prefix=../ffmpeg_build --pkg-config-flags=--static --extra-libs='-lpthread -lm' --ld=g++ --bindir=../bin --enable-gpl --enable-libaom --enable-libass --enable-libfdk-aac --enable-libdav1d --enable-libx264 --enable-libx265 --enable-nonfree
libavutil 59. 39.100 / 59. 39.100
libavcodec 61. 19.101 / 61. 19.101
libavformat 61. 7.100 / 61. 7.100
libavdevice 61. 3.100 / 61. 3.100
libavfilter 10. 4.100 / 10. 4.100
libswscale 8. 3.100 / 8. 3.100
libswresample 5. 3.100 / 5. 3.100
libpostproc 58. 3.100 / 58. 3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'any_hdr10_plus_input.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2mp41
encoder : Lavf58.47.100
Duration: 00:00:59.87, start: 0.000000, bitrate: 69798 kb/s
Stream #0:0[0x1](und): Video: hevc (Main 10) (hev1 / 0x31766568), yuv420p10le(tv, bt2020nc/bt2020/smpte2084), 3840x2160 [SAR 1:1 DAR 16:9], 70248 kb/s, 60 fps, 60 tbr, 15360 tbn (default)
Metadata:
Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 5 kb/s (default)
Metadata:
Stream mapping:
Stream #0:0 (hevc) -> showinfo:default
showinfo:default -> Stream #0:0 (wrapped_avframe)
Stream #0:1 -> #0:1 (aac (native) -> pcm_s16le (native))
Press [q] to stop, ? for help
[Parsed_showinfo_0 @ 0x7fcb54003380] config in time_base: 1/15360, frame_rate: 60/1
[Parsed_showinfo_0 @ 0x7fcb54003380] config out time_base: 0/0, frame_rate: 0/0
[Parsed_showinfo_0 @ 0x7fcb54003380] n: 0 pts: 6144 pts_time:0.4 duration: 256 duration_time:0.0166667 fmt:yuv420p10le cl:topleft sar:1/1 s:3840x2160 i:P iskey:1 type:I checksum:56A664D3 plane_checksum:[67520989 1C3199D9 6C8CC162] mean:[147 511 512] stdev:[100.0 9.7 7.4]
[Parsed_showinfo_0 @ 0x7fcb54003380] side data - Mastering display metadata: has_primaries:1 has_luminance:1 r(0.6800,0.3200) g(0.2650,0.6900) b(0.1500 0.0600) wp(0.3127, 0.3290) min_luminance=0.000100, max_luminance=1000.000000
[Parsed_showinfo_0 @ 0x7fcb54003380] side data - Content light level metadata: MaxCLL=1000, MaxFALL=400
[Parsed_showinfo_0 @ 0x7fcb54003380] side data - HDR Dynamic Metadata SMPTE2094-40 (HDR10+): hdr_plus->itu_t_t35_country_code value: 0, application version: 1, num_windows: 1, targeted_system_display_maximum_luminance: 300.0000, window 0 {maxscl: {0.0396,0.0206,0.0205}, average_maxrgb: 0.0009, distribution_maxrgb: {(1,0.0000)(5,0.0209)(10,0.0010)(25,0.0000)(50,0.0000)(75,0.0001)(90,0.0009)(95,0.0072)(99,0.0289)}, fraction_bright_pixels: 0.0000, knee_point: (0.0000,0.0000), bezier_curve_anchors: {0.0997,0.2004,0.3001,0.4008,0.5005,0.6002,0.7009,0.8006,0.9013}}
[Parsed_showinfo_0 @ 0x7fcb54003380] color_range:tv color_space:bt2020nc color_primaries:bt2020 color_trc:smpte2084
Output #0, null, to 'pipe:':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2mp41
encoder : Lavf61.7.100
Stream #0:0: Video: wrapped_avframe, yuv420p10le(tv, bt2020nc/bt2020/smpte2084, progressive), 3840x2160 [SAR 1:1 DAR 16:9], q=2-31, 200 kb/s, 60 fps, 60 tbn
Metadata:
encoder : Lavc61.19.101 wrapped_avframe
Side data:
Mastering Display Metadata, has_primaries:1 has_luminance:1 r(0.6800,0.3200) g(0.2650,0.6900) b(0.1500 0.0600) wp(0.3127, 0.3290) min_luminance=0.000100, max_luminance=1000.000000
Content Light Level Metadata, MaxCLL=1000, MaxFALL=400
Stream #0:1(und): Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s (default)
Metadata:
handler_name : SoundHandler
vendor_id : [0][0][0][0]
encoder : Lavc61.19.101 pcm_s16le
[Parsed_showinfo_0 @ 0x7fcb54003380] n: 1 pts: 6400 pts_time:0.416667 duration: 256 duration_time:0.0166667 fmt:yuv420p10le cl:topleft sar:1/1 s:3840x2160 i:P iskey:0 type:B checksum:E366D184 plane_checksum:[34720CC2 613E174E 2DF4AD74] mean:[147 511 512] stdev:[100.0 9.7 7.4]
[Parsed_showinfo_0 @ 0x7fcb54003380] side data - Mastering display metadata: has_primaries:1 has_luminance:1 r(0.6800,0.3200) g(0.2650,0.6900) b(0.1500 0.0600) wp(0.3127, 0.3290) min_luminance=0.000100, max_luminance=1000.000000
[Parsed_showinfo_0 @ 0x7fcb54003380] side data - Content light level metadata: MaxCLL=1000, MaxFALL=400
[Parsed_showinfo_0 @ 0x7fcb54003380] side data - HDR Dynamic Metadata SMPTE2094-40 (HDR10+): hdr_plus->itu_t_t35_country_code value: 0, application version: 1, num_windows: 1, targeted_system_display_maximum_luminance: 300.0000, window 0 {maxscl: {0.0396,0.0206,0.0205}, average_maxrgb: 0.0009, distribution_maxrgb: {(1,0.0000)(5,0.0209)(10,0.0010)(25,0.0000)(50,0.0000)(75,0.0001)(90,0.0009)(95,0.0072)(99,0.0289)}, fraction_bright_pixels: 0.0000, knee_point: (0.0000,0.0000), bezier_curve_anchors: {0.0997,0.2004,0.3001,0.4008,0.5005,0.6002,0.7009,0.8006,0.9013}}
[Parsed_showinfo_0 @ 0x7fcb54003380] color_range:tv color_space:bt2020nc color_primaries:bt2020 color_trc:smpte2084
[Parsed_showinfo_0 @ 0x7fcb54003380] n: 2 pts: 6656 pts_time:0.433333 duration: 256 duration_time:0.0166667 fmt:yuv420p10le cl:topleft sar:1/1 s:3840x2160 i:P iskey:0 type:B checksum:DE4C2336 plane_checksum:[F59C5E65 613E174E 2DF4AD74] mean:[147 511 512] stdev:[100.0 9.7 7.4]
[Parsed_showinfo_0 @ 0x7fcb54003380] side data - Mastering display metadata: has_primaries:1 has_luminance:1 r(0.6800,0.3200) g(0.2650,0.6900) b(0.1500 0.0600) wp(0.3127, 0.3290) min_luminance=0.000100, max_luminance=1000.000000
[Parsed_showinfo_0 @ 0x7fcb54003380] side data - Content light level metadata: MaxCLL=1000, MaxFALL=400
[Parsed_showinfo_0 @ 0x7fcb54003380] side data - HDR Dynamic Metadata SMPTE2094-40 (HDR10+): hdr_plus->itu_t_t35_country_code value: 0, application version: 1, num_windows: 1, targeted_system_display_maximum_luminance: 300.0000, window 0 {maxscl: {0.0396,0.0206,0.0205}, average_maxrgb: 0.0009, distribution_maxrgb: {(1,0.0000)(5,0.0209)(10,0.0010)(25,0.0000)(50,0.0000)(75,0.0001)(90,0.0009)(95,0.0072)(99,0.0289)}, fraction_bright_pixels: 0.0000, knee_point: (0.0000,0.0000), bezier_curve_anchors: {0.0997,0.2004,0.3001,0.4008,0.5005,0.6002,0.7009,0.8006,0.9013}}
[Parsed_showinfo_0 @ 0x7fcb54003380] color_range:tv color_space:bt2020nc color_primaries:bt2020 color_trc:smpte2084
[Parsed_showinfo_0 @ 0x7fcb54003380] n: 3 pts: 6912 pts_time:0.45 duration: 256 duration_time:0.0166667 fmt:yuv420p10le cl:topleft sar:1/1 s:3840x2160 i:P iskey:0 type:B checksum:0A96F52D plane_checksum:[BA8E3AE4 91090CD5 2DF4AD74] mean:[147 511 512] stdev:[100.0 9.7 7.4]
[Parsed_showinfo_0 @ 0x7fcb54003380] side data - Mastering display metadata: has_primaries:1 has_luminance:1 r(0.6800,0.3200) g(0.2650,0.6900) b(0.1500 0.0600) wp(0.3127, 0.3290) min_luminance=0.000100, max_luminance=1000.000000
[Parsed_showinfo_0 @ 0x7fcb54003380] side data - Content light level metadata: MaxCLL=1000, MaxFALL=400
[Parsed_showinfo_0 @ 0x7fcb54003380] side data - HDR Dynamic Metadata SMPTE2094-40 (HDR10+): hdr_plus->itu_t_t35_country_code value: 0, application version: 1, num_windows: 1, targeted_system_display_maximum_luminance: 300.0000, window 0 {maxscl: {0.0396,0.0206,0.0205}, average_maxrgb: 0.0009, distribution_maxrgb: {(1,0.0000)(5,0.0209)(10,0.0010)(25,0.0000)(50,0.0000)(75,0.0001)(90,0.0009)(95,0.0072)(99,0.0289)}, fraction_bright_pixels: 0.0000, knee_point: (0.0000,0.0000), bezier_curve_anchors: {0.0997,0.2004,0.3001,0.4008,0.5005,0.6002,0.7009,0.8006,0.9013}}
[Parsed_showinfo_0 @ 0x7fcb54003380] color_range:tv color_space:bt2020nc color_primaries:bt2020 color_trc:smpte2084
[Parsed_showinfo_0 @ 0x7fcb54003380] n: 4 pts: 7168 pts_time:0.466667 duration: 256 duration_time:0.0166667 fmt:yuv420p10le cl:topleft sar:1/1 s:3840x2160 i:P iskey:0 type:P checksum:2F7CA46B plane_checksum:[70C2BDED 34FF2F29 0561B746] mean:[147 511 512] stdev:[100.0 9.7 7.4]
[Parsed_showinfo_0 @ 0x7fcb54003380] side data - Mastering display metadata: has_primaries:1 has_luminance:1 r(0.6800,0.3200) g(0.2650,0.6900) b(0.1500 0.0600) wp(0.3127, 0.3290) min_luminance=0.000100, max_luminance=1000.000000
[Parsed_showinfo_0 @ 0x7fcb54003380] side data - Content light level metadata: MaxCLL=1000, MaxFALL=400
[Parsed_showinfo_0 @ 0x7fcb54003380] side data - HDR Dynamic Metadata SMPTE2094-40 (HDR10+): hdr_plus->itu_t_t35_country_code value: 0, application version: 1, num_windows: 1, targeted_system_display_maximum_luminance: 300.0000, window 0 {maxscl: {0.0396,0.0206,0.0205}, average_maxrgb: 0.0009, distribution_maxrgb: {(1,0.0000)(5,0.0209)(10,0.0010)(25,0.0000)(50,0.0000)(75,0.0001)(90,0.0009)(95,0.0072)(99,0.0289)}, fraction_bright_pixels: 0.0000, knee_point: (0.0000,0.0000), bezier_curve_anchors: {0.0997,0.2004,0.3001,0.4008,0.5005,0.6002,0.7009,0.8006,0.9013}}
[Parsed_showinfo_0 @ 0x7fcb54003380] color_range:tv color_space:bt2020nc color_primaries:bt2020 color_trc:smpte2084
[out#0/null @ 0x55dda90f2540] video:2KiB audio:88KiB subtitle:0KiB other streams:0KiB global headers:0KiB muxing overhead: unknown
frame= 5 fps=0.0 q=-0.0 Lsize=N/A time=00:00:00.46 bitrate=N/A speed=0.785x



terminal_provide_code, terminal_provider_oriented_code, application_identifier and itu_t_t35_country_code are always the same, so it does not matter?