}
ctx->out_bytes = sizeof(dtshd_start_code) + 2 + pkt_size;
- ctx->length_code = ctx->out_bytes;
+
+ /* Align so that (length_code & 0xf) == 0x8. This is reportedly needed
+ * with some receivers, but the exact requirement is unconfirmed. */
+ ctx->length_code = FFALIGN(ctx->out_bytes + 0x8, 0x10) - 0x8;
av_fast_malloc(&ctx->hd_buf, &ctx->hd_buf_size, ctx->out_bytes);
if (!ctx->hd_buf)
.write_header = spdif_write_header,
.write_packet = spdif_write_packet,
.write_trailer = spdif_write_trailer,
- .flags = AVFMT_NOTIMESTAMPS,
- .priv_class = &class,
+ .flags = AVFMT_NOTIMESTAMPS,
+ .priv_class = &class,
};