Modify
Warning Please read the Ticket HowTo before creating or commenting on a ticket. Failure to do so may cause your ticket to be rejected or result in a slower response.

Opened 3 years ago

Closed 3 years ago

Last modified 3 years ago

#9926 closed Bug Report - General (fixed)

IPTV BBC recordings can't be played.

Reported by: Jan Hugo Prins <jhp@…> 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)

bbc1.log (19.4 KB) - added by Jan Hugo Prins <jhp@…> 3 years ago.
logfiles of failing bbc1 playback.

Download all attachments as: .zip

Change History (5)

Changed 3 years ago by Jan Hugo Prins <jhp@…>

logfiles of failing bbc1 playback.

comment:1 Changed 3 years ago by Jan Hugo Prins <jhp@…>

[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 3 years ago by wagnerrp

  • Component changed from MythTV - Video Playback to MythTV - Video Decoding
  • Owner changed from markk to beirdo
  • Status changed from new to assigned
  • Type changed from Bug Report - Crash to Bug Report - General

Issue with MPEG TS demuxer in local copy of ffmpeg. Problem does not exist upstream.

comment:3 Changed 3 years ago by Github

  • Resolution set to fixed
  • Status changed from assigned to 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 3 years ago by beirdo

  • Milestone changed from 0.24.1 to 0.25

Add Comment

Modify Ticket

Action
as closed .
The resolution will be deleted. Next status will be 'new'.
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.