Opened 13 years ago

Closed 13 years ago

Last modified 13 years ago

#1701 closed task (fixed)

Add support for HDHomeRun device

Reported by: danielk Owned by: danielk
Priority: minor Milestone: 0.20
Component: mythtv Version: head
Severity: medium Keywords:
Cc: Ticket locked: no

Description


Change History (19)

comment:1 Changed 13 years ago by danielk

(In [9729]) References #1701. Adds initial support for HDHomeRun device.

There are a few important features missing:

  • Channel Scanning
  • EIT data collection
  • PID filtering

The tuning is also slower than it could be.

I've created task ticket #1701 to remind me to implement these things.

comment:2 Changed 13 years ago by danielk

(In [9735]) References #1701. Adds support for channel scanning for HDHomeRun device.

comment:3 Changed 13 years ago by danielk

(In [9737]) References #1701. Adds support for passive EIT data collection.

comment:4 Changed 13 years ago by danielk

(In [9738]) References #1701. Adds pid filter tracking for HDHomeRun device.

The actual filtering command is disabled, there appears to be some problem at the silicondust lib or firmware level.

comment:5 Changed 13 years ago by danielk

(In [9743]) References #1035, References #1701.

You may need to do a distclean. This removes signals and slots from the channels and recorders.

I've tested this with every recorder I have access to, but I don't have access to a firewire or dbox2 recorder.

If you experience any problems please do a distclean before reporting the problem.

The reasons for getting rid of signals and slots in non gui elements are because they require delayed deletes and other extra complexity to avoid segfaults, and because they are not thread safe and are incompatible with virtual inheritence and multiple inheritence.

comment:6 Changed 13 years ago by danielk

(In [9886]) Refs #1701, check return value of HDHRChannel::Open().

Open() can fail when the device is turned off...

comment:7 Changed 13 years ago by danielk

Resolution: fixed
Status: newclosed

This is basically done, at least until I get QAM capable firmware.

comment:8 Changed 13 years ago by danielk

(In [10116]) Refs #1701. Enables HDHomeRun pid filtering + parses PMT for media pids.

comment:9 Changed 13 years ago by danielk

(In [10123]) Refs #1701. Fixes two problems with HDHomeRun recorder.

1/ We were only reading 7 TS Packets at a time on the video socket, now we read up to 700. This should reduce the multitasking requirements in dealing with packets. 2/ The HDHRRecorder handling of PMTs could cause a segfault on channel changes; this makes a copy of the table to avoid this.

comment:10 Changed 13 years ago by danielk

(In [10126]) Refs #1701. Cleans up pid filtering code a bit.

This syncs the pid filtering code with the DVB pid filtering code. This allows the HDHRRecorder to handle EIT throttling and intra-multiplex channel changing without allowing too many pids through.

comment:11 Changed 13 years ago by danielk

(In [10211]) Refs #1701. Adds buffering to the hdhomerun library with a patch from Nick Kelsey.

This reduces the real-time requirement of HDHRRecorder. It's needed because the kernel socket buffers are not deep enough to prevent overflow if the machine is even sligtly taxed. The HDHomeRun can't do much buffering internally, and streams the data via UDP without rate control to the recording host.

comment:12 Changed 13 years ago by danielk

(In [10222]) Refs #1701. Fixes a EIT PID thrashing problem with ATSC streams.

The pid filters kept getting bounced back and fourth between the EIT and ETT pids due to an error in GetEITPIDChanges(). This also changes the HDHR filter debug VERBOSE from VB_IMPORTANT to VB_CHANNEL.

comment:13 Changed 13 years ago by danielk

(In [10256]) Refs #1701. Sync from Silicondust version of hdhomerun lib. (socket cleanup)

comment:14 Changed 13 years ago by danielk

(In [10371]) Refs #1701. Sync with hdhomerun library.

comment:15 Changed 13 years ago by danielk

(In [10372]) Refs #1701. Refs #1704. Refs #1787. Adds recording profiles for recently added recorders, and makes RecordingProfile? show an appropriate set of options for these recorders.

Basically, the UI for enabling auto-transcoding for these recorders was not there.

comment:16 Changed 13 years ago by danielk

(In [10380]) Refs #1701. Refs #1704. Refs #1787. Makes dbcheck SQL from [10372] work with MySQL 4.0 and older which didn't support subqueries.

comment:17 Changed 13 years ago by danielk

(In [10596]) Fixes #2064. Refs #1701. Lowers bandwidth requirements for RTSP recording startup by sharing one session for both signal monitoring and recording.

comment:18 Changed 13 years ago by danielk

(In [10605]) Refs #1701. A few small improvements to the HDHomeRun support from Nick Kelsey.

  • Rejiggers the hdhomerun_config parameter parsing so that --help is handled more correctly and prints more useful info.
  • Changes GetDevice?() to return the recorder id in hex to better match other presentations of the id.
  • Calls hdhomerun_discover_validate_device_id() when in the HDHRChannel to validate the device id checksum, if it is invalid we print an error message try to find any HDHomeRun device on the network (of which there is hopefully only one..)

comment:19 Changed 13 years ago by danielk

(In [10639]) Refs #1701. Sync to latest hdhomerun lib. This fixes parsing of the ip for discovery and shows the correct help text for device help.

Note: See TracTickets for help on using tickets.