[FFmpeg-cvslog] r25115 - in trunk: Changelog doc/general.texi libavcodec/Makefile libavcodec/allcodecs.c libavcodec/avcodec.h libavcodec/r210dec.c libavformat/isom.c libavformat/riff.c

cehoyos subversion
Tue Sep 14 00:08:51 CEST 2010


Author: cehoyos
Date: Tue Sep 14 00:08:51 2010
New Revision: 25115

Log:
Add R10k decoder.

Original patch by Zhou Zongyi, zhouzy A os pku edu cn, resubmitted by
James Darnley, james.darnley gmail, changes by me.

Modified:
   trunk/Changelog
   trunk/doc/general.texi
   trunk/libavcodec/Makefile
   trunk/libavcodec/allcodecs.c
   trunk/libavcodec/avcodec.h
   trunk/libavcodec/r210dec.c
   trunk/libavformat/isom.c
   trunk/libavformat/riff.c

Modified: trunk/Changelog
==============================================================================
--- trunk/Changelog	Tue Sep 14 00:03:29 2010	(r25114)
+++ trunk/Changelog	Tue Sep 14 00:08:51 2010	(r25115)
@@ -34,6 +34,7 @@ version <next>:
 - a64 codec
 - MMS-HTTP support
 - G.722 ADPCM audio decoder
+- R10k video decoder
 
 
 version 0.6:

Modified: trunk/doc/general.texi
==============================================================================
--- trunk/doc/general.texi	Tue Sep 14 00:03:29 2010	(r25114)
+++ trunk/doc/general.texi	Tue Sep 14 00:08:51 2010	(r25115)
@@ -460,6 +460,7 @@ following image formats are supported:
     @tab fourcc: 'smc '
 @item QuickTime video (RPZA) @tab     @tab  X
     @tab fourcc: rpza
+ at item R10K AJA Kona 10-bit RGB Codec     @tab     @tab  X
 @item R210 Quicktime Uncompressed RGB 10-bit     @tab     @tab  X
 @item Raw Video              @tab  X  @tab  X
 @item RealVideo 1.0          @tab  X  @tab  X

Modified: trunk/libavcodec/Makefile
==============================================================================
--- trunk/libavcodec/Makefile	Tue Sep 14 00:03:29 2010	(r25114)
+++ trunk/libavcodec/Makefile	Tue Sep 14 00:08:51 2010	(r25115)
@@ -289,6 +289,7 @@ OBJS-$(CONFIG_QDRAW_DECODER)           +
 OBJS-$(CONFIG_QPEG_DECODER)            += qpeg.o
 OBJS-$(CONFIG_QTRLE_DECODER)           += qtrle.o
 OBJS-$(CONFIG_QTRLE_ENCODER)           += qtrleenc.o
+OBJS-$(CONFIG_R10K_DECODER)            += r210dec.o
 OBJS-$(CONFIG_R210_DECODER)            += r210dec.o
 OBJS-$(CONFIG_RA_144_DECODER)          += ra144dec.o ra144.o celp_filters.o
 OBJS-$(CONFIG_RA_144_ENCODER)          += ra144enc.o ra144.o celp_filters.o

Modified: trunk/libavcodec/allcodecs.c
==============================================================================
--- trunk/libavcodec/allcodecs.c	Tue Sep 14 00:03:29 2010	(r25114)
+++ trunk/libavcodec/allcodecs.c	Tue Sep 14 00:08:51 2010	(r25115)
@@ -163,6 +163,7 @@ void avcodec_register_all(void)
     REGISTER_DECODER (QDRAW, qdraw);
     REGISTER_DECODER (QPEG, qpeg);
     REGISTER_ENCDEC  (QTRLE, qtrle);
+    REGISTER_DECODER (R10K,  r10k);
     REGISTER_DECODER (R210,  r210);
     REGISTER_ENCDEC  (RAWVIDEO, rawvideo);
     REGISTER_DECODER (RL2, rl2);

Modified: trunk/libavcodec/avcodec.h
==============================================================================
--- trunk/libavcodec/avcodec.h	Tue Sep 14 00:03:29 2010	(r25114)
+++ trunk/libavcodec/avcodec.h	Tue Sep 14 00:08:51 2010	(r25115)
@@ -31,7 +31,7 @@
 #include "libavutil/cpu.h"
 
 #define LIBAVCODEC_VERSION_MAJOR 52
-#define LIBAVCODEC_VERSION_MINOR 88
+#define LIBAVCODEC_VERSION_MINOR 89
 #define LIBAVCODEC_VERSION_MICRO  0
 
 #define LIBAVCODEC_VERSION_INT  AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
