]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/rawdec.c
g726dec: set channel layout at initialization instead of validating it
[ffmpeg] / libavcodec / rawdec.c
index e8a6a3bcb431c9388dffd5ca63739eac0f2877e1..449755f9b22abbb0cc52d69a56d167f14646654d 100644 (file)
@@ -25,8 +25,8 @@
  */
 
 #include "avcodec.h"
-#include "imgconvert.h"
 #include "raw.h"
+#include "libavutil/common.h"
 #include "libavutil/intreadwrite.h"
 #include "libavutil/imgutils.h"
 
@@ -39,38 +39,38 @@ typedef struct RawVideoContext {
 } RawVideoContext;
 
 static const PixelFormatTag pix_fmt_bps_avi[] = {
-    { PIX_FMT_PAL8,    4 },
-    { PIX_FMT_PAL8,    8 },
-    { PIX_FMT_RGB444, 12 },
-    { PIX_FMT_RGB555, 15 },
-    { PIX_FMT_RGB555, 16 },
-    { PIX_FMT_BGR24,  24 },
-    { PIX_FMT_RGB32,  32 },
-    { PIX_FMT_NONE, 0 },
+    { AV_PIX_FMT_PAL8,    4 },
+    { AV_PIX_FMT_PAL8,    8 },
+    { AV_PIX_FMT_RGB444, 12 },
+    { AV_PIX_FMT_RGB555, 15 },
+    { AV_PIX_FMT_RGB555, 16 },
+    { AV_PIX_FMT_BGR24,  24 },
+    { AV_PIX_FMT_RGB32,  32 },
+    { AV_PIX_FMT_NONE, 0 },
 };
 
 static const PixelFormatTag pix_fmt_bps_mov[] = {
-    { PIX_FMT_MONOWHITE, 1 },
-    { PIX_FMT_PAL8,      2 },
-    { PIX_FMT_PAL8,      4 },
-    { PIX_FMT_PAL8,      8 },
+    { AV_PIX_FMT_MONOWHITE, 1 },
+    { AV_PIX_FMT_PAL8,      2 },
+    { AV_PIX_FMT_PAL8,      4 },
+    { AV_PIX_FMT_PAL8,      8 },
     // FIXME swscale does not support 16 bit in .mov, sample 16bit.mov
     // http://developer.apple.com/documentation/QuickTime/QTFF/QTFFChap3/qtff3.html
-    { PIX_FMT_RGB555BE, 16 },
-    { PIX_FMT_RGB24,    24 },
-    { PIX_FMT_ARGB,     32 },
-    { PIX_FMT_MONOWHITE,33 },
-    { PIX_FMT_NONE, 0 },
+    { AV_PIX_FMT_RGB555BE, 16 },
+    { AV_PIX_FMT_RGB24,    24 },
+    { AV_PIX_FMT_ARGB,     32 },
+    { AV_PIX_FMT_MONOWHITE,33 },
+    { AV_PIX_FMT_NONE, 0 },
 };
 
-static enum PixelFormat find_pix_fmt(const PixelFormatTag *tags, unsigned int fourcc)
+static enum AVPixelFormat find_pix_fmt(const PixelFormatTag *tags, unsigned int fourcc)
 {
     while (tags->pix_fmt >= 0) {
         if (tags->fourcc == fourcc)
             return tags->pix_fmt;
         tags++;
     }
-    return PIX_FMT_YUV420P;
+    return AV_PIX_FMT_YUV420P;
 }
 
 static av_cold int raw_init_decoder(AVCodecContext *avctx)
@@ -83,13 +83,13 @@ static av_cold int raw_init_decoder(AVCodecContext *avctx)
         avctx->pix_fmt = find_pix_fmt(pix_fmt_bps_avi, avctx->bits_per_coded_sample);
     else if (avctx->codec_tag)
         avctx->pix_fmt = find_pix_fmt(ff_raw_pix_fmt_tags, avctx->codec_tag);
