Currently I am working on a DVB-T2 dongle which is connected to my Ubuntu laptop 14.04 using USB
interface.
I am using following applications to perform scanning and channel play. 1. w_scan - which scans and gives me a channel.conf file 2. vlc ./channel.conf - plays a channel using modulation parameters in channel.conf
Things work fine when Pid filtering is disabled. But when Pid filtering is enabled, I see
macroblocks on the screen instead of smooth AV. Even AV is breaking a lot.
After going through the driver code, I tried increasing the URB buffer size from 3K (21*188) to
64K (348*188). The AV became smooth.
This urb buffer size is buffer_length (lenght of transport buffer) in below function.
void usb_fill_bulk_urb (struct urb * urb, struct usb_device * dev, unsigned int pipe, void * transfer_buffer, int buffer_length, usb_complete_t complete_fn, void * context);
As you can see the driver uses bulk mode of usb transfer.
Could anyone explain me why increasing the buffer is solving the macroblock issue ?
Give me some pointers to understand this issue better.
Thanks in advance, Murali