On Mon, 17 Aug 2015 17:07:59 -0400 "Ronald S. Bultje" <rsbul...@gmail.com> wrote:
> --- > libavcodec/error_resilience.c | 2 ++ > libavcodec/h263dec.c | 2 ++ > libavcodec/h264.c | 4 ++++ > libavcodec/h264_picture.c | 4 ++++ > libavcodec/h264_slice.c | 16 ++++++++++++---- > libavcodec/mpeg12dec.c | 20 +++++++++++++++++--- > libavcodec/mpegpicture.c | 6 +++++- > libavcodec/mpegvideo.c | 11 +++++++++-- > libavcodec/utils.c | 2 ++ > libavcodec/vc1dec.c | 28 +++++++++++++++++++++------- > 10 files changed, 78 insertions(+), 17 deletions(-) > > diff --git a/libavcodec/error_resilience.c b/libavcodec/error_resilience.c > index b3b46d1..2c741a4 100644 > --- a/libavcodec/error_resilience.c > +++ b/libavcodec/error_resilience.c > @@ -777,7 +777,9 @@ void ff_er_frame_start(ERContext *s) > static int er_supported(ERContext *s) > { > if(s->avctx->hwaccel && s->avctx->hwaccel->decode_slice || > +#if FF_API_CAP_VDPAU > s->avctx->codec->capabilities&AV_CODEC_CAP_HWACCEL_VDPAU || > +#endif > !s->cur_pic.f || > s->cur_pic.field_picture > ) > diff --git a/libavcodec/h263dec.c b/libavcodec/h263dec.c > index 7fa7090..8f28a94 100644 > --- a/libavcodec/h263dec.c > +++ b/libavcodec/h263dec.c > @@ -603,10 +603,12 @@ retry: > if (!s->divx_packed && !avctx->hwaccel) > ff_thread_finish_setup(avctx); > > +#if FF_API_CAP_VDPAU > if (CONFIG_MPEG4_VDPAU_DECODER && (s->avctx->codec->capabilities & > AV_CODEC_CAP_HWACCEL_VDPAU)) { > ff_vdpau_mpeg4_decode_picture(avctx->priv_data, s->gb.buffer, > s->gb.buffer_end - s->gb.buffer); > goto frame_end; > } > +#endif > > if (avctx->hwaccel) { > ret = avctx->hwaccel->start_frame(avctx, s->gb.buffer, > diff --git a/libavcodec/h264.c b/libavcodec/h264.c > index 8b575be..24e209c 100644 > --- a/libavcodec/h264.c > +++ b/libavcodec/h264.c > @@ -1561,9 +1561,11 @@ again: > if (h->avctx->hwaccel && > (ret = h->avctx->hwaccel->start_frame(h->avctx, buf, > buf_size)) < 0) > goto end; > +#if FF_API_CAP_VDPAU > if (CONFIG_H264_VDPAU_DECODER && > h->avctx->codec->capabilities & > AV_CODEC_CAP_HWACCEL_VDPAU) > ff_vdpau_h264_picture_start(h); > +#endif > } > > if (sl->redundant_pic_count == 0) { > @@ -1573,6 +1575,7 @@ again: > consumed); > if (ret < 0) > goto end; > +#if FF_API_CAP_VDPAU > } else if (CONFIG_H264_VDPAU_DECODER && > h->avctx->codec->capabilities & > AV_CODEC_CAP_HWACCEL_VDPAU) { > ff_vdpau_add_data_chunk(h->cur_pic_ptr->f->data[0], > @@ -1581,6 +1584,7 @@ again: > ff_vdpau_add_data_chunk(h->cur_pic_ptr->f->data[0], > &buf[buf_index - consumed], > consumed); > +#endif > } else > context_count++; > } > diff --git a/libavcodec/h264_picture.c b/libavcodec/h264_picture.c > index 81d90d7..289c4be 100644 > --- a/libavcodec/h264_picture.c > +++ b/libavcodec/h264_picture.c > @@ -157,9 +157,11 @@ int ff_h264_field_end(H264Context *h, H264SliceContext > *sl, int in_setup) > int err = 0; > h->mb_y = 0; > > +#if FF_API_CAP_VDPAU > if (CONFIG_H264_VDPAU_DECODER && > h->avctx->codec->capabilities & AV_CODEC_CAP_HWACCEL_VDPAU) > ff_vdpau_h264_set_reference_frames(h); > +#endif > > if (in_setup || !(avctx->active_thread_type & FF_THREAD_FRAME)) { > if (!h->droppable) { > @@ -177,9 +179,11 @@ int ff_h264_field_end(H264Context *h, H264SliceContext > *sl, int in_setup) > "hardware accelerator failed to decode picture\n"); > } > > +#if FF_API_CAP_VDPAU > if (CONFIG_H264_VDPAU_DECODER && > h->avctx->codec->capabilities & AV_CODEC_CAP_HWACCEL_VDPAU) > ff_vdpau_h264_picture_complete(h); > +#endif > > #if CONFIG_ERROR_RESILIENCE > av_assert0(sl == h->slice_ctx); > diff --git a/libavcodec/h264_slice.c b/libavcodec/h264_slice.c > index b088392..25034f7 100644 > --- a/libavcodec/h264_slice.c > +++ b/libavcodec/h264_slice.c > @@ -612,8 +612,11 @@ static int h264_frame_start(H264Context *h) > > if ((ret = alloc_picture(h, pic)) < 0) > return ret; > - if(!h->frame_recovered && !h->avctx->hwaccel && > - !(h->avctx->codec->capabilities & AV_CODEC_CAP_HWACCEL_VDPAU)) > + if(!h->frame_recovered && !h->avctx->hwaccel > +#if FF_API_CAP_VDPAU > + && !(h->avctx->codec->capabilities & AV_CODEC_CAP_HWACCEL_VDPAU) > +#endif > + ) > avpriv_color_frame(pic->f, c); > > h->cur_pic_ptr = pic; > @@ -1048,6 +1051,7 @@ static int h264_slice_header_init(H264Context *h) > goto fail; > } > > +#if FF_API_CAP_VDPAU > if (h->avctx->codec && > h->avctx->codec->capabilities & AV_CODEC_CAP_HWACCEL_VDPAU && > (h->sps.bit_depth_luma != 8 || h->sps.chroma_format_idc > 1)) { > @@ -1056,6 +1060,7 @@ static int h264_slice_header_init(H264Context *h) > ret = AVERROR_INVALIDDATA; > goto fail; > } > +#endif > > if (h->sps.bit_depth_luma < 8 || h->sps.bit_depth_luma > 14 || > h->sps.bit_depth_luma == 11 || h->sps.bit_depth_luma == 13 > @@ -2529,8 +2534,11 @@ int ff_h264_execute_decode_slices(H264Context *h, > unsigned context_count) > > h->slice_ctx[0].next_slice_idx = INT_MAX; > > - if (h->avctx->hwaccel || > - h->avctx->codec->capabilities & AV_CODEC_CAP_HWACCEL_VDPAU) > + if (h->avctx->hwaccel > +#if FF_API_CAP_VDPAU > + || h->avctx->codec->capabilities & AV_CODEC_CAP_HWACCEL_VDPAU > +#endif > + ) > return 0; > if (context_count == 1) { > int ret; > diff --git a/libavcodec/mpeg12dec.c b/libavcodec/mpeg12dec.c > index 1250d53..983c4c0 100644 > --- a/libavcodec/mpeg12dec.c > +++ b/libavcodec/mpeg12dec.c > @@ -1186,8 +1186,10 @@ static const enum AVPixelFormat > mpeg1_hwaccel_pixfmt_list_420[] = { > #if CONFIG_MPEG1_XVMC_HWACCEL > AV_PIX_FMT_XVMC, > #endif > -#if CONFIG_MPEG1_VDPAU_HWACCEL > +#if CONFIG_MPEG1_VDPAU_DECODER > AV_PIX_FMT_VDPAU_MPEG1, > +#endif > +#if CONFIG_MPEG1_VDPAU_HWACCEL > AV_PIX_FMT_VDPAU, > #endif > AV_PIX_FMT_YUV420P, > @@ -1198,8 +1200,10 @@ static const enum AVPixelFormat > mpeg2_hwaccel_pixfmt_list_420[] = { > #if CONFIG_MPEG2_XVMC_HWACCEL > AV_PIX_FMT_XVMC, > #endif > -#if CONFIG_MPEG2_VDPAU_HWACCEL > +#if CONFIG_MPEG_VDPAU_DECODER > AV_PIX_FMT_VDPAU_MPEG2, > +#endif > +#if CONFIG_MPEG2_VDPAU_HWACCEL > AV_PIX_FMT_VDPAU, > #endif > #if CONFIG_MPEG2_DXVA2_HWACCEL > @@ -1228,9 +1232,11 @@ static const enum AVPixelFormat > mpeg12_pixfmt_list_444[] = { > AV_PIX_FMT_NONE > }; > > +#if FF_API_VDPAU > static inline int uses_vdpau(AVCodecContext *avctx) { > return avctx->pix_fmt == AV_PIX_FMT_VDPAU_MPEG1 || avctx->pix_fmt == > AV_PIX_FMT_VDPAU_MPEG2; > } > +#endif > > static enum AVPixelFormat mpeg_get_pixelformat(AVCodecContext *avctx) > { > @@ -1256,7 +1262,11 @@ static enum AVPixelFormat > mpeg_get_pixelformat(AVCodecContext *avctx) > static void setup_hwaccel_for_pixfmt(AVCodecContext *avctx) > { > // until then pix_fmt may be changed right after codec init > - if (avctx->hwaccel || uses_vdpau(avctx)) > + if (avctx->hwaccel > +#if FF_API_VDPAU > + || uses_vdpau(avctx) > +#endif > + ) > if (avctx->idct_algo == FF_IDCT_AUTO) > avctx->idct_algo = FF_IDCT_SIMPLE; > > @@ -2448,9 +2458,11 @@ static int decode_chunks(AVCodecContext *avctx, > AVFrame *picture, > s2->er.error_count += > s2->thread_context[i]->er.error_count; > } > > +#if FF_API_VDPAU > if ((CONFIG_MPEG_VDPAU_DECODER || CONFIG_MPEG1_VDPAU_DECODER) > && uses_vdpau(avctx)) > ff_vdpau_mpeg_picture_complete(s2, buf, buf_size, > s->slice_count); > +#endif > > ret = slice_end(avctx, picture); > if (ret < 0) > @@ -2699,10 +2711,12 @@ static int decode_chunks(AVCodecContext *avctx, > AVFrame *picture, > return AVERROR_INVALIDDATA; > } > > +#if FF_API_VDPAU > if (uses_vdpau(avctx)) { > s->slice_count++; > break; > } > +#endif > > if (HAVE_THREADS && > (avctx->active_thread_type & FF_THREAD_SLICE) && > diff --git a/libavcodec/mpegpicture.c b/libavcodec/mpegpicture.c > index 49cd6f0..bb822b6 100644 > --- a/libavcodec/mpegpicture.c > +++ b/libavcodec/mpegpicture.c > @@ -58,7 +58,11 @@ int ff_mpeg_framesize_alloc(AVCodecContext *avctx, > MotionEstContext *me, > { > int alloc_size = FFALIGN(FFABS(linesize) + 64, 32); > > - if (avctx->hwaccel || avctx->codec->capabilities & > AV_CODEC_CAP_HWACCEL_VDPAU) > + if (avctx->hwaccel > +#if FF_API_CAP_VDPAU > + || avctx->codec->capabilities & AV_CODEC_CAP_HWACCEL_VDPAU > +#endif > + ) > return 0; > > if (linesize < 24) { > diff --git a/libavcodec/mpegvideo.c b/libavcodec/mpegvideo.c > index 991c0fd..f28f7e8 100644 > --- a/libavcodec/mpegvideo.c > +++ b/libavcodec/mpegvideo.c > @@ -1307,7 +1307,11 @@ int ff_mpv_frame_start(MpegEncContext *s, > AVCodecContext *avctx) > return -1; > } > > - if (!avctx->hwaccel && > !(avctx->codec->capabilities&AV_CODEC_CAP_HWACCEL_VDPAU)) { > + if (!avctx->hwaccel > +#if FF_API_CAP_VDPAU > + && !(avctx->codec->capabilities&AV_CODEC_CAP_HWACCEL_VDPAU) > +#endif > + ) { > for(i=0; i<avctx->height; i++) > memset(s->last_picture_ptr->f->data[0] + > s->last_picture_ptr->f->linesize[0]*i, > 0x80, avctx->width); > @@ -1652,7 +1656,10 @@ void ff_print_debug_info2(AVCodecContext *avctx, > AVFrame *pict, uint8_t *mbskip_ > > /* TODO: export all the following to make them accessible for users (and > filters) */ > if (avctx->hwaccel || !mbtype_table > - || (avctx->codec->capabilities&AV_CODEC_CAP_HWACCEL_VDPAU)) > +#if FF_API_CAP_VDPAU > + || (avctx->codec->capabilities&AV_CODEC_CAP_HWACCEL_VDPAU) > +#endif > + ) > return; > > > diff --git a/libavcodec/utils.c b/libavcodec/utils.c > index 5dbd0cf..a2863be 100644 > --- a/libavcodec/utils.c > +++ b/libavcodec/utils.c > @@ -1243,8 +1243,10 @@ int ff_get_format(AVCodecContext *avctx, const enum > AVPixelFormat *fmt) > > if (!(desc->flags & AV_PIX_FMT_FLAG_HWACCEL)) > break; > +#if FF_API_CAP_VDPAU > if (avctx->codec->capabilities&AV_CODEC_CAP_HWACCEL_VDPAU) > break; > +#endif > > if (!setup_hwaccel(avctx, ret, desc->name)) > break; > diff --git a/libavcodec/vc1dec.c b/libavcodec/vc1dec.c > index 653ce9e..e85daef 100644 > --- a/libavcodec/vc1dec.c > +++ b/libavcodec/vc1dec.c > @@ -647,12 +647,14 @@ static int vc1_decode_frame(AVCodecContext *avctx, void > *data, > return buf_size; > } > > +#if FF_API_CAP_VDPAU > if (s->avctx->codec->capabilities&AV_CODEC_CAP_HWACCEL_VDPAU) { > if (v->profile < PROFILE_ADVANCED) > avctx->pix_fmt = AV_PIX_FMT_VDPAU_WMV3; > else > avctx->pix_fmt = AV_PIX_FMT_VDPAU_VC1; > } > +#endif > > //for advanced profile we may need to parse and unescape data > if (avctx->codec_id == AV_CODEC_ID_VC1 || avctx->codec_id == > AV_CODEC_ID_VC1IMAGE) { > @@ -672,15 +674,21 @@ static int vc1_decode_frame(AVCodecContext *avctx, void > *data, > if (size <= 0) continue; > switch (AV_RB32(start)) { > case VC1_CODE_FRAME: > - if (avctx->hwaccel || > - > s->avctx->codec->capabilities&AV_CODEC_CAP_HWACCEL_VDPAU) > + if (avctx->hwaccel > +#if FF_API_CAP_VDPAU > + || > s->avctx->codec->capabilities&AV_CODEC_CAP_HWACCEL_VDPAU > +#endif > + ) > buf_start = start; > buf_size2 = vc1_unescape_buffer(start + 4, size, buf2); > break; > case VC1_CODE_FIELD: { > int buf_size3; > - if (avctx->hwaccel || > - > s->avctx->codec->capabilities&AV_CODEC_CAP_HWACCEL_VDPAU) > + if (avctx->hwaccel > +#if FF_API_CAP_VDPAU > + || > s->avctx->codec->capabilities&AV_CODEC_CAP_HWACCEL_VDPAU > +#endif > + ) > buf_start_second_field = start; > tmp = av_realloc_array(slices, sizeof(*slices), > (n_slices+1)); > if (!tmp) > @@ -733,8 +741,11 @@ static int vc1_decode_frame(AVCodecContext *avctx, void > *data, > av_log(avctx, AV_LOG_ERROR, "Error in WVC1 interlaced > frame\n"); > goto err; > } else { // found field marker, unescape second field > - if (avctx->hwaccel || > - s->avctx->codec->capabilities&AV_CODEC_CAP_HWACCEL_VDPAU) > + if (avctx->hwaccel > +#if FF_API_CAP_VDPAU > + || > s->avctx->codec->capabilities&AV_CODEC_CAP_HWACCEL_VDPAU > +#endif > + ) > buf_start_second_field = divider; > tmp = av_realloc_array(slices, sizeof(*slices), > (n_slices+1)); > if (!tmp) > @@ -873,6 +884,7 @@ static int vc1_decode_frame(AVCodecContext *avctx, void > *data, > s->me.qpel_put = s->qdsp.put_qpel_pixels_tab; > s->me.qpel_avg = s->qdsp.avg_qpel_pixels_tab; > > +#if FF_API_CAP_VDPAU > if ((CONFIG_VC1_VDPAU_DECODER) > &&s->avctx->codec->capabilities&AV_CODEC_CAP_HWACCEL_VDPAU) { > if (v->field_mode && buf_start_second_field) { > @@ -881,7 +893,9 @@ static int vc1_decode_frame(AVCodecContext *avctx, void > *data, > } else { > ff_vdpau_vc1_decode_picture(s, buf_start, (buf + buf_size) - > buf_start); > } > - } else if (avctx->hwaccel) { > + } else > +#endif > + if (avctx->hwaccel) { > if (v->field_mode && buf_start_second_field) { > // decode first field > s->picture_structure = PICT_BOTTOM_FIELD - v->tff; LGTM _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel