Opened 11 years ago
Closed 10 years ago
Last modified 10 years ago
#12067 closed Patch - Feature (fixed)
Feature patch for Qt5 - porting Ceton tuner from QHttp to MythDownloadManager
Reported by: | Owned by: | JYA | |
---|---|---|---|
Priority: | minor | Milestone: | 0.28 |
Component: | MythTV - Recording | Version: | Master Head |
Severity: | medium | Keywords: | |
Cc: | Ticket locked: | no |
Description (last modified by )
Qt5 has been released, and some distros are starting to provide it as an alternative to Qt4, although I would not expect Qt5 to be the default for quite some time. Regardless, one of the changes in Qt5 is eliminating QHttp, which is used by the Ceton tuner in MythTV.
This patch converts the Ceton tuner from using QHttp to using MythDownloadManager?. This allows a common implementation to work in both Qt4 and (future) Qt5.
This patch depends on the patches in ticket #12066 to MythDownloadManager? to request that any caching is bypassed.
This patch has been only lightly tested. While I do not own a Ceton card, I did create a Ceton "emulator" that responds to the various MythTV requests as what I think a Ceton card would do, and the code appear to work. However, as with all else, emulators are not always as good as the real thing (and I am not about to spend US $299 for an ethernet based Ceton device just for testing purposes). Testing by someone with an actual Ceton device before committing to master would be highly advisable. In addition, while developed and tested using the emulator on a Qt 4.8 system, it was only even more lightly tested (if that is possible) on a Qt5 system.
This patch replaces the parts of ticket #11871 that deal with cetonstreamhandler{h|cpp} that marked and indicated that the Ceton tuner was not yet being ported to Qt5 (since this ticket provides the patch that ports it).
For the appropriate Release Notes:
Users running the MythTV backend on a system using a http proxy, and using a Ceton tuner, may need to modify their proxy configuration to bypass the proxy for the Ceton tuner (i.e. no_proxy="192.168.200.0/24")
github ref: https://github.com/garybuhrmaster/mythtv/commit/bc6589eb9d5f8d01cb994e17ecaf366449ec4192 github git-am ref: https://github.com/garybuhrmaster/mythtv/commit/bc6589eb9d5f8d01cb994e17ecaf366449ec4192.patch
(new) Tickets #12380 and #12381 have been identified as necessary for the changes in this ticket (using mythdownloadmanager for the requests).
Background
Ceton has repeatedly stated that the use of the web based requests (as used by MythTV and other projects) is not a supported programmatic interface/API. It is intended only for use with a browser for testing purposes and maintenance. The official support is (and will be) via the formal OCUR DRI API (for which an implementation has never been completed in MythTV).
Issues:
For any HTTP POST, the Ceton card returns a 302 status redirect, intending that the browser will then issue a GET request which will display updated status information. The redirect Location: is returned based on the passed HTTP Referer header. If no Referer is provided, the redirect is to "/". A bare "/" is considered a relative url, and mythdownloadmanager does not handle relative urls. Ticket #12380 addes that support.
For redirects, mythdownloadmanager does not (fully|correctly?) support POST redirects. There are a number of opportunities with redirects and POST. Ticket #12381 improves the compatibility with most status codes.