summaryrefslogtreecommitdiff
path: root/libavcodec/svq1enc.c
diff options
context:
space:
mode:
authorVittorio Giovara <vittorio.giovara@gmail.com>2015-07-15 18:41:21 +0100
committerVittorio Giovara <vittorio.giovara@gmail.com>2015-07-20 15:06:47 +0100
commit5d3addb937946eca5391e40b5e6308e74ac6f77b (patch)
treee758d6b07dd07480a3b32901ccedc421d45b33c0 /libavcodec/svq1enc.c
parentd6604b29ef544793479d7fb4e05ef6622bb3e534 (diff)
Add a quality factor packet side data
This is necessary to preserve the quality information currently exported with coded_frame. Add the new side data to every encoder that needs it, and use it in avconv. Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Diffstat (limited to 'libavcodec/svq1enc.c')
-rw-r--r--libavcodec/svq1enc.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/libavcodec/svq1enc.c b/libavcodec/svq1enc.c
index 82e2f74bc4..ebbc54e589 100644
--- a/libavcodec/svq1enc.c
+++ b/libavcodec/svq1enc.c
@@ -569,6 +569,7 @@ static int svq1_encode_frame(AVCodecContext *avctx, AVPacket *pkt,
{
SVQ1EncContext *const s = avctx->priv_data;
int i, ret;
+ uint8_t *sd;
if (!pkt->data &&
(ret = av_new_packet(pkt, s->y_block_width * s->y_block_height *
@@ -611,6 +612,11 @@ static int svq1_encode_frame(AVCodecContext *avctx, AVPacket *pkt,
avctx->coded_frame->pict_type = s->pict_type;
avctx->coded_frame->key_frame = s->pict_type == AV_PICTURE_TYPE_I;
+ sd = av_packet_new_side_data(pkt, AV_PKT_DATA_QUALITY_FACTOR, sizeof(int));
+ if (!sd)
+ return AVERROR(ENOMEM);
+ *(int *)sd = pict->quality;
+
svq1_write_header(s, s->pict_type);
for (i = 0; i < 3; i++)
if (svq1_encode_plane(s, i,