- return tags->fourcc;
- tags++;
- }
- return 0;
-}
-
-/* RAW Decoder Implementation */
-
-static int raw_init_decoder(AVCodecContext *avctx)
-{
- RawVideoContext *context = avctx->priv_data;
-
- if (avctx->codec_tag)
- avctx->pix_fmt = findPixelFormat(avctx->codec_tag);
- else if (avctx->bits_per_sample){
- switch(avctx->bits_per_sample){
- case 15: avctx->pix_fmt= PIX_FMT_RGB555; break;
- case 16: avctx->pix_fmt= PIX_FMT_RGB565; break;
- case 24: avctx->pix_fmt= PIX_FMT_BGR24 ; break;
- case 32: avctx->pix_fmt= PIX_FMT_RGBA32; break;
- }
- }
-
- context->length = avpicture_get_size(avctx->pix_fmt, avctx->width, avctx->height);
- context->buffer = av_malloc(context->length);
- context->p = context->buffer;
- context->pic.pict_type = FF_I_TYPE;
- context->pic.key_frame = 1;
-
- avctx->coded_frame= &context->pic;
-
- if (!context->buffer)
- return -1;
-
- return 0;
-}
-
-static int raw_decode(AVCodecContext *avctx,
- void *data, int *data_size,
- uint8_t *buf, int buf_size)
-{
- RawVideoContext *context = avctx->priv_data;
- int bytesNeeded;
-
- AVPicture * picture = (AVPicture *) data;
-
- /* Early out without copy if packet size == frame size */
- if (buf_size == context->length && context->p == context->buffer) {
- avpicture_fill(picture, buf, avctx->pix_fmt, avctx->width, avctx->height);
- *data_size = sizeof(AVPicture);
- return buf_size;
- }
-
- bytesNeeded = context->length - (context->p - context->buffer);
- if (buf_size < bytesNeeded) {
- memcpy(context->p, buf, buf_size);
- context->p += buf_size;
- return buf_size;