View Bug Details

IDProjectCategoryView StatusLast Update
0002465DCP-o-maticFeaturespublic2023-02-24 10:43
Reportermhm Assigned To 
PrioritynormalSeverityfeatureReproducibilityalways
Status acknowledgedResolutionopen 
Target Version2.16.x 
Summary0002465: Path and file name constraints
Description

I think DoM should at least emit a warning in the case that these are violated. As the Interop (UDF) constraints are a bit messy I think it would be easier to just enforce the SMPTE rules also for interop. Mainly:

  • Each path segment shall match [a-zA-Z0-9-_.]
  • No path segment shall have more than 100 characters
  • The value of the Path element shall not exceed 100 characters in length
  • A Path element value shall have no more than 10 segments

References:

SMPTE:
ST 429-9:2014

7.1 Path
The Path element indicates the complete path for the Chunk, represented as a URI per [RFC 3986]. Its semantics and format are delivery-medium dependent, and constrained by each Map Profile (see Section 9). The value is encoded as an xs:anyURI.
Note: Annex A presents a basic Map Profile.

Annex A Basic Map Profile v2 (Normative)

A.2 Path
Each Path element value shall be a relative-path reference as specified in RFC 3986. No query or fragment component shall be present.
Given a Path element in an Asset Map, the relative-path reference shall be resolved, as specified in RFC 3986, relative to a Base URI consisting of the location of the Asset Map.
(...)
Each path segment, as specified in IETF RFC 3986, shall consist of characters from the set a-z, A-Z, 0-9, “-“ (dash), “_” (underscore) and “.” (period). No segment shall have more than 100 characters, and the value of the Path element shall not exceed 100 characters in length. A Path element value shall have no more than 10 segments. The Path element value shall preserve case (the path and the filename on the filesystem shall have identical case). No two paths in an Asset Map shall have identical value, regardless of case.

INTEROP:
https://interop-docs.cinepedia.com/Document_Release_2.0/mpeg_ii_am_spec.pdf

6.4 Chunk Path Format
The path and filename shall conform to the UDF specification.

http://www.osta.org/specs/pdf/udf201.pdf

  1. Basic Restrictions & Requirements
    File Name Length: Maximum of 255 bytes

4.2.2.1 char FileIdentifier
...
[this section with subsections contain quite involved algorithms for translation of "illegal" names to be used on specific OSes]

TagsNo tags attached.
Branch
Estimated weeks required
Estimated work requiredUndecided

Relationships

related to 0000945 closedcarl Illegal filenames can occur when using template naming 
related to 0000710 closedcarl Set name of MXFs/CPLs etc. 
related to 0001755 closedcarl boost::filesystem::file_size: The system cannot find the path specified 
related to 0000366 closedcarl Filenames suggestions 
related to 0002459 closedcarl Verify fails on Windows, apparently because of non-ASCII filenames 
related to 0001712 acknowledged Option to remove UUID from CPL/PKL names 

Activities

mhm

2023-02-21 01:11

reporter   ~0005515

DoM currently uses a three letter prefix + the full uuid + "." + extension (45 characters) which leaves 54 characters for the rest of the paht element..

Deluxe has this to say ( https://hpaonline.com/wp-content/uploads/2022/07/Deluxe_Source-and-DCP_Delivery_Specifications_v5-11_20220314-2.pdf ).

3.2.4.2 Asset File Names
Asset file names shall be as short as possible to account for path name limitations in an AssetMap (around 100 characters), but unique enough to not cause file name collisions on creating a mapped file set (DCP) of similarly named assets. Full UUID of the asset is not recommended for inclusion in the file name, but partial (first section for example) is acceptable. File names shall only consist of characters from the set a-z, A-Z, 0-9, “-“ (dash), “_” (underscore) and “.” (period), and shall not contain spaces.

mhm

2023-02-24 07:20

reporter   ~0005534

Possibly related to 0002459

mhm

2023-02-24 07:27

reporter   ~0005535

Possibly related also to 0000366

mhm

2023-02-24 07:33

reporter   ~0005536

Maybe add a paramter in the advanced filename template for "film name" (%n) and uuid. (%u) (Now the filename always contain the full uuid). And perhaps change the default to "%t_%8u" for compliance with the Deluxe specification.

At the same time it would be helpful to be able to specify how many characters should be used for each %-parameter:

E.g.

%8u = first eight characters of the file UUID

%5n = first five characters of film name in lower case and " " replaced with "_"

mhm

2023-02-24 07:35

reporter   ~0005537

Possibly related also to 0001755

mhm

2023-02-24 07:39

reporter   ~0005538

Possibly also related to 0000710

Bug History

Date Modified Username Field Change
2023-02-21 00:28 mhm New Bug
2023-02-21 01:11 mhm Note Added: 0005515
2023-02-21 09:50 carl Relationship added related to 0000945
2023-02-21 09:52 carl Relationship added related to 0001712
2023-02-22 22:45 carl Status new => acknowledged
2023-02-22 22:45 carl Target Version => 2.16.x
2023-02-22 22:45 carl Estimated work required => Undecided
2023-02-24 07:20 mhm Note Added: 0005534
2023-02-24 07:27 mhm Note Added: 0005535
2023-02-24 07:33 mhm Note Added: 0005536
2023-02-24 07:35 mhm Note Added: 0005537
2023-02-24 07:39 mhm Note Added: 0005538
2023-02-24 10:41 carl Relationship added related to 0000710
2023-02-24 10:41 carl Relationship added related to 0001755
2023-02-24 10:43 carl Relationship added related to 0000366
2023-02-24 10:43 carl Relationship added related to 0002459