diff --git a/live/groupsock/GroupsockHelper.cpp b/live_raw/groupsock/GroupsockHelper.cpp
index 8751824..870e99a 100644
--- a/live/groupsock/GroupsockHelper.cpp
+++ b/live_raw/groupsock/GroupsockHelper.cpp
@@ -27,7 +27,10 @@ extern "C" int initializeWinsockIfNecessary();
 #include <stdarg.h>
 #include <time.h>
 #include <sys/time.h>
+#if !defined(_WIN32)
 #include <netinet/tcp.h>
+#endif
 #include <fcntl.h>
 #define initializeWinsockIfNecessary() 1
 #endif
diff --git a/live/liveMedia/Makefile.tail b/live_raw/liveMedia/Makefile.tail
index 92dbc83..e085153 100644
--- a/live/liveMedia/Makefile.tail
+++ b/live_raw/liveMedia/Makefile.tail
@@ -27,7 +27,7 @@ MISC_SINK_OBJS = MediaSink.$(OBJ) FileSink.$(OBJ) BasicUDPSink.$(OBJ) AMRAudioFi
 MISC_FILTER_OBJS = uLawAudioFilter.$(OBJ)
 TRANSPORT_STREAM_TRICK_PLAY_OBJS = MPEG2IndexFromTransportStream.$(OBJ) MPEG2TransportStreamIndexFile.$(OBJ) MPEG2TransportStreamTrickModeFilter.$(OBJ)
 
-RTP_SOURCE_OBJS = RTPSource.$(OBJ) MultiFramedRTPSource.$(OBJ) SimpleRTPSource.$(OBJ) H261VideoRTPSource.$(OBJ) H264VideoRTPSource.$(OBJ) H265VideoRTPSource.$(OBJ) QCELPAudioRTPSource.$(OBJ) AMRAudioRTPSource.$(OBJ) JPEGVideoRTPSource.$(OBJ) VorbisAudioRTPSource.$(OBJ) TheoraVideoRTPSource.$(OBJ) VP8VideoRTPSource.$(OBJ) VP9VideoRTPSource.$(OBJ)
+RTP_SOURCE_OBJS = RTPSource.$(OBJ) MultiFramedRTPSource.$(OBJ) SimpleRTPSource.$(OBJ) H261VideoRTPSource.$(OBJ) H264VideoRTPSource.$(OBJ) H265VideoRTPSource.$(OBJ) QCELPAudioRTPSource.$(OBJ) AMRAudioRTPSource.$(OBJ) JPEGVideoRTPSource.$(OBJ) VorbisAudioRTPSource.$(OBJ) TheoraVideoRTPSource.$(OBJ) VP8VideoRTPSource.$(OBJ) VP9VideoRTPSource.$(OBJ) RawVideoRTPSource.$(OBJ)
 RTP_SINK_OBJS = RTPSink.$(OBJ) MultiFramedRTPSink.$(OBJ) AudioRTPSink.$(OBJ) VideoRTPSink.$(OBJ) TextRTPSink.$(OBJ)
 RTP_INTERFACE_OBJS = RTPInterface.$(OBJ)
 RTP_OBJS = $(RTP_SOURCE_OBJS) $(RTP_SINK_OBJS) $(RTP_INTERFACE_OBJS)
@@ -98,6 +98,8 @@ VP8VideoRTPSource.$(CPP):	include/VP8VideoRTPSource.hh
 include/VP8VideoRTPSource.hh:	include/MultiFramedRTPSource.hh
 VP9VideoRTPSource.$(CPP):	include/VP9VideoRTPSource.hh
 include/VP9VideoRTPSource.hh:	include/MultiFramedRTPSource.hh
+RawVideoRTPSource.$(CPP):	include/RawVideoRTPSource.hh
+include/RawVideoRTPSource.hh:	include/MultiFramedRTPSource.hh
 ByteStreamFileSource.$(CPP):	include/ByteStreamFileSource.hh include/InputFile.hh
 include/ByteStreamFileSource.hh:	include/FramedFileSource.hh
 ByteStreamMultiFileSource.$(CPP):	include/ByteStreamMultiFileSource.hh
@@ -383,7 +385,7 @@ ourMD5.$(CPP):	include/ourMD5.hh
 Base64.$(CPP):	include/Base64.hh
 Locale.$(CPP):	include/Locale.hh
 
