Opened 9 years ago

Last modified 19 months ago

#7205 new Patch - Feature

Add Support for ASIRecorder style PSIP generation to FirewireRecorder

Reported by: Marc Randolph <mrand@…> Owned by: danielk
Priority: minor Milestone: unknown
Component: MythTV - Recording Version: Master Head
Severity: medium Keywords:
Cc: Ticket locked: no

Description

Forwarding from downstream. Problem as I understand it is that the SA8300HD works fine when using test-mpeg2, but myth has trouble capturing the stream. Here is an example: http://dl.getdropbox.com/u/1578989/test.mpg

backend log:

2009-09-27 14:07:49.550 scheduler: Scheduled items: Scheduled 289 items in 1.6 = 0.00 match + 1.62 place
2009-09-27 14:07:49.559 TVRec(6): RecordPending on inputid 7
2009-09-27 14:07:49.560 TVRec(6): StartRecording(NFL Football)
2009-09-27 14:07:49.560 TVRec(6): ASK_RECORDING 6 0 0 0
2009-09-27 14:07:49.643 adding: mythtv as a client (events: 1)
2009-09-27 14:07:49.732 TVRec(6): StartedRecording(0x93bd2c8) fn(/tv/d3/1811_20090927140800.mpg)
2009-09-27 14:07:49.732 TVRec(6): ClearFlags(CancelNextRecording,) -> RunMainLoop,
2009-09-27 14:07:49.732 TVRec(6): Changing from None to Watching RecordingOnly
2009-09-27 14:07:49.732 TVRec(6): ClearFlags(FrontendReady,CancelNextRecording,) -> RunMainLoop,
2009-09-27 14:07:49.732 TVRec(6): Request: Program(yes) channel() input() flags(Recording,)
2009-09-27 14:07:49.733 TVRec(6): HW Tuner: 6->6
2009-09-27 14:07:49.734 TVRec(6): ClearFlags(PENDINGACTIONS,) -> RunMainLoop,
2009-09-27 14:07:49.734 TVRec(6): No recorder yet, calling TuningFrequency
2009-09-27 14:07:49.734 FireChan(0022CECC76B00000): Open()
2009-09-27 14:07:49.736 FireChan(0022CECC76B00000): SetChannelByString(3)
2009-09-27 14:07:49.738 SetChannelByNumber(81)
2009-09-27 14:07:49.738 FireDev(0022CECC76B00000): Requesting STB Power State
2009-09-27 14:07:49.740 FireDev(0022CECC76B00000): STB Power State: On
2009-09-27 14:07:49.740 SetChannel(model GENERIC, alt 0, chan 81)
2009-09-27 14:07:49.741 SetChannel() -- locked
2009-09-27 14:07:49.745 SetLastChannel(81): cleared: yes
2009-09-27 14:07:49.745 FireChan(0022CECC76B00000): SetChannelByString(3) success
2009-09-27 14:07:49.745 TVRec(6): Starting Signal Monitor
2009-09-27 14:07:49.745 TVRec(6): SetupSignalMonitor(1, 0)
2009-09-27 14:07:49.745 FireChan(0022CECC76B00000): Open()
2009-09-27 14:07:49.745 FireSM(0022CECC76B00000): ctor
2009-09-27 14:07:49.745 SM(0022CECC76B00000)::AddFlags: Seen() Match() Wait(Sig,)
2009-09-27 14:07:49.746 FireDev(0022CECC76B00000): Requesting STB Power State
2009-09-27 14:07:49.748 FireDev(0022CECC76B00000): STB Power State: On
2009-09-27 14:07:49.748 TVRec(6): Signal monitor successfully created
2009-09-27 14:07:49.748 TVRec(6): Setting up table monitoring.
2009-09-27 14:07:49.750 Using profile 'Live TV' to record
2009-09-27 14:07:49.751 TVRec(6): MPEG program number: 1
2009-09-27 14:07:49.751 DTVSM(0022CECC76B00000)::SetProgramNumber(1):
2009-09-27 14:07:49.751 SM(0022CECC76B00000)::RemoveFlags: Seen(PMT,Crypt,) Match(PMT,Crypt,) Wait()
2009-09-27 14:07:49.751 SM(0022CECC76B00000)::AddFlags: Seen() Match() Wait(PMT,)
2009-09-27 14:07:49.751 SM(0022CECC76B00000)::AddFlags: Seen() Match() Wait(PAT,PMT,Pos,)
2009-09-27 14:07:49.751 TVRec(6): Successfully set up MPEG table monitoring.
2009-09-27 14:07:49.751 SM(0022CECC76B00000)::Start: begin
2009-09-27 14:07:49.751 FireDev(0022CECC76B00000): Requesting STB Power State
2009-09-27 14:07:49.751 SM(0022CECC76B00000)::Start: end
2009-09-27 14:07:49.751 TVRec(6): SetFlags(SignalMonitorRunning,) -> RunMainLoop,SignalMonitorRunning,
2009-09-27 14:07:49.751 TVRec(6): ClearFlags(WaitingForSignal,) -> RunMainLoop,SignalMonitorRunning,
2009-09-27 14:07:49.751 TVRec(6): SetFlags(WaitingForSignal,) -> RunMainLoop,WaitingForSignal,SignalMonitorRunning,
2009-09-27 14:07:49.751 TVRec(6): ClearFlags(NeedToStartRecorder,) -> RunMainLoop,WaitingForSignal,SignalMonitorRunning,
2009-09-27 14:07:49.751 TVRec(6): SetFlags(NeedToStartRecorder,) -> RunMainLoop,WaitingForSignal,NeedToStartRecorder,SignalMonitorRunning,
2009-09-27 14:07:49.754 FireDev(0022CECC76B00000): STB Power State: On
2009-09-27 14:07:49.754 SM(0022CECC76B00000)::AddFlags: Seen(STB,) Match(STB,) Wait()
2009-09-27 14:07:49.754 FireSM(0022CECC76B00000): RunTableMonitor(): -- begin
2009-09-27 14:07:49.754 LFireDev(0022CECC76B00000): Starting Port Handler Thread
2009-09-27 14:07:49.754 LFireDev(0022CECC76B00000): Starting Port Handler Thread -- locked
2009-09-27 14:07:49.754 LFireDev(0022CECC76B00000): OpenPort()
2009-09-27 14:07:49.754 FireSM(0022CECC76B00000): UpdateValues() -- Waiting for table monitor to start
2009-09-27 14:07:49.755 LFireDev(0022CECC76B00000): OpenPort() -- got lock
2009-09-27 14:07:49.755 FireDev(0022CECC76B00000): AddListener() 1
2009-09-27 14:07:49.755 LFireDev(0022CECC76B00000): Opening P2P connection
2009-09-27 14:07:49.755 FireSM(0022CECC76B00000): UpdateValues() -- Table monitor started
2009-09-27 14:07:49.758 AutoExpire: CalcParams(): Max required Free Space: 3.0 GB w/freq: 15 min
2009-09-27 14:07:49.761 scheduler: Started recording: NFL Football "Kansas City Chiefs at Philadelphia Eagles": channel 1811 on cardid 6, sourceid 2
libiec61883 warning: Overlayed connection on channel 0.
You may need to manually set the channel on the receiving node.
2009-09-27 14:07:49.763 LFireDev(0022CECC76B00000): OpenAVStream
2009-09-27 14:07:49.763 LFireDev(0022CECC76B00000): Opening A/V stream object
2009-09-27 14:07:49.763 LFireDev(0022CECC76B00000): Buffered packets 2000 (8000 KB)
2009-09-27 14:07:49.763 LFireDev(0022CECC76B00000): Starting A/V streaming -- really
2009-09-27 14:07:49.770 LFireDev(0022CECC76B00000): Starting A/V streaming -- done
$ mythbackend --version
Please include all output in bug reports.
MythTV Version : 22072
MythTV Branch : trunk
Network Protocol : 48
Library API : 0.22.20090919-1
QT Version : 4.5.0
Options compiled in:
 linux debug using_oss using_alsa using_pulse using_jack using_backend using_dvb using_firewire using_frontend using_glx_proc_addr_arb using_hdhomerun using_hdpvr using_iptv using_ivtv using_joystick_menu using_libfftw3 using_lirc using_mheg using_opengl_video using_opengl_vsync using_qtwebkit using_v4l using_x11 using_xrandr using_xv using_xvmc using_xvmc_vld using_xvmcw using_bindings_perl using_bindings_python using_opengl using_vdpau using_ffmpeg_threads using_libavc_5_3 using_live using_mheg

