The issue is that gcc isn't smart enough to propagate a known-0 variable
to allow dead code elimination unless optimization is enabled.
---
 libavformat/rtmpproto.c | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/libavformat/rtmpproto.c b/libavformat/rtmpproto.c
index f7ba7d5..dcca8e7 100644
--- a/libavformat/rtmpproto.c
+++ b/libavformat/rtmpproto.c
@@ -719,7 +719,6 @@ static int rtmp_handshake(URLContext *s, RTMPContext *rt)
     int i;
     int server_pos, client_pos;
     uint8_t digest[32], signature[32];
-    int encrypted = rt->encrypted && CONFIG_FFRTMPCRYPT_PROTOCOL;
     int ret, type = 0;
 
     av_log(s, AV_LOG_DEBUG, "Handshaking...\n");
@@ -729,7 +728,7 @@ static int rtmp_handshake(URLContext *s, RTMPContext *rt)
     for (i = 9; i <= RTMP_HANDSHAKE_PACKET_SIZE; i++)
         tosend[i] = av_lfg_get(&rnd) >> 24;
 
-    if (encrypted) {
+    if (rt->encrypted && CONFIG_FFRTMPCRYPT_PROTOCOL) {
         /* When the client wants to use RTMPE, we have to change the command
          * byte to 0x06 which means to use encrypted data and we have to set
          * the flash version to at least 9.0.115.0. */
@@ -745,7 +744,8 @@ static int rtmp_handshake(URLContext *s, RTMPContext *rt)
             return ret;
     }
 
-    client_pos = rtmp_handshake_imprint_with_digest(tosend + 1, encrypted);
+    client_pos = rtmp_handshake_imprint_with_digest(tosend + 1, rt->encrypted 
&&
+                                                    
CONFIG_FFRTMPCRYPT_PROTOCOL);
     if (client_pos < 0)
         return client_pos;
 
@@ -799,7 +799,7 @@ static int rtmp_handshake(URLContext *s, RTMPContext *rt)
         if (ret < 0)
             return ret;
 
-        if (encrypted) {
+        if (rt->encrypted && CONFIG_FFRTMPCRYPT_PROTOCOL) {
             /* Compute the shared secret key sent by the server and initialize
              * the RC4 encryption. */
             if ((ret = ff_rtmpe_compute_secret_key(rt->stream, serverdata + 1,
@@ -829,7 +829,7 @@ static int rtmp_handshake(URLContext *s, RTMPContext *rt)
         if (ret < 0)
             return ret;
 
-        if (encrypted) {
+        if (rt->encrypted && CONFIG_FFRTMPCRYPT_PROTOCOL) {
             /* Encrypt the signature to be send to the server. */
             ff_rtmpe_encrypt_sig(rt->stream, tosend +
                                  RTMP_HANDSHAKE_PACKET_SIZE - 32, digest,
@@ -841,13 +841,13 @@ static int rtmp_handshake(URLContext *s, RTMPContext *rt)
                                RTMP_HANDSHAKE_PACKET_SIZE)) < 0)
             return ret;
 
-        if (encrypted) {
+        if (rt->encrypted && CONFIG_FFRTMPCRYPT_PROTOCOL) {
             /* Set RC4 keys for encryption and update the keystreams. */
             if ((ret = ff_rtmpe_update_keystream(rt->stream)) < 0)
                 return ret;
         }
     } else {
-        if (encrypted) {
+        if (rt->encrypted && CONFIG_FFRTMPCRYPT_PROTOCOL) {
             /* Compute the shared secret key sent by the server and initialize
              * the RC4 encryption. */
             if ((ret = ff_rtmpe_compute_secret_key(rt->stream, serverdata + 1,
@@ -865,7 +865,7 @@ static int rtmp_handshake(URLContext *s, RTMPContext *rt)
                                RTMP_HANDSHAKE_PACKET_SIZE)) < 0)
             return ret;
 
-        if (encrypted) {
+        if (rt->encrypted && CONFIG_FFRTMPCRYPT_PROTOCOL) {
             /* Set RC4 keys for encryption and update the keystreams. */
             if ((ret = ff_rtmpe_update_keystream(rt->stream)) < 0)
                 return ret;
-- 
1.7.11.1

_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to