Problem with numeric values in MOVEMENT field in M4B files

In 3.35.1 and 3.36-beta.2 a fully numeric value in the MOVEMENT field is immediately rounded down to the nearest integer. This didn't happen in older versions, but I can't pinpoint in which version problem was introduced. Values containing non-numeric characters are not affected, with the exception that any value that can represent a numeric value (ex -1.6) do have the problem.

Examples:

  • 1.6 -> 1
  • -1.6 -> 65535
  • a1.6 -> a1.6
  • a-1.6 -> a-1.6
  • 1.6a -> 1.6a
  • 1.6 a -> 1.6 a

In my installation MOVEMENT stays as entered:
grafik

Where do you see this change?

3.35.1 and 3.36-beta.2

When I change the value in the Extended Tags dialog it appears to work but when I close and return to the tag panel/file list the value changes to an integer. Opening the extended tag dialog again shows that the value has truly been modified to an integer. If I edit directly in the tag side panel or the file list I see the modification happen instantly.

Sorry, I cannot reproduce it with these steps either.
I just created a new field for MOVEMENT:


Closed and restarted MP3tag and the result stays the same.
Could you please check the definition for that object?

Is this rounding specific to a particular music format, such as MP3?

In my tests using your values, I cannot reproduce this behaviour.
1.6 remains 1.6
-1.6 remains -1.6

FYI...It only happens when the field is saved. When I save changes made in the tag panel or when I move from a field in the file list.

@FatuousJeffrey
Please show us your definition of MOVEMENT in the Tag Panel.
And please show us a screenshot of Alt + T (View -> Extended Tags) from a track including such a wrong content like 65535 in MOVEMENT.

I did check the definition and it looks correct, but I just realized it's only happening for M4B audiobook files. It's happening for the MOVEMENTTOTAL field as well, but appears to work as intended for TRACK, TRACKTOTAL, and others. I checked a few MP3 files and all works as expected.

Apologies for not noticing this earlier.

Yes, for a M4B I can reproduce the behaviour:
MOVEMENT_M4B

Obviously as I didn't catch that it was only happening for M4B files I can no longer be certain it was working in prior versions. I have frequently used decimals in this field with no issue, but they may all have been MP3s.

Such a behaviour can only be fixed by @Florian
So let's wait until he has time to check it.

In m4a format files, the fields for TRACK, TOTALTRACKS, DISCNUMBER, and TOTALDISCS are restricted to integer values. I suspect* this applies to MOVEMENT and MOVEMENTTOTAL as well. Whereas MOVEMENTNAME is a text field and as such open to much more detail.

*This will need @Florian to confirm.

Yes, it's like @MotleyG is describing. The MP4 writer tries hard to interpret the provided data as 16-bit integer (this is what the ©mvi atom requires), and when it fails (i.e., the value is a string and not numeric) the field is written as user-defined MOVEMENT instead of an MP4 ©mvi atom to prevent data loss.


Moving this to Support