mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-27 12:11:13 +00:00
pcapparse: fix regression when handling packets with eth padding
Introduced by c4c9fe60b
pcapparse: Take buffer directly from the adapter
Flush any trailing bytes after the payload from the adapter as well,
otherwise we'll read a bogus packet size from the adapter next and
then everything goes downhill from there.
https://bugzilla.gnome.org/show_bug.cgi?id=751879
This commit is contained in:
parent
9e7454a90a
commit
aec19c1053
1 changed files with 2 additions and 3 deletions
|
@ -480,13 +480,12 @@ gst_pcap_parse_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer)
|
|||
GstBuffer *out_buf;
|
||||
guintptr offset = payload_data - data;
|
||||
|
||||
self->cur_packet_size -= offset;
|
||||
self->cur_packet_size -= payload_size;
|
||||
|
||||
gst_adapter_unmap (self->adapter);
|
||||
gst_adapter_flush (self->adapter, offset);
|
||||
out_buf = gst_adapter_take_buffer_fast (self->adapter,
|
||||
payload_size);
|
||||
gst_adapter_flush (self->adapter,
|
||||
self->cur_packet_size - offset - payload_size);
|
||||
|
||||
if (GST_CLOCK_TIME_IS_VALID (self->cur_ts)) {
|
||||
if (!GST_CLOCK_TIME_IS_VALID (self->base_ts))
|
||||
|
|
Loading…
Reference in a new issue