Opened 12 years ago

Closed 12 years ago

Last modified 11 years ago

#2152 closed enhancement (invalid)

Add support for "udp:" urls in FreeboxRecorder

Reported by: mythtv@… Owned by: danielk
Priority: minor Milestone: 0.21
Component: mythtv Version: head
Severity: medium Keywords:
Cc: scott@… Ticket locked: no

Description

Refs #1704. With the following patch, the FreeboxRecorder? can now record (multiple) udp urls (the same ones as the CRCIP Recorder does).

Attachments (5)

patch-freebox-udp.diff (28.3 KB) - added by mythtv@… 12 years ago.
The patch
udp.patch (34.7 KB) - added by mikemiron@… 12 years ago.
Alternative version
patch-freebox-unified-udp-v6.diff (64.1 KB) - added by mythtv@… 12 years ago.
The unified patch
patch-freebox-unified-udp-v15.diff (86.0 KB) - added by mikemiron@… 12 years ago.
new version of patch
patch-freebox-unified-udp-v18.diff (87.5 KB) - added by mythtv@… 12 years ago.
Latest patch (for backup purpose)

Download all attachments as: .zip

Change History (13)

Changed 12 years ago by mythtv@…

Attachment: patch-freebox-udp.diff added

The patch

comment:1 Changed 12 years ago by danielk

Milestone: 0.21
Type: patchenhancement

Very cool :)

comment:2 Changed 12 years ago by mikemiron@…

Thank for patch. Sorry, but I see this patch too late, when I was finished same work :(.

I agree another solution. General changes:

  1. It's work for me :) . Patch added by mythtv[at]remars.com have two bugs. First - it not include file <cassert> in sources used assert, so compilation fail. Second and main - with my data channel switching may (depending on channel) give error. Cause of this error - caching in MPEGStreamData class. PAT & PMT packed come after channel switching examine as redurant and on this case recorder can't handle key frame (they waiting for incorrect video PID). Solution - redefine Reset method in recorder.
  2. My solution based on livemedia library - they realization of multicast handling is better than in avformat (support reuse socket,avtomatic multicast/unicast detection).
  3. M3U lists now can be load from local fs and ftp (not tested).
  4. I use base class instead of wrapper

Changed 12 years ago by mikemiron@…

Attachment: udp.patch added

Alternative version

comment:3 Changed 12 years ago by mythtv@…

Resolution: invalid
Status: newclosed

Unified patch in preparation.

Changed 12 years ago by mythtv@…

The unified patch

comment:4 Changed 12 years ago by mythtv@…

Resolution: invalid
Status: closedreopened

New unified patch. Major changes are:

  • uses livemedia to stream the udp urls
  • the m3u can be read in a local file or downloaded using ftp protocol
  • major refactorings : adding new protocol should be easier now
  • few bug fixes

Thanks to Mike Mironov for its great work.

Changed 12 years ago by mikemiron@…

new version of patch

comment:5 Changed 12 years ago by mikemiron@…

New version of patch. Major changes:

  • Add support for RTP protocol with MPEG2-TS payload.
  • Add support for file protocol. Main purpose of this is allow to debug problem with streams on other machines (as my problems with channel changing). This protocol support only MPEG2-TS files. For any other files use MythVideo?.
  • Add class TSPacketSplitter that split stream data in TSPacket. It may be useful for other recorders.
  • Change choosing class for protocol. Now we use ClassFactory? pattern. It's simplify creating new protocol handlers.

Great thanks to Mickaël Remars for its work.

comment:6 Changed 12 years ago by danielk

Resolution: invalid
Status: reopenedclosed

Thanks for all the work the two of you have done, I'm greatful and I would like to get this functionality into MythTV. However, this patch is way too big.

Please break this into 10kb to 20kb sized patches. A few patches for the reorganization, which don't add or subtract any features but are fully functional. At least one patch for each file type or protocol added.

Please also document every class with doxygen, and any method whose name does not fully explain the function of the method. Finally, put a summary of all the classes and important methods and how they interact in the FreeboxRecorder? class documentation (See videooutbase for an example.)

Please don't add any classes without thinking about it carefully, the freebox code already has more classes than any other recorder. Any general MPEG classes that are added should go into libs/libmythtv/mpeg, but the TSPacketSplitter functionality appears to already exist in the StreamData? classes.

Changed 12 years ago by mythtv@…

Latest patch (for backup purpose)

comment:7 Changed 12 years ago by anonymous

Cc: scott@… added

comment:8 in reply to:  description Changed 11 years ago by sgunderson@…

Replying to mythtv@remars.com:

Refs #1704. With the following patch, the FreeboxRecorder? can now record (multiple) udp urls (the same ones as the CRCIP Recorder does).

Is there any chance of a HTTP patch too? I have a couple of streams that are easily accessible via HTTP, but the packet loss on my line is too great to try to get stuff down via UDP.

Note: See TracTickets for help on using tickets.