Add CODEC_CAP_SUBFRAMES for codecs that output multiple subframes

per AVPacket
No longer print "Multiple frames in a packet" error message
when CODEC_CAP_SUBFRAMES is set (wmapro, wavpack)

Originally committed as revision 19881 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
Sascha Sommer 2009-09-16 15:08:26 +00:00
parent 9d66ef18fa
commit d859bb1db0
4 changed files with 8 additions and 1 deletions

View File

@ -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 */

View File

@ -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

View File

@ -964,5 +964,6 @@ AVCodec wavpack_decoder = {
NULL,
NULL,
wavpack_decode_frame,
.capabilities = CODEC_CAP_SUBFRAMES,
.long_name = NULL_IF_CONFIG_SMALL("WavPack"),
};

View File

@ -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"),
};