You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Most transponders, each program is associated with one exclusive PMT_ID,
e.g. 1)
program_number=100 is associated with PMT_ID=800
program_number=150 is associated with PMT_ID=807
program_number=155 is associated with PMT_ID=845
but the most complicated to demux transponders(e.g.: hispasat 30W - Network_ID: 54 (0x0036)), all programs are associated with one PMT_ID,
e.g. 2)
program_number=100 is associated with PMT_ID=817
program_number=150 is associated with PMT_ID=817
program_number=155 is associated with PMT_ID=817
In the first transponder it's easy to apply a demux filter DMX_SET_PES_FILTER for PMT packets associated with the program we want by PMT_ID, like is done at demux.cpp#L872, but in the second transpoder if we apply the filter the same way, we will get a mpegts with the PMT packets of all the programs of that transponder, so we need an advanced demux filter using DMX_SET_FILTER to filter the PMT packets by program_number and deal with it to have a mpegts of the program.
This type of mpegts with one PMT_ID for all the programs is unplayable for 99% of video players. In the case of mpv, I didn't analise the code, but just by using mpv with mpegts streams/files, I know it orders streams by reading PMT tables packets and then try to play the program of the first PMT table packet received and will hang, without even starting the GUI, waiting for streams --vid=1 and/or --aud=1, because most of the time the first PMT packet will not be of the program the demuxer is filtering, so there will never be the streams --vid=1 and/or --aud=1.
I'm not a developer, and to solve this is needed a special kind of developers that knows how to build advanced demux filters and deal with them.
mpegts has PMT packets that look like this e.g.:
Most transponders, each program is associated with one exclusive PMT_ID,
e.g. 1)
program_number=100 is associated with PMT_ID=800
program_number=150 is associated with PMT_ID=807
program_number=155 is associated with PMT_ID=845
but the most complicated to demux transponders(e.g.: hispasat 30W - Network_ID: 54 (0x0036)), all programs are associated with one PMT_ID,
e.g. 2)
program_number=100 is associated with PMT_ID=817
program_number=150 is associated with PMT_ID=817
program_number=155 is associated with PMT_ID=817
In the first transponder it's easy to apply a demux filter DMX_SET_PES_FILTER for PMT packets associated with the program we want by PMT_ID, like is done at demux.cpp#L872, but in the second transpoder if we apply the filter the same way, we will get a mpegts with the PMT packets of all the programs of that transponder, so we need an advanced demux filter using DMX_SET_FILTER to filter the PMT packets by program_number and deal with it to have a mpegts of the program.
This type of mpegts with one PMT_ID for all the programs is unplayable for 99% of video players. In the case of mpv, I didn't analise the code, but just by using mpv with mpegts streams/files, I know it orders streams by reading PMT tables packets and then try to play the program of the first PMT table packet received and will hang, without even starting the GUI, waiting for streams --vid=1 and/or --aud=1, because most of the time the first PMT packet will not be of the program the demuxer is filtering, so there will never be the streams --vid=1 and/or --aud=1.
I have a workaround using inetd and ffmpeg:
/etc/services
/etc/inetd.conf
/home/root/ffmpeg-e2.sh
/etc/enigma2/settings
The text was updated successfully, but these errors were encountered: