v15 double open video decoder live tv
#1
regarding the kodi log files, opening / switching a channel in live-tv opens a video decoder twice.

Following the 2 backtraces:

Code:
#0  CDVDPlayer::OpenStream (this=0x31409d0, current=..., iStream=0, source=256, reset=false) at DVDPlayer.cpp:3259
#1  0x016fa9b4 in CDVDPlayer::OpenDefaultStreams (this=0x31409d0, reset=false) at DVDPlayer.cpp:843
#2  0x016fb066 in CDVDPlayer::ReadPacket (this=0x31409d0, packet=@0xa39fdd28: 0x9ef074a0, stream=@0xa39fdd2c: 0x0) at DVDPlayer.cpp:952
#3  0x016fbe08 in CDVDPlayer::Process (this=0x31409d0) at DVDPlayer.cpp:1319
#4  0x01855724 in CThread::Action (this=0x31409d8) at Thread.cpp:221
#5  0x01855498 in CThread::staticThread (data=0x31409d8) at Thread.cpp:131
#6  0xb6b8a490 in start_thread (arg=0x0) at pthread_create.c:335
#7  0xb4dc0c4c in ?? () at ../sysdeps/unix/sysv/linux/arm/clone.S:89 from /lib/arm-linux-gnueabihf/libc.so.6
Backtrace stopped: previous frame identical to this frame (corrupt stack?)


#0  CDVDPlayer::OpenStream (this=0x31409d0, current=..., iStream=0, source=256, reset=true) at DVDPlayer.cpp:3259
#1  0x016fc64e in CDVDPlayer::CheckStreamChanges (this=0x31409d0, current=..., stream=0xa3b00a48) at DVDPlayer.cpp:1530
#2  0x016fc8bc in CDVDPlayer::ProcessVideoData (this=0x31409d0, pStream=0xa3b00a48, pPacket=0x9ef01900) at DVDPlayer.cpp:1578
#3  0x016fc57e in CDVDPlayer::ProcessPacket (this=0x31409d0, pStream=0xa3b00a48, pPacket=0x9ef01900) at DVDPlayer.cpp:1509
#4  0x016fc34e in CDVDPlayer::Process (this=0x31409d0) at DVDPlayer.cpp:1464
#5  0x01855724 in CThread::Action (this=0x31409d8) at Thread.cpp:221
#6  0x01855498 in CThread::staticThread (data=0x31409d8) at Thread.cpp:131
#7  0xb6b8a490 in start_thread (arg=0x0) at pthread_create.c:335
#8  0xb4dc0c4c in ?? () at ../sysdeps/unix/sysv/linux/arm/clone.S:89 from /lib/arm-linux-gnueabihf/libc.so.6

The second call is because CheckStreamChanges detects differences, they are based on extradata.

Refering to void CDVDPlayer::CheckStreamChanges(CCurrentStream& current, CDemuxStream* stream)

current.hint has no extradata applied:
Code:
$8 = {codec = AV_CODEC_ID_MPEG2VIDEO, type = STREAM_VIDEO, flags = 0, software = false, filename = "", fpsscale = 40000, fpsrate = 1000000, height = 576, width = 720, aspect = 0, vfr = false, stills = false, level = -99, profile = -99, p
tsinvalid = false, forced_aspect = false, orientation = 0, bitsperpixel = 0, pid = 1, stereo_mode = "mono", channels = 0, samplerate = 0, bitrate = 0, blockalign = 0, bitspersample = 0, extradata = 0x0, extrasize = 0, codec_tag = 0}

but CDVDStreamInfo tmp(*stream, true); has:
Code:
$7 = {codec = AV_CODEC_ID_MPEG2VIDEO, type = STREAM_VIDEO, flags = 0, software = false, filename = "", fpsscale = 40000, fpsrate = 1000000, height = 576, width = 720, aspect = 0, vfr = false, stills = false, level = -99, profile = -99, p
tsinvalid = false, forced_aspect = false, orientation = 0, bitsperpixel = 0, pid = 1, stereo_mode = "mono", channels = 0, samplerate = 0, bitrate = 0, blockalign = 0, bitspersample = 0, extradata = 0xa3f0a438, extrasize = 150, codec_tag
= 0}

Before I start investigating: Is this a known issue?

- latest master branch state
- MFCCodec (odroid specific)
- Linux 15.04
- TVHeadend
- MPeg2 HTS Video (but the issue is - as I remember not format specific)

Thanks! Let me know if you need more information.....
Reply
#2
There are other platforms where hw decoders are only able to be openend once. IIRC we somehow ensure that this restriction is obeyed. Not sure which codec it is but lets hope other devs who know more about it will chime in here.
AppleTV4/iPhone/iPod/iPad: HowTo find debug logs and everything else which the devs like so much: click here
HowTo setup NFS for Kodi: NFS (wiki)
HowTo configure avahi (zeroconf): Avahi_Zeroconf (wiki)
READ THE IOS FAQ!: iOS FAQ (wiki)
Reply
#3
Doesn't seem so - I'll investigate it....
Reply

Logout Mark Read Team Forum Stats Members Help
double open video decoder live tv0