AOMediaCodec / av1-mpeg2-ts

Official specification of the AOM group for the carriage of AV1 in MPEG-2 Transport Stream
https://aomediacodec.github.io/av1-mpeg2-ts/
30 stars 5 forks source link

Feedback from Broadcom #1 #1

Closed tbiat closed 2 years ago

tbiat commented 3 years ago

Feedback from Broadcom: We see the draft says PES packet alignment is not required, only recommended (for “error resilience” below).

"When error resilience is a consideration, it is recommended to set one, and only one, AV1 access unit per PES, and that all PES have data_alignmentindicator set to 1. "

We believe this to be problematic to have this only as a recommendation and not required for unbounded length PES. You have the OBU size to specify the size of each PES but with no alignment requirement between an OBU and PES packets or the AU and PES packets, a parser can't depend on the obu_size to differentiate false PES packet headers from real ones. So we would suggest that there is a requirement that the real PES headers be aligned to the start of a TS packet with payload_unit_start_indicator=1.

tbiat commented 3 years ago

Response from ATEME: We considered at some point whether this alignment should be systematic or not. We concluded that forcing an alignment on RAIs was sufficient ("When random_access_indicator is set, a PES_packet shall start, and in its header, data_alignment_indicator shall be set to 1", section 4.2). We felt it was sufficient to decode without ambiguity in all situations. However, if you have see a corner case or counter-example can you share it?

The intent here was also to adopt similar approach as what is done for other codecs (even though the lack of start code in AV1 was challenging), and to be sure that the PES overhead is minimized at low bitrates.

cconcolato commented 2 years ago

I think we can close this issue as the PES mapping has changed.

wadekwan commented 2 years ago

Agree that this issue can now be closed given the changed mapping scheme.