avcodec/codec_internal: Make FFCodec.decode use AVFrame*

This increases type-safety by avoiding conversions from/through void*.
It also avoids the boilerplate "AVFrame *frame = data;" line
for non-subtitle decoders.

Signed-off-by: Andreas Rheinhardt <[email protected]>
diff --git a/libavcodec/8bps.c b/libavcodec/8bps.c
index 3e8cd25..d514604 100644
--- a/libavcodec/8bps.c
+++ b/libavcodec/8bps.c
@@ -54,10 +54,9 @@
     uint32_t pal[256];
 } EightBpsContext;
 
-static int decode_frame(AVCodecContext *avctx, void *data,
+static int decode_frame(AVCodecContext *avctx, AVFrame *frame,
                         int *got_frame, AVPacket *avpkt)
 {
-    AVFrame *frame = data;
     const uint8_t *buf = avpkt->data;
     int buf_size       = avpkt->size;
     EightBpsContext * const c = avctx->priv_data;