Opened 13 years ago

Closed 13 years ago

#9196 closed defect (Fixed)

Unable to play recordings on win32 build 0.24rc2

Reported by: hackbox187@… Owned by: danielk
Priority: minor Milestone: unknown
Component: Ports - Windows Version: Master Head
Severity: medium Keywords:
Cc: Ticket locked: no

Description (last modified by Raymond Wagner)

Using a Win32 build of 0.24 RC2 on Windows 7 x64 as frontend only. Build done using Virtual PC Windows XP Mode with latest win32-packager.pl Also tried unofficial win32 builds.

Mythfrontend is dying while trying to play a recording in "Watch Recordings"

LiveTV is working fine.

I'll be happy to provide anything to help find a solution.

2010-11-08 22:22:32.470 Using protocol version 63
2010-11-08 22:22:32.504 AudioPlayer: Disabling Audio, params(0,2,44100)
2010-11-08 22:22:32.525 AudioOutput Error: Aborting Audio Reconfigure. 
Invalid audio parameters ch 2 fmt 0 @ 44100Hz
2010-11-08 22:22:32.526 AudioPlayer: Disabling Audio, reason is: Aborting Audio Reconfigure. Invalid audio parameters ch 2 fmt 0 @ 44100Hz
2010-11-08 22:22:32.526 playCtx, Error: Aborting Audio Reconfigure. Invalid audio parameters ch 2 fmt 0 @ 44100Hz
ASSERT failure in QReadWriteLock::unlock(): "Cannot unlock an unlocked lock", file thread\qreadwritelock.cpp, line 405
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
QWaitCondition: Destroyed while threads are still waiting

Attachments (3)

mythtv-frontend.zip (196.7 KB) - added by hackbox187@… 13 years ago.
gdb output from mythfrontend.cmd
9196.log (22.6 KB) - added by Jeff Lu <jll544@…> 13 years ago.
frontend log (-v file)
9196_bt.txt (10.8 KB) - added by Jeff Lu <jll544@…> 13 years ago.
backtrace

Download all attachments as: .zip

Change History (16)

comment:1 Changed 13 years ago by Raymond Wagner

Description: modified (diff)
Priority: majorminor

Reset Priority to default. Move logs to a comment box.

comment:2 Changed 13 years ago by hackbox187@…

Here is some info:

Backend: Ubuntu 10.04 0.24rc2 trunk r27113
Frontend: 0.24rc2 r27119 trunk win32
Source: Firewire and DVB, both HD, MPEG2 only
It happens on both my builds and unofficial ones (FE only).
The recording files are fine, playing correctly using other players.

Like I said, the LiveTV is working great.
May be it's related to the live preview (Mythpreviewgen) of the Watch Recording screen...

I've done more tests and I've been able to start recordings. I need to start a fresh new recording then go to Watch Recording and rapidly start the new recording while there's still no preview generated. I have to be really quick.

Changed 13 years ago by hackbox187@…

Attachment: mythtv-frontend.zip added

gdb output from mythfrontend.cmd

comment:3 Changed 13 years ago by anonymous

I've attached a gdb output generated with the mythfrontend.cmd batch file included when building MythTV with the perl script win32-packager.pl.

Let me know if something is missing, it's my first try with gdb.

This is with a fresh r27166 build.

comment:4 Changed 13 years ago by tkrantz@…

I can confirm this same behaviour up through r27198. LiveTV works both on analog and digital. I can play my analog recordings but any attempt to play a digital recording results in the same failure. I tried to run gdb to catch the backtrace at line 405 in the source by setting a breakpoint on the line then setting a condition d->accessCount==0 on that breakpoint but I keep getting some message that indicates I am trying to dereference something that is not a structure or union. I would be glad to try gdb again if someone can help me set an appropriate condition.

comment:5 Changed 13 years ago by stephane_blackburn@…

I have the same problem with a 0.24-fixes r27198 build.

MythTV Version : 27198 MythTV Branch : branches/release-0-24-fixes Network Protocol : 63 Library API : 0.24.20101028-1 QT Version : 4.6.3

Options compiled in:

profile using_backend using_frontend using_hdhomerun using_mheg using_opengl_video using_opengl_vsync using_qtwebkit using_opengl using_ffmpeg_threads using_mheg

comment:6 Changed 13 years ago by robertm

Ticket locked: set

All of you need to please read the ticket howto. "Me too" adds *nothing* to the ticket.

comment:7 Changed 13 years ago by robertm

Status: newinfoneeded_new

Numerous playback fixes have gone in in the past few days, please test current .24-fixes and report on whether this is still an issue. Also, the gdb output is empty, a proper gdb backtrace would probably be enlightening, as it's not clear to me whether the issue is with audio or video code from what I see.

comment:8 Changed 13 years ago by sphery

Ticket locked: unset

Changed 13 years ago by Jeff Lu <jll544@…>

Attachment: 9196.log added

frontend log (-v file)

Changed 13 years ago by Jeff Lu <jll544@…>

Attachment: 9196_bt.txt added

backtrace

comment:9 Changed 13 years ago by Jeff Lu <jll544@…>

FE log (-v file) and backtrace attached. This assert probably would show up on any platform when using debug Qt libraries. The problem is in the start-playback optimization of RingBuffer::Seek(). Lines 1989-1990 (RingBuffer?.cpp, 0.24-fixes) attempt to unlock rbwlock and rbrlock, but the preceding code doesn't leave them in a locked state.

comment:10 Changed 13 years ago by danielk

(In [27364]) Refs #9196. This disables the ffmpeg mpeg-2 startup optimization in the ringbuffer code in 0.24-fixes and fixes the the problem reported by Jeff Lu. Please report back whether this helps with MS Windows playback.

comment:11 in reply to:  10 Changed 13 years ago by Jeff Lu <jll544@…>

Replying to danielk:

(In [27364]) Please report back whether this helps with MS Windows playback.

Yes, it does. Playback on Windows is working fine after this change.

Thanks,

Jeff

comment:12 Changed 13 years ago by danielk

Owner: changed from Nigel to danielk
Status: infoneeded_newassigned

comment:13 Changed 13 years ago by danielk

Resolution: Fixed
Status: assignedclosed

(In [27378]) Fixes #9196 in trunk. This appears to have been a cut-n-paste error. Thanks Jeff Lu for finding it.

Note: See TracTickets for help on using tickets.