]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/nuv.c
tablegen: the executable depends on tablegen headers as well
[ffmpeg] / libavcodec / nuv.c
index 08f4b79b95d2e0793c85dd601ce9004961002f32..791f45091378630566ec42f922c6481ac692025c 100644 (file)
@@ -128,7 +128,9 @@ static int codec_reinit(AVCodecContext *avctx, int width, int height, int qualit
 }
 
 static int decode_frame(AVCodecContext *avctx, void *data, int *data_size,
-                        const uint8_t *buf, int buf_size) {
+                        AVPacket *avpkt) {
+    const uint8_t *buf = avpkt->data;
+    int buf_size = avpkt->size;
     NuvContext *c = avctx->priv_data;
     AVFrame *picture = data;
     int orig_size = buf_size;
@@ -197,10 +199,10 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *data_size,
 
     if (keyframe && c->pic.data[0])
         avctx->release_buffer(avctx, &c->pic);
-    c->pic.reference = 1;
+    c->pic.reference = 3;
     c->pic.buffer_hints = FF_BUFFER_HINTS_VALID | FF_BUFFER_HINTS_READABLE |
                           FF_BUFFER_HINTS_PRESERVE | FF_BUFFER_HINTS_REUSABLE;
-    result = keyframe ? avctx->get_buffer(avctx, &c->pic) : avctx->reget_buffer(avctx, &c->pic);
+    result = avctx->reget_buffer(avctx, &c->pic);
     if (result < 0) {
         av_log(avctx, AV_LOG_ERROR, "get_buffer() failed\n");
         return -1;
@@ -272,7 +274,7 @@ static av_cold int decode_end(AVCodecContext *avctx) {
 
 AVCodec nuv_decoder = {
     "nuv",
-    CODEC_TYPE_VIDEO,
+    AVMEDIA_TYPE_VIDEO,
     CODEC_ID_NUV,
     sizeof(NuvContext),
     decode_init,
@@ -280,6 +282,6 @@ AVCodec nuv_decoder = {
     decode_end,
     decode_frame,
     CODEC_CAP_DR1,
-    .long_name = NULL_IF_CONFIG_SMALL("NuppelVideo"),
+    .long_name = NULL_IF_CONFIG_SMALL("NuppelVideo/RTJPEG"),
 };