[FFmpeg-devel] [PATCH 2/3] avcodec/mjpeg: Pass full buffer to hwaccel start_frame

Philip Langdale philipl at overt.org
Mon Feb 19 01:53:32 EET 2018


---
 libavcodec/mjpegdec.c | 6 ++++--
 libavcodec/mjpegdec.h | 5 +++--
 2 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/libavcodec/mjpegdec.c b/libavcodec/mjpegdec.c
index 9a7a329b19..b41d2ce467 100644
--- a/libavcodec/mjpegdec.c
+++ b/libavcodec/mjpegdec.c
@@ -715,8 +715,8 @@ unk_pixfmt:
         if (!s->hwaccel_picture_private)
             return AVERROR(ENOMEM);
 
-        ret = s->avctx->hwaccel->start_frame(s->avctx, s->raw_buffer,
-                                             s->raw_buffer_size);
+        ret = s->avctx->hwaccel->start_frame(s->avctx, s->raw_packet->data,
+                                             s->raw_packet->size);
         if (ret < 0)
             return ret;
     }
@@ -2242,6 +2242,8 @@ int ff_mjpeg_decode_frame(AVCodecContext *avctx, void *data, int *got_frame,
     int ret = 0;
     int is16bit;
 
+    s->raw_packet = avpkt;
+
     av_dict_free(&s->exif_metadata);
     av_freep(&s->stereo3d);
     s->adobe_transform = -1;
diff --git a/libavcodec/mjpegdec.h b/libavcodec/mjpegdec.h
index 11dfdbf62b..b47f54a5b9 100644
--- a/libavcodec/mjpegdec.h
+++ b/libavcodec/mjpegdec.h
@@ -139,8 +139,9 @@ typedef struct MJpegDecodeContext {
     int iccread;
 
     // Raw stream data for hwaccel use.
-    const uint8_t *raw_buffer;
-    size_t         raw_buffer_size;
+    const AVPacket *raw_packet;
+    const uint8_t  *raw_buffer;
+    size_t          raw_buffer_size;
 
     uint8_t raw_huffman_lengths[2][4][16];
     uint8_t raw_huffman_values[2][4][256];
-- 
2.14.1



More information about the ffmpeg-devel mailing list