[FFmpeg-cvslog] In mpegts "reserved_future_use" field must be set to 1 in SDT table

Georgi Chorbadzhiyski git
Sun Jan 30 04:15:55 CET 2011


ffmpeg | branch: master | Georgi Chorbadzhiyski <gf at unixsol.org> | Fri Jan 28 18:28:20 2011 +0200| [753134ae3e2d40bb80b286edaa0c7c8781db51f6] | committer: Michael Niedermayer

In mpegts "reserved_future_use" field must be set to 1 in SDT table

According to EN 300 468 section 3.1 (Definitions):

   Unless otherwise specified within the present document all
   "reserved_future_use" bits is set to "1".

This was not the case for SDT generation so this patch fixes it.

Signed-off-by: Janne Grunau <janne-ffmpeg at jannau.net>
(cherry picked from commit a7827a17c6b3388322350456d445c94b3a82cd25)

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

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

diff --git a/libavformat/mpegtsenc.c b/libavformat/mpegtsenc.c
index 3c56830..6f35d6f 100644
--- a/libavformat/mpegtsenc.c
+++ b/libavformat/mpegtsenc.c
@@ -128,6 +128,8 @@ static int mpegts_write_section1(MpegTSSection *s, int tid, int id,
 {
     uint8_t section[1024], *q;
     unsigned int tot_len;
+    /* reserved_future_use field must be set to 1 for SDT */
+    unsigned int flags = tid == SDT_TID ? 0xf000 : 0xb000;
 
     tot_len = 3 + 5 + len + 4;
     /* check if not too big */
@@ -136,7 +138,7 @@ static int mpegts_write_section1(MpegTSSection *s, int tid, int id,
 
     q = section;
     *q++ = tid;
-    put16(&q, 0xb000 | (len + 5 + 4)); /* 5 byte header + 4 byte CRC */
+    put16(&q, flags | (len + 5 + 4)); /* 5 byte header + 4 byte CRC */
     put16(&q, id);
     *q++ = 0xc1 | (version << 1); /* current_next_indicator = 1 */
     *q++ = sec_num;




More information about the ffmpeg-cvslog mailing list