[FFmpeg-cvslog] spdifenc: use special alignment for DTS-HD length_code

Anssi Hannula git at videolan.org
Sun Oct 30 14:48:36 CET 2011


ffmpeg | branch: master | Anssi Hannula <anssi.hannula at iki.fi> | Fri Oct 28 13:43:13 2011 +0300| [ab9c00b992c4d077815ccaf981b58f2ee3c9a00c] | committer: Anssi Hannula

spdifenc: use special alignment for DTS-HD length_code

Align IEC 61937 length_code for DTS-HD so that
(length_code & 0xf) == 0x8. This is reportedly needed with some
receivers.

Signed-off-by: Anssi Hannula <anssi.hannula at iki.fi>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=ab9c00b992c4d077815ccaf981b58f2ee3c9a00c
---

 libavformat/spdifenc.c |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)

diff --git a/libavformat/spdifenc.c b/libavformat/spdifenc.c
index 53aa27c..05b3879 100644
--- a/libavformat/spdifenc.c
+++ b/libavformat/spdifenc.c
@@ -220,7 +220,10 @@ static int spdif_header_dts4(AVFormatContext *s, AVPacket *pkt, int core_size,
     }
 
     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)



More information about the ffmpeg-cvslog mailing list