Commit d859bb1d authored by Sascha Sommer's avatar Sascha Sommer

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
parent 9d66ef18
...@@ -1280,7 +1280,8 @@ static int output_packet(AVInputStream *ist, int ist_index, ...@@ -1280,7 +1280,8 @@ static int output_packet(AVInputStream *ist, int ist_index,
handle_eof: handle_eof:
ist->pts= ist->next_pts; 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); fprintf(stderr, "Multiple frames in a packet from stream %d\n", pkt->stream_index);
/* decode the packet if needed */ /* decode the packet if needed */
......
...@@ -605,6 +605,10 @@ typedef struct RcOverride{ ...@@ -605,6 +605,10 @@ typedef struct RcOverride{
* Codec can export data for HW decoding (VDPAU). * Codec can export data for HW decoding (VDPAU).
*/ */
#define CODEC_CAP_HWACCEL_VDPAU 0x0080 #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. //The following defines may change, don't expect compatibility if you use them.
#define MB_TYPE_INTRA4x4 0x0001 #define MB_TYPE_INTRA4x4 0x0001
......
...@@ -964,5 +964,6 @@ AVCodec wavpack_decoder = { ...@@ -964,5 +964,6 @@ AVCodec wavpack_decoder = {
NULL, NULL,
NULL, NULL,
wavpack_decode_frame, wavpack_decode_frame,
.capabilities = CODEC_CAP_SUBFRAMES,
.long_name = NULL_IF_CONFIG_SMALL("WavPack"), .long_name = NULL_IF_CONFIG_SMALL("WavPack"),
}; };
...@@ -1557,6 +1557,7 @@ AVCodec wmapro_decoder = { ...@@ -1557,6 +1557,7 @@ AVCodec wmapro_decoder = {
NULL, NULL,
decode_end, decode_end,
decode_packet, decode_packet,
.capabilities = CODEC_CAP_SUBFRAMES,
.flush= flush, .flush= flush,
.long_name = NULL_IF_CONFIG_SMALL("Windows Media Audio 9 Professional"), .long_name = NULL_IF_CONFIG_SMALL("Windows Media Audio 9 Professional"),
}; };
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment