diff options
author | Carl Eugen Hoyos <cehoyos@ag.or.at> | 2012-01-04 15:10:58 +0100 |
---|---|---|
committer | Carl Eugen Hoyos <cehoyos@ag.or.at> | 2012-01-04 15:37:58 +0100 |
commit | 64e4f4836a03e427936c17a651a19658d3e3b474 (patch) | |
tree | d69da72fa4792d79a1a647da5bdde8517250171b | |
parent | dc7ad85c401a0137795e0414f5fe1c2e7f1d7078 (diff) | |
download | ffmpeg-64e4f4836a03e427936c17a651a19658d3e3b474.tar.gz |
Add decoder for Avid 1:1 10-bit RGB Packer (AVrp).
Fixes ticket #525.
Reviewed-by: Paul B Mahol
-rw-r--r-- | Changelog | 1 | ||||
-rw-r--r-- | doc/general.texi | 2 | ||||
-rw-r--r-- | libavcodec/Makefile | 1 | ||||
-rw-r--r-- | libavcodec/allcodecs.c | 1 | ||||
-rw-r--r-- | libavcodec/avcodec.h | 1 | ||||
-rw-r--r-- | libavcodec/r210dec.c | 19 | ||||
-rw-r--r-- | libavcodec/version.h | 2 | ||||
-rw-r--r-- | libavformat/isom.c | 1 |
8 files changed, 26 insertions, 2 deletions
@@ -16,6 +16,7 @@ version next: - Automatic thread count based on detection number of (available) CPU cores - y41p Brooktree Uncompressed 4:1:1 12-bit encoder and decoder - ffprobe -show_error option +- Avid 1:1 10-bit RGB Packer decoder version 0.9: diff --git a/doc/general.texi b/doc/general.texi index 8ca34f99ee..7f490137e0 100644 --- a/doc/general.texi +++ b/doc/general.texi @@ -438,6 +438,8 @@ following image formats are supported: @item Autodesk Animator Flic video @tab @tab X @item Autodesk RLE @tab @tab X @tab fourcc: AASC +@item Avid 1:1 10-bit RGB Packer @tab @tab X + @tab fourcc: AVrp @item AVS (Audio Video Standard) video @tab @tab X @tab Video encoding used by the Creature Shock game. @item Beam Software VB @tab @tab X diff --git a/libavcodec/Makefile b/libavcodec/Makefile index c3901efa1d..e735b5bb6d 100644 --- a/libavcodec/Makefile +++ b/libavcodec/Makefile @@ -91,6 +91,7 @@ OBJS-$(CONFIG_ATRAC1_DECODER) += atrac1.o atrac.o OBJS-$(CONFIG_ATRAC3_DECODER) += atrac3.o atrac.o OBJS-$(CONFIG_AURA_DECODER) += cyuv.o OBJS-$(CONFIG_AURA2_DECODER) += aura.o +OBJS-$(CONFIG_AVRP_DECODER) += r210dec.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 b96339d7c3..ec9f92870b 100644 --- a/libavcodec/allcodecs.c +++ b/libavcodec/allcodecs.c @@ -79,6 +79,7 @@ void avcodec_register_all(void) REGISTER_ENCDEC (ASV2, asv2); REGISTER_DECODER (AURA, aura); REGISTER_DECODER (AURA2, aura2); + REGISTER_DECODER (AVRP, avrp); REGISTER_DECODER (AVS, avs); REGISTER_DECODER (BETHSOFTVID, bethsoftvid); REGISTER_DECODER (BFI, bfi); diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h index bb1e239d75..11b4ae02f2 100644 --- a/libavcodec/avcodec.h +++ b/libavcodec/avcodec.h @@ -258,6 +258,7 @@ enum CodecID { CODEC_ID_Y41P = MKBETAG('Y','4','1','P'), CODEC_ID_UTVIDEO = 0x800, CODEC_ID_ESCAPE130 = MKBETAG('E','1','3','0'), + CODEC_ID_AVRP = MKBETAG('A','V','R','P'), CODEC_ID_G2M = MKBETAG( 0 ,'G','2','M'), diff --git a/libavcodec/r210dec.c b/libavcodec/r210dec.c index 18086c6916..d31033229f 100644 --- a/libavcodec/r210dec.c +++ b/libavcodec/r210dec.c @@ -61,8 +61,13 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *data_size, for (h = 0; h < avctx->height; h++) { uint16_t *dst = (uint16_t *)dst_line; for (w = 0; w < avctx->width; w++) { - uint32_t pixel = av_be2ne32(*src++); + uint32_t pixel; uint16_t r, g, b; + if (avctx->codec_id==CODEC_ID_AVRP) { + pixel = av_le2ne32(*src++); + } else { + pixel = av_be2ne32(*src++); + } if (avctx->codec_id==CODEC_ID_R210) { b = pixel << 6; g = (pixel >> 4) & 0xffc0; @@ -120,3 +125,15 @@ AVCodec ff_r10k_decoder = { .long_name = NULL_IF_CONFIG_SMALL("AJA Kona 10-bit RGB Codec"), }; #endif +#if CONFIG_AVRP_DECODER +AVCodec ff_avrp_decoder = { + .name = "avrp", + .type = AVMEDIA_TYPE_VIDEO, + .id = CODEC_ID_AVRP, + .init = decode_init, + .close = decode_close, + .decode = decode_frame, + .capabilities = CODEC_CAP_DR1, + .long_name = NULL_IF_CONFIG_SMALL("Avid 1:1 10-bit RGB Packer"), +}; +#endif diff --git a/libavcodec/version.h b/libavcodec/version.h index 1f7e62130d..0153efe010 100644 --- a/libavcodec/version.h +++ b/libavcodec/version.h @@ -21,7 +21,7 @@ #define AVCODEC_VERSION_H #define LIBAVCODEC_VERSION_MAJOR 53 -#define LIBAVCODEC_VERSION_MINOR 50 +#define LIBAVCODEC_VERSION_MINOR 51 #define LIBAVCODEC_VERSION_MICRO 100 #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ diff --git a/libavformat/isom.c b/libavformat/isom.c index 7cadcef79e..0c648e9162 100644 --- a/libavformat/isom.c +++ b/libavformat/isom.c @@ -89,6 +89,7 @@ const AVCodecTag codec_movvideo_tags[] = { { CODEC_ID_R10K, MKTAG('R', '1', '0', 'k') }, /* UNCOMPRESSED 10BIT RGB */ { CODEC_ID_R10K, MKTAG('R', '1', '0', 'g') }, /* UNCOMPRESSED 10BIT RGB */ { CODEC_ID_R210, MKTAG('r', '2', '1', '0') }, /* UNCOMPRESSED 10BIT RGB */ + { CODEC_ID_AVRP, MKTAG('A', 'V', 'r', 'p') }, /* Avid 1:1 10-bit RGB Packer */ { CODEC_ID_V210, MKTAG('v', '2', '1', '0') }, /* UNCOMPRESSED 10BIT 4:2:2 */ { CODEC_ID_V410, MKTAG('v', '4', '1', '0') }, /* UNCOMPRESSED 10BIT 4:4:4 */ { CODEC_ID_Y41P, MKTAG('Y', '4', '1', 'P') }, /* UNCOMPRESSED 12BIT 4:1:1 */ |