[FFmpeg-cvslog] mjpegdec: export qp table

Michael Niedermayer git at videolan.org
Fri Mar 15 03:05:37 CET 2013


ffmpeg | branch: master | Michael Niedermayer <michaelni at gmx.at> | Thu Mar 14 02:13:39 2013 +0100| [ff9adf57250f5615ff2da0e4c6dcd5418f99c439] | committer: Michael Niedermayer

mjpegdec: export qp table

Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=ff9adf57250f5615ff2da0e4c6dcd5418f99c439
---

 libavcodec/mjpegdec.c |   19 +++++++++++++------
 1 file changed, 13 insertions(+), 6 deletions(-)

diff --git a/libavcodec/mjpegdec.c b/libavcodec/mjpegdec.c
index e6dfe23..78ba8e8 100644
--- a/libavcodec/mjpegdec.c
+++ b/libavcodec/mjpegdec.c
@@ -1743,12 +1743,19 @@ eoi_parser:
                 *got_frame = 1;
                 s->got_picture = 0;
 
-                if (!s->lossless &&
-                    avctx->debug & FF_DEBUG_QP) {
-                    av_log(avctx, AV_LOG_DEBUG,
-                           "QP: %d\n", FFMAX3(s->qscale[0],
-                                              s->qscale[1],
-                                              s->qscale[2]));
+                if (!s->lossless) {
+                    int qp = FFMAX3(s->qscale[0],
+                                    s->qscale[1],
+                                    s->qscale[2]);
+                    int qpw = (s->width + 15) / 16;
+                    AVBufferRef *qp_table_buf = av_buffer_alloc(qpw);
+                    if (qp_table_buf) {
+                        memset(qp_table_buf->data, qp, qpw);
+                        av_frame_set_qp_table(data, qp_table_buf, 0, FF_QSCALE_TYPE_MPEG1);
+                    }
+
+                    if(avctx->debug & FF_DEBUG_QP)
+                        av_log(avctx, AV_LOG_DEBUG, "QP: %d\n", qp);
                 }
 
                 goto the_end;



More information about the ffmpeg-cvslog mailing list