From e5b45dcad24b357059e0832ce906e5449c7cb9ae Mon Sep 17 00:00:00 2001 From: Kieran Kunhya Date: Sat, 14 May 2011 00:17:25 +0100 Subject: [PATCH] Add the SCTE T-STD model for VBI data. --- codecs.h | 18 +++++++++++------- libmpegts.c | 16 ++++++++++++---- 2 files changed, 23 insertions(+), 11 deletions(-) diff --git a/codecs.h b/codecs.h index 6cea373..cfd371a 100644 --- a/codecs.h +++ b/codecs.h @@ -103,16 +103,16 @@ const aac_buffer_t aac_buffers[] = /** AC3 **/ /* AC3 buffer sizes */ -#define AC3_BS_ATSC 2592*8 -#define AC3_BS_DVB 5696*8 +#define AC3_BS_ATSC 2592*8 +#define AC3_BS_DVB 5696*8 /* SMPTE 302M */ #define SMPTE_302M_AUDIO_BS 65024*8 #define SMPTE_302M_AUDIO_SR 48000 /* Misc Audio */ -#define MISC_AUDIO_BS 3584*8 -#define MISC_AUDIO_RXN 2000000 +#define MISC_AUDIO_BS 3584*8 +#define MISC_AUDIO_RXN 2000000 /* DVB Subtitles */ #define DVB_SUB_RXN 192000 @@ -122,8 +122,12 @@ const aac_buffer_t aac_buffers[] = #define DVB_SUB_DDS_MB_SIZE 100000 /* Teletext */ -#define TELETEXT_T_BS 480*8 /* Seems to have an odd Transport Buffer size */ -#define TELETEXT_RXN 6750000 -#define TELETEXT_BTTX 1504*8 +#define TELETEXT_T_BS 480*8 /* Seems to have an odd Transport Buffer size */ +#define TELETEXT_RXN 6750000 +#define TELETEXT_BTTX 1504*8 + +/* SCTE VBI */ +#define SCTE_VBI_RXN 324539 +#define SCTE_VBI_MB_SIZE 2256*8 #endif diff --git a/libmpegts.c b/libmpegts.c index 2eda85b..ad1481a 100644 --- a/libmpegts.c +++ b/libmpegts.c @@ -668,10 +668,18 @@ int ts_setup_dvb_vbi( ts_writer_t *w, int pid, int num_vbis, ts_dvb_vbi_t *vbis memcpy( stream->dvb_vbi_ctx[i].lines, vbis[i].lines, vbis[i].num_lines * sizeof(ts_dvb_vbi_line_t) ); } - /* VBI uses teletext T-STD */ - stream->tb.buf_size = TELETEXT_T_BS; - stream->rx = TELETEXT_RXN; - stream->mb.buf_size = TELETEXT_BTTX; + if( w->ts_type == TS_TYPE_CABLELABS || w->ts_type == TS_TYPE_ATSC ) + { + stream->rx = SCTE_VBI_RXN; + stream->mb.buf_size = SCTE_VBI_MB_SIZE; + } + else + { + /* DVB-VBI uses teletext T-STD */ + stream->tb.buf_size = TELETEXT_T_BS; + stream->rx = TELETEXT_RXN; + stream->mb.buf_size = TELETEXT_BTTX; + } return 0;