Small Samsung APV Export Issues in Resolve Studio 20.2.2

Ask software engineering and SDK questions for developers working on Mac OS X, Windows or Linux.
  • Author
  • Message
Offline

Calibrated

  • Posts: 2
  • Joined: Fri Oct 24, 2025 2:47 pm
  • Real Name: Greg Booth

Small Samsung APV Export Issues in Resolve Studio 20.2.2

PostFri Oct 24, 2025 4:09 pm

Hi Blackmagic team,

I've been working with APV MOV exports and noticed a few potential issues with the apvC atom generation in Resolve Studio 20.2.2 (Windows). I wanted to report these in case they're helpful for future updates.

Issue 1: Incorrect apvC atom size
The apvC atom appears to be written with a size of 33 bytes instead of the expected 34 bytes. This seems to truncate the full_range_flag field at the end of the color description data.
According to the APV specification, when color_description_present_flag is true, the minimum atom size should be:

FullBox Header:
4 bytes - Atom size field
4 bytes - 'apvC' fourcc
1 byte - version (= 0)
3 bytes - flags (= 0)
----
12 bytes subtotal

APVDecoderConfigurationRecord:
1 byte - configurationVersion (= 1)
1 byte - number_of_configuration_entry (= 1)
1 byte - pbu_type[0]
1 byte - number_of_frame_info[0] (= 1)
1 byte - flags byte (color_desc_present + capture_time_distance_ignored)
1 byte - profile_idc[0][0]
1 byte - level_idc[0][0]
1 byte - band_idc[0][0]
4 bytes - frame_width[0][0]
4 bytes - frame_height[0][0]
1 byte - chroma_format_idc + bit_depth_minus8
1 byte - capture_time_distance[0][0]

Color description (when flag is true):
1 byte - color_primaries[0][0]
1 byte - transfer_characteristics[0][0]
1 byte - matrix_coefficients[0][0]
1 byte - full_range_flag + reserved ← This appears to be missing
----
22 bytes subtotal

Total: 34 bytes

Issue 2: Width and height values off by one

The frame_width and frame_height fields appear to contain (actual_width - 1) and (actual_height - 1) rather than the actual dimensions. According to the spec, these should be the actual frame dimensions.

Issue 3: Level and band selection
Currently, Resolve APV exports always use Level 7.1 (level_idc = 213) and band_idc = 0, regardless of the actual video parameters. While using the almost highest level isn't harmful, these values should accurately reflect what was actually encoded for proper stream identification.
The APV SDK supports setting Level and Band to "Auto" mode, which allows the encoder to determine the appropriate values based on the actual content. When using Auto mode, the first encoded frame contains the actual Level and Band in its frame header, which can then be read and written to the apvC atom.


Please let me know if you need any additional details or if I've misunderstood anything in the specification. Happy to provide sample files if that would be helpful!

Cheers,
Greg
Offline

Shrinivas Ramani

Blackmagic Design

  • Posts: 3311
  • Joined: Wed Sep 20, 2017 10:19 am

Re: Small Samsung APV Export Issues in Resolve Studio 20.2.2

PostWed Nov 05, 2025 8:01 am

Thank you for the report.

Please try DaVinci Resolve 20.2.3 (which has a change for this) and let us know if you observe any more issues.
Offline

Calibrated

  • Posts: 2
  • Joined: Fri Oct 24, 2025 2:47 pm
  • Real Name: Greg Booth

Re: Small Samsung APV Export Issues in Resolve Studio 20.2.2

PostMon Nov 10, 2025 9:42 pm

Hi Shrinivas,

Thanks for looking into this. I’ve downloaded DaVinci Resolve 20.2.3 and can confirm that Issue 1 and Issue 2 appear to be fixed in this update. Issue 3 is still present, though it’s not technically incorrect — just not fully reflective of the encoded stream parameters.

Appreciate the quick turnaround on this!

Cheers,
Greg

Return to Software Developers

Who is online

Users browsing this forum: No registered users and 13 guests