2
* demux_xvdr_tsdata.h: data for MPEG-TS demuxer
4
* See the main source file 'xineliboutput.c' for copyright information and
5
* how to reach the author.
7
* $Id: demux_xvdr_tsdata.c,v 1.1 2009/02/24 19:50:42 phintuka Exp $
13
#include <xine/buffer.h>
15
#define LOG_MODULENAME "[demux_vdr] "
16
#define SysLogLevel iSysLogLevel
17
#include "../logdefs.h"
19
#include "../tools/ts.h"
22
#include "demux_xvdr_tsdata.h"
24
static void ts_data_ts2es_reset(ts_data_t *ts_data)
28
ts2es_dispose(ts_data->video);
29
ts_data->video = NULL;
31
for (i = 0; ts_data->audio[i]; i++) {
32
ts2es_dispose(ts_data->audio[i]);
33
ts_data->audio[i] = NULL;
36
for (i = 0; ts_data->spu[i]; i++) {
37
ts2es_dispose(ts_data->spu[i]);
38
ts_data->spu[i] = NULL;
42
void ts_data_ts2es_init(ts_data_t **ts_data, fifo_buffer_t *video_fifo, fifo_buffer_t *audio_fifo)
45
ts_data_ts2es_reset(*ts_data);
47
*ts_data = calloc (1, sizeof(ts_data_t));
49
ts_data_t *this = *ts_data;
53
if (this->pmt.video_pid != INVALID_PID)
54
this->video = ts2es_init(video_fifo, this->pmt.video_type, 0);
56
for (i=0; i < this->pmt.spu_tracks_count; i++)
57
this->spu[i] = ts2es_init(video_fifo, STREAM_DVBSUB, i);
61
for (i=0; i < this->pmt.audio_tracks_count; i++)
62
this->audio[i] = ts2es_init(audio_fifo, this->pmt.audio_tracks[i].type, i);
66
void ts_data_flush(ts_data_t *ts_data)
72
ts2es_flush(ts_data->video);
74
for (i = 0; ts_data->audio[i]; i++)
75
ts2es_flush(ts_data->audio[i]);
77
for (i = 0; ts_data->spu[i]; i++)
78
ts2es_flush(ts_data->spu[i]);
82
void ts_data_dispose(ts_data_t **ts_data)
86
ts_data_ts2es_reset(*ts_data);