summaryrefslogtreecommitdiff
path: root/libavfilter/avcodec.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2012-09-05 04:41:22 +0200
committerMichael Niedermayer <michaelni@gmx.at>2012-09-07 03:17:28 +0200
commitc9a0f9bf3ce263f1c0941070225e9a5f97b773bc (patch)
tree12d9184733596793fbe794878418d56171a4375a /libavfilter/avcodec.c
parentde9f5b6853a7c860391df7636dc2bce90afd9a7d (diff)
libavfilter: pass QP table through the filter chain
Any volunteers to port the pp and spp filters from libmpcodec? Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavfilter/avcodec.c')
-rw-r--r--libavfilter/avcodec.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/libavfilter/avcodec.c b/libavfilter/avcodec.c
index f452303bb4..95e30b3d16 100644
--- a/libavfilter/avcodec.c
+++ b/libavfilter/avcodec.c
@@ -42,6 +42,16 @@ int avfilter_copy_frame_props(AVFilterBufferRef *dst, const AVFrame *src)
dst->video->top_field_first = src->top_field_first;
dst->video->key_frame = src->key_frame;
dst->video->pict_type = src->pict_type;
+ av_freep(&dst->video->qp_table);
+ dst->video->qp_table_linesize = 0;
+ if (src->qscale_table) {
+ int qsize = src->qstride ? src->qstride * ((src->height+15)/16) : (src->width+15)/16;
+ dst->video->qp_table = av_malloc(qsize);
+ if(!dst->video->qp_table)
+ return AVERROR(ENOMEM);
+ dst->video->qp_table_linesize = src->qstride;
+ memcpy(dst->video->qp_table, src->qscale_table, qsize);
+ }
break;
case AVMEDIA_TYPE_AUDIO:
dst->audio->sample_rate = src->sample_rate;