-include/liveMedia.hh:: include/MPEG1or2AudioRTPSink.hh include/MP3ADURTPSink.hh include/MPEG1or2VideoRTPSink.hh include/MPEG4ESVideoRTPSink.hh include/BasicUDPSink.hh include/AMRAudioFileSink.hh include/H264VideoFileSink.hh include/H265VideoFileSink.hh include/OggFileSink.hh include/GSMAudioRTPSink.hh include/H263plusVideoRTPSink.hh include/H264VideoRTPSink.hh include/H265VideoRTPSink.hh include/DVVideoRTPSource.hh include/DVVideoRTPSink.hh include/DVVideoStreamFramer.hh include/H264VideoStreamFramer.hh include/H265VideoStreamFramer.hh include/H264VideoStreamDiscreteFramer.hh include/H265VideoStreamDiscreteFramer.hh include/JPEGVideoRTPSink.hh include/SimpleRTPSink.hh include/uLawAudioFilter.hh include/MPEG2IndexFromTransportStream.hh include/MPEG2TransportStreamTrickModeFilter.hh include/ByteStreamMultiFileSource.hh include/ByteStreamMemoryBufferSource.hh include/BasicUDPSource.hh include/SimpleRTPSource.hh include/MPEG1or2AudioRTPSource.hh include/MPEG4LATMAudioRTPSource.hh include/MPEG4LATMAudioRTPSink.hh include/MPEG4ESVideoRTPSource.hh include/MPEG4GenericRTPSource.hh include/MP3ADURTPSource.hh include/QCELPAudioRTPSource.hh include/AMRAudioRTPSource.hh include/JPEGVideoRTPSource.hh include/JPEGVideoSource.hh include/MPEG1or2VideoRTPSource.hh include/VorbisAudioRTPSource.hh include/TheoraVideoRTPSource.hh include/VP8VideoRTPSource.hh include/VP9VideoRTPSource.hh
+include/liveMedia.hh:: include/MPEG1or2AudioRTPSink.hh include/MP3ADURTPSink.hh include/MPEG1or2VideoRTPSink.hh include/MPEG4ESVideoRTPSink.hh include/BasicUDPSink.hh include/AMRAudioFileSink.hh include/H264VideoFileSink.hh include/H265VideoFileSink.hh include/OggFileSink.hh include/GSMAudioRTPSink.hh include/H263plusVideoRTPSink.hh include/H264VideoRTPSink.hh include/H265VideoRTPSink.hh include/DVVideoRTPSource.hh include/DVVideoRTPSink.hh include/DVVideoStreamFramer.hh include/H264VideoStreamFramer.hh include/H265VideoStreamFramer.hh include/H264VideoStreamDiscreteFramer.hh include/H265VideoStreamDiscreteFramer.hh include/JPEGVideoRTPSink.hh include/SimpleRTPSink.hh include/uLawAudioFilter.hh include/MPEG2IndexFromTransportStream.hh include/MPEG2TransportStreamTrickModeFilter.hh include/ByteStreamMultiFileSource.hh include/ByteStreamMemoryBufferSource.hh include/BasicUDPSource.hh include/SimpleRTPSource.hh include/MPEG1or2AudioRTPSource.hh include/MPEG4LATMAudioRTPSource.hh include/MPEG4LATMAudioRTPSink.hh include/MPEG4ESVideoRTPSource.hh include/MPEG4GenericRTPSource.hh include/MP3ADURTPSource.hh include/QCELPAudioRTPSource.hh include/AMRAudioRTPSource.hh include/JPEGVideoRTPSource.hh include/JPEGVideoSource.hh include/MPEG1or2VideoRTPSource.hh include/VorbisAudioRTPSource.hh include/TheoraVideoRTPSource.hh include/VP8VideoRTPSource.hh include/VP9VideoRTPSource.hh include/RawVideoRTPSource.hh
 
 include/liveMedia.hh::	include/MPEG2TransportStreamFromPESSource.hh include/MPEG2TransportStreamFromESSource.hh include/MPEG2TransportStreamFramer.hh include/ADTSAudioFileSource.hh include/H261VideoRTPSource.hh include/H263plusVideoRTPSource.hh include/H264VideoRTPSource.hh include/H265VideoRTPSource.hh include/MP3FileSource.hh include/MP3ADU.hh include/MP3ADUinterleaving.hh include/MP3Transcoder.hh include/MPEG1or2DemuxedElementaryStream.hh include/MPEG1or2AudioStreamFramer.hh include/MPEG1or2VideoStreamDiscreteFramer.hh include/MPEG4VideoStreamDiscreteFramer.hh include/H263plusVideoStreamFramer.hh include/AC3AudioStreamFramer.hh include/AC3AudioRTPSource.hh include/AC3AudioRTPSink.hh include/VorbisAudioRTPSink.hh include/TheoraVideoRTPSink.hh include/VP8VideoRTPSink.hh include/VP9VideoRTPSink.hh include/MPEG4GenericRTPSink.hh include/DeviceSource.hh include/AudioInputDevice.hh include/WAVAudioFileSource.hh include/StreamReplicator.hh include/RTSPRegisterSender.hh
 
diff --git a/live/liveMedia/MediaSession.cpp b/live_raw/liveMedia/MediaSession.cpp
index 734efe9..3a09af9 100644
--- a/live/liveMedia/MediaSession.cpp
+++ b/live_raw/liveMedia/MediaSession.cpp
@@ -1267,6 +1267,9 @@ Boolean MediaSubsession::createSourceObjects(int useSpecialRTPoffset) {
       } else if (strcmp(fCodecName, "THEORA") == 0) { // Theora video
 	fReadSource = fRTPSource
 	  = TheoraVideoRTPSource::createNew(env(), fRTPSocket, fRTPPayloadFormat);
+      } else if (strcmp(fCodecName, "RAW") == 0) { // Uncompressed raw video (RFC 4175)
+	fReadSource = fRTPSource
+	  = RawVideoRTPSource::createNew(env(), fRTPSocket, fRTPPayloadFormat, fRTPTimestampFrequency);
       } else if (strcmp(fCodecName, "VP8") == 0) { // VP8 video
 	fReadSource = fRTPSource
 	  = VP8VideoRTPSource::createNew(env(), fRTPSocket,
diff --git a/live_raw/liveMedia/RawVideoRTPSource.cpp b/live_raw/liveMedia/RawVideoRTPSource.cpp
new file mode 100644
index 0000000..bc3a4ef
--- /dev/null
+++ b/live_raw/liveMedia/RawVideoRTPSource.cpp
@@ -0,0 +1,108 @@
+/**********
+This library is free software; you can redistribute it and/or modify it under
+the terms of the GNU Lesser General Public License as published by the
+Free Software Foundation; either version 3 of the License, or (at your
+option) any later version. (See <http://www.gnu.org/copyleft/lesser.html>.)
+
+This library is distributed in the hope that it will be useful, but WITHOUT
+ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for
+more details.
+
+You should have received a copy of the GNU Lesser General Public License
+along with this library; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301  USA
+**********/
+// "liveMedia"
+// Copyright (c) 1996-2018 Live Networks, Inc.  All rights reserved.
+// Raw Video RTP Sources
+// Implementation
+
+#include "RawVideoRTPSource.hh"
+
+///////// RawVideoRTPSource implementation (RFC 4175) ////////
+
+RawVideoRTPSource*
+RawVideoRTPSource::createNew(UsageEnvironment& env, Groupsock* RTPgs,
+			     unsigned char rtpPayloadFormat,
+                             unsigned rtpTimestampFrequency) {
+  return new RawVideoRTPSource(env, RTPgs, rtpPayloadFormat, rtpTimestampFrequency);
+}
+
+RawVideoRTPSource
+::RawVideoRTPSource(UsageEnvironment& env, Groupsock* RTPgs,
+		    unsigned char rtpPayloadFormat,
+                    unsigned rtpTimestampFrequency)
+  : MultiFramedRTPSource(env, RTPgs, rtpPayloadFormat, rtpTimestampFrequency,
+			 new BufferedPacketFactory),
+   fCurExtendedSequenceNb(0) {
+}
+
+RawVideoRTPSource::~RawVideoRTPSource() {
+}
+
+Boolean RawVideoRTPSource
+::processSpecialHeader(BufferedPacket* packet,
+                       unsigned& resultSpecialHeaderSize) {
+
+  unsigned char* headerStart = packet->data();
+  unsigned packetSize = packet->dataSize();
+
+  // the first 2 bytes of the header are the "Extended Sequence Number" (high order bits of the 32-bit sequence nb).
+  fCurExtendedSequenceNb = (headerStart[0] << 8) | headerStart[1];
+
+  unsigned int extendedSequenceNbLength = 2;
+  unsigned int payloadHeaderForLineLength = 6;
+
+  if (packetSize < extendedSequenceNbLength) {
+    //packet too small!!!
+    return False;
+  }
+
+  unsigned int payloadLength = packetSize - extendedSequenceNbLength;
+  unsigned int nbLinesInPacket = 0;
+  unsigned int calculatedLength = 0;
+  bool noMoreLines = False;
+  // Check the "Continuation bit" in special header to find where the payload starts.
+  do {
+    if (payloadLength < ((nbLinesInPacket + 1) * payloadHeaderForLineLength)) {
+      //packet too small for a next line header!!!
+      return False;
+    }
+
+    if ((headerStart[extendedSequenceNbLength + (nbLinesInPacket * payloadHeaderForLineLength) + 4] & 0x80) == 0) {
+      noMoreLines = True;
+    }
+    
+    calculatedLength += (headerStart[extendedSequenceNbLength + (nbLinesInPacket * payloadHeaderForLineLength)] << 8) | headerStart[extendedSequenceNbLength + (nbLinesInPacket * payloadHeaderForLineLength) + 1];
+    nbLinesInPacket++;
+  } while (!noMoreLines);
+  
+  //sanity check on the payload length
+  if ((packetSize - resultSpecialHeaderSize) < calculatedLength) {
+    return False;
+  }
+
+  resultSpecialHeaderSize = extendedSequenceNbLength + (payloadHeaderForLineLength * nbLinesInPacket);
+
+  // The first LineNb and the Offset equal to 0 indicates the first fragment of a frame
+  unsigned int firstLineNb = ((headerStart[extendedSequenceNbLength + 2] & 0x7f) << 8) | headerStart[extendedSequenceNbLength + 3];
+  unsigned int firstOffset = ((headerStart[extendedSequenceNbLength + 4] & 0x7f) << 8) | headerStart[extendedSequenceNbLength + 5];
+  fCurrentPacketBeginsFrame = ((firstLineNb == 0) && (firstOffset == 0));
+
+  // The RTP "M" (marker) bit indicates the last fragment of a frame:
+  fCurrentPacketCompletesFrame = packet->rtpMarkerBit();
+
+#if 0
+  fprintf(stderr, "DEBUG fExtendedSequenceNb=%d, fCurrentPacketBeginsFrame=%d, fCurrentPacketCompletesFrame=%d, nbLinesInPacket=%d\n", 
+	  fCurExtendedSequenceNb, fCurrentPacketBeginsFrame, fCurrentPacketCompletesFrame, nbLinesInPacket);
+#endif
+
+  return True;
+}
+
+char const* RawVideoRTPSource::MIMEtype() const {
+  return "video/RAW";
+}
+
+
diff --git a/live_raw/liveMedia/include/RawVideoRTPSource.hh b/live_raw/liveMedia/include/RawVideoRTPSource.hh
new file mode 100644
index 0000000..3aa7ff6
--- /dev/null
+++ b/live_raw/liveMedia/include/RawVideoRTPSource.hh
@@ -0,0 +1,55 @@
+/**********
+This library is free software; you can redistribute it and/or modify it under
+the terms of the GNU Lesser General Public License as published by the
+Free Software Foundation; either version 3 of the License, or (at your
+option) any later version. (See <http://www.gnu.org/copyleft/lesser.html>.)
+
+This library is distributed in the hope that it will be useful, but WITHOUT
+ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for
+more details.
+
+You should have received a copy of the GNU Lesser General Public License
+along with this library; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301  USA
+**********/
+// "liveMedia"
+// Copyright (c) 1996-2018 Live Networks, Inc.  All rights reserved.
+// Raw Video RTP Sources
+// C++ header
+
+#ifndef _RAW_VIDEO_RTP_SOURCE_HH
+#define _RAW_VIDEO_RTP_SOURCE_HH
+
+#ifndef _MULTI_FRAMED_RTP_SOURCE_HH
+#include "MultiFramedRTPSource.hh"
+#endif
+
+class RawVideoRTPSource: public MultiFramedRTPSource {
+public:
+  static RawVideoRTPSource*
+  createNew(UsageEnvironment& env, Groupsock* RTPgs,
+	    unsigned char rtpPayloadFormat,
+            unsigned rtpTimestampFrequency);
+
+  u_int16_t curExtendedSequenceNb() const { return fCurExtendedSequenceNb; } // The current "Extended Sequence Number" field.
+
+protected:
+  RawVideoRTPSource(UsageEnvironment& env, Groupsock* RTPgs,
+		    unsigned char rtpPayloadFormat,
+                    unsigned rtpTimestampFrequency);
+      // called only by createNew()
+
+  virtual ~RawVideoRTPSource();
+
+protected:
+  // redefined virtual functions:
+  virtual Boolean processSpecialHeader(BufferedPacket* packet,
+                                       unsigned& resultSpecialHeaderSize);
+  virtual char const* MIMEtype() const;
+
+private:
+  u_int32_t fCurExtendedSequenceNb;
+};
+
+#endif
diff --git a/live/liveMedia/include/liveMedia.hh b/live_raw/liveMedia/include/liveMedia.hh
index 204c8dd..03d9dbf 100644
--- a/live/liveMedia/include/liveMedia.hh
+++ b/live_raw/liveMedia/include/liveMedia.hh
@@ -126,5 +126,6 @@ along with this library; if not, write to the Free Software Foundation, Inc.,
 #include "MatroskaFileServerDemux.hh"
 #include "OggFileServerDemux.hh"
 #include "ProxyServerMediaSession.hh"
+#include "RawVideoRTPSource.hh"
 
 #endif