@@ -227,6 +227,7 @@ enum CodecID {
     CODEC_ID_ANSI,
     CODEC_ID_A64_MULTI,
     CODEC_ID_A64_MULTI5,
+    CODEC_ID_R10K,
 
     /* various PCM "codecs" */
     CODEC_ID_PCM_S16LE= 0x10000,

Modified: trunk/libavcodec/r210dec.c
==============================================================================
--- trunk/libavcodec/r210dec.c	Tue Sep 14 00:03:29 2010	(r25114)
+++ trunk/libavcodec/r210dec.c	Tue Sep 14 00:08:51 2010	(r25115)
@@ -63,9 +63,15 @@ static int decode_frame(AVCodecContext *
         for (w = 0; w < avctx->width; w++) {
             uint32_t pixel = av_be2ne32(*src++);
             uint16_t r, g, b;
+            if (avctx->codec_id==CODEC_ID_R210) {
             b =  pixel <<  6;
             g = (pixel >>  4) & 0xffc0;
             r = (pixel >> 14) & 0xffc0;
+            } else {
+                b =  pixel <<  4;
+                g = (pixel >>  6) & 0xffc0;
+                r = (pixel >> 16) & 0xffc0;
+            }
             *dst++ = r | (r >> 10);
             *dst++ = g | (g >> 10);
             *dst++ = b | (b >> 10);
@@ -90,6 +96,7 @@ static av_cold int decode_close(AVCodecC
     return 0;
 }
 
+#if CONFIG_R210_DECODER
 AVCodec r210_decoder = {
     "r210",
     AVMEDIA_TYPE_VIDEO,
@@ -102,3 +109,18 @@ AVCodec r210_decoder = {
     CODEC_CAP_DR1,
     .long_name = NULL_IF_CONFIG_SMALL("Uncompressed RGB 10-bit"),
 };
+#endif
+#if CONFIG_R10K_DECODER
+AVCodec r10k_decoder = {
+    "r10k",
+    AVMEDIA_TYPE_VIDEO,
+    CODEC_ID_R10K,
+    0,
+    decode_init,
+    NULL,
+    decode_close,
+    decode_frame,
+    CODEC_CAP_DR1,
+    .long_name = NULL_IF_CONFIG_SMALL("AJA Kona 10-bit RGB Codec"),
+};
+#endif

Modified: trunk/libavformat/isom.c
==============================================================================
--- trunk/libavformat/isom.c	Tue Sep 14 00:03:29 2010	(r25114)
+++ trunk/libavformat/isom.c	Tue Sep 14 00:08:51 2010	(r25115)
@@ -77,6 +77,7 @@ const AVCodecTag codec_movvideo_tags[] =
     { CODEC_ID_RAWVIDEO, MKTAG('b', '1', '6', 'g') },
     { CODEC_ID_RAWVIDEO, MKTAG('b', '4', '8', 'r') },
 
+    { CODEC_ID_R10K,   MKTAG('R', '1', '0', 'k') }, /* UNCOMPRESSED 10BIT RGB */
     { CODEC_ID_R210,   MKTAG('r', '2', '1', '0') }, /* UNCOMPRESSED 10BIT RGB */
     { CODEC_ID_V210,   MKTAG('v', '2', '1', '0') }, /* UNCOMPRESSED 10BIT 4:2:2 */
 

Modified: trunk/libavformat/riff.c
==============================================================================
--- trunk/libavformat/riff.c	Tue Sep 14 00:03:29 2010	(r25114)
+++ trunk/libavformat/riff.c	Tue Sep 14 00:08:51 2010	(r25115)
@@ -179,6 +179,7 @@ const AVCodecTag ff_codec_bmp_tags[] = {
     { CODEC_ID_RAWVIDEO,     MKTAG('Y', 'U', 'V', '9') },
     { CODEC_ID_RAWVIDEO,     MKTAG('Y', 'V', 'U', '9') },
     { CODEC_ID_FRWU,         MKTAG('F', 'R', 'W', 'U') },
+    { CODEC_ID_R10K,         MKTAG('R', '1', '0', 'k') },
     { CODEC_ID_R210,         MKTAG('r', '2', '1', '0') },
     { CODEC_ID_V210,         MKTAG('v', '2', '1', '0') },
     { CODEC_ID_INDEO3,       MKTAG('I', 'V', '3', '1') },



More information about the ffmpeg-cvslog mailing list