-    else if (avctx->pix_fmt == PIX_FMT_NONE && avctx->bits_per_coded_sample)
+    else if (avctx->pix_fmt == AV_PIX_FMT_NONE && avctx->bits_per_coded_sample)
         avctx->pix_fmt = find_pix_fmt(pix_fmt_bps_avi, avctx->bits_per_coded_sample);
 
-    ff_set_systematic_pal2(context->palette, avctx->pix_fmt);
+    avpriv_set_systematic_pal2(context->palette, avctx->pix_fmt);
     context->length = avpicture_get_size(avctx->pix_fmt, avctx->width, avctx->height);
     if((avctx->bits_per_coded_sample == 4 || avctx->bits_per_coded_sample == 2) &&
-       avctx->pix_fmt==PIX_FMT_PAL8 &&
+       avctx->pix_fmt==AV_PIX_FMT_PAL8 &&
        (!avctx->codec_tag || avctx->codec_tag == MKTAG('r','a','w',' '))){
         context->buffer = av_malloc(context->length);
         if (!context->buffer)
@@ -119,6 +119,7 @@ static int raw_decode(AVCodecContext *avctx,
     const uint8_t *buf = avpkt->data;
     int buf_size = avpkt->size;
     RawVideoContext *context = avctx->priv_data;
+    const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(avctx->pix_fmt);
     int res;
 
     AVFrame   *frame   = data;
@@ -130,7 +131,7 @@ static int raw_decode(AVCodecContext *avctx,
     frame->reordered_opaque = avctx->reordered_opaque;
     frame->pkt_pts          = avctx->pkt->pts;
 
-    if(buf_size < context->length - (avctx->pix_fmt==PIX_FMT_PAL8 ? 256*4 : 0))
+    if(buf_size < context->length - (avctx->pix_fmt==AV_PIX_FMT_PAL8 ? 256*4 : 0))
         return -1;
 
     //2bpp and 4bpp raw in avi and mov (yes this is ugly ...)
@@ -160,11 +161,11 @@ static int raw_decode(AVCodecContext *avctx,
     if ((res = avpicture_fill(picture, buf, avctx->pix_fmt,
                               avctx->width, avctx->height)) < 0)
         return res;
-    if((avctx->pix_fmt==PIX_FMT_PAL8 && buf_size < context->length) ||
-       (av_pix_fmt_descriptors[avctx->pix_fmt].flags & PIX_FMT_PSEUDOPAL)) {
+    if((avctx->pix_fmt==AV_PIX_FMT_PAL8 && buf_size < context->length) ||
+       (desc->flags & PIX_FMT_PSEUDOPAL)) {
         frame->data[1]= context->palette;
     }
-    if (avctx->pix_fmt == PIX_FMT_PAL8) {
+    if (avctx->pix_fmt == AV_PIX_FMT_PAL8) {
         const uint8_t *pal = av_packet_get_side_data(avpkt, AV_PKT_DATA_PALETTE, NULL);
 
         if (pal) {
@@ -172,7 +173,7 @@ static int raw_decode(AVCodecContext *avctx,
             frame->palette_has_changed = 1;
         }
     }
-    if(avctx->pix_fmt==PIX_FMT_BGR24 && ((frame->linesize[0]+3)&~3)*avctx->height <= buf_size)
+    if(avctx->pix_fmt==AV_PIX_FMT_BGR24 && ((frame->linesize[0]+3)&~3)*avctx->height <= buf_size)
         frame->linesize[0] = (frame->linesize[0]+3)&~3;
 
     if(context->flip)
@@ -185,7 +186,7 @@ static int raw_decode(AVCodecContext *avctx,
         FFSWAP(uint8_t *, picture->data[1], picture->data[2]);
 
     if(avctx->codec_tag == AV_RL32("yuv2") &&
-       avctx->pix_fmt   == PIX_FMT_YUYV422) {
+       avctx->pix_fmt   == AV_PIX_FMT_YUYV422) {
         int x, y;
         uint8_t *line = picture->data[0];
         for(y = 0; y < avctx->height; y++) {