diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2015-02-24 23:16:46 +0100 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2015-02-24 23:16:46 +0100 |
commit | 0f8de2b5f17b051d2cfdf1ba25c2990368df1a27 (patch) | |
tree | 4438a82889b809460b9b94bae1740ce0cefb0ef1 | |
parent | 29f9d82d23ffc4e48c220c68c7041ca581632981 (diff) | |
parent | f3449062a8d100ac4f703647336c32b126aa99f1 (diff) | |
download | ffmpeg-0f8de2b5f17b051d2cfdf1ba25c2990368df1a27.tar.gz |
Merge commit 'f3449062a8d100ac4f703647336c32b126aa99f1'
* commit 'f3449062a8d100ac4f703647336c32b126aa99f1':
rtpdec_hevc: Reduce indentation level by returning early on errors
Conflicts:
libavformat/rtpdec_hevc.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r-- | libavformat/rtpdec_hevc.c | 60 |
1 files changed, 30 insertions, 30 deletions
diff --git a/libavformat/rtpdec_hevc.c b/libavformat/rtpdec_hevc.c index afabc5b67f..f0d42d12fa 100644 --- a/libavformat/rtpdec_hevc.c +++ b/libavformat/rtpdec_hevc.c @@ -320,44 +320,44 @@ static int hevc_handle_packet(AVFormatContext *ctx, PayloadContext *rtp_hevc_ctx av_dlog(ctx, " FU type %d with %d bytes\n", fu_type, len); /* sanity check for size of input packet: 1 byte payload at least */ - 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 { + if (len <= 0) { 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_INVALIDDATA; + return AVERROR_INVALIDDATA; } else { - res = AVERROR(EAGAIN); + 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: |