aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Storsjö <martin@martin.st>2013-01-08 23:21:15 +0200
committerMartin Storsjö <martin@martin.st>2013-01-09 12:14:00 +0200
commit71194ef6a8ffe7cfd32b0db465de9f1fd0202eb3 (patch)
tree567f18f649969edcd9747abca907fd0e25f0d302
parentd744801f1a7c65200a6ed207bb0dea197432288e (diff)
downloadffmpeg-71194ef6a8ffe7cfd32b0db465de9f1fd0202eb3.tar.gz
rtpdec_vp8: Mark broken packets with AV_PKT_FLAG_CORRUPT
This allows the caller to either include them (and get more packets decoded, but possibly some nonperfect frames), or discard them (by setting fflags=discardcorrupt). Signed-off-by: Martin Storsjö <martin@martin.st>
-rw-r--r--libavformat/rtpdec_vp8.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/libavformat/rtpdec_vp8.c b/libavformat/rtpdec_vp8.c
index 96a1a3407e..c1bffaac0d 100644
--- a/libavformat/rtpdec_vp8.c
+++ b/libavformat/rtpdec_vp8.c
@@ -90,6 +90,8 @@ static int vp8_handle_packet(AVFormatContext *ctx, PayloadContext *vp8,
if (ret < 0)
return ret;
*timestamp = vp8->timestamp;
+ if (vp8->sequence_dirty)
+ pkt->flags |= AV_PKT_FLAG_CORRUPT;
return 0;
}
return AVERROR(EAGAIN);
@@ -199,6 +201,7 @@ static int vp8_handle_packet(AVFormatContext *ctx, PayloadContext *vp8,
if (ret < 0)
return ret;
pkt->size = vp8->first_part_size;
+ pkt->flags |= AV_PKT_FLAG_CORRUPT;
returned_old_frame = 1;
old_timestamp = vp8->timestamp;
} else {
@@ -261,6 +264,8 @@ static int vp8_handle_packet(AVFormatContext *ctx, PayloadContext *vp8,
return ret;
if (vp8->broken_frame)
pkt->size = vp8->first_part_size;
+ if (vp8->sequence_dirty)
+ pkt->flags |= AV_PKT_FLAG_CORRUPT;
return 0;
}