Hi,
Igor schrieb:
Hence, I regularly see VDR issue CLEARs after which such
messages are normal.
sorry, what do you mean "VDR issue CLEARs" ?
vdr-xine's console output:
video: synced early [vVMA]buffered 8,8 frames (v:25,2, a:8,8) frame: (0, 0)-(1920, 1088), zoom: (1,00, 1,00) buffered 9,3 frames (v:20,4, a:9,3) buffered 10,5 frames (v:25,9, a:10,5) buffered 10,2 frames (v:30,8, a:10,2) <<<<< Clear(0)DiscontinuityDetected: triggering soft start ! video: synced early [vAV]buffered 8,7 frames (v:28,7, a:8,7) buffered 9,3 frames (v:30,1, a:9,3) buffered 10,5 frames (v:30,5, a:10,5) buffered 7,2 frames (v:28,5, a:7,2) <<<<< Clear(1)DiscontinuityDetected: triggering soft start ! video: synced early [VA]buffered 8,5 frames (v:21,5, a:8,5)
VDR's syslog:
May 10 17:31:49 video vdr: [5227] cVideoRepacker: operating in H.264 mode May 10 17:32:01 video vdr: [5228] buffer usage: 70% (tid=5227) May 10 17:32:01 video vdr: [5228] buffer usage: 80% (tid=5227) May 10 17:32:01 video vdr: [5228] buffer usage: 90% (tid=5227) May 10 17:32:01 video vdr: [5228] buffer usage: 100% (tid=5227) May 10 17:32:01 video vdr: [5228] ERROR: 3607 ring buffer overflows (678105 bytes dropped) May 10 17:32:01 video vdr: [5227] clearing transfer buffer to avoid overflows May 10 17:32:02 video vdr: [5228] buffer usage: 0% (tid=5227)
xine's output:
+++ CLEAR(17a): sync point: 1d ao_flush (loop running: 1) === CLEAR(17.1) === CLEAR(17.2) === CLEAR(17.3) === CLEAR(17.4) === CLEAR(17.5) --- CLEAR(17a) ao_close audio_out: no streams left, closing driver audio discontinuity #80, type is 0, disc_off 0 waiting for in_discontinuity update #80 video discontinuity #80, type is 0, disc_off 0 vpts adjusted with prebuffer to 58459551 +++ CLEAR(17b): sync point: 1d ao_flush (loop running: 1) === CLEAR(17.1) === CLEAR(17.2) === CLEAR(17.3) === CLEAR(17.4) === CLEAR(17.5) --- CLEAR(17b)
But H.264 doesn't have a broken link flag, so that's why
FFmpeg gives messages like the following:
[h264 @ 0xac236490]B picture before any references, skipping [h264 @ 0xac236490]decode_slice_header error [h264 @ 0xac236490]B picture before any references, skipping [h264 @ 0xac236490]decode_slice_header error
so, could you give some resume about this errors ? is it
ffmpeg/provider/vdr/driver problem ? or no any problem ?
Well, one might consider this an error, but it has no influence on the output. VDR was written for MPEG1/2 and it properly calls cRemux::SetBrokenLink() when necessary, to indicate that the first few B frames shall not be decoded until two reference frames are available.
As there is no such flag in H.264, the function doesn't do anything than logging, that it didn't find a MPEG1/2 GOP header where this flag is located.
May 10 17:38:16 video vdr: [5430] SetBrokenLink: no GOP header found in video packet
Supporting this issue properly in H.264 would mean to not send the first B frames to the output device which is more complex than just setting a single bit. And with the upcoming recording format changes I don't want to address this issue at the moment.
Bye.