[mythtv] Remove Fill Packets

Richard Hulme peper03 at yahoo.com
Sun Apr 26 09:24:30 UTC 2015


On 24/04/15 20:17, Ryan Lavender wrote:
> Hi Ryan,
>
> Ok, I've had a closer look at the code (not that I understand how all of
> it fits together) and it seems that this feature is not (currently)
> available for Firewire cards.
>
> stuarta has just pushed a change to Master to strip fill packets for
> Firewire recorders. _https://github.com/MythTV/mythtv/commit/b0138ce_
> should apply to 0.27 too so give it a go.
>
> Richard.
>
> Weird, but it doesn’t work for me. I get 0-byte recordings. What I did
> to make it work was add this to firewiredevice.cpp:
>
> Put all of the content of the function BroadcastToListeners inside an IF
> statement: if(!(data[1] == 0x1F && data[2] == 0xFF))
>
> However, mythtv sometimes has trouble tuning certain channels, and I
> feel it may be related.

I really don't know the code that well but I would guess that 
BroadcastToListeners is called whenever there is new data.  That new 
data may not be the start of a packet, so your code will filter out 
chunks of data that happen to 0x1FFF in the 'wrong' place.

I don't understand how the change stuarta made would cause 0-byte 
recordings unless *every* packet were padding (and then there would be 
nothing to watch anyway).

Can you check that with no changes, everything works fine, but with the 
following, you get 0-byte recordings?

bool FirewireRecorder::ProcessTSPacket(const TSPacket &tspacket)
{
     const uint pid = tspacket.PID();

     if (pid == 0x1fff) // Stuffing
         return true;


Richard.


More information about the mythtv-dev mailing list