v4l2src: Add source-change / resolution-change support
This branch adds support for driver driven source changes along with DV_TIMING locking support. Effectively, drivers can emit SOURCE_CHANGE event, with the RESOLUTION_CHANGE flag in order to signal that something got changes at the input signal. In that situation, we need to reset (streamoff/on) as we may not get more data otherwise. While doing this, we now query for detected DV_TIMING (aka modes) and lock/set these. We also default to the link detected width/height/framerate.
As a bonus, v4l2src will now mimic decklinksrc when the signal is lost and recovered. A WARNING with RESSOURCE/READ will be emited when the signal is lost, and an INFO message again with RESSOURCE/READ for when it's recovered.
This has been tested with vivid test driver and an work in progress HDMI receiver driver.
Merge request reports
Activity
- Resolved by Nicolas Dufresne
Note to myself, probably just one of many typos:
- v4l2rc: Add DV_TIMINGS query and locking + v4l2src: Add DV_TIMINGS query and locking
- Resolved by Nicolas Dufresne
- Resolved by Nicolas Dufresne
- Resolved by Nicolas Dufresne
- Resolved by Nicolas Dufresne
- Resolved by Nicolas Dufresne
- Resolved by Nicolas Dufresne
- Resolved by Nicolas Dufresne
- Resolved by Nicolas Dufresne
- Resolved by Nicolas Dufresne
- Resolved by Nicolas Dufresne
- Resolved by Nicolas Dufresne
- Resolved by Nicolas Dufresne
added 38 commits
-
a2de405c...1b1ad32b - 22 commits from branch
gstreamer:master
- 69a1f7fc - v4l2bufferpool: use FLOW_LAST_BUFFER
- 2667a2a3 - v4l2object: Add event helpers
- cb00e9af - v4l2bufferpool: Handle resolution change event
- 9279e7f1 - v4l2src: Add source resolution change support
- 9a93c1ea - v4l2: Fix input/output index sign
- 80d7d815 - v4l2: Add helper to query input status
- ddb33fe1 - v4l2src: Add input signal status detection
- 6cb27d0d - v4l2: Subscribe source_change for the current input
- 8f6ed2fb - v4l2src: Stub preferred resolution support
- c3eab24a - v4l2src: Refactor to use PreferredCapsInfo structure
- 7086549e - v4l2object: Remove unused streaming member
- 3caa4f70 - v4l2src: Force renegotiation on resolution change
- a551ed24 - v4l2rc: Add DV_TIMINGS query and locking
- b8db9f50 - v4l2src: Calculate framerate from DV timings
- 2a0e6a47 - v4l2src: Move preferred resolution query before the probe
- 85040668 - v4l2bufferpool: Silence traces around unsupported source change
Toggle commit list-
a2de405c...1b1ad32b - 22 commits from branch
added 14 commits
- 6fdb6812 - v4l2bufferpool: Handle resolution change event
- eb9e8294 - v4l2src: Add source resolution change support
- daea11e7 - v4l2: Fix input/output index sign
- 458f4554 - v4l2: Add helper to query input status
- 897eee9a - v4l2src: Add input signal status detection
- 0b2da991 - v4l2: Subscribe source_change for the current input
- 806976a2 - v4l2src: Stub preferred resolution support
- 41083865 - v4l2src: Refactor to use PreferredCapsInfo structure
- 08307981 - v4l2object: Remove unused streaming member
- e0c415cc - v4l2src: Force renegotiation on resolution change
- c597889f - v4l2rc: Add DV_TIMINGS query and locking
- 362906c2 - v4l2src: Calculate framerate from DV timings
- 97649cb7 - v4l2src: Move preferred resolution query before the probe
- ba442c4a - v4l2bufferpool: Silence traces around unsupported source change
Toggle commit listassigned to @gstreamer-merge-bot
mentioned in commit ndufresne/gst-plugins-good@748fc7e8
mentioned in commit ndufresne/gst-plugins-good@f596dcdd
mentioned in commit ndufresne/gst-plugins-good@2b309ba0