diff --git a/stream/dvbin.h b/stream/dvbin.h index 61bc0b1e18..2a9130e5aa 100644 --- a/stream/dvbin.h +++ b/stream/dvbin.h @@ -55,7 +55,7 @@ #define DVB_CHANNEL_HIGHER 1 #ifndef DMX_FILTER_SIZE -#define DMX_FILTER_SIZE 16 +#define DMX_FILTER_SIZE 32 #endif typedef struct { diff --git a/stream/stream_dvb.c b/stream/stream_dvb.c index 6a50bb66f5..e3503af697 100644 --- a/stream/stream_dvb.c +++ b/stream/stream_dvb.c @@ -387,6 +387,20 @@ static dvb_channels_list *dvb_get_channels(struct mp_log *log, char *filename, i ptr->pids_cnt++; } + /* Add some PIDs which are mandatory in DVB, + * and contain human-readable helpful data. */ + + /* This is the STD, the service description table. + * It contains service names and such, ffmpeg decodes it. */ + ptr->pids[ptr->pids_cnt] = 0x0011; + ptr->pids_cnt++; + + /* This is the EIT, which contains EPG data. + * ffmpeg can not decode it (yet), but e.g. VLC + * shows what was recorded. */ + ptr->pids[ptr->pids_cnt] = 0x0012; + ptr->pids_cnt++; + if (ptr->service_id != -1) { /* We have the PMT-PID in addition. This will be found later, when we tune to the channel.