diff options
author | Sebastian Dröge <sebastian@centricular.com> | 2019-02-06 15:48:50 +0300 |
---|---|---|
committer | Sebastian Dröge <sebastian@centricular.com> | 2019-02-06 15:48:50 +0300 |
commit | e1df2e2de581af61f196c5aa22cf58bd68dd6162 (patch) | |
tree | c08b81701ff19369bfe9d5bde9de50eb4a6cf5bd | |
parent | 288596b7a254a748308cb196d5a9311e3f63e401 (diff) |
flvdemux: Update to nom 4
-rw-r--r-- | gst-plugin-flv/Cargo.toml | 2 | ||||
-rw-r--r-- | gst-plugin-flv/src/flvdemux.rs | 45 |
2 files changed, 23 insertions, 24 deletions
diff --git a/gst-plugin-flv/Cargo.toml b/gst-plugin-flv/Cargo.toml index 620ebe0d2..3b0b042aa 100644 --- a/gst-plugin-flv/Cargo.toml +++ b/gst-plugin-flv/Cargo.toml @@ -12,7 +12,7 @@ glib = { git = "https://github.com/gtk-rs/glib" } gstreamer = { git = "https://gitlab.freedesktop.org/gstreamer/gstreamer-rs", features = ["subclassing"] } gstreamer-base = { git = "https://gitlab.freedesktop.org/gstreamer/gstreamer-rs" } num-rational = { version = "0.2", default-features = false, features = [] } -nom = "3.0" +nom = "4.0" flavors = {git = "https://github.com/rust-av/flavors.git"} muldiv = "0.2" byteorder = "1.0" diff --git a/gst-plugin-flv/src/flvdemux.rs b/gst-plugin-flv/src/flvdemux.rs index 4e832ad60..ba047b7f5 100644 --- a/gst-plugin-flv/src/flvdemux.rs +++ b/gst-plugin-flv/src/flvdemux.rs @@ -10,7 +10,6 @@ use std::cmp; use std::sync::Mutex; use nom; -use nom::IResult; // FIXME: rustfmt removes the :: but they're required here #[rustfmt::skip] @@ -557,7 +556,7 @@ impl FlvDemux { while adapter.available() >= 9 { let data = adapter.map(9).unwrap(); - if let IResult::Done(_, header) = flavors::header(&*data) { + if let Ok((_, header)) = flavors::header(&*data) { gst_debug!(CAT, obj: element, "Found FLV header: {:?}", header); drop(data); adapter.flush(9); @@ -709,22 +708,22 @@ impl StreamingState { let data = adapter.map(15).unwrap(); match nom::be_u32(&data[0..4]) { - IResult::Error(_) | IResult::Incomplete(_) => unreachable!(), - IResult::Done(_, previous_size) => { + Err(_) => unreachable!(), + Ok((_, previous_size)) => { gst_trace!(CAT, obj: element, "Previous tag size {}", previous_size); // Nothing to do here, we just consume it for now } } let tag_header = match flavors::tag_header(&data[4..]) { - IResult::Error(err) => { + Err(nom::Err::Error(err)) | Err(nom::Err::Failure(err)) => { return Err(gst_error_msg!( gst::StreamError::Demux, ["Invalid tag header: {:?}", err] )); } - IResult::Incomplete(_) => unreachable!(), - IResult::Done(_, tag_header) => tag_header, + Err(nom::Err::Incomplete(_)) => unreachable!(), + Ok((_, tag_header)) => tag_header, }; gst_trace!(CAT, obj: element, "Parsed tag header {:?}", tag_header); @@ -770,7 +769,7 @@ impl StreamingState { let data = adapter.map(tag_header.data_size as usize).unwrap(); match flavors::script_data(&*data) { - IResult::Done(_, ref script_data) if script_data.name == "onMetaData" => { + Ok((_, ref script_data)) if script_data.name == "onMetaData" => { gst_trace!(CAT, obj: element, "Got script tag: {:?}", script_data); let metadata = Metadata::new(script_data); @@ -801,13 +800,13 @@ impl StreamingState { } } } - IResult::Done(_, ref script_data) => { + Ok((_, ref script_data)) => { gst_trace!(CAT, obj: element, "Got script tag: {:?}", script_data); } - IResult::Error(err) => { + Err(nom::Err::Error(err)) | Err(nom::Err::Failure(err)) => { gst_error!(CAT, obj: element, "Error parsing script tag: {:?}", err); } - IResult::Incomplete(_) => { + Err(nom::Err::Incomplete(_)) => { // ignore } } @@ -883,7 +882,7 @@ impl StreamingState { let data = adapter.map(1).unwrap(); match flavors::aac_audio_packet_header(&*data) { - IResult::Error(err) => { + Err(nom::Err::Error(err)) | Err(nom::Err::Failure(err)) => { gst_error!( CAT, obj: element, @@ -894,8 +893,8 @@ impl StreamingState { adapter.flush((tag_header.data_size - 1) as usize); return Ok(true); } - IResult::Incomplete(_) => unreachable!(), - IResult::Done(_, header) => { + Err(nom::Err::Incomplete(_)) => unreachable!(), + Ok((_, header)) => { gst_trace!(CAT, obj: element, "Got AAC packet header {:?}", header); match header.packet_type { flavors::AACPacketType::SequenceHeader => { @@ -929,14 +928,14 @@ impl StreamingState { let data = adapter.map(1).unwrap(); let data_header = match flavors::audio_data_header(&*data) { - IResult::Error(err) => { + Err(nom::Err::Error(err)) | Err(nom::Err::Failure(err)) => { gst_error!(CAT, obj: element, "Invalid audio data header: {:?}", err); drop(data); adapter.flush(tag_header.data_size as usize); return Ok(SmallVec::new()); } - IResult::Incomplete(_) => unreachable!(), - IResult::Done(_, data_header) => data_header, + Err(nom::Err::Incomplete(_)) => unreachable!(), + Ok((_, data_header)) => data_header, }; drop(data); adapter.flush(1); @@ -1052,7 +1051,7 @@ impl StreamingState { let data = adapter.map(4).unwrap(); match flavors::avc_video_packet_header(&*data) { - IResult::Error(err) => { + Err(nom::Err::Error(err)) | Err(nom::Err::Failure(err)) => { gst_error!( CAT, obj: element, @@ -1063,8 +1062,8 @@ impl StreamingState { adapter.flush((tag_header.data_size - 1) as usize); return Ok(None); } - IResult::Incomplete(_) => unreachable!(), - IResult::Done(_, header) => { + Err(nom::Err::Incomplete(_)) => unreachable!(), + Ok((_, header)) => { gst_trace!(CAT, obj: element, "Got AVC packet header {:?}", header); match header.packet_type { flavors::AVCPacketType::SequenceHeader => { @@ -1110,14 +1109,14 @@ impl StreamingState { let data = adapter.map(1).unwrap(); let data_header = match flavors::video_data_header(&*data) { - IResult::Error(err) => { + Err(nom::Err::Error(err)) | Err(nom::Err::Failure(err)) => { gst_error!(CAT, obj: element, "Invalid video data header: {:?}", err); drop(data); adapter.flush(tag_header.data_size as usize); return Ok(SmallVec::new()); } - IResult::Incomplete(_) => unreachable!(), - IResult::Done(_, data_header) => data_header, + Err(nom::Err::Incomplete(_)) => unreachable!(), + Ok((_, data_header)) => data_header, }; drop(data); adapter.flush(1); |