Hi Laurent,

Thank you so much for your detailed response.

On 02/26/2014 04:40 PM, Laurent Pinchart wrote:
Hi Mark,

On Wednesday 26 February 2014 10:20:06 Ryan, Mark D wrote:
On Tuesday, February 25, 2014 10:50 PM Sarah Sharp wrote:

Hi Laurent and Mauro,

Mark has running into issues with the Realtek integrated webcam on a Dell
XPS 12 system that uses bulk endpoints.  The webcam shows visible glitches
with certain resolutions (stripes of frame missing, distorted images,
purple and green colors, blank image, or missing the bottom half of the
image).

  [Ryan, Mark D]

Sarah, thanks for the introduction.

I can provide a little bit more information.

1. I've tried all the UVC driver quirks but none of these seem to help.

That was a good idea, but there's no quirk for this kind of issue I'm afraid.

2. I've also run some tests with the UVC traces enabled.  There are quite a
lot of errors.  I include a portion of the logs below.  They were generated
on Ubuntu 13.10 (linux 3.11.0-12) running guvcview recording YVUV 1280x720
at 10fps.

You can set the trace parameter to 0x7bf in future tests to remove messages
regarding the V4L2 API calls and timestamp statistics, it will make the log
slightly more readable.

Sarah has sent me two usbmon traces, one in a working case and the other in a
non-working case. They unfortunately look both correct to me, so I'll likely
need your help to debug this.

Let's start with a bit of background information. I'll skip the UVC control
protocol as that's not relevant to this discussion, except to mention that UVC
uses control messages to negotiate the video format with the device, and
receives the maximum payload transfer size (more about this below) from the
device. Here's URB 61 in the non-working trace that commits the streaming
parameters to the device (the maximum payload transfer size has been retrieved
from the device previously and is committed without being modified by the
driver).

URB   Timestamp    Event       Address Type     Direction  Endpoint
61    2558.416852  Submission  4       Control  OUT        0

SETUP Host-to-device Class request to Interface
bRequest: SET CUR (01)
wValue: 0200
wIndex: INTF 1 ENTITY 0 (0001)
wLength: 001a

26 data bytes
bmHint                         0x01
bFormatIndex                      2
bFrameIndex                       3
dwFrameInterval              333333
wKeyFrameRate                     0
wPFrameRate                       0
wCompQuality                      0
wCompWindowSize                   0
wDelay                           32
dwMaxVideoFrameSize          115200
dwMaxPayloadTransferSize      43008

You can find the script I use to decode the usbmon trace at
http://www.ideasonboard.org/uvc/usbmon.py. Run it with the -C uvc option to
decode the UVC protocol. You can also use the -a option to filter the URBs
based on the device address.

The equivalent URB in the working case is URB 101, and contains the following
payload.

SETUP Host-to-device Class request to Interface
bRequest: SET CUR (01)
wValue: 0200
wIndex: INTF 1 ENTITY 0 (0001)
wLength: 001a

26 data bytes
bmHint                         0x01
bFormatIndex                      2
bFrameIndex                       4
dwFrameInterval              333333
wKeyFrameRate                     0
wPFrameRate                       0
wCompQuality                      0
wCompWindowSize                   0
wDelay                           32
dwMaxVideoFrameSize          153600
dwMaxPayloadTransferSize      43008

The only differences are the bFrameIndex (used to select the resolution) and
the dwMaxVideoFrameSize (the maximum size of the compressed frame, computed by
the device as a worst case estimate using the size of the frame after
decompression) values. The maximum payload transfer size is identical in the
two cases. Nothing unexpected so far.

After those URBs the uvcvideo driver starts submitting bulk URBs and get frame
data back from the device. The device returns the following data in the first
URB for the non-working and working cases respectively.

   16262 data bytes
58595a63 64656667    XYZcdefg
68696a73 74757677    hijstuvw
78797a82 83848586    xyz‚ƒ„…†
8788898a 92939495    ‡ˆ‰Š’“”•

   16262 data bytes
58595a63 64656667    XYZcdefg
68696a73 74757677    hijstuvw
78797a82 83848586    xyz‚ƒ„…†
8788898a 92939495    ‡ˆ‰Š’“”•

The first few data bytes stored in the usbmon capture look like MJPEG Huffman
table data. This is a violation of the UVC specification, the camera is
supposed to start sending frames immediately. Furthermore, every payload must
start with a UVC header, which is clearly not the case here.

We're getting to the concept of payloads. UVC cuts frames in payloads that are
then transmitted over isochronous or bulk endpoints. Payloads have a variable
size with a fixed maximum size, and each payload starts with a UVC payload
header. When using isochronous transfers each isochronous URB contains a
single payload. When using bulk transfers payloads can be split across
multiple bulk URBs. Each isochronous URB thus starts with a UVC header, while
only the first bulk URB in a payload includes a header, the other containing
frame data only.

UVC headers start with a byte that contains the size of the header, followed
by a byte containing the following flags.

#define UVC_STREAM_EOH                                  (1 << 7)
#define UVC_STREAM_ERR                                  (1 << 6)
#define UVC_STREAM_STI                                  (1 << 5)
#define UVC_STREAM_RES                                  (1 << 4)
#define UVC_STREAM_SCR                                  (1 << 3)
#define UVC_STREAM_PTS                                  (1 << 2)
#define UVC_STREAM_EOF                                  (1 << 1)
#define UVC_STREAM_FID                                  (1 << 0)

EOH stands for End-Of-Header and is in practice always set. ERR denotes an
error in the payload, STI denotes a still image (never set for video-only
devices), RES is reserved, SCR and PTS are related to timestamp information
contained in the header (the header contains 4 bytes of source clock data when
SCR is set, and 6 bytes of presentation timestamp when PTS is set), EOF stands
for End-Of-Frame and marks the last payload of a frame, and FID stands for
Frame-Identifier and toggles with every frame.

A payload ends either when the maximum payload size has been reached, or when
a short bulk URB is transferred. Looking at the working capture trace, we get
a repeating pattern of the following URBs.

   16384 data bytes
0c8c026c 46e15af8    .Œ.lFáZø
4de15a05 ffd8ffdb    MáZ.ÿØÿÛ
00430003 02020202    .C......
02030202 02030303    ........

   378 data bytes
bed94ee3 bba0acab    ¾ÙNã» ¬«
b5460d1d 5422ea34    µF..T"ê4
d995a878 89df558a    Ù•¨x‰ßUŠ
ded9f309 5c11fdea    ÞÙó.\.ýê

   14 data bytes
0c8e026c 46e1530e    .Ž.lFáS.
4ee15a05 ffd9        NáZ.ÿÙ

The first URB starts a payload and thus contains a header, starting with 0x0c
0x8c. This translates to 12 bytes of header data and the EOH, SCR and PTS
bits. As SCR and PTS are set the header is expected to be 2 + 4 + 6 bytes
long, which is correct. The EOF bit isn't set, so the payload isn't the last
of the frame, and the FID bit is 0. The number of bytes transferred so far
(16384) is smaller than the maximum payload size negotiated earlier, so the
payload isn't finished.

The second URB thus doesn't start by a header as it continues the payload. It
contains frame data only. The URB is a short URB, and thus completes the
payload (but not the frame).

The third URB starts with a 12-byte header with the EOH, SCR, PTS and EOF bits
set, and contains two more bytes of data (0xff 0xd9) that are expected at the
end of the MJPEG frame. As the EOF bit is set the frame is now complete, and
as the URB is short the payload is complete as well.

The next three URBs are similar but have the FID header bit set this time, as
the bit is required to be toggled for every frame. The pattern then repeats.

The non-working case has the following pattern.

   13334 data bytes
0c8cb210 18147994    .Œ²...y”
1f146203 ffd8ffdb    ..b.ÿØÿÛ
00430003 02020202    .C......
02030202 02030303    ........

   14 data bytes
0c8eb210 181472aa    .Ž²...rª
1f146203 ffd9        ..b.ÿÙ

The first URB starts with a header but is now a short URB and thus completes
the payload. The second URB completes the frame. Nothing unexpected, the
resolution is lower so we need less URBs to transfer a frame.

The driver should handle both cases correctly. A quick analysis also indicates
that the driver shouldn't get confused by the first incorrect URB, but I might
be wrong.

Looking below it looks like the driver is completely desynchronized with the
payload headers. This would explain the symptoms that Sarah reported, as the
driver could then interpret data as payload headers and base its state machine
on random FID and EOF bits.

With the information I've given you, could you try to log more information in
the driver to try and find what goes wrong ? You could for instance log the
content of each header at the beginning of the uvc_video_decode_start()
function.

I can indeed. I'll get back to you in the next few days with some more detailed logs.


[   80.490256] uvcvideo: Frame complete (FID bit toggled).
[   80.490262] uvcvideo: frame 2080 stats: 0/0/1 packets, 0/0/0 pts (!early
!initial), 0/1 scr, last pts/stc/sof 0/2069725020/32605 [   80.490264]
uvcvideo: Marking buffer as bad (error bit set).
[   80.490606] uvcvideo: Frame complete (EOF found).
[   80.490942] uvcvideo: Marking buffer as bad (error bit set).
[   80.490947] uvcvideo: Dropping payload (out of sync).
[   80.492920] uvcvideo: Marking buffer as bad (error bit set).
[   80.492927] uvcvideo: Dropping payload (out of sync).
[   80.495352] uvcvideo: frame 2081 stats: 0/0/3 packets, 0/0/1 pts (!early
!initial), 2/3 scr, last pts/stc/sof 2103017049/2069659484/32604 [
80.495360] uvcvideo: Marking buffer as bad (error bit set).
[   80.496066] uvcvideo: Marking buffer as bad (error bit set).
[   80.498021] uvcvideo: frame 2082 stats: 0/0/2 packets, 1/1/2 pts (!early
initial), 1/2 scr, last pts/stc/sof 2103148379/2103148379/32601 [
80.498030] uvcvideo: Marking buffer as bad (error bit set).
[   80.498033] uvcvideo: Frame complete (FID bit toggled).
[   80.498039] uvcvideo: frame 2083 stats: 0/0/1 packets, 0/0/1 pts (!early
initial), 0/1 scr, last pts/stc/sof 2103213661/2103213661/32349 [
80.498042] uvcvideo: Marking buffer as bad (error bit set).
[   80.500420] uvcvideo: Marking buffer as bad (error bit set).
[   80.501122] uvcvideo: Marking buffer as bad (error bit set).
[   80.502742] uvcvideo: Frame complete (EOF found).
[   80.503095] uvcvideo: frame 2084 stats: 0/0/3 packets, 1/1/2 pts (!early
initial), 2/3 scr, last pts/stc/sof 2102754899/2069659484/32604 [
80.503100] uvcvideo: Marking buffer as bad (error bit set).
[   80.505510] uvcvideo: Marking buffer as bad (error bit set).
[   80.505890] uvcvideo: Frame complete (EOF found).
[   80.506245] uvcvideo: frame 2085 stats: 0/0/2 packets, 1/1/2 pts (!early
initial), 1/2 scr, last pts/stc/sof 2119532118/2119532118/32341 [
80.506249] uvcvideo: Marking buffer as bad (error bit set).
[   80.507845] uvcvideo: Frame complete (EOF found).
[   80.508187] uvcvideo: Marking buffer as bad (error bit set).
[   80.508191] uvcvideo: Dropping payload (out of sync).
[   80.510747] uvcvideo: frame 2086 stats: 0/0/2 packets, 0/0/1 pts (!early
initial), 1/2 scr, last pts/stc/sof 2137357669/2085781330/32594 [
80.510752] uvcvideo: Marking buffer as bad (error bit set).
[   80.511463] uvcvideo: frame 2087 stats: 0/0/1 packets, 0/0/1 pts (!early
initial), 0/1 scr, last pts/stc/sof 2081456144/2081456144/32784 [
80.511471] uvcvideo: Marking buffer as bad (error bit set).
[   80.511474] uvcvideo: Frame complete (FID bit toggled).
[   80.511480] uvcvideo: frame 2088 stats: 0/0/1 packets, 0/0/1 pts (!early
initial), 0/1 scr, last pts/stc/sof 2102493775/2102559313/33362 [
80.511483] uvcvideo: Marking buffer as bad (error bit set).
[   80.513895] uvcvideo: frame 2089 stats: 0/0/1 packets, 0/0/1 pts (!early
initial), 0/1 scr, last pts/stc/sof 2102493775/2102559313/33362 [
80.513904] uvcvideo: Marking buffer as bad (error bit set).
[   80.513907] uvcvideo: Frame complete (FID bit toggled).
[   80.513913] uvcvideo: frame 2090 stats: 0/0/1 packets, 0/0/1 pts (!early
initial), 0/1 scr, last pts/stc/sof 2086567773/2086502238/32605 [
80.513916] uvcvideo: Marking buffer as bad (error bit set).
[   80.514608] uvcvideo: frame 2091 stats: 0/0/1 packets, 0/0/1 pts (!early
initial), 0/1 scr, last pts/stc/sof 2086567773/2086502238/32605 [
80.514617] uvcvideo: Marking buffer as bad (error bit set).
[   80.514620] uvcvideo: Frame complete (FID bit toggled).
[   80.514626] uvcvideo: frame 2092 stats: 0/0/1 packets, 0/0/1 pts (!early
initial), 0/1 scr, last pts/stc/sof 2102754901/2102754901/32341 [
80.514629] uvcvideo: Marking buffer as bad (error bit set).
[   80.517141] uvcvideo: Marking buffer as bad (error bit set).
[   80.517858] uvcvideo: Marking buffer as bad (error bit set).
[   80.520396] uvcvideo: frame 2093 stats: 0/0/3 packets, 2/2/3 pts (!early
initial), 2/3 scr, last pts/stc/sof 2098429971/2098692119/32792 [
80.520404] uvcvideo: Marking buffer as bad (error bit set).
[   80.520407] uvcvideo: Frame complete (FID bit toggled).
[   80.520413] uvcvideo: frame 2094 stats: 0/0/1 packets, 0/0/1 pts (!early
initial), 0/1 scr, last pts/stc/sof 2081456656/2081456656/33296 [
80.520416] uvcvideo: Marking buffer as bad (error bit set).
[   80.521111] uvcvideo: frame 2095 stats: 0/0/1 packets, 0/0/1 pts (!early
initial), 0/1 scr, last pts/stc/sof 2081456656/2081456656/33296 [
80.521119] uvcvideo: Marking buffer as bad (error bit set).
[   80.521122] uvcvideo: Frame complete (FID bit toggled).
[   80.521128] uvcvideo: frame 2096 stats: 0/0/1 packets, 0/0/1 pts (!early
initial), 0/1 scr, last pts/stc/sof 2102951768/2102820696/32598 [
80.521131] uvcvideo: Marking buffer as bad (error bit set).
[   80.523496] uvcvideo: frame 2097 stats: 0/0/1 packets, 0/0/1 pts (!early
initial), 0/1 scr, last pts/stc/sof 2102951768/2102820696/32598 [
80.523505] uvcvideo: Marking buffer as bad (error bit set).
[   80.523508] uvcvideo: Frame complete (FID bit toggled).
[   80.523514] uvcvideo: frame 2098 stats: 0/0/1 packets, 0/0/1 pts (!early
initial), 0/1 scr, last pts/stc/sof 2119794008/2119728472/32088 [
80.523517] uvcvideo: Marking buffer as bad (error bit set).
[   80.523831] uvcvideo: Frame complete (EOF found).
[   80.525463] uvcvideo: Dropping payload (out of sync).
[   80.526190] uvcvideo: frame 2099 stats: 0/0/2 packets, 1/1/2 pts (!early
initial), 1/2 scr, last pts/stc/sof 96354447/97436625/437 [   80.526199]
uvcvideo: Marking buffer as bad (error bit set).
[   80.528590] uvcvideo: Marking buffer as bad (error bit set).
[   80.530563] uvcvideo: Marking buffer as bad (error bit set).
[   80.531249] uvcvideo: frame 2100 stats: 0/0/3 packets, 2/2/3 pts (!early
initial), 2/3 scr, last pts/stc/sof 2102558546/2102624083/32595 [
80.531258] uvcvideo: Marking buffer as bad (error bit set).
[   80.531261] uvcvideo: Frame complete (FID bit toggled).
[   80.531267] uvcvideo: frame 2101 stats: 0/0/1 packets, 0/0/1 pts (!early
initial), 0/1 scr, last pts/stc/sof 2119401555/2119401555/32851 [
80.531270] uvcvideo: Marking buffer as bad (error bit set).
[   80.533319] uvcvideo: Frame complete (EOF found).
[   80.533683] uvcvideo: frame 2102 stats: 0/0/1 packets, 0/0/1 pts (!early
initial), 0/1 scr, last pts/stc/sof 2119401555/2119401555/32851 [
80.533692] uvcvideo: Marking buffer as bad (error bit set).
[   80.535641] uvcvideo: Marking buffer as bad (error bit set).
[   80.536353] uvcvideo: Marking buffer as bad (error bit set).
[   80.538778] uvcvideo: frame 2103 stats: 0/0/3 packets, 2/2/3 pts (!early
initial), 2/3 scr, last pts/stc/sof 2102361937/2102361935/32591 [
80.538787] uvcvideo: Marking buffer as bad (error bit set).
[   80.538790] uvcvideo: Frame complete (FID bit toggled).
[   80.538796] uvcvideo: frame 2104 stats: 0/0/1 packets, 0/0/1 pts (!early
initial), 0/1 scr, last pts/stc/sof 2117435189/2100657973/32567 [
80.538799] uvcvideo: Marking buffer as bad (error bit set).
[   80.539116] uvcvideo: Frame complete (EOF found).
[   80.540751] uvcvideo: Marking buffer as bad (error bit set).
[   80.540758] uvcvideo: Dropping payload (out of sync).
[   80.542582] uvcvideo: frame 2105 stats: 0/0/2 packets, 1/1/2 pts (!early
initial), 1/2 scr, last pts/stc/sof 2119270481/2119336018/32850 [
80.542593] uvcvideo: Marking buffer as bad (error bit set).
[   80.543286] uvcvideo: Marking buffer as bad (error bit set).
[   80.545268] uvcvideo: Marking buffer as bad (error bit set).
[   80.547699] uvcvideo: frame 2106 stats: 0/0/3 packets, 2/2/3 pts (!early
initial), 2/3 scr, last pts/stc/sof 2101378880/2101247806/32574 [
80.547707] uvcvideo: Marking buffer as bad (error bit set).
[   80.547710] uvcvideo: Frame complete (FID bit toggled).
[   80.547716] uvcvideo: frame 2107 stats: 0/0/1 packets, 0/0/1 pts (!early
initial), 0/1 scr, last pts/stc/sof 2118811466/2101903434/32840 [
80.547719] uvcvideo: Marking buffer as bad (error bit set).
[   80.548047] uvcvideo: Frame complete (EOF found).
[   80.548394] uvcvideo: Marking buffer as bad (error bit set).
[   80.548401] uvcvideo: Dropping payload (out of sync).
[   80.550362] uvcvideo: frame 2108 stats: 0/0/2 packets, 1/1/2 pts (!early
initial), 1/2 scr, last pts/stc/sof 2085125960/2085060423/32582 [
80.550371] uvcvideo: Marking buffer as bad (error bit set).
[   80.552830] uvcvideo: Marking buffer as bad (error bit set).
[   80.553372] uvcvideo: Marking buffer as bad (error bit set).
[   80.561825] uvcvideo: Marking buffer as bad (error bit set).
[   80.562162] uvcvideo: Frame complete (EOF found).
[   80.562497] uvcvideo: Marking buffer as bad (error bit set).
[   80.562505] uvcvideo: Dropping payload (out of sync).
[   80.564927] uvcvideo: frame 2109 stats: 0/0/6 packets, 3/3/4 pts (!early
initial), 5/6 scr, last pts/stc/sof 97857347/2068480074/32842 [
80.564935] uvcvideo: Marking buffer as bad (error bit set).
[   80.566925] uvcvideo: frame 2110 stats: 0/0/1 packets, 0/0/1 pts (!early
initial), 0/1 scr, last pts/stc/sof 2069069907/2069069907/32851 [
80.566934] uvcvideo: Marking buffer as bad (error bit set).
[   80.566937] uvcvideo: Frame complete (FID bit toggled).
[   80.566943] uvcvideo: frame 2111 stats: 0/0/1 packets, 0/0/1 pts (!early
initial), 0/1 scr, last pts/stc/sof 2102558546/2102493009/32593 [
80.566946] uvcvideo: Marking buffer as bad (error bit set).
[   80.567599] uvcvideo: frame 2112 stats: 0/0/1 packets, 0/0/1 pts (!early
initial), 0/1 scr, last pts/stc/sof 2102558546/2102493009/32593 [
80.567607] uvcvideo: Frame complete (FID bit toggled).
[   80.567613] uvcvideo: frame 2113 stats: 0/0/1 packets, 0/0/0 pts (!early
!initial), 0/0 scr, last pts/stc/sof 0/0/0 [   80.570041] uvcvideo: frame
2114 stats: 0/0/1 packets, 0/0/0 pts (!early !initial), 0/0 scr, last
pts/stc/sof 0/0/0 [   80.570050] uvcvideo: Marking buffer as bad (error bit
set).
[   80.570053] uvcvideo: Frame complete (FID bit toggled).
[   80.570059] uvcvideo: frame 2115 stats: 0/0/1 packets, 0/0/0 pts (!early
!initial), 0/1 scr, last pts/stc/sof 0/2068938833/32849 [   80.570062]
uvcvideo: Marking buffer as bad (error bit set).
[   80.570379] uvcvideo: Frame complete (EOF found).
[   80.572032] uvcvideo: frame 2116 stats: 0/0/1 packets, 0/0/0 pts (!early
!initial), 0/1 scr, last pts/stc/sof 0/2068938833/32849 [   80.572041]
uvcvideo: Marking buffer as bad (error bit set).
[   80.572713] uvcvideo: Marking buffer as bad (error bit set).
[   80.575138] uvcvideo: Marking buffer as bad (error bit set).
[   80.577804] uvcvideo: frame 2117 stats: 0/0/4 packets, 2/2/3 pts (!early
initial), 2/3 scr, last pts/stc/sof 2084667459/2084470848/32830 [
80.577813] uvcvideo: Marking buffer as bad (error bit set).
[   80.577816] uvcvideo: Frame complete (FID bit toggled).
[   80.577822] uvcvideo: frame 2118 stats: 0/0/1 packets, 0/0/0 pts (!early
!initial), 0/1 scr, last pts/stc/sof 0/2069004371/32851 [   80.577825]
uvcvideo: Marking buffer as bad (error bit set).
[   80.578143] uvcvideo: Frame complete (EOF found).
[   80.580219] uvcvideo: Marking buffer as bad (error bit set).
[   80.580223] uvcvideo: Dropping payload (out of sync).
[   80.582212] uvcvideo: frame 2119 stats: 0/0/2 packets, 0/0/0 pts (!early
!initial), 1/2 scr, last pts/stc/sof 0/2069266518/32854 [   80.582221]
uvcvideo: Marking buffer as bad (error bit set).
[   80.582896] uvcvideo: frame 2120 stats: 0/0/1 packets, 0/0/1 pts (!early
initial), 0/1 scr, last pts/stc/sof 2086371163/2086371163/32604 [
80.582904] uvcvideo: Marking buffer as bad (error bit set).
[   80.582907] uvcvideo: Frame complete (FID bit toggled).
[   80.582913] uvcvideo: frame 2121 stats: 0/0/1 packets, 0/0/1 pts (!early
initial), 0/1 scr, last pts/stc/sof 2102951768/2102951768/32600 [
80.582916] uvcvideo: Marking buffer as bad (error bit set).
[   80.584748] uvcvideo: Marking buffer as bad (error bit set).
[   80.586723] uvcvideo: frame 2122 stats: 0/0/2 packets, 0/0/1 pts (!early
initial), 1/2 scr, last pts/stc/sof 2102951768/2036039771/32859 [
80.586731] uvcvideo: Marking buffer as bad (error bit set).
[   80.586734] uvcvideo: Frame complete (FID bit toggled).
[   80.586740] uvcvideo: frame 2123 stats: 0/0/1 packets, 0/0/0 pts (!early
!initial), 0/1 scr, last pts/stc/sof 0/2052489304/32856 [   80.586743]
uvcvideo: Marking buffer as bad (error bit set).
[   80.587067] uvcvideo: Frame complete (EOF found).
[   80.588555] uvcvideo: Marking buffer as bad (error bit set).
[   80.588564] uvcvideo: Dropping payload (out of sync).
[   80.590556] uvcvideo: Marking buffer as bad (error bit set).
[   80.590564] uvcvideo: Dropping payload (out of sync).
[   80.591231] uvcvideo: Marking buffer as bad (error bit set).
[   80.591239] uvcvideo: Dropping payload (out of sync).
[   80.593662] uvcvideo: frame 2124 stats: 0/0/4 packets, 2/3/3 pts (!early
!initial), 3/4 scr, last pts/stc/sof 2086240088/2086240089/32601 [
80.593670] uvcvideo: Marking buffer as bad (error bit set).
[   80.593995] uvcvideo: Frame complete (EOF found).
[   80.595639] uvcvideo: Marking buffer as bad (error bit set).
[   80.595646] uvcvideo: Dropping payload (out of sync).
[   80.596344] uvcvideo: frame 2125 stats: 0/0/2 packets, 0/0/1 pts (!early
!initial), 1/2 scr, last pts/stc/sof 2081456144/2081456144/32784 [
80.596353] uvcvideo: Marking buffer as bad (error bit set).
[   80.598768] uvcvideo: frame 2126 stats: 0/0/1 packets, 0/0/1 pts (!early
initial), 0/1 scr, last pts/stc/sof 2086371161/2086240091/32601 [
80.598776] uvcvideo: Marking buffer as bad (error bit set).
[   80.598779] uvcvideo: Frame complete (FID bit toggled).
[   80.598785] uvcvideo: frame 2127 stats: 0/0/1 packets, 0/0/1 pts (!early
initial), 0/1 scr, last pts/stc/sof 2103213916/2103279453/32605 [
80.598788] uvcvideo: Marking buffer as bad (error bit set).
[   80.600741] uvcvideo: frame 2128 stats: 0/0/1 packets, 0/0/1 pts (!early
initial), 0/1 scr, last pts/stc/sof 2103213916/2103279453/32605 [
80.600749] uvcvideo: Marking buffer as bad (error bit set).
[   80.600753] uvcvideo: Frame complete (FID bit toggled).
[   80.600758] uvcvideo: frame 2129 stats: 0/0/1 packets, 0/0/1 pts (!early
initial), 0/1 scr, last pts/stc/sof 2102755157/2102624085/32595 [
80.600761] uvcvideo: Marking buffer as bad (error bit set).
[   80.601436] uvcvideo: Marking buffer as bad (error bit set).
[   80.603280] uvcvideo: frame 2130 stats: 0/0/2 packets, 1/1/2 pts (!early
initial), 1/2 scr, last pts/stc/sof 2086502237/2086502237/32605 [
80.603288] uvcvideo: Marking buffer as bad (error bit set).
[   80.603291] uvcvideo: Frame complete (FID bit toggled).
[   80.603297] uvcvideo: frame 2131 stats: 0/0/1 packets, 0/0/0 pts (!early
!initial), 0/1 scr, last pts/stc/sof 0/2066711095/33331 [   80.603300]
uvcvideo: Marking buffer as bad (error bit set).
[   80.604922] uvcvideo: Frame complete (EOF found).
[   80.605261] uvcvideo: frame 2132 stats: 0/0/1 packets, 0/0/0 pts (!early
!initial), 0/1 scr, last pts/stc/sof 0/2066711095/33331 [   80.605270]
uvcvideo: Marking buffer as bad (error bit set).
[   80.605627] uvcvideo: Frame complete (EOF found).
[   80.605982] uvcvideo: frame 2133 stats: 0/0/1 packets, 0/0/1 pts (!early
initial), 0/1 scr, last pts/stc/sof 2119532117/2119597654/32342 [
80.605990] uvcvideo: Marking buffer as bad (error bit set).
[   80.608029] uvcvideo: Frame complete (EOF found).
[   80.608384] uvcvideo: Marking buffer as bad (error bit set).
[   80.608391] uvcvideo: Dropping payload (out of sync).
[   80.610344] uvcvideo: Marking buffer as bad (error bit set).
[   80.610353] uvcvideo: Dropping payload (out of sync).
[   80.612192] uvcvideo: Marking buffer as bad (error bit set).
[   80.612196] uvcvideo: Dropping payload (out of sync).
[   80.612941] uvcvideo: Marking buffer as bad (error bit set).
[   80.612948] uvcvideo: Dropping payload (out of sync).
[   80.615462] uvcvideo: Marking buffer as bad (error bit set).
[   80.615469] uvcvideo: Dropping payload (out of sync).
[   80.616182] uvcvideo: Marking buffer as bad (error bit set).
[   80.616190] uvcvideo: Dropping payload (out of sync).
[   80.618717] uvcvideo: frame 2134 stats: 0/0/7 packets, 4/6/5 pts (!early
initial), 6/7 scr, last pts/stc/sof 2102296398/2102165324/32588 [
80.618726] uvcvideo: Marking buffer as bad (error bit set).
[   80.619425] uvcvideo: Marking buffer as bad (error bit set).
[   80.621815] uvcvideo: frame 2135 stats: 0/0/2 packets, 1/1/2 pts (!early
initial), 1/2 scr, last pts/stc/sof 2081456656/2081456656/33296 [
80.621824] uvcvideo: Marking buffer as bad (error bit set).
[   80.621827] uvcvideo: Frame complete (FID bit toggled).
[   80.621834] uvcvideo: frame 2136 stats: 0/0/1 packets, 0/0/1 pts (!early
initial), 0/1 scr, last pts/stc/sof 2102820693/2102820694/32600 [
80.621837] uvcvideo: Marking buffer as bad (error bit set).
[   80.623785] uvcvideo: Marking buffer as bad (error bit set).
[   80.626895] uvcvideo: Marking buffer as bad (error bit set).
[   80.628846] uvcvideo: Marking buffer as bad (error bit set).
[   80.630705] uvcvideo: Marking buffer as bad (error bit set).
[   80.632698] uvcvideo: frame 2137 stats: 0/0/6 packets, 5/5/6 pts (!early
initial), 5/6 scr, last pts/stc/sof 2102558546/2102558546/32594 [
80.632706] uvcvideo: Marking buffer as bad (error bit set).
[   80.632709] uvcvideo: Frame complete (FID bit toggled).
[   80.632715] uvcvideo: frame 2138 stats: 0/0/1 packets, 0/0/1 pts (!early
initial), 0/1 scr, last pts/stc/sof 2119336019/2102558802/32850 [
80.632718] uvcvideo: Marking buffer as bad (error bit set).
[   80.633058] uvcvideo: Frame complete (EOF found).
[   80.633403] uvcvideo: frame 2139 stats: 0/0/1 packets, 0/0/1 pts (!early
initial), 0/1 scr, last pts/stc/sof 2119336019/2102558802/32850 [
80.633412] uvcvideo: Marking buffer as bad (error bit set).
[   80.635832] uvcvideo: Marking buffer as bad (error bit set).
[   80.637813] uvcvideo: Marking buffer as bad (error bit set).
[   80.638509] uvcvideo: frame 2140 stats: 0/0/3 packets, 2/2/3 pts (!early
initial), 2/3 scr, last pts/stc/sof 2102493009/2102493009/32593 [
80.638523] uvcvideo: Marking buffer as bad (error bit set).
[   80.638527] uvcvideo: Frame complete (FID bit toggled).
[   80.638537] uvcvideo: frame 2141 stats: 0/0/1 packets, 0/0/1 pts (!early
initial), 0/1 scr, last pts/stc/sof 2117435445/2100723765/32824 [
80.638541] uvcvideo: Marking buffer as bad (error bit set).
[   80.638817] uvcvideo: Frame complete (EOF found).
[   80.641019] uvcvideo: Marking buffer as bad (error bit set).
[   80.641028] uvcvideo: Dropping payload (out of sync).
[   80.641709] uvcvideo: frame 2142 stats: 0/0/2 packets, 1/1/2 pts (!early
initial), 1/2 scr, last pts/stc/sof 2102362191/2102493265/32847 [
80.641719] uvcvideo: Marking buffer as bad (error bit set).
[   80.644143] uvcvideo: Marking buffer as bad (error bit set).
[   80.646129] uvcvideo: Marking buffer as bad (error bit set).
[   80.646798] uvcvideo: Marking buffer as bad (error bit set).
[   80.649234] uvcvideo: frame 2143 stats: 0/0/4 packets, 3/3/4 pts (!early
initial), 3/4 scr, last pts/stc/sof 2101903432/2102034506/32844 [
80.649243] uvcvideo: Marking buffer as bad (error bit set).
[   80.649247] uvcvideo: Frame complete (FID bit toggled).
[   80.649254] uvcvideo: frame 2144 stats: 0/0/1 packets, 0/0/1 pts (!early
initial), 0/1 scr, last pts/stc/sof 2085060423/2084994887/32582 [
80.649256] uvcvideo: Marking buffer as bad (error bit set).


--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to