summaryrefslogtreecommitdiff
path: root/libavformat/rtpdec_hevc.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2015-02-24 23:16:46 +0100
committerMichael Niedermayer <michaelni@gmx.at>2015-02-24 23:16:46 +0100
commit0f8de2b5f17b051d2cfdf1ba25c2990368df1a27 (patch)
tree4438a82889b809460b9b94bae1740ce0cefb0ef1 /libavformat/rtpdec_hevc.c
parent29f9d82d23ffc4e48c220c68c7041ca581632981 (diff)
parentf3449062a8d100ac4f703647336c32b126aa99f1 (diff)
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>
Diffstat (limited to 'libavformat/rtpdec_hevc.c')
-rw-r--r--libavformat/rtpdec_hevc.c60
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: