summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ffmpeg.c3
-rw-r--r--libavcodec/avcodec.h4
-rw-r--r--libavcodec/wavpack.c1
-rw-r--r--libavcodec/wmaprodec.c1
4 files changed, 8 insertions, 1 deletions
diff --git a/ffmpeg.c b/ffmpeg.c
index 944fec3a2f..86ea70c9d8 100644
--- a/ffmpeg.c
+++ b/ffmpeg.c
@@ -1280,7 +1280,8 @@ static int output_packet(AVInputStream *ist, int ist_index,
handle_eof:
ist->pts= ist->next_pts;
- if(avpkt.size && avpkt.size != pkt->size && verbose>0)
+ if(avpkt.size && avpkt.size != pkt->size &&
+ !(ist->st->codec->codec->capabilities & CODEC_CAP_SUBFRAMES) && verbose>0)
fprintf(stderr, "Multiple frames in a packet from stream %d\n", pkt->stream_index);
/* decode the packet if needed */
diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
index fe1e060007..3909b66d7a 100644
--- a/libavcodec/avcodec.h
+++ b/libavcodec/avcodec.h
@@ -605,6 +605,10 @@ typedef struct RcOverride{
* Codec can export data for HW decoding (VDPAU).
*/
#define CODEC_CAP_HWACCEL_VDPAU 0x0080
+/**
+ * Codec can output multiple frames per AVPacket
+ */
+#define CODEC_CAP_SUBFRAMES 0x0100
//The following defines may change, don't expect compatibility if you use them.
#define MB_TYPE_INTRA4x4 0x0001
diff --git a/libavcodec/wavpack.c b/libavcodec/wavpack.c
index 10254f08de..95f1d7123b 100644
--- a/libavcodec/wavpack.c
+++ b/libavcodec/wavpack.c
@@ -964,5 +964,6 @@ AVCodec wavpack_decoder = {
NULL,
NULL,
wavpack_decode_frame,
+ .capabilities = CODEC_CAP_SUBFRAMES,
.long_name = NULL_IF_CONFIG_SMALL("WavPack"),
};
diff --git a/libavcodec/wmaprodec.c b/libavcodec/wmaprodec.c
index 2a45312ec0..7e7d233b79 100644
--- a/libavcodec/wmaprodec.c
+++ b/libavcodec/wmaprodec.c
@@ -1557,6 +1557,7 @@ AVCodec wmapro_decoder = {
NULL,
decode_end,
decode_packet,
+ .capabilities = CODEC_CAP_SUBFRAMES,
.flush= flush,
.long_name = NULL_IF_CONFIG_SMALL("Windows Media Audio 9 Professional"),
};