On 12/11/16 13:57, Mark Thompson wrote: > On 11/11/16 07:57, Jun Zhao wrote: >> @@ -2800,14 +2849,18 @@ static int >> vp8_decode_update_thread_context(AVCodecContext *dst, >> s->mb_width = s_src->mb_width; >> s->mb_height = s_src->mb_height; >> } >> - >> s->prob[0] = s_src->prob[!s_src->update_probabilities]; >> s->segmentation = s_src->segmentation; >> s->lf_delta = s_src->lf_delta; >> + s->pix_fmt = s_src->pix_fmt; >> + s->mbskip_enabled = s_src->mbskip_enabled; >> + s->filter = s_src->filter; >> memcpy(s->sign_bias, s_src->sign_bias, sizeof(s->sign_bias)); >> + s->num_coeff_partitions = s_src->num_coeff_partitions; >> + s->header_partition_size = s_src->header_partition_size; >> >> for (i = 0; i < FF_ARRAY_ELEMS(s_src->frames); i++) { >> - if (s_src->frames[i].tf.f->data[0]) { >> + if (s_src->frames[i].tf.f->buf[0]) { >> int ret = vp8_ref_frame(s, &s->frames[i], &s_src->frames[i]); >> if (ret < 0) >> return ret; > > This is fixing decode with frame threads? I admit I don't think I ever > tested with frame threading enabled, indeed it dies horribly in libav. > > Does fate-vp8 using the hwaccel and threads pass in ffmpeg with this? It > fails in libav, but the setup might be different because of changes you've > made.
Right, only pix_fmt and the references should be copied here (the other parts are always overwritten from the frame header). More synchronisation is required to make it actually work - see <https://lists.libav.org/pipermail/libav-devel/2016-November/080413.html>. Assuming other people agree with the approach there, it should probably be merged at the same time as 4e528206bc4d968706401206cf54471739250ec7. Thanks, - Mark _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel