[vlc-devel] commit: Added teletext fields in es_forma_t. (Laurent Aimar )
git version control
git at videolan.org
Sat Feb 14 00:46:33 CET 2009
vlc | branch: master | Laurent Aimar <fenrir at videolan.org> | Fri Feb 13 23:40:55 2009 +0100| [d66d8f7d1854340ed37c4ca2b1371de9dc5be072] | committer: Laurent Aimar
Added teletext fields in es_forma_t.
It removed a hack where dvb.i_id was used for teletext.
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=d66d8f7d1854340ed37c4ca2b1371de9dc5be072
---
include/vlc_es.h | 5 +++++
modules/codec/telx.c | 12 ++++++------
modules/codec/zvbi.c | 9 +++------
modules/demux/ts.c | 12 ++++++------
4 files changed, 20 insertions(+), 18 deletions(-)
diff --git a/include/vlc_es.h b/include/vlc_es.h
index 690de39..8744f20 100644
--- a/include/vlc_es.h
+++ b/include/vlc_es.h
@@ -206,6 +206,11 @@ struct subs_format_t
{
int i_id;
} dvb;
+ struct
+ {
+ int i_magazine;
+ int i_page;
+ } teletext;
};
/**
diff --git a/modules/codec/telx.c b/modules/codec/telx.c
index 90fff84..33b1fa3 100644
--- a/modules/codec/telx.c
+++ b/modules/codec/telx.c
@@ -194,13 +194,13 @@ static int Open( vlc_object_t *p_this )
var_Create( p_dec, "telx-override-page",
VLC_VAR_INTEGER | VLC_VAR_DOINHERIT );
var_Get( p_dec, "telx-override-page", &val );
- if( val.i_int == -1 && p_dec->fmt_in.subs.dvb.i_id != -1
- && p_dec->fmt_in.subs.dvb.i_id != (1<<16) ) /* ignore if TS demux wants page 100 (unlikely to be sub) */
+ if( val.i_int == -1 &&
+ p_dec->fmt_in.subs.teletext.i_magazine != -1 &&
+ ( p_dec->fmt_in.subs.teletext.i_magazine != 1 ||
+ p_dec->fmt_in.subs.teletext.i_page != 0 ) ) /* ignore if TS demux wants page 100 (unlikely to be sub) */
{
- p_sys->i_wanted_magazine = p_dec->fmt_in.subs.dvb.i_id >> 16;
- if( p_sys->i_wanted_magazine == 0 )
- p_sys->i_wanted_magazine = 8;
- p_sys->i_wanted_page = p_dec->fmt_in.subs.dvb.i_id & 0xff;
+ p_sys->i_wanted_magazine = p_dec->fmt_in.subs.teletext.i_magazine;
+ p_sys->i_wanted_page = p_dec->fmt_in.subs.teletext.i_page;
var_Create( p_dec, "telx-french-workaround",
VLC_VAR_BOOL | VLC_VAR_DOINHERIT );
diff --git a/modules/codec/zvbi.c b/modules/codec/zvbi.c
index 06bffe0..8f6c052 100644
--- a/modules/codec/zvbi.c
+++ b/modules/codec/zvbi.c
@@ -251,13 +251,10 @@ static int Open( vlc_object_t *p_this )
RequestPage, p_sys );
/* Check if the Teletext track has a known "initial page". */
- if( p_sys->i_wanted_page == 100 && p_dec->fmt_in.subs.dvb.i_id != -1 )
+ if( p_sys->i_wanted_page == 100 && p_dec->fmt_in.subs.teletext.i_magazine != -1 )
{
- int i_wanted_magazine = p_dec->fmt_in.subs.dvb.i_id >> 16;
- if( i_wanted_magazine == 0 )
- i_wanted_magazine = 8;
- p_sys->i_wanted_page = vbi_bcd2dec(p_dec->fmt_in.subs.dvb.i_id & 0xff);
- p_sys->i_wanted_page += 100*i_wanted_magazine;
+ p_sys->i_wanted_page = 100 * p_dec->fmt_in.subs.teletext.i_magazine +
+ vbi_bcd2dec( p_dec->fmt_in.subs.teletext.i_page );
}
p_sys->i_wanted_subpage = VBI_ANY_SUBNO;
diff --git a/modules/demux/ts.c b/modules/demux/ts.c
index cb96928..ada40c4 100644
--- a/modules/demux/ts.c
+++ b/modules/demux/ts.c
@@ -3464,24 +3464,24 @@ static void PMTCallBack( demux_t *p_demux, dvbpsi_pmt_t *p_pmt )
p_page->i_teletext_magazine_number,
p_page->i_teletext_page_number );
- /* Hack, FIXME This stores the initial page for this track,
+ /* This stores the initial page for this track,
so that it can be used by the telx and zvbi decoders. */
- p_es->fmt.subs.dvb.i_id =
+ p_es->fmt.subs.teletext.i_magazine =
+ p_page->i_teletext_magazine_number ? : 8;
+ p_es->fmt.subs.teletext.i_page =
p_page->i_teletext_page_number;
- p_es->fmt.subs.dvb.i_id |=
- ((int)p_page->i_teletext_magazine_number << 16);
i++;
}
}
-
if( !i )
pid->es->fmt.i_cat = UNKNOWN_ES;
}
else
#endif /* defined _DVBPSI_DR_56_H_ && DVBPSI_VERSION(0,1,6) */
{
- pid->es->fmt.subs.dvb.i_id = -1;
+ pid->es->fmt.subs.teletext.i_magazine = -1;
+ pid->es->fmt.subs.teletext.i_page = 0;
pid->es->fmt.psz_description = strdup( _(ppsz_teletext_type[1]) );
}
}
More information about the vlc-devel
mailing list