[FFmpeg-cvslog] r23768 - in trunk/libavformat: internal.h rtsp.c

mstorsjo subversion
Fri Jun 25 09:56:45 CEST 2010


Author: mstorsjo
Date: Fri Jun 25 09:56:45 2010
New Revision: 23768

Log:
RTSP: Remove skip_spaces in favor of strspn

Patch by Josh Allmann, joshua dot allmann at gmail

Modified:
   trunk/libavformat/internal.h
   trunk/libavformat/rtsp.c

Modified: trunk/libavformat/internal.h
==============================================================================
--- trunk/libavformat/internal.h	Fri Jun 25 06:36:17 2010	(r23767)
+++ trunk/libavformat/internal.h	Fri Jun 25 09:56:45 2010	(r23768)
@@ -174,4 +174,6 @@ void ff_sdp_write_media(char *buff, int 
 int ff_write_chained(AVFormatContext *dst, int dst_stream, AVPacket *pkt,
                      AVFormatContext *src);
 
+#define SPACE_CHARS " \t\r\n"
+
 #endif /* AVFORMAT_INTERNAL_H */

Modified: trunk/libavformat/rtsp.c
==============================================================================
--- trunk/libavformat/rtsp.c	Fri Jun 25 06:36:17 2010	(r23767)
+++ trunk/libavformat/rtsp.c	Fri Jun 25 09:56:45 2010	(r23768)
@@ -53,19 +53,6 @@ int rtsp_default_protocols = (1 << RTSP_
 #define READ_PACKET_TIMEOUT_S 10
 #define MAX_TIMEOUTS READ_PACKET_TIMEOUT_S * 1000 / SELECT_TIMEOUT_MS
 
-#define SPACE_CHARS " \t\r\n"
-/* we use memchr() instead of strchr() here because strchr() will return
- * the terminating '\0' of SPACE_CHARS instead of NULL if c is '\0'. */
-#define redir_isspace(c) memchr(SPACE_CHARS, c, 4)
-static void skip_spaces(const char **pp)
-{
-    const char *p;
-    p = *pp;
-    while (redir_isspace(*p))
-        p++;
-    *pp = p;
-}
-
 static void get_word_until_chars(char *buf, int buf_size,
                                  const char *sep, const char **pp)
 {
@@ -73,7 +60,7 @@ static void get_word_until_chars(char *b
     char *q;
 
     p = *pp;
-    skip_spaces(&p);
+    p += strspn(p, SPACE_CHARS);
     q = buf;
     while (!strchr(sep, *p) && *p != '\0') {
         if ((q - buf) < buf_size - 1)
@@ -179,7 +166,7 @@ static int hex_to_data(uint8_t *data, co
     len = 0;
     v = 1;
     for (;;) {
-        skip_spaces(&p);
+        p += strspn(p, SPACE_CHARS);
         if (*p == '\0')
             break;
         c = toupper((unsigned char) *p++);
@@ -256,7 +243,7 @@ static const AttrNameMap attr_names[]=
 int ff_rtsp_next_attr_and_value(const char **p, char *attr, int attr_size,
                                 char *value, int value_size)
 {
-    skip_spaces(p);
+    *p += strspn(*p, SPACE_CHARS);
     if (**p) {
         get_word_sep(attr, attr_size, "=", p);
         if (**p == '=')
@@ -308,7 +295,7 @@ static void rtsp_parse_range_npt(const c
 {
     char buf[256];
 
-    skip_spaces(&p);
+    p += strspn(p, SPACE_CHARS);
     if (!av_stristart(p, "npt=", &p))
         return;
 
@@ -547,7 +534,7 @@ static int sdp_parse(AVFormatContext *s,
     memset(s1, 0, sizeof(SDPParseState));
     p = content;
     for (;;) {
-        skip_spaces(&p);
+        p += strspn(p, SPACE_CHARS);
         letter = *p;
         if (letter == '\0')
             break;
@@ -727,7 +714,7 @@ static void rtsp_parse_range(int *min_pt
     int v;
 
     p = *pp;
-    skip_spaces(&p);
+    p += strspn(p, SPACE_CHARS);
     v = strtol(p, (char **)&p, 10);
     if (*p == '-') {
         p++;
@@ -754,7 +741,7 @@ static void rtsp_parse_transport(RTSPMes
     reply->nb_transports = 0;
 
     for (;;) {
-        skip_spaces(&p);
+        p += strspn(p, SPACE_CHARS);
         if (*p == '\0')
             break;
 
@@ -864,22 +851,22 @@ void ff_rtsp_parse_line(RTSPMessageHeade
     } else if (av_stristart(p, "Range:", &p)) {
         rtsp_parse_range_npt(p, &reply->range_start, &reply->range_end);
     } else if (av_stristart(p, "RealChallenge1:", &p)) {
-        skip_spaces(&p);
+        p += strspn(p, SPACE_CHARS);
         av_strlcpy(reply->real_challenge, p, sizeof(reply->real_challenge));
     } else if (av_stristart(p, "Server:", &p)) {
-        skip_spaces(&p);
+        p += strspn(p, SPACE_CHARS);
         av_strlcpy(reply->server, p, sizeof(reply->server));
     } else if (av_stristart(p, "Notice:", &p) ||
                av_stristart(p, "X-Notice:", &p)) {
         reply->notice = strtol(p, NULL, 10);
     } else if (av_stristart(p, "Location:", &p)) {
-        skip_spaces(&p);
+        p += strspn(p, SPACE_CHARS);
         av_strlcpy(reply->location, p , sizeof(reply->location));
     } else if (av_stristart(p, "WWW-Authenticate:", &p) && auth_state) {
-        skip_spaces(&p);
+        p += strspn(p, SPACE_CHARS);
         ff_http_auth_handle_header(auth_state, "WWW-Authenticate", p);
     } else if (av_stristart(p, "Authentication-Info:", &p) && auth_state) {
-        skip_spaces(&p);
+        p += strspn(p, SPACE_CHARS);
         ff_http_auth_handle_header(auth_state, "Authentication-Info", p);
     }
 }



More information about the ffmpeg-cvslog mailing list