Skip to content

Commit 566e08a

Browse files
authored
README: Use GitHub Actions badge instead of dysfunct Travis (#81)
Seems the last successful build there was 2 years ago, and the badge now says "Build: No longer available". Switch the badge over to reflect the CI status on GitHub Actions instead. Also add a badge linking to the documentation of the main `v4l` crate, wrap some crate names in backticks, and format the markdown documents to have proper spacing around headings.
1 parent 8837f57 commit 566e08a

File tree

2 files changed

+67
-9
lines changed

2 files changed

+67
-9
lines changed

CHANGELOG.md

Lines changed: 54 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,123 +6,175 @@ Changelog items are created for major and minor releases, but not bugfix ones fo
66
Currently, the focus is on implementing the high-level V4L2 single-planar API.
77
Multi-planar capture will not be targeted in the near future unless someone else starts working on it.
88

9-
10-
119
## [0.14.0] - 2023-05-13
10+
1211
### Added
12+
1313
- Expose raw file descriptor of streams through `Stream::handle()`
14+
1415
### Changed
16+
1517
- Updated `bindgen` dependency to 0.65.1
18+
1619
### Fixed
20+
1721
- Use proper C FFI struct field for `Integer64` controls
1822
- Fix example in README.md to account for the negotiated pixelformat
1923

2024
## [0.13.1] - 2022-12-08
25+
2126
### Fixed
27+
2228
- Do not block when the device is disconnected
2329
- This is achieved by using the non-blocking file descriptor API internally
2430
- The outside-facing API is the same for now
2531
- Can be used as a foundation for language-level async support in the future
2632

2733
## [0.13.0] - 2022-05-19
34+
2835
### Added
36+
2937
- Handling of boolean and button controls
3038
- MJPG (consumer class hardware) support in `glium` example
39+
3140
### Changed
41+
3242
- Simplified examples, removing clap argument parsing
3343
- Unified Value/Value64 control types into a single Integer enum variant
44+
3445
### Fixed
46+
3547
- MUSL libc compatibility
3648
- Android cross compilation
3749

3850
## [0.12.2] - 2021-19-01
51+
3952
### Fixed
53+
4054
- Avoid dropping frames by queuing all buffers on stream start
4155

4256
## [0.12.1] - 2021-05-01
57+
4358
### Fixed
59+
4460
- Update the buffer index for output streams
4561
- Honor the bytesused field for compressed frames in output streams
4662

4763
## [0.12.0] - 2021-01-07
64+
4865
### Changed
66+
4967
- Depend on `0.2.0` sys packages to ship bindgen 0.56.0
5068

5169
## [0.11] - 2020-12-31
70+
5271
### Added
72+
5373
- Global context struct
5474
- Used to enumerate devices
5575
- Single, unified device struct
5676
- Implement Capture / Output capabilities as traits
5777
- MMAP support for output streams (see `stream_forward_mmap` example)
78+
5879
### Changed
80+
5981
- Fine grained buffer access and handling for streams
6082

6183
## [0.10] - 2020-08-26
84+
6285
### Added
86+
6387
- Output device support!
6488
- Just the single-planar API for now.
6589
- Only write() I/O, no mmap or other buffer types.
6690

6791
## [0.9] - 2020-08-05
92+
6893
### Added
94+
6995
- New Handle type for passing around device handles
7096
- You can now stream buffers while changing device controls at the same time! Handles are
7197
thread safe (Arc) by default.
7298
- New StreamItem type introduced to better model stream semantics
7399
- An item only lives up to the point in time where you query the next item from the stream.
100+
74101
### Removed
102+
75103
- Removed buffer arenas from public API
76104

77105
## [0.8] - 2020-08-01
106+
78107
### Added
108+
79109
- New prelude module
110+
80111
### Changed
112+
81113
- I/O module reorganization
82114
- Renamed BufferManagers to Arenas
83115
- Use a single Buffer struct for all I/O streams
116+
84117
### Removed
118+
85119
- Removed the 'get_' prefix on getters
86120

87121
## [0.7] - 2020-07-06
122+
88123
### Added
124+
89125
- Device control get/set support
90126
- New QueryDevice trait
91127
- Implemented for all types which implement Device
92128
- Allows for querying properties such as supported frame times and controls
93129

94130
## [0.6] - 2020-07-04
131+
95132
### Added
133+
96134
- Device control query support
135+
97136
### Changed
137+
98138
- Use v4l2 bindings by default
99139

100140
## [0.5] - 2020-05-14
141+
101142
### Changed
143+
102144
- Device API refactoring
103145
- We only support the V4L2 capture API for now
104146
- Overlay, Output and friends will be added in future releases
105147

106148
## [0.4] - 2020-05-03
149+
107150
### Added
151+
108152
- Streaming I/O (userptr)
153+
109154
### Changed
155+
110156
- Optional libv4l vs v4l2 FFI dependencies
111157

112158
## [0.3] - 2020-05-02
159+
113160
### Added
161+
114162
- Device buffer abstraction
115163
- Streaming I/O (mmap)
116164

117165
## [0.2] - 2020-05-01
166+
118167
### Added
168+
119169
- Device list with capability querying
120170
- Device abstraction
121171
- Format enumeration
122172
- Format getter/setter
123173
- Parameter getter/setter
124174

125175
## [0.1] - 2020-04-30
176+
126177
### Added
178+
127179
- v4l-sys bindings
128180
- I/O codes (VIDIOC_*)

README.md

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,40 @@
11
# Safe video4linux (v4l) bindings
22

3-
[![crates.io](https://img.shields.io/crates/v/v4l.svg?style=for-the-badge)](https://crates.io/crates/v4l)
4-
[![license](https://img.shields.io/github/license/raymanfx/libv4l-rs?style=for-the-badge)](https://github.com/raymanfx/libv4l-rs/blob/master/LICENSE.txt)
5-
[![Build Status](https://img.shields.io/travis/raymanfx/libv4l-rs/master.svg?style=for-the-badge&logo=travis)](https://travis-ci.org/raymanfx/libv4l-rs)
3+
[![CI](https://github.com/raymanfx/libv4l-rs/actions/workflows/ci.yml/badge.svg)](https://github.com/raymanfx/libv4l-rs/actions/workflows/ci.yml)
4+
[![crates.io](https://img.shields.io/crates/v/v4l.svg?logo=rust)](https://crates.io/crates/v4l)
5+
[![Documentation](https://docs.rs/v4l/badge.svg)](https://docs.rs/v4l)
6+
[![license](https://img.shields.io/github/license/raymanfx/libv4l-rs)](https://github.com/raymanfx/libv4l-rs/blob/master/LICENSE.txt)
67

78
This crate provides safe bindings to the Video for Linux (V4L) stack. Modern device drivers will usually implement the `v4l2` API while older ones may depend on the legacy `v4l` API. Such legacy devices may be used with this crate by choosing the `libv4l` feature for this crate.
89

910
## Goals
10-
This crate shall provide the v4l-sys package to enable full (but unsafe) access to libv4l\*.
11+
12+
This crate shall provide the `v4l-sys` package to enable full (but unsafe) access to `libv4l*`.
1113
On top of that, there will be a high level, more idiomatic API to use video capture devices in Linux.
1214

1315
There will be simple utility applications to list devices and capture frames.
1416
A minimalistic OpenGL/Vulkan viewer to display frames is planned for the future.
1517

1618
## Changelog
17-
See [CHANGELOG.md](https://github.com/raymanfx/libv4l-rs/blob/master/CHANGELOG.md)
19+
20+
See [CHANGELOG.md](./CHANGELOG.md)
1821

1922
## Dependencies
23+
2024
You have the choice between two dependencies (both provided by this crate internally):
21-
* libv4l-sys
25+
26+
* `libv4l-sys`
2227
> Link against the libv4l* stack including libv4l1, libv4l2, libv4lconvert.
2328
> This has the advantage of emulating common capture formats such as RGB3 in userspace through libv4lconvert and more.
2429
> However, some features like userptr buffers are not supported in libv4l.
25-
* v4l2-sys
30+
* `v4l2-sys`
2631
> Use only the Linux kernel provided v4l2 API provided by videodev2.h.
2732
> You get support for all v4l2 features such as userptr buffers, but may need to do format conversion yourself if you require e.g. RGB/BGR buffers which may not be supported by commodity devices such as webcams.
2833
2934
Enable either the `libv4l` or the `v4l2` backend by choosing the it as feature for this crate.
3035

3136
## Usage
37+
3238
Below you can find a quick example usage of this crate. It introduces the basics necessary to do frame capturing from a streaming device (e.g. webcam).
3339

3440
```rust

0 commit comments

Comments
 (0)