diff --git a/output_example.c b/output_example.c index 8f3dcd6928537c10f59e8a3a83d31ee5010b6a03..2fba8fc6a87cad57054ed4d015c348f5b5a1a830 100644 --- a/output_example.c +++ b/output_example.c @@ -197,11 +197,16 @@ AVStream *add_video_stream(AVFormatContext *oc, int codec_id) c->frame_rate = STREAM_FRAME_RATE; c->frame_rate_base = 1; c->gop_size = 12; /* emit one intra frame every twelve frames at most */ - if (c->codec_id == CODEC_ID_MPEG1VIDEO || - c->codec_id == CODEC_ID_MPEG2VIDEO) { + if (c->codec_id == CODEC_ID_MPEG2VIDEO) { /* just for testing, we also add B frames */ c->max_b_frames = 2; } + if (c->codec_id == CODEC_ID_MPEG1VIDEO){ + /* needed to avoid using macroblocks in which some coeffs overflow + this doesnt happen with normal video, it just happens here as the + motion of the chroma plane doesnt match the luma plane */ + c->mb_decision=2; + } // some formats want stream headers to be seperate if(!strcmp(oc->oformat->name, "mp4") || !strcmp(oc->oformat->name, "mov") || !strcmp(oc->oformat->name, "3gp")) c->flags |= CODEC_FLAG_GLOBAL_HEADER;