Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.freedesktop.org/gstreamer/gst-plugins-rs.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian@centricular.com>2017-08-18 12:55:24 +0300
committerSebastian Dröge <sebastian@centricular.com>2017-08-18 12:55:24 +0300
commit37a673ce24f15b823c7877fa1f90a234f7661df2 (patch)
tree8a0887adbe953c835c485a8a8b930a9f52a43639
parentd68effa8e40a839e80bc96a0ee83e75afa43ebec (diff)
Use muldiv crate for timestamp calculations
-rw-r--r--Cargo.lock7
-rw-r--r--gst-plugin-flv/Cargo.toml1
-rw-r--r--gst-plugin-flv/src/flvdemux.rs8
-rw-r--r--gst-plugin-flv/src/lib.rs1
4 files changed, 14 insertions, 3 deletions
diff --git a/Cargo.lock b/Cargo.lock
index 791e0c620..5e6c41ca5 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -221,6 +221,7 @@ version = "0.1.0"
dependencies = [
"flavors 0.2.0 (git+https://github.com/rust-av/flavors.git)",
"gst-plugin 0.1.0",
+ "muldiv 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
"nom 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"slog 2.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
"url 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -450,6 +451,11 @@ dependencies = [
]
[[package]]
+name = "muldiv"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[[package]]
name = "native-tls"
version = "0.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -895,6 +901,7 @@ dependencies = [
"checksum mime 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "153f98dde2b135dece079e5478ee400ae1bab13afa52d66590eacfc40e912435"
"checksum mio 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)" = "dbd91d3bfbceb13897065e97b2ef177a09a438cb33612b2d371bf568819a9313"
"checksum miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919"
+"checksum muldiv 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1cbef5aa2e8cd82a18cc20e26434cc9843e1ef46e55bfabe5bddb022236c5b3e"
"checksum native-tls 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "04b781c9134a954c84f0594b9ab3f5606abc516030388e8511887ef4c204a1e5"
"checksum net2 0.2.31 (registry+https://github.com/rust-lang/crates.io-index)" = "3a80f842784ef6c9a958b68b7516bc7e35883c614004dd94959a4dca1b716c09"
"checksum nom 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "06989cbd367e06f787a451f3bc67d8c3e0eaa10b461cc01152ffab24261a31b1"
diff --git a/gst-plugin-flv/Cargo.toml b/gst-plugin-flv/Cargo.toml
index 1434f5288..71100c6ec 100644
--- a/gst-plugin-flv/Cargo.toml
+++ b/gst-plugin-flv/Cargo.toml
@@ -11,6 +11,7 @@ gst-plugin = { path="../gst-plugin" }
slog = "2.0"
nom = "3.0"
flavors = {git = "https://github.com/rust-av/flavors.git"}
+muldiv = "0.1"
[lib]
name = "gstrsflv"
diff --git a/gst-plugin-flv/src/flvdemux.rs b/gst-plugin-flv/src/flvdemux.rs
index 892e380b1..e6089c205 100644
--- a/gst-plugin-flv/src/flvdemux.rs
+++ b/gst-plugin-flv/src/flvdemux.rs
@@ -28,6 +28,8 @@ use gst_plugin::bytes::*;
use slog::Logger;
+use muldiv::*;
+
const AUDIO_STREAM_ID: u32 = 0;
const VIDEO_STREAM_ID: u32 = 1;
@@ -736,7 +738,7 @@ impl FlvDemux {
{
let buffer = buffer.get_mut().unwrap();
- buffer.set_pts(Some((tag_header.timestamp as u64) * 1000 * 1000));
+ buffer.set_pts((tag_header.timestamp as u64).mul_div_floor(1000_000, 1));
}
trace!(
@@ -911,7 +913,7 @@ impl FlvDemux {
if !is_keyframe {
buffer.set_flags(BUFFER_FLAG_DELTA_UNIT);
}
- buffer.set_dts(Some((tag_header.timestamp as u64) * 1000 * 1000));
+ buffer.set_dts((tag_header.timestamp as u64).mul_div_floor(1000_000, 1));
// Prevent negative numbers
let pts = if cts < 0 && tag_header.timestamp < (-cts) as u32 {
@@ -919,7 +921,7 @@ impl FlvDemux {
} else {
((tag_header.timestamp as i64) + (cts as i64)) as u64
};
- buffer.set_pts(Some(pts * 1000 * 1000));
+ buffer.set_pts(pts.mul_div_floor(1000_000, 1));
}
trace!(
diff --git a/gst-plugin-flv/src/lib.rs b/gst-plugin-flv/src/lib.rs
index c886bb50b..be98fff81 100644
--- a/gst-plugin-flv/src/lib.rs
+++ b/gst-plugin-flv/src/lib.rs
@@ -16,6 +16,7 @@ extern crate slog;
#[macro_use]
extern crate nom;
extern crate flavors;
+extern crate muldiv;
use gst_plugin::plugin::*;
use gst_plugin::demuxer::*;