summaryrefslogtreecommitdiff
path: root/src/demuxers/demux_ts.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/demuxers/demux_ts.c')
-rw-r--r--src/demuxers/demux_ts.c247
1 files changed, 136 insertions, 111 deletions
diff --git a/src/demuxers/demux_ts.c b/src/demuxers/demux_ts.c
index f27049d7b..9ae4f1525 100644
--- a/src/demuxers/demux_ts.c
+++ b/src/demuxers/demux_ts.c
@@ -17,7 +17,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*
- * $Id: demux_ts.c,v 1.31 2001/12/09 00:59:23 guenter Exp $
+ * $Id: demux_ts.c,v 1.32 2001/12/27 14:30:30 f1rmb Exp $
*
* Demultiplexer for MPEG2 Transport Streams.
*
@@ -71,6 +71,26 @@
#define VALID_MRLS "fifo,stdin"
#define VALID_ENDS "m2t,ts,trp"
+#ifdef __GNUC__
+#define LOG_MSG_STDERR(xine, message, args...) { \
+ xine_log(xine, XINE_LOG_DEMUX, message, ##args); \
+ fprintf(stderr, message, ##args); \
+ }
+#define LOG_MSG(xine, message, args...) { \
+ xine_log(xine, XINE_LOG_DEMUX, message, ##args); \
+ printf(message, ##args); \
+ }
+#else
+#define LOG_MSG_STDERR(xine, ...) { \
+ xine_log(xine, XINE_LOG_DEMUX, __VAR_ARGS__); \
+ fprintf(stderr, __VA_ARGS__); \
+ }
+#define LOG_MSG(xine, ...) { \
+ xine_log(xine, XINE_LOG_DEMUX, __VAR_ARGS__); \
+ printf(__VA_ARGS__); \
+ }
+#endif
+
/*
#define TS_LOG
*/
@@ -122,6 +142,8 @@ typedef struct {
* The first field must be the "base class" for the plugin!
*/
demux_plugin_t plugin;
+
+ xine_t *xine;
config_values_t *config;
@@ -212,7 +234,7 @@ static void demux_ts_parse_pat (demux_ts *this, unsigned char *original_pkt,
* indicator set.
*/
if (!pus) {
- printf ("demux_ts: demux error! PAT without payload unit start\n");
+ LOG_MSG(this->xine, _("demux_ts: demux error! PAT without payload unit start\n"));
return;
}
@@ -221,7 +243,7 @@ static void demux_ts_parse_pat (demux_ts *this, unsigned char *original_pkt,
*/
pkt += pkt[4];
if (pkt - original_pkt > PKT_SIZE) {
- printf ("demux_ts: demux error! PAT with invalid pointer\n");
+ LOG_MSG(this->xine, _("demux_ts: demux error! PAT with invalid pointer\n"));
return;
}
table_id = (unsigned int)pkt[5] ;
@@ -238,22 +260,22 @@ static void demux_ts_parse_pat (demux_ts *this, unsigned char *original_pkt,
crc32 |= (uint32_t)pkt[7+section_length] ;
#ifdef TS_LOG
- xprintf (VERBOSE|DEMUX,"PAT table_id=%d\n",
- table_id);
- xprintf (VERBOSE|DEMUX,"\tsection_syntax=%d\n",
- section_syntax_indicator);
- xprintf (VERBOSE|DEMUX,"\tsection_length=%d\n",
- section_length);
- xprintf (VERBOSE|DEMUX,"\ttransport_stream_id=0x%04x\n",
- transport_stream_id);
- xprintf (VERBOSE|DEMUX,"\tversion_number=%d\n",
- version_number);
- xprintf (VERBOSE|DEMUX,"\tcurrent_next_indicator=%d\n",
- current_next_indicator);
- xprintf (VERBOSE|DEMUX,"\tsection_number=%d\n",
- section_number);
- xprintf (VERBOSE|DEMUX,"\tlast_section_number=%d\n",
- last_section_number);
+ printf ("PAT table_id=%d\n",
+ table_id);
+ printf ("\tsection_syntax=%d\n",
+ section_syntax_indicator);
+ printf ("\tsection_length=%d\n",
+ section_length);
+ printf ("\ttransport_stream_id=0x%04x\n",
+ transport_stream_id);
+ printf ("\tversion_number=%d\n",
+ version_number);
+ printf ("\tcurrent_next_indicator=%d\n",
+ current_next_indicator);
+ printf ("\tsection_number=%d\n",
+ section_number);
+ printf ("\tlast_section_number=%d\n",
+ last_section_number);
#endif
if (!(current_next_indicator)) {
@@ -263,12 +285,12 @@ static void demux_ts_parse_pat (demux_ts *this, unsigned char *original_pkt,
return;
}
if (pkt - original_pkt > BODY_SIZE - 1 - 3 - (int)section_length) {
- printf ("demux_ts: demux error! PAT with invalid section length\n");
+ LOG_MSG(this->xine, _("demux_ts: demux error! PAT with invalid section length\n"));
return;
}
if ((section_number) || (last_section_number)) {
- printf ("demux_ts: demux error! PAT with invalid section %02x of %02x\n",
- section_number, last_section_number);
+ LOG_MSG(this->xine, _("demux_ts: demux error! PAT with invalid section %02x of %02x\n"),
+ section_number, last_section_number);
return;
}
@@ -277,8 +299,7 @@ static void demux_ts_parse_pat (demux_ts *this, unsigned char *original_pkt,
*/
calc_crc32 = demux_ts_compute_crc32(this, pkt+5, section_length+3-4, 0xffffffff);
if (crc32 != calc_crc32) {
- printf("demux_ts: demux error! PAT with invalid CRC32: packet_crc32=0x%08x calc_crc32=0x%08x\n",
- crc32,calc_crc32);
+ LOG_MSG(this->xine, _("demux_ts: demux error! PAT with invalid CRC32: packet_crc32=0x%08x calc_crc32=0x%08x\n"), crc32,calc_crc32);
return;
}
@@ -308,7 +329,7 @@ static void demux_ts_parse_pat (demux_ts *this, unsigned char *original_pkt,
program_count = 0;
while ((this->program_number[program_count] != INVALID_PROGRAM) ) {
#ifdef TS_LOG
- xprintf(VERBOSE|DEMUX, "PAT acquiring count=%d programNumber=0x%04x pmtPid=0x%04x\n",
+ printf("PAT acquiring count=%d programNumber=0x%04x pmtPid=0x%04x\n",
program_count,
this->program_number[program_count],
this->pmt_pid[program_count]);
@@ -318,7 +339,8 @@ static void demux_ts_parse_pat (demux_ts *this, unsigned char *original_pkt,
}
}
-static int demux_ts_parse_pes_header (demux_ts_media *m, uint8_t *buf, int packet_len) {
+static int demux_ts_parse_pes_header (demux_ts_media *m,
+ uint8_t *buf, int packet_len, xine_t *xine) {
unsigned char *p;
uint32_t header_len;
@@ -330,7 +352,7 @@ static int demux_ts_parse_pes_header (demux_ts_media *m, uint8_t *buf, int packe
/* we should have a PES packet here */
if (p[0] || p[1] || (p[2] != 1)) {
- printf ("demux_ts: error %02x %02x %02x (should be 0x000001) \n",p[0],p[1],p[2]);
+ LOG_MSG(xine, _("demux_ts: error %02x %02x %02x (should be 0x000001) \n"), p[0], p[1], p[2]);
return 0 ;
}
@@ -342,8 +364,8 @@ static int demux_ts_parse_pes_header (demux_ts_media *m, uint8_t *buf, int packe
return 0;
#ifdef TS_LOG
- xprintf(VERBOSE|DEMUX, "packet stream id = %02x len = %d\n",
- stream_id, packet_len);
+ printf("packet stream id = %02x len = %d\n",
+ stream_id, packet_len);
#endif
if (p[7] & 0x80) { /* PTS avail */
@@ -438,7 +460,7 @@ static int demux_ts_parse_pes_header (demux_ts_media *m, uint8_t *buf, int packe
} else {
#ifdef TS_LOG
- xprintf(VERBOSE | DEMUX, "unknown packet, id = %x\n",stream_id);
+ printf("unknown packet, id = %x\n",stream_id);
#endif
}
@@ -466,7 +488,7 @@ static void demux_ts_buffer_pes(demux_ts *this, unsigned char *ts,
demux_ts_media *m = &this->media[mediaIndex];
if (!m->fifo) {
- printf ("fifo unavailable (%d)\n", mediaIndex);
+ LOG_MSG(this->xine, _("fifo unavailable (%d)\n"), mediaIndex);
return; /* To avoid segfault if video out or audio out plugin not loaded */
@@ -478,7 +500,7 @@ static void demux_ts_buffer_pes(demux_ts *this, unsigned char *ts,
*/
if (m->counter != INVALID_CC) {
if ((m->counter & 0x0f) != cc) {
- printf("demux_ts: dropped input packet cc = %d expected = %d\n", cc, m->counter);
+ LOG_MSG(this->xine, _("demux_ts: dropped input packet cc = %d expected = %d\n"), cc, m->counter);
}
}
@@ -490,13 +512,13 @@ static void demux_ts_buffer_pes(demux_ts *this, unsigned char *ts,
/* new PES packet */
if (ts[0] || ts[1] || ts[2] != 1) {
- fprintf(stderr, "PUS set but no PES header (corrupt stream?)\n");
+ LOG_MSG_STDERR(this->xine, _("PUS set but no PES header (corrupt stream?)\n"));
return;
}
- if (!demux_ts_parse_pes_header(m, ts, len)) {
+ if (!demux_ts_parse_pes_header(m, ts, len, this->xine)) {
m->broken_pes = 1;
- printf ("demux_ts: broken pes encountered\n");
+ LOG_MSG(this->xine, _("demux_ts: broken pes encountered\n"));
} else {
m->broken_pes = 0;
buf = m->fifo->buffer_pool_alloc(m->fifo);
@@ -585,7 +607,9 @@ static void demux_ts_parse_pmt(demux_ts *this,
uint32_t last_section_number;
uint32_t crc32;
uint32_t calc_crc32;
+#ifdef TS_LOG
uint32_t i;
+#endif
unsigned int programInfoLength;
unsigned int codedLength;
unsigned int mediaIndex;
@@ -597,7 +621,7 @@ static void demux_ts_parse_pmt(demux_ts *this,
* indicator set.
*/
if (!pus) {
- fprintf (stderr, "demux error! PMT without payload unit start\n");
+ LOG_MSG_STDERR(this->xine, _("demux error! PMT without payload unit start\n"));
return;
}
@@ -606,7 +630,7 @@ static void demux_ts_parse_pmt(demux_ts *this,
*/
pkt += pkt[4];
if (pkt - originalPkt > PKT_SIZE) {
- fprintf (stderr, "demux error! PMT with invalid pointer\n");
+ LOG_MSG_STDERR(this->xine, _("demux error! PMT with invalid pointer\n"));
return;
}
table_id = (unsigned int)pkt[5] ;
@@ -623,22 +647,22 @@ static void demux_ts_parse_pmt(demux_ts *this,
crc32 |= (uint32_t)pkt[7+section_length] ;
#ifdef TS_LOG
- xprintf (VERBOSE|DEMUX,"PMT table_id=%d\n",
- table_id);
- xprintf (VERBOSE|DEMUX,"\tsection_syntax_indicator=%d\n",
- section_syntax_indicator);
- xprintf (VERBOSE|DEMUX,"\tsection_length=%d\n",
- section_length);
- xprintf (VERBOSE|DEMUX,"\tprogram_number=0x%04x\n",
- program_number);
- xprintf (VERBOSE|DEMUX,"\tversion_number=%d\n",
- version_number);
- xprintf (VERBOSE|DEMUX,"\tcurrent_next_indicator=%d\n",
- current_next_indicator);
- xprintf (VERBOSE|DEMUX,"\tsection_number=%d\n",
- section_number);
- xprintf (VERBOSE|DEMUX,"\tlast_section_number=%d\n",
- last_section_number);
+ printf ("PMT table_id=%d\n",
+ table_id);
+ printf ("\tsection_syntax_indicator=%d\n",
+ section_syntax_indicator);
+ printf ("\tsection_length=%d\n",
+ section_length);
+ printf ("\tprogram_number=0x%04x\n",
+ program_number);
+ printf ("\tversion_number=%d\n",
+ version_number);
+ printf ("\tcurrent_next_indicator=%d\n",
+ current_next_indicator);
+ printf ("\tsection_number=%d\n",
+ section_number);
+ printf ("\tlast_section_number=%d\n",
+ last_section_number);
#endif
if (!(current_next_indicator)) {
@@ -648,12 +672,12 @@ static void demux_ts_parse_pmt(demux_ts *this,
return;
}
if (pkt - originalPkt > BODY_SIZE - 1 - 3 - (int)section_length) {
- fprintf (stderr, "demux error! PMT with invalid section length\n");
+ LOG_MSG_STDERR(this->xine, _("demux error! PMT with invalid section length\n"));
return;
}
if ((section_number) || (last_section_number)) {
- fprintf (stderr, "demux error! PMT with invalid section %02x of %02x\n",
- section_number, last_section_number);
+ LOG_MSG_STDERR(this->xine, _("demux error! PMT with invalid section %02x of %02x\n"),
+ section_number, last_section_number);
return;
}
@@ -662,8 +686,7 @@ static void demux_ts_parse_pmt(demux_ts *this,
*/
calc_crc32 = demux_ts_compute_crc32(this, pkt+5, section_length+3-4, 0xffffffff);
if (crc32 != calc_crc32) {
- printf("demux_ts: demux error! PMT with invalid CRC32: packet_crc32=0x%08x calc_crc32=0x%08x\n",
- crc32,calc_crc32);
+ LOG_MSG(this->xine, _("demux_ts: demux error! PMT with invalid CRC32: packet_crc32=0x%08x calc_crc32=0x%08x\n"), crc32,calc_crc32);
return;
}
/*
@@ -675,7 +698,7 @@ static void demux_ts_parse_pmt(demux_ts *this,
stream = &pkt[17] + programInfoLength;
codedLength = 13 + programInfoLength;
if (codedLength > section_length) {
- fprintf (stderr, "demux error! PMT with inconsistent progInfo length\n");
+ LOG_MSG_STDERR(this->xine, _("demux error! PMT with inconsistent progInfo length\n"));
return;
}
section_length -= codedLength;
@@ -691,7 +714,7 @@ static void demux_ts_parse_pmt(demux_ts *this,
streamInfoLength = (((unsigned int)stream[3] & 0xf) << 8) | stream[4];
codedLength = 5 + streamInfoLength;
if (codedLength > section_length) {
- fprintf (stderr, "demux error! PMT with inconsistent streamInfo length\n");
+ LOG_MSG_STDERR(this->xine, _("demux error! PMT with inconsistent streamInfo length\n"));
return;
}
@@ -704,7 +727,7 @@ static void demux_ts_parse_pmt(demux_ts *this,
case ISO_13818_VIDEO:
if (this->videoPid == INVALID_PID) {
#ifdef TS_LOG
- xprintf(VERBOSE|DEMUX, "PMT video pid 0x%04x\n", pid);
+ printf("PMT video pid 0x%04x\n", pid);
#endif
demux_ts_pes_new(this, mediaIndex, pid, this->fifoVideo);
}
@@ -715,7 +738,7 @@ static void demux_ts_parse_pmt(demux_ts *this,
case ISO_13818_AUDIO:
if (this->audioPid == INVALID_PID) {
#ifdef TS_LOG
- xprintf(VERBOSE|DEMUX, "PMT audio pid 0x%04x\n", pid);
+ printf("PMT audio pid 0x%04x\n", pid);
#endif
demux_ts_pes_new(this, mediaIndex, pid, this->fifoAudio);
}
@@ -725,21 +748,21 @@ static void demux_ts_parse_pmt(demux_ts *this,
case ISO_13818_PRIVATE:
#ifdef TS_LOG
for(i=0;i<20;i++) {
- xprintf(VERBOSE|DEMUX, "%02x ", stream[i]);
+ printf("%02x ", stream[i]);
}
- xprintf(VERBOSE|DEMUX, "\n");
+ printf("\n");
#endif
break;
case PRIVATE_A52:
#ifdef TS_LOG
for(i=0;i<20;i++) {
- xprintf(VERBOSE|DEMUX, "%02x ", stream[i]);
+ printf("%02x ", stream[i]);
}
- xprintf(VERBOSE|DEMUX, "\n");
+ printf("\n");
#endif
if (this->audioPid == INVALID_PID) {
#ifdef TS_LOG
- xprintf(VERBOSE|DEMUX, "PMT audio pid 0x%04x\n", pid);
+ printf("PMT audio pid 0x%04x\n", pid);
#endif
demux_ts_pes_new(this, mediaIndex, pid, this->fifoAudio);
}
@@ -748,12 +771,12 @@ static void demux_ts_parse_pmt(demux_ts *this,
break;
default:
#ifdef TS_LOG
- xprintf(VERBOSE|DEMUX, "PMT stream_type unknown 0x%02x pid 0x%04x\n", stream[0], pid);
+ printf("PMT stream_type unknown 0x%02x pid 0x%04x\n", stream[0], pid);
for(i=0;i<20;i++) {
- xprintf(VERBOSE|DEMUX, "%02x ", stream[i]);
+ printf("%02x ", stream[i]);
}
- xprintf(VERBOSE|DEMUX, "\n");
+ printf("\n");
#endif
break;
@@ -772,16 +795,16 @@ static void demux_ts_parse_pmt(demux_ts *this,
#ifdef TS_LOG
if (this->pcrPid == INVALID_PID) {
- xprintf(VERBOSE|DEMUX, "PMT pcr pid 0x%04x\n", pid);
+ printf("PMT pcr pid 0x%04x\n", pid);
} else {
- xprintf(VERBOSE|DEMUX, "PMT pcr pid changed 0x%04x\n", pid);
+ printf("PMT pcr pid changed 0x%04x\n", pid);
}
#endif
this->pcrPid = pid;
}
}
-void correct_for_sync(demux_ts *this,uint8_t *buf) {
+void correct_for_sync(demux_ts *this, uint8_t *buf) {
int32_t n, read_length;
if((buf[0] == SYNC_BYTE) && (buf[PKT_SIZE] == SYNC_BYTE) &&
(buf[PKT_SIZE*2] == SYNC_BYTE) && (buf[PKT_SIZE*3] == SYNC_BYTE)) {
@@ -796,7 +819,7 @@ void correct_for_sync(demux_ts *this,uint8_t *buf) {
return;
}
}
- printf("RE-Sync failed\n"); /* Sync up here */
+ LOG_MSG(this->xine, _("RE-Sync failed\n")); /* Sync up here */
return;
}
@@ -852,19 +875,19 @@ static uint32_t demux_ts_adaptation_field_parse( uint8_t *data, uint32_t adaptat
adaptation_field_extension_flag = (data[0] & 0x01);
#ifdef TS_LOG
- xprintf(VERBOSE|DEMUX, "ADAPTATION FIELD length=%d\n",
- adaptation_field_length);
+ printf("ADAPTATION FIELD length=%d\n",
+ adaptation_field_length);
if(discontinuity_indicator) {
- xprintf(VERBOSE|DEMUX, "\tDiscontinuity indicator=%d\n",
- discontinuity_indicator);
+ printf("\tDiscontinuity indicator=%d\n",
+ discontinuity_indicator);
}
if(random_access_indicator) {
- xprintf(VERBOSE|DEMUX, "\tRandom_access indicator=%d\n",
- random_access_indicator);
+ printf("\tRandom_access indicator=%d\n",
+ random_access_indicator);
}
if(elementary_stream_priority_indicator) {
- xprintf(VERBOSE|DEMUX, "\tElementary_stream_priority_indicator=%d\n",
- elementary_stream_priority_indicator);
+ printf("\tElementary_stream_priority_indicator=%d\n",
+ elementary_stream_priority_indicator);
}
#endif
if(PCR_flag) {
@@ -875,8 +898,8 @@ static uint32_t demux_ts_adaptation_field_parse( uint8_t *data, uint32_t adaptat
PCR |= (data[offset+4] >> 7) & 0x01;
EPCR = ((data[offset+4] & 0x1) << 8) | data[offset+5];
#ifdef TS_LOG
- xprintf(VERBOSE|DEMUX, "\tPCR=%u, EPCR=%u\n",
- PCR,EPCR);
+ printf("\tPCR=%u, EPCR=%u\n",
+ PCR,EPCR);
#endif
offset+=6;
}
@@ -888,23 +911,23 @@ static uint32_t demux_ts_adaptation_field_parse( uint8_t *data, uint32_t adaptat
OPCR |= (data[offset+4] >> 7) & 0x01;
EOPCR = ((data[offset+4] & 0x1) << 8) | data[offset+5];
#ifdef TS_LOG
- xprintf(VERBOSE|DEMUX, "\tOPCR=%u,EOPCR=%u\n",
- OPCR,EOPCR);
+ printf("\tOPCR=%u,EOPCR=%u\n",
+ OPCR,EOPCR);
#endif
offset+=6;
}
#ifdef TS_LOG
if(slicing_point_flag) {
- xprintf(VERBOSE|DEMUX, "\tslicing_point_flag=%d\n",
- slicing_point_flag);
+ printf("\tslicing_point_flag=%d\n",
+ slicing_point_flag);
}
if(transport_private_data_flag) {
- xprintf(VERBOSE|DEMUX, "\ttransport_private_data_flag=%d\n",
- transport_private_data_flag);
+ printf("\ttransport_private_data_flag=%d\n",
+ transport_private_data_flag);
}
if(adaptation_field_extension_flag) {
- xprintf(VERBOSE|DEMUX, "\tadaptation_field_extension_flag=%d\n",
- adaptation_field_extension_flag);
+ printf("\tadaptation_field_extension_flag=%d\n",
+ adaptation_field_extension_flag);
}
#endif
return PCR;
@@ -944,11 +967,11 @@ static void demux_ts_parse_packet (demux_ts *this) {
* Discard packets that are obviously bad.
*/
if (sync_byte != 0x47) {
- fprintf (stderr, "demux error! invalid ts sync byte %02x\n",originalPkt[0]);
+ LOG_MSG_STDERR(this->xine, _("demux error! invalid ts sync byte %02x\n"), originalPkt[0]);
return;
}
if (transport_error_indicator) {
- fprintf (stderr, "demux error! transport error\n");
+ LOG_MSG_STDERR(this->xine, _("demux error! transport error\n"));
return;
}
@@ -972,7 +995,7 @@ static void demux_ts_parse_packet (demux_ts *this) {
if (data_len > PKT_SIZE) {
- printf ("demux_ts: demux error! invalid payload size %d\n",data_len);
+ LOG_MSG(this->xine, _("demux_ts: demux error! invalid payload size %d\n"), data_len);
} else {
@@ -981,14 +1004,14 @@ static void demux_ts_parse_packet (demux_ts *this) {
*/
if (pid == this->videoPid ) {
#ifdef TS_LOG
- xprintf(VERBOSE|DEMUX, "Video pid = 0x%04x\n",pid);
+ printf("Video pid = 0x%04x\n",pid);
#endif
demux_ts_buffer_pes (this, originalPkt+data_offset, this->videoMedia,
payload_unit_start_indicator, continuity_counter, data_len);
return;
} else if (pid == this->audioPid) {
#ifdef TS_LOG
- xprintf(VERBOSE|DEMUX, "Audio pid = 0x%04x\n",pid);
+ printf("Audio pid = 0x%04x\n",pid);
#endif
demux_ts_buffer_pes (this, originalPkt+data_offset, this->audioMedia,
payload_unit_start_indicator, continuity_counter, data_len);
@@ -998,7 +1021,7 @@ static void demux_ts_parse_packet (demux_ts *this) {
return;
} else if (pid == 0x1fff) {
#ifdef TS_LOG
- xprintf(VERBOSE|DEMUX,"Null Packet\n");
+ printf("Null Packet\n");
#endif
return;
}
@@ -1007,9 +1030,9 @@ static void demux_ts_parse_packet (demux_ts *this) {
while ((this->program_number[program_count] != INVALID_PROGRAM) ) {
if ( pid == this->pmt_pid[program_count] ) {
#ifdef TS_LOG
- xprintf(VERBOSE|DEMUX,"PMT prog 0x%04x pid 0x%04x\n",
- this->program_number[program_count],
- this->pmt_pid[program_count]);
+ printf("PMT prog 0x%04x pid 0x%04x\n",
+ this->program_number[program_count],
+ this->pmt_pid[program_count]);
#endif
demux_ts_parse_pmt (this, originalPkt, originalPkt+data_offset-4, payload_unit_start_indicator);
return;
@@ -1034,7 +1057,7 @@ static void *demux_ts_loop(void *gen_this) {
} while (this->status == DEMUX_OK) ;
#ifdef TS_LOG
- xprintf(VERBOSE|DEMUX, "demux loop finished (status: %d)\n", this->status);
+ printf("demux loop finished (status: %d)\n", this->status);
#endif
this->status = DEMUX_FINISHED;
@@ -1115,7 +1138,7 @@ static int demux_ts_open(demux_plugin_t *this_gen, input_plugin_t *input,
media = strstr(mrl, "://");
if (media) {
- fprintf (stderr, "demux %u ts_open! \n", __LINE__);
+ LOG_MSG_STDERR(this->xine, _("demux %u ts_open!\n"), __LINE__);
while((m = xine_strsep(&valid_mrls, ",")) != NULL) {
while(*m == ' ' || *m == '\t') m++;
@@ -1137,7 +1160,7 @@ static int demux_ts_open(demux_plugin_t *this_gen, input_plugin_t *input,
ending = strrchr(mrl, '.');
if (ending) {
#ifdef TS_LOG
- printf("demux_ts_open: ending %s of %s\n", ending, mrl);
+ LOG_MSG(this->xine, "demux_ts_open: ending %s of %s\n", ending, mrl);
#endif
xine_strdupa(valid_ends, (this->config->register_string(this->config,
@@ -1206,7 +1229,7 @@ static void demux_ts_start(demux_plugin_t *this_gen,
* Now start demuxing.
*/
if ((err = pthread_create(&this->thread, NULL, demux_ts_loop, this)) != 0) {
- fprintf(stderr, "demux_ts: can't create new thread (%s)\n", strerror(err));
+ LOG_MSG_STDERR(this->xine, _("demux_ts: can't create new thread (%s)\n"), strerror(err));
exit (1);
}
}
@@ -1217,7 +1240,7 @@ static void demux_ts_stop(demux_plugin_t *this_gen)
buf_element_t *buf;
void *p;
- printf ("demux_ts: stop...\n");
+ LOG_MSG(this->xine, _("demux_ts: stop...\n"));
if (this->status != DEMUX_OK) {
@@ -1263,18 +1286,20 @@ demux_plugin_t *init_demuxer_plugin(int iface, xine_t *xine) {
int i;
if (iface != 6) {
- printf("demux_ts: plugin doesn't support plugin API version %d.\n"
- "demux_ts: this means there's a version mismatch between xine and this "
- "demux_ts: demuxer plugin.\nInstalling current demux plugins should help.\n",
- iface);
+ LOG_MSG(xine,
+ _("demux_ts: plugin doesn't support plugin API version %d.\n"
+ " this means there's a version mismatch between xine and this "
+ " demuxer plugin.\nInstalling current demux plugins should help.\n"),
+ iface);
return NULL;
}
-
+
/*
* Initialise the generic plugin.
*/
this = xine_xmalloc(sizeof(*this));
this->config = xine->config;
+ this->xine = xine;
(void*) this->config->register_string(this->config, "mrl.mrls_ts", VALID_MRLS,
"valid mrls for ts demuxer",