|
|
|
@@ -108,6 +108,8 @@ static int pp_filter_frame(AVFilterLink *inlink, AVFrame *inbuf) |
|
|
|
const int aligned_w = FFALIGN(outlink->w, 8); |
|
|
|
const int aligned_h = FFALIGN(outlink->h, 8); |
|
|
|
AVFrame *outbuf; |
|
|
|
int qstride, qp_type; |
|
|
|
int8_t *qp_table ; |
|
|
|
|
|
|
|
outbuf = ff_get_video_buffer(outlink, aligned_w, aligned_h); |
|
|
|
if (!outbuf) { |
|
|
|
@@ -115,15 +117,16 @@ static int pp_filter_frame(AVFilterLink *inlink, AVFrame *inbuf) |
|
|
|
return AVERROR(ENOMEM); |
|
|
|
} |
|
|
|
av_frame_copy_props(outbuf, inbuf); |
|
|
|
qp_table = av_frame_get_qp_table(inbuf, &qstride, &qp_type); |
|
|
|
|
|
|
|
pp_postprocess((const uint8_t **)inbuf->data, inbuf->linesize, |
|
|
|
outbuf->data, outbuf->linesize, |
|
|
|
aligned_w, outlink->h, |
|
|
|
outbuf->qscale_table, |
|
|
|
outbuf->qstride, |
|
|
|
qp_table, |
|
|
|
qstride, |
|
|
|
pp->modes[pp->mode_id], |
|
|
|
pp->pp_ctx, |
|
|
|
outbuf->pict_type); |
|
|
|
outbuf->pict_type | (qp_type ? PP_PICT_TYPE_QP2 : 0)); |
|
|
|
|
|
|
|
av_frame_free(&inbuf); |
|
|
|
return ff_filter_frame(outlink, outbuf); |
|
|
|
|