Opened 12 years ago

Last modified 10 years ago

#10658 closed Developer Task

Rework AVFRingBuffer to return -EAGAIN when there is no data — at Initial Version

Reported by: danielk Owned by:
Priority: minor Milestone: 0.28
Component: MythTV - General Version: Master Head
Severity: medium Keywords:
Cc: Ticket locked: no

Description

Traditionally we've always had RingBuffer::Read() return the number of bytes requested unless we are at the end of the file. But this blocks libav which expects this the read to complete fairly quickly even if it is a blocking read. Instead we should block for only a short time waiting for more data and then return what data we do have. To avoid premature exit from the decoder loop we also need to add EAGAIN returns so that if we don't have more data right now, but expect to have some in the near future we can signal this to libav.

Change History (1)

Changed 12 years ago by danielk

Attachment: 10658-v1.patch added

Initial patch

Note: See TracTickets for help on using tickets.