Opened 13 years ago
Closed 13 years ago
Last modified 13 years ago
#9926 closed Bug Report - General (fixed)
IPTV BBC recordings can't be played.
Reported by: | Owned by: | beirdo | |
---|---|---|---|
Priority: | minor | Milestone: | 0.25 |
Component: | MythTV - Video Decoding | Version: | 0.24.1 |
Severity: | medium | Keywords: | |
Cc: | Ticket locked: | no |
Description
Hello,
I have a MythTV station that is connected to an IPTV fiber connection. All channels come in with UDP multicast and everything is recorded using the FREEBOX tuner. I can record any channel I want and playback of dutch channels works just fine.
But when I try to playback a recording coming from one of the BBC channels I have (BBC1, BBC2, BBC3, BBC4) the playback fails and after trying it 2 times the frontend crashes of hangs. I have had several times where I had to kill the frontend to be able to start it again.
I have created a trace of the failed playback using the -v playback option and when I do that I get the following error (full log attached):
2011-07-18 23:00:36.158 TV: Attempting to change from None to WatchingRecording? 2011-07-18 23:00:36.161 RingBuf?(/storage/default/1401_20110718224900.mpg): OpenFile?(/storage/default/1401_20110718224900.mpg, 2000 ms) 2011-07-18 23:00:36.166 TV Error: Couldn't find recorder for in-progress recording 2011-07-18 23:00:36.166 TV: StartPlayer?(0, WatchingPreRecorded?, main) -- begin 2011-07-18 23:00:36.167 TV: Elapsed time since TV constructor was called: 58 ms 2011-07-18 23:00:36.415 Tuning to pnum: 0x1 without CRC check on PMT 2011-07-18 23:00:36.463 mpegts_read_header: could not find any PMT's 2011-07-18 23:00:36.464 AFD Error: avformat err(-1) on av_open_input_file call. 2011-07-18 23:00:36.464 Couldn't open decoder for: /storage/default/1401_20110718224900.mpg 2011-07-18 23:00:36.464 Unable to open video file. 2011-07-18 23:00:56.512 playCtx, Error: StartPlaying?() Failed to start player 2011-07-18 23:00:56.512 Player(0): StopPlaying? - begin 2011-07-18 23:00:56.512 Player(0): Exited decoder loop. 2011-07-18 23:00:56.512 Player(0): StopPlaying? - end 2011-07-18 23:00:56.512 TV: StartPlayer?(0, WatchingPreRecorded?, main) -- end error
I have tried setting the playback profile to Slim, but that doesn't work. At the moment it is set to CPU+.
I have put a 50MB MPEG2 file that gives this error for me at http://jhp.home.xs4all.nl/50mb_bbc1.mpg
Attachments (1)
Change History (5)
comment:1 Changed 13 years ago by
[root@mythtv ~]# mythffplay /storage/50mb_bbc1.mpg FFplay version UNKNOWN, Copyright (c) 2003-2010 the FFmpeg developers
built on Jul 10 2011 19:15:33 with gcc 4.4.4 20100630 (Red Hat 4.4.4-10) configuration: --prefix=/usr --libdir=/usr/lib --libdir-name=lib --mandir=/usr/share/man --enable-iptv --enable-pthreads --enable-ffmpeg-pthreads --enable-joystick-menu --enable-audio-alsa --enable-audio-oss --enable-audio-jack --enable-libfftw3 --enable-x11 --x11-path=/usr/include --enable-xv --enable-xvmc-vld --enable-opengl-video --enable-opengl-vsync --enable-xrandr --enable-lirc --enable-ivtv --enable-firewire --enable-dvb --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libxvid --enable-vdpau --enable-crystalhd --disable-directfb --extra-cflags='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables -fomit-frame-pointer' --extra-cxxflags='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables -fomit-frame-pointer' --cpu=i686 --tune=i686 --enable-mmx --compile-type=release --enable-debug libavutil 50.24. 0 / 50.24. 0 libavcore 0. 6. 0 / 0. 6. 0 libavcodec 52.86. 1 / 52.86. 1 libavformat 52.78. 3 / 52.78. 3 libavdevice 52. 2. 1 / 52. 2. 1 libavfilter 1.37. 0 / 1.37. 0 libswscale 0.11. 0 / 0.11. 0 libpostproc 51. 2. 0 / 51. 2. 0
Tuning to pnum: 0x1 without CRC check on PMT mpegts_read_header: could not find any PMT's /storage/50mb_bbc1.mpg: Operation not permitted
comment:2 Changed 13 years ago by
Component: | MythTV - Video Playback → MythTV - Video Decoding |
---|---|
Owner: | changed from markk to beirdo |
Status: | new → assigned |
Type: | Bug Report - Crash → Bug Report - General |
Issue with MPEG TS demuxer in local copy of ffmpeg. Problem does not exist upstream.
comment:3 Changed 13 years ago by
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
Deal with incomplete PMT streams in BBC iPlayer IPTV
Fixes #9926
It turns out that the test recording (and presumably the others from the same source) contain incomplete PMT tables. The size field for the PMT says that there will be 383 bytes of data, but the only data received is the 182 bytes contained in the rest of that TS packet. i
FFmpeg without MythTV modifications to mpegts.c can handle this just fine as it doesn't need to know about the contents of the PMT. MythTV, however, depends on that information to determine what video and audio streams we have.
To deal with this without affecting "normal" recordings, I have put in another fallback that will try to parse the PMT overriding the length to the length received in the TS packet. This will only be used if it can not be parsed correctly, and if we've tried again without checking the CRC. This third and final attempt, should it fail, will cause it to give up. Should it succeed, there may be some streams not parsed, but whatever was in the first 182 bytes of the PMT should be taken into consideration, and there should be playback.
Branch: master Changeset: c11ee69c81198dc221c874e8132f1f30a385fa63
comment:4 Changed 13 years ago by
Milestone: | 0.24.1 → 0.25 |
---|
logfiles of failing bbc1 playback.