From 588f8cd8dfc370117d452b7f2a67f71c91613fdf Mon Sep 17 00:00:00 2001 From: Kostya Shishkov Date: Wed, 23 Dec 2009 13:04:57 +0000 Subject: [PATCH] Add Auravision Aura decoding support Originally committed as revision 20914 to svn://svn.ffmpeg.org/ffmpeg/trunk --- Changelog | 1 + doc/general.texi | 1 + libavcodec/Makefile | 1 + libavcodec/allcodecs.c | 1 + libavcodec/avcodec.h | 2 +- libavcodec/cyuv.c | 23 ++++++++++++++++++++++- 6 files changed, 27 insertions(+), 2 deletions(-) diff --git a/Changelog b/Changelog index c2a322c480..9351d74ebd 100644 --- a/Changelog +++ b/Changelog @@ -46,6 +46,7 @@ version : - IV8 demuxer - CDG demuxer and decoder - R210 decoder +- Auravision Aura decoder diff --git a/doc/general.texi b/doc/general.texi index 2b53bcfb55..e7e2e0a043 100644 --- a/doc/general.texi +++ b/doc/general.texi @@ -317,6 +317,7 @@ following image formats are supported: @tab fourcc: VCR1 @item ATI VCR2 @tab @tab X @tab fourcc: VCR2 +@item Auravision Aura @tab @tab X @item Autodesk Animator Flic video @tab @tab X @item Autodesk RLE @tab @tab X @tab fourcc: AASC diff --git a/libavcodec/Makefile b/libavcodec/Makefile index 64d365d29c..de00580743 100644 --- a/libavcodec/Makefile +++ b/libavcodec/Makefile @@ -60,6 +60,7 @@ OBJS-$(CONFIG_ASV2_DECODER) += asv1.o mpeg12data.o OBJS-$(CONFIG_ASV2_ENCODER) += asv1.o mpeg12data.o OBJS-$(CONFIG_ATRAC1_DECODER) += atrac1.o atrac.o OBJS-$(CONFIG_ATRAC3_DECODER) += atrac3.o atrac.o +OBJS-$(CONFIG_AURA_DECODER) += cyuv.o OBJS-$(CONFIG_AVS_DECODER) += avs.o OBJS-$(CONFIG_BETHSOFTVID_DECODER) += bethsoftvideo.o OBJS-$(CONFIG_BFI_DECODER) += bfi.o diff --git a/libavcodec/allcodecs.c b/libavcodec/allcodecs.c index 702297b2b4..44517419eb 100644 --- a/libavcodec/allcodecs.c +++ b/libavcodec/allcodecs.c @@ -65,6 +65,7 @@ void avcodec_register_all(void) REGISTER_DECODER (AMV, amv); REGISTER_ENCDEC (ASV1, asv1); REGISTER_ENCDEC (ASV2, asv2); + REGISTER_DECODER (AURA, aura); REGISTER_DECODER (AVS, avs); REGISTER_DECODER (BETHSOFTVID, bethsoftvid); REGISTER_DECODER (BFI, bfi); diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h index be0d522b6d..933af7c23b 100644 --- a/libavcodec/avcodec.h +++ b/libavcodec/avcodec.h @@ -30,7 +30,7 @@ #include "libavutil/avutil.h" #define LIBAVCODEC_VERSION_MAJOR 52 -#define LIBAVCODEC_VERSION_MINOR 43 +#define LIBAVCODEC_VERSION_MINOR 44 #define LIBAVCODEC_VERSION_MICRO 0 #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ diff --git a/libavcodec/cyuv.c b/libavcodec/cyuv.c index a44fb17a36..14eee3e0bd 100644 --- a/libavcodec/cyuv.c +++ b/libavcodec/cyuv.c @@ -82,6 +82,10 @@ static int cyuv_decode_frame(AVCodecContext *avctx, unsigned char cur_byte; int pixel_groups; + if (avctx->codec_id == CODEC_ID_AURA) { + y_table = u_table; + u_table = v_table; + } /* sanity check the buffer size: A buffer has 3x16-bytes tables * followed by (height) lines each with 3 bytes to represent groups * of 4 pixels. Thus, the total size of the buffer ought to be: @@ -163,6 +167,23 @@ static int cyuv_decode_frame(AVCodecContext *avctx, return buf_size; } +#if CONFIG_AURA_DECODER +AVCodec aura_decoder = { + "aura", + CODEC_TYPE_VIDEO, + CODEC_ID_AURA, + sizeof(CyuvDecodeContext), + cyuv_decode_init, + NULL, + NULL, + cyuv_decode_frame, + CODEC_CAP_DR1, + NULL, + .long_name = NULL_IF_CONFIG_SMALL("Auravision AURA"), +}; +#endif + +#if CONFIG_CYUV_DECODER AVCodec cyuv_decoder = { "cyuv", CODEC_TYPE_VIDEO, @@ -176,4 +197,4 @@ AVCodec cyuv_decoder = { NULL, .long_name = NULL_IF_CONFIG_SMALL("Creative YUV (CYUV)"), }; - +#endif