OSDN Git Service

Merge commit 'f3449062a8d100ac4f703647336c32b126aa99f1'
authorMichael Niedermayer <michaelni@gmx.at>
Tue, 24 Feb 2015 22:16:46 +0000 (23:16 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Tue, 24 Feb 2015 22:16:46 +0000 (23:16 +0100)
* commit 'f3449062a8d100ac4f703647336c32b126aa99f1':
  rtpdec_hevc: Reduce indentation level by returning early on errors

Conflicts:
libavformat/rtpdec_hevc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
1  2 
libavformat/rtpdec_hevc.c

@@@ -319,45 -315,41 +319,45 @@@ static int hevc_handle_packet(AVFormatC
  
          av_dlog(ctx, " FU type %d with %d bytes\n", fu_type, len);
  
-         if (len > 0) {
-             new_nal_header[0] = (rtp_pl[0] & 0x81) | (fu_type << 1);
-             new_nal_header[1] = rtp_pl[1];
-             /* start fragment vs. subsequent fragments */
-             if (first_fragment) {
-                 if (!last_fragment) {
-                     /* create A/V packet which is big enough */
-                     if ((res = av_new_packet(pkt, sizeof(start_sequence) + sizeof(new_nal_header) + len)) < 0)
-                         return res;
-                     /* A/V packet: copy start sequence */
-                     memcpy(pkt->data, start_sequence, sizeof(start_sequence));
-                     /* A/V packet: copy new NAL header */
-                     memcpy(pkt->data + sizeof(start_sequence), new_nal_header, sizeof(new_nal_header));
-                     /* A/V packet: copy NAL unit data */
-                     memcpy(pkt->data + sizeof(start_sequence) + sizeof(new_nal_header), buf, len);
-                 } else {
-                     av_log(ctx, AV_LOG_ERROR, "Illegal combination of S and E bit in RTP/HEVC packet\n");
-                     res = AVERROR_INVALIDDATA;
-                 }
-             } else {
-                 /* create A/V packet */
-                 if ((res = av_new_packet(pkt, len)) < 0)
-                     return res;
-                 /* A/V packet: copy NAL unit data */
-                 memcpy(pkt->data, buf, len);
-             }
-         } else {
 +        /* sanity check for size of input packet: 1 byte payload at least */
 -            /* sanity check for size of input packet: 1 byte payload at least */
 -            av_log(ctx, AV_LOG_ERROR,
 -                   "Too short RTP/HEVC packet, got %d bytes of NAL unit type %d\n",
 -                   len, nal_type);
 -            return AVERROR_INVALIDDATA;
+         if (len <= 0) {
-                 res = AVERROR_INVALIDDATA;
 +            if (len < 0) {
 +                av_log(ctx, AV_LOG_ERROR,
 +                       "Too short RTP/HEVC packet, got %d bytes of NAL unit type %d\n",
 +                       len, nal_type);
-                 res = AVERROR(EAGAIN);
++                return AVERROR_INVALIDDATA;
 +            } else {
++                return AVERROR(EAGAIN);
 +            }
          }
  
+         if (first_fragment && last_fragment) {
+             av_log(ctx, AV_LOG_ERROR, "Illegal combination of S and E bit in RTP/HEVC packet\n");
+             return AVERROR_INVALIDDATA;
+         }
+         new_nal_header[0] = (rtp_pl[0] & 0x81) | (fu_type << 1);
+         new_nal_header[1] = rtp_pl[1];
+         /* start fragment vs. subsequent fragments */
+         if (first_fragment) {
+             /* create A/V packet which is big enough */
+             if ((res = av_new_packet(pkt, sizeof(start_sequence) + sizeof(new_nal_header) + len)) < 0)
+                 return res;
+             /* A/V packet: copy start sequence */
+             memcpy(pkt->data, start_sequence, sizeof(start_sequence));
+             /* A/V packet: copy new NAL header */
+             memcpy(pkt->data + sizeof(start_sequence), new_nal_header, sizeof(new_nal_header));
+             /* A/V packet: copy NAL unit data */
+             memcpy(pkt->data + sizeof(start_sequence) + sizeof(new_nal_header), buf, len);
+         } else {
+             /* create A/V packet */
+             if ((res = av_new_packet(pkt, len)) < 0)
+                 return res;
+             /* A/V packet: copy NAL unit data */
+             memcpy(pkt->data, buf, len);
+         }
          break;
      /* PACI packet */
      case 50: