2018-12-28 22:00:28 +00:00
|
|
|
[package]
|
|
|
|
name = "gst-plugin-closedcaption"
|
2024-02-05 13:35:07 +00:00
|
|
|
version.workspace = true
|
2020-07-29 09:54:15 +00:00
|
|
|
authors = ["Sebastian Dröge <sebastian@centricular.com>", "Jordan Petridis <jordan@centricular.com>", "Matthew Waters <matthew@centricular.com>"]
|
2022-01-15 18:40:12 +00:00
|
|
|
license = "MPL-2.0"
|
2024-02-05 13:35:07 +00:00
|
|
|
edition.workspace = true
|
|
|
|
rust-version.workspace = true
|
2022-10-23 09:13:23 +00:00
|
|
|
description = "GStreamer Rust Closed Caption Plugin"
|
2024-02-05 13:35:07 +00:00
|
|
|
repository.workspace = true
|
2018-12-28 22:00:28 +00:00
|
|
|
|
|
|
|
[dependencies]
|
2021-06-22 20:08:08 +00:00
|
|
|
anyhow = "1"
|
2018-12-28 22:00:28 +00:00
|
|
|
either = "1"
|
2022-04-22 11:29:42 +00:00
|
|
|
uuid = { version = "1.0", features = ["v4"] }
|
2022-11-12 16:41:08 +00:00
|
|
|
chrono = "0.4.23"
|
2020-03-06 17:25:32 +00:00
|
|
|
atomic_refcell = "0.1"
|
2024-02-05 13:35:07 +00:00
|
|
|
cairo-rs.workspace = true
|
|
|
|
pango.workspace = true
|
|
|
|
pangocairo.workspace = true
|
2020-07-29 09:54:15 +00:00
|
|
|
byteorder = "1"
|
tttocea608: in-depth refactoring, support for new input format
Up to now, tttocea608 supported text/utf8, and no interface to
control the positioning of closed captions apart from new lines
in the input text.
CEA 608 supports a larger set of features than that, such as
positioning CC precisely in its 32 x 15 grid, styling text,
switching from one mode to another, resetting the base row
in roll-up mode etc ..
A custom, JSON-based format is now supported by the element
(caps application/x-json, format=cea608), allowing users to
control those features in a pretty advanced manner.
A side effect of this is that the approach previously used
by the element to ensure frame-accurate CC display is now
untenable: where we knew before that an input buffer would
at most span 74 buffers and calculate a somewhat reasonable
latency based on that, this is no longer possible. Instead
we pick the approach most CC encoders seem to pick, and
accept a certain latency at display time: for example the
flipping of the back buffer to the display buffer for a
10-character text buffer will occur 7 frames after its
PTS. This has obvious benefits in terms of code complexity
and should generally be acceptable.
+ Removes a now irrelevant test, updates other tests
+ Extracts the Mode enum to the root of the crate, it will
be used by another element in a follow-up commit
2020-12-07 21:23:51 +00:00
|
|
|
serde = { version = "1.0", features = ["derive"] }
|
|
|
|
serde_json = { version = "1.0", features = ["raw_value"] }
|
2024-03-25 02:25:55 +00:00
|
|
|
cea708-types = "0.3.2"
|
2024-03-14 02:41:15 +00:00
|
|
|
cea608-types = "0.1.1"
|
2024-09-16 10:54:54 +00:00
|
|
|
gst = { workspace = true, features = ["v1_20"]}
|
2024-10-23 15:00:47 +00:00
|
|
|
gst-base = { workspace = true, features = ["v1_22"]}
|
2024-02-05 13:35:07 +00:00
|
|
|
gst-video = { workspace = true, features = ["v1_16"]}
|
2024-02-26 10:00:31 +00:00
|
|
|
winnow = "0.6"
|
2024-03-14 02:41:15 +00:00
|
|
|
smallvec = "1"
|
2024-09-13 09:55:07 +00:00
|
|
|
bitstream-io = "2.3"
|
2018-12-31 09:35:13 +00:00
|
|
|
|
2018-12-28 22:00:28 +00:00
|
|
|
[dev-dependencies]
|
2021-10-14 07:20:19 +00:00
|
|
|
pretty_assertions = "1"
|
2021-01-09 10:24:28 +00:00
|
|
|
rand = { version = "0.8", features = ["small_rng"] }
|
2024-02-05 13:35:07 +00:00
|
|
|
gst-check.workspace = true
|
2024-10-16 17:37:39 +00:00
|
|
|
clap = { version = "4", features = ["derive"] }
|
2018-12-31 09:35:13 +00:00
|
|
|
|
2018-12-28 22:00:28 +00:00
|
|
|
[lib]
|
|
|
|
name = "gstrsclosedcaption"
|
2020-11-26 15:07:41 +00:00
|
|
|
crate-type = ["cdylib", "rlib"]
|
2018-12-28 22:00:28 +00:00
|
|
|
path = "src/lib.rs"
|
2019-06-03 10:53:58 +00:00
|
|
|
|
|
|
|
[build-dependencies]
|
2024-02-05 13:35:07 +00:00
|
|
|
gst-plugin-version-helper.workspace = true
|
2020-11-26 15:07:41 +00:00
|
|
|
|
|
|
|
[features]
|
|
|
|
# We already use 1.16 which is new enough for static build
|
|
|
|
static = []
|
2021-08-11 17:51:36 +00:00
|
|
|
capi = []
|
2022-08-25 22:30:08 +00:00
|
|
|
doc = ["gst/v1_18"]
|
2024-09-16 10:54:54 +00:00
|
|
|
v1_26 = ["gst-base/v1_26"]
|
2020-11-26 15:07:41 +00:00
|
|
|
|
|
|
|
[package.metadata.capi]
|
2023-08-09 10:54:34 +00:00
|
|
|
min_version = "0.9.21"
|
2020-11-26 15:07:41 +00:00
|
|
|
|
|
|
|
[package.metadata.capi.header]
|
|
|
|
enabled = false
|
|
|
|
|
|
|
|
[package.metadata.capi.library]
|
|
|
|
install_subdir = "gstreamer-1.0"
|
|
|
|
versioning = false
|
2023-08-09 10:54:34 +00:00
|
|
|
import_library = false
|
2020-11-26 15:07:41 +00:00
|
|
|
|
|
|
|
[package.metadata.capi.pkg_config]
|
|
|
|
requires_private = "gstreamer-1.0, gstreamer-base-1.0, gstreamer-video-1.0, gobject-2.0, glib-2.0, gmodule-2.0, pango, pangocairo, cairo-gobject"
|
2024-10-16 17:37:39 +00:00
|
|
|
|
|
|
|
[[example]]
|
|
|
|
name = "passthrough-notify"
|