Netflix / photon

Photon is a Java implementation of the Interoperable Master Format (IMF) standard. IMF is a SMPTE standard whose core constraints are defined in the specification st2067-2:2013
Apache License 2.0
237 stars 77 forks source link

Refactoring and code cleanup related to parsing CompositionPlaylistType. #279

Closed davidt-netflix closed 4 years ago

davidt-netflix commented 4 years ago

This refactoring work will greatly simplify some of the next changes that will be needed to add support for IMF 2020.

I tried to move most of the version-specific parsing logic into the CompositionModel classes, so that IMFCompositionPlaylistType could be more agnostic to the underlying JAXB classes. The conversion and parsing logic was refactored into separate methods.

codecov[bot] commented 4 years ago

Codecov Report

Merging #279 into master will decrease coverage by 0.02%. The diff coverage is 75.00%.

Impacted file tree graph

@@             Coverage Diff              @@
##             master     #279      +/-   ##
============================================
- Coverage     67.95%   67.92%   -0.03%     
- Complexity     1688     1700      +12     
============================================
  Files           166      166              
  Lines         11546    11495      -51     
  Branches       1731     1704      -27     
============================================
- Hits           7846     7808      -38     
- Misses         2884     2888       +4     
+ Partials        816      799      -17     
Impacted Files Coverage Δ Complexity Δ
...om/netflix/imflibrary/exceptions/IMFException.java 78.94% <0.00%> (-14.81%) 5.00 <0.00> (ø)
...mflibrary/st2067_2/IMFCompositionPlaylistType.java 66.33% <73.33%> (+1.36%) 20.00 <2.00> (-3.00) :arrow_up:
...brary/st2067_2/CompositionModel_st2067_2_2013.java 74.79% <74.16%> (-2.69%) 26.00 <26.00> (+7.00) :arrow_down:
...brary/st2067_2/CompositionModel_st2067_2_2016.java 76.98% <77.04%> (-3.02%) 25.00 <25.00> (+8.00) :arrow_down:
...lix/imflibrary/st2067_2/IMFMarkerResourceType.java 77.77% <100.00%> (-1.17%) 4.00 <0.00> (ø)
...om/netflix/imflibrary/st2067_2/IMFSegmentType.java 100.00% <100.00%> (ø) 3.00 <0.00> (ø)
...m/netflix/imflibrary/st2067_2/IMFSequenceType.java 100.00% <100.00%> (ø) 5.00 <0.00> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update 1e18d4d...ce5b2fa. Read the comment docs.