vd_ffmpeg.c: fix one case of "-lavdopts vstats" crashing

Fix segfault with -lavdopts vstats and some codecs.
The vstats option relies on avctx->coded_frame being filled.
Unfortunately not all codecs do that (e.g. VP8) thus causing
NULL dereference.
FFmpeg code seems to always check if coded_frame != NULL,
so we should do the same.

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@33347 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
iive 2011-05-01 20:21:00 +00:00 committed by Uoti Urpala
parent 6283d4d6bb
commit 49b31c2b43
1 changed files with 4 additions and 1 deletions

View File

@ -389,7 +389,7 @@ static void uninit(sh_video_t *sh){
vd_ffmpeg_ctx *ctx = sh->context;
AVCodecContext *avctx = ctx->avctx;
if(sh->opts->lavc_param.vstats){
if (sh->opts->lavc_param.vstats && avctx->coded_frame) {
int i;
for(i=1; i<32; i++){
mp_msg(MSGT_DECVIDEO, MSGL_INFO, "QP: %d, count: %d\n", i, ctx->qp_stat[i]);
@ -784,6 +784,9 @@ static struct mp_image *decode(struct sh_video *sh, void *data, int len,
AVFrame *pic= avctx->coded_frame;
double quality=0.0;
if (!pic)
break;
if(!fvstats) {
time_t today2;
struct tm *today;