Is the issue that it cannot find a PAT? Not a new/recent breakage... its been like this forever.

Attachments (4)

0001-Add-firewire_gen_psip-boolean-to-capturecard-db-sche.patch (4.6 KB) - added by Chase Douglas <chasedouglas@…> 7 years ago.
0002-Populate-gen_psip-variable-of-FireWireDBOptions.patch (1.7 KB) - added by Chase Douglas <chasedouglas@…> 7 years ago.
0003-Generate-PSI-packets-for-broken-firmware-cable-boxes.patch (13.1 KB) - added by Chase Douglas <chasedouglas@…> 7 years ago.
0004-Add-checkbox-for-firewire-PSIP-generation.patch (1.7 KB) - added by Chase Douglas <chasedouglas@…> 7 years ago.

Download all attachments as: .zip

Change History (17)

comment:1 Changed 9 years ago by mitchell.gore@…

I am the one who filed the big report in mythbuntu. If you have any suggestions and patches please let me know.

Mitchell

comment:2 Changed 9 years ago by robertm

Component: MythTV - GeneralMythTV - Recording
Owner: changed from Isaac Richards to danielk

comment:3 Changed 9 years ago by danielk

Resolution: invalid
Status: newclosed

I can't access the mpg, but it appears that the PMT is missing. The MythTV tuning code requires at least a PAT and PMT as per spec. Any attempt to add support for building a PMT on the fly based on the content of the data on the wire would be a feature request. It's a sufficiently rare case that I'm not really interested in implementing that feature myself.

comment:4 Changed 7 years ago by Chase Douglas <chasedouglas@…>

Resolution: invalid
Status: closednew

comment:5 Changed 7 years ago by Chase Douglas <chasedouglas@…>

I have created some patches to implement PAT and PMT generation. I will attach them to this bug.

I am new to MythTV as a contributor, so the patches may need coding standards or other rework. I also developed the patch on my system running 0.24-fixes and rebased to master, but I haven't tested the master version other than to see that it compiles properly.

The only known issue with the patch is that it assumes the audio stream is AAC and the video stream is MPEG2. Any guidance on how firewiredevice.cpp should be modified to allow for other codecs would be appreciated.

Thanks!

Changed 7 years ago by Chase Douglas <chasedouglas@…>

Changed 7 years ago by Chase Douglas <chasedouglas@…>

Changed 7 years ago by Chase Douglas <chasedouglas@…>

Changed 7 years ago by Chase Douglas <chasedouglas@…>

comment:6 Changed 7 years ago by chasedouglas@…

Please disregard the attached patches. I have reworked them and created a pull request on github:

https://github.com/MythTV/mythtv/pull/10

comment:7 Changed 7 years ago by stuartm

Milestone: unknown0.26
Type: defectPatch - Bug Fix
Version: unknownMaster Head

Up to date patches supplied, but probably too many changes for 0.25. Setting milestone to 0.26 so they hopefully won't get overlooked for that release.

comment:8 in reply to:  7 Changed 7 years ago by rootrott@…

Replying to stuartm:

Up to date patches supplied, but probably too many changes for 0.25. Setting milestone to 0.26 so they hopefully won't get overlooked for that release.

Hello,

I have an rng110 that's experiencing this same issue. Is this still on deck to be included in .26? I compiled the latest git head and it's still broken there. It looks as if files are sufficiently different as to make these patches obsolete. I will try to merge by hand...

Thanks,

Seth

comment:9 Changed 6 years ago by danielk

Summary: SA8300HD STB doesn't record reliably via firewireAdd Support for ASIRecorder style PSIP generation to FirewireRecorder
Type: Patch - Bug FixPatch - Feature

comment:10 Changed 6 years ago by danielk

Milestone: 0.26unknown

comment:11 Changed 6 years ago by dbavatar@…

This has been broken for me for a long time, and I think that would cover a lot of firewire users. I saw a couple list posts where clearly the user had this problem and gave up on mythtv+firewire. Without this patch, firewire recording is simply broken for a lot of people. I've been using locally hacked PSIP for about 2 years waiting for someone to fix this. Can we get this in please?

comment:12 Changed 6 years ago by yfilali@…

This looks like an easy fix, and yet still broken for so many. Any chance this could be scheduled again or at least made easy to patch in?

comment:13 Changed 19 months ago by Peter Bennett

Is anybody still using Firewire? Any interest in getting this done, or should we abandon it at this stage?

Note: See TracTickets for help on using tickets.