[FFmpeg-cvslog] r19317 - trunk/libavcodec/mpeg12.c
bcoudurier
subversion
Wed Jul 1 19:29:52 CEST 2009
Author: bcoudurier
Date: Wed Jul 1 19:29:52 2009
New Revision: 19317
Log:
simplify slice_end, return size of output frame
Modified:
trunk/libavcodec/mpeg12.c
Modified: trunk/libavcodec/mpeg12.c
==============================================================================
--- trunk/libavcodec/mpeg12.c Wed Jul 1 17:08:02 2009 (r19316)
+++ trunk/libavcodec/mpeg12.c Wed Jul 1 19:29:52 2009 (r19317)
@@ -1935,7 +1935,7 @@ static int slice_decode_thread(AVCodecCo
/**
* Handles slice ends.
- * @return 1 if it seems to be the last slice
+ * @return sizeof(AVFrame) if a frame is output, 0 otherwise
*/
static int slice_end(AVCodecContext *avctx, AVFrame *pict)
{
@@ -1966,6 +1966,7 @@ static int slice_end(AVCodecContext *avc
if (s->pict_type == FF_B_TYPE || s->low_delay) {
*pict= *(AVFrame*)s->current_picture_ptr;
ff_print_debug_info(s, pict);
+ return sizeof(*pict);
} else {
s->picture_number++;
/* latency of 1 frame for I- and P-frames */
@@ -1973,13 +1974,11 @@ static int slice_end(AVCodecContext *avc
if (s->last_picture_ptr != NULL) {
*pict= *(AVFrame*)s->last_picture_ptr;
ff_print_debug_info(s, pict);
+ return sizeof(*pict);
}
}
-
- return 1;
- } else {
- return 0;
}
+ return 0;
}
static int mpeg1_decode_sequence(AVCodecContext *avctx,
@@ -2317,10 +2316,7 @@ static int decode_chunks(AVCodecContext
if (CONFIG_MPEG_VDPAU_DECODER && avctx->codec->capabilities&CODEC_CAP_HWACCEL_VDPAU)
ff_vdpau_mpeg_picture_complete(s2, buf, buf_size, s->slice_count);
- if (slice_end(avctx, picture)) {
- if(s2->last_picture_ptr || s2->low_delay) //FIXME merge with the stuff in mpeg_decode_slice
- *data_size = sizeof(AVPicture);
- }
+ *data_size = slice_end(avctx, picture);
}
s2->pict_type= 0;
return FFMAX(0, buf_ptr - buf - s2->parse_context.last_index);
More information about the ffmpeg-cvslog
mailing list