summaryrefslogtreecommitdiffstats
path: root/libmpdemux/demux_ts.c
diff options
context:
space:
mode:
authorrtognimp <rtognimp@b3059339-0415-0410-9bf9-f77b7e298cf2>2005-08-05 19:57:47 +0000
committerrtognimp <rtognimp@b3059339-0415-0410-9bf9-f77b7e298cf2>2005-08-05 19:57:47 +0000
commitcd68e1618b17b525bd49757b2f5e245a6cb1a495 (patch)
treec67656ff189654b818ade76a8f5bd0b7d1bf7f91 /libmpdemux/demux_ts.c
parentadfe956dc385d6588eb2ab74828f9a905821adf4 (diff)
downloadmpv-cd68e1618b17b525bd49757b2f5e245a6cb1a495.tar.bz2
mpv-cd68e1618b17b525bd49757b2f5e245a6cb1a495.tar.xz
Demuxer modularization
Demuxer selection by name with -demuxer command (bakward compatible) git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@16176 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpdemux/demux_ts.c')
-rw-r--r--libmpdemux/demux_ts.c34
1 files changed, 27 insertions, 7 deletions
diff --git a/libmpdemux/demux_ts.c b/libmpdemux/demux_ts.c
index 8d9622442e..620c9612e5 100644
--- a/libmpdemux/demux_ts.c
+++ b/libmpdemux/demux_ts.c
@@ -263,7 +263,7 @@ try_fec:
-int ts_check_file(demuxer_t * demuxer)
+static int ts_check_file(demuxer_t * demuxer)
{
const int buf_size = (TS_FEC_PACKET_SIZE * NUM_CONSECUTIVE_TS_PACKETS);
unsigned char buf[TS_FEC_PACKET_SIZE * NUM_CONSECUTIVE_TS_PACKETS], done = 0, *ptr;
@@ -360,9 +360,9 @@ int ts_check_file(demuxer_t * demuxer)
mp_msg(MSGT_DEMUX, MSGL_V, "GOOD CC: %d, BAD CC: %d\n", good, bad);
if(good >= bad)
- return size;
+ return size;
else
- return 0;
+ return 0;
}
@@ -827,7 +827,7 @@ static int parse_avc_sps(uint8_t *buf, int len, int *w, int *h)
return 1;
}
-demuxer_t *demux_open_ts(demuxer_t * demuxer)
+static demuxer_t *demux_open_ts(demuxer_t * demuxer)
{
int i;
uint8_t packet_size;
@@ -984,7 +984,7 @@ demuxer_t *demux_open_ts(demuxer_t * demuxer)
return demuxer;
}
-void demux_close_ts(demuxer_t * demuxer)
+static void demux_close_ts(demuxer_t * demuxer)
{
uint16_t i;
ts_priv_t *priv = (ts_priv_t*) demuxer->priv;
@@ -3028,7 +3028,7 @@ extern int videobuf_code_len;
extern int sync_video_packet(demux_stream_t *);
extern int skip_video_packet(demux_stream_t *);
-void demux_seek_ts(demuxer_t *demuxer, float rel_seek_secs, int flags)
+static void demux_seek_ts(demuxer_t *demuxer, float rel_seek_secs, int flags)
{
demux_stream_t *d_audio=demuxer->audio;
demux_stream_t *d_video=demuxer->video;
@@ -3129,7 +3129,7 @@ void demux_seek_ts(demuxer_t *demuxer, float rel_seek_secs, int flags)
}
-int demux_ts_fill_buffer(demuxer_t * demuxer)
+static int demux_ts_fill_buffer(demuxer_t * demuxer, demux_stream_t *ds)
{
ES_stream_t es;
ts_priv_t *priv = (ts_priv_t *)demuxer->priv;
@@ -3138,4 +3138,24 @@ int demux_ts_fill_buffer(demuxer_t * demuxer)
}
+static int ts_check_file_dmx(demuxer_t *demuxer)
+{
+ return ts_check_file(demuxer) ? DEMUXER_TYPE_MPEG_TS : 0;
+}
+
+demuxer_desc_t demuxer_desc_mpeg_ts = {
+ "MPEG-TS demuxer",
+ "mpegts",
+ "TS",
+ "Nico Sabbi",
+ "",
+ DEMUXER_TYPE_MPEG_TS,
+ 0, // unsafe autodetect
+ ts_check_file_dmx,
+ demux_ts_fill_buffer,
+ demux_open_ts,
+ demux_close_ts,
+ demux_seek_ts,
+ NULL
+};