Browse code

avformat/rmdec: add some error messages

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>

Michael Niedermayer authored on 2013/10/25 00:05:57
Showing 1 changed files
... ...
@@ -680,16 +680,20 @@ static int rm_assemble_video_frame(AVFormatContext *s, AVIOContext *pb,
680 680
         pos  = get_num(pb, &len);
681 681
         pic_num = avio_r8(pb); len--;
682 682
     }
683
-    if(len<0)
683
+    if(len<0) {
684
+        av_log(s, AV_LOG_ERROR, "Insuffient data\n");
684 685
         return -1;
686
+    }
685 687
     rm->remaining_len = len;
686 688
     if(type&1){     // frame, not slice
687 689
         if(type == 3){  // frame as a part of packet
688 690
             len= len2;
689 691
             *timestamp = pos;
690 692
         }
691
-        if(rm->remaining_len < len)
693
+        if(rm->remaining_len < len) {
694
+            av_log(s, AV_LOG_ERROR, "Insuffient remaining len\n");
692 695
             return -1;
696
+        }
693 697
         rm->remaining_len -= len;
694 698
         if(av_new_packet(pkt, len + 9) < 0)
695 699
             return AVERROR(EIO);
... ...
@@ -698,6 +702,7 @@ static int rm_assemble_video_frame(AVFormatContext *s, AVIOContext *pb,
698 698
         AV_WL32(pkt->data + 5, 0);
699 699
         if ((ret = avio_read(pb, pkt->data + 9, len)) != len) {
700 700
             av_free_packet(pkt);
701
+            av_log(s, AV_LOG_ERROR, "Failed to read %d bytes\n", len);
701 702
             return ret < 0 ? ret : AVERROR(EIO);
702 703
         }
703 704
         return 0;
... ...
@@ -724,14 +729,18 @@ static int rm_assemble_video_frame(AVFormatContext *s, AVIOContext *pb,
724 724
     if(type == 2)
725 725
         len = FFMIN(len, pos);
726 726
 
727
-    if(++vst->cur_slice > vst->slices)
727
+    if(++vst->cur_slice > vst->slices) {
728
+        av_log(s, AV_LOG_ERROR, "cur slice %d, too large\n", vst->cur_slice);
728 729
         return 1;
730
+    }
729 731
     if(!vst->pkt.data)
730 732
         return AVERROR(ENOMEM);
731 733
     AV_WL32(vst->pkt.data - 7 + 8*vst->cur_slice, 1);
732 734
     AV_WL32(vst->pkt.data - 3 + 8*vst->cur_slice, vst->videobufpos - 8*vst->slices - 1);
733
-    if(vst->videobufpos + len > vst->videobufsize)
735
+    if(vst->videobufpos + len > vst->videobufsize) {
736
+        av_log(s, AV_LOG_ERROR, "outside videobufsize\n");
734 737
         return 1;
738
+    }
735 739
     if (avio_read(pb, vst->pkt.data + vst->videobufpos, len) != len)
736 740
         return AVERROR(EIO);
737 741
     vst->videobufpos += len;