View Bug Details

IDProjectCategoryView StatusLast Update
0001325DCP-o-matic[All Projects] Bugspublic2019-01-31 23:35
ReportercarlAssigned Tocarl 
PrioritynormalSeverityminorReproducibilityalways
Status resolvedResolutionfixed 
Product Version 
Target Version2.14.0Fixed in Version 
Summary0001325: Odd height reported by mediainfo for 4K MXFs
Description

mediainfo reports the following for 4K MXFs made by DoM

Width                                    : 3 996 pixels

Height                                   :  pixel0

Original height                          : 2 160 pixels

TagsNo tags attached.
Estimated work requiredUnknown

Activities

Carsten

2018-06-13 12:19

manager   ~0002485

Yup. MediaInfo 18.05 reports this for a quick test DCP in 4k. I see the same there, also with MXFs created with 2.11.17, and it happens both in Interop and SMPTE.

It looks normal for a commercial 4k Trailer created with (sigh...) Fraunhofer.

  • Carsten

Carsten

2018-06-13 22:02

manager   ~0002486

I have two versions of MediaInfo Installed (both from the App store). I was never inclined enough to find out why these two exist, when the later version received regular updates. Anyway, my old version shows correct Width/Height for 4k DCP-o-matic DCPs, while the latest version reports these strange flags pixel0 and original height/string. But wondering wether that's a bug in MediaInfo?

I have another basic MXF tool that displays

width=3996
height=2160
coded_width=3996
coded_height=2160
has_b_frames=0
sample_aspect_ratio=1\:1
display_aspect_ratio=37\:20

on DCP-o-matic MXFs.
When I feed a Fraunhofer 4k MXF to it, it outputs the same:
width=3996
height=2160
coded_width=3996
coded_height=2160
has_b_frames=0
sample_aspect_ratio=1\:1
display_aspect_ratio=37\:20

When I add the Fraunhofer 4k DCP to a DCP-o-matic project and rewrap/recreate the DCP, MediaInfo gives the same strange header flags as with original DCP-o-matic created content - both in IOP and SMPTE.

MediaInfos XML dialog says:

<track type="Video">
<ID>2</ID>
<Format>JPEG 2000</Format>
<Format_Profile>D-Cinema 4k</Format_Profile>
<Format_Settings_Wrapping>Frame</Format_Settings_Wrapping>
<CodecID>0D010301020C0100-0401020203010104</CodecID>
<Duration>105.875</Duration>
<BitRate>202022560</BitRate>
<Width>3996</Width>
<Height>0</Height>
<Height_Original>2160</Height_Original>
<Sampled_Width>3996</Sampled_Width>
<Sampled_Height>2160</Sampled_Height>
<PixelAspectRatio>1.000</PixelAspectRatio>
<DisplayAspectRatio>1.850</DisplayAspectRatio>
<FrameRate>24.000</FrameRate>
<FrameCount>2541</FrameCount>
<ColorSpace>XYZ</ColorSpace>
<ChromaSubsampling>4:4:4</ChromaSubsampling>
<BitDepth>12</BitDepth>
<ScanType>Progressive</ScanType>
...

  • Carsten

carl

2019-01-31 23:29

administrator   ~0003008

Last edited: 2019-01-31 23:31

View 2 revisions

mediainfo is getting the height from the DisplayHeight property of the MXF header (not the JPEG2000 size). I can't find an equivalent for Width, strangely. This DisplayHeight is never set up by asdcplib.

carl

2019-01-31 23:32

administrator  

medainfo_notes (1,558 bytes)
MI.Inform_Get()

MI is Core

Then in Core.cpp; MI->Inform, MI is MediaInfoNameSpace::MediaInfoList.

MediaInfo_Inform.cpp Inform

MediaInfo_Inform.cpp 228 ish
MediaInfoLib::Config.Inform_Get_

Valeur in MediaInfo_Inform.cpp:594 ih is pixel0 for Height (Nom is Height just above)
StreamPos=0, Champ_Pos=148, Info_Text=1, Valuer=" pixel0"

(then Original height
0, 152, 1, "1 080 pixels")

Get is MediaInfo_Internal::Get (line 1535)

On line 1716 of MediaInfo_Internal.cpp
Stream[StreamKind][StreamPos][Parameter] is " pixel0"
StreamKind=Stream_Video
StreamPos=0
Parameter=148

Stream is a whole bunch of values
print Stream in GDB

1998
1 998 pixels

0
 pixel0

1080
1 080 pixels

i.e. start with 0 then mangle it to pixel0
i.e. it looks like height is being read as 0

Stream is a vector<vector<ZtringList>>

Apparently not written by Set?

File__Analyze::Fill in File__Analyze_Streams.cpp is called with Parameter=148 and Value=" pixel0"
Comes from File__Analyze::Value_Value123 in File__Analyze_Streams.cpp

Parameter 147 comes into that Fill with Value 1080
Maybe coming from File_Jpeg::SIZ in File_Jpeg.cpp

In File__Analyze_Streams.cpp around 465 case Video_Height happens; fills Video_Sampled_Height (a way after Video_Height in enum, 158)

After this, Fill is again called with 147 with Value 0

Comes from File_Mxf.cpp line 3488
Descriptor->second.Height_Display is 0
Descriptor->second.Width_Display is -1

i.e. its the MXF descriptor which has height 0?

mxfdump has StoredWidth=1998, StoredHeight=1080, DisplayHeight=0...
(but no DisplayWidth...)
medainfo_notes (1,558 bytes)

carl

2019-01-31 23:32

administrator   ~0003009

There's my cryptic notes while I was debugging it.

carl

2019-01-31 23:35

administrator   ~0003010

Should be fixed by asdcplib 7be3c75f1aa9d0fd9836f718aacef647180877ad

Bug History

Date Modified Username Field Change
2018-06-12 13:51 carl New Bug
2018-06-13 12:19 Carsten Note Added: 0002485
2018-06-13 22:02 Carsten Note Added: 0002486
2019-01-31 23:29 carl Note Added: 0003008
2019-01-31 23:31 carl Note Edited: 0003008 View Revisions
2019-01-31 23:32 carl File Added: medainfo_notes
2019-01-31 23:32 carl Note Added: 0003009
2019-01-31 23:35 carl Note Added: 0003010
2019-01-31 23:35 carl Assigned To => carl
2019-01-31 23:35 carl Status new => resolved
2019-01-31 23:35 carl Resolution open => fixed