Merge commit 'e6fb844f7b736e72da364032d251283bce9e63ad'
authorMichael Niedermayer <michaelni@gmx.at>
Mon, 20 Apr 2015 03:19:19 +0000 (05:19 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Mon, 20 Apr 2015 03:19:46 +0000 (05:19 +0200)
* commit 'e6fb844f7b736e72da364032d251283bce9e63ad':
  Implement shared parsing of INFO tag in Canopus family

Merged-by: Michael Niedermayer <michaelni@gmx.at>
1  2 
libavcodec/Makefile
libavcodec/canopus.c
libavcodec/canopus.h
libavcodec/cllc.c
libavcodec/hqx.c

@@@ -186,10 -154,9 +186,10 @@@ OBJS-$(CONFIG_CCAPTION_DECODER)        
  OBJS-$(CONFIG_CDGRAPHICS_DECODER)      += cdgraphics.o
  OBJS-$(CONFIG_CDXL_DECODER)            += cdxl.o
  OBJS-$(CONFIG_CINEPAK_DECODER)         += cinepak.o
 +OBJS-$(CONFIG_CINEPAK_ENCODER)         += cinepakenc.o elbg.o
  OBJS-$(CONFIG_CLJR_DECODER)            += cljrdec.o
  OBJS-$(CONFIG_CLJR_ENCODER)            += cljrenc.o
- OBJS-$(CONFIG_CLLC_DECODER)            += cllc.o
+ OBJS-$(CONFIG_CLLC_DECODER)            += cllc.o canopus.o
  OBJS-$(CONFIG_COOK_DECODER)            += cook.o
  OBJS-$(CONFIG_COMFORTNOISE_DECODER)    += cngdec.o celp_filters.o
  OBJS-$(CONFIG_COMFORTNOISE_ENCODER)    += cngenc.o
index 0000000,729e7ef..ea6cc64
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,63 +1,63 @@@
 - * This file is part of Libav.
+ /*
+  * Canopus common routines
+  * Copyright (c) 2015 Vittorio Giovara <vittorio.giovara@gmail.com>
+  *
 - * Libav is free software; you can redistribute it and/or
++ * This file is part of FFmpeg.
+  *
 - * Libav is distributed in the hope that it will be useful,
++ * FFmpeg is free software; you can redistribute it and/or
+  * modify it under the terms of the GNU Lesser General Public
+  * License as published by the Free Software Foundation; either
+  * version 2.1 of the License, or (at your option) any later version.
+  *
 - * License along with Libav; if not, write to the Free Software
++ * FFmpeg is distributed in the hope that it will be useful,
+  * but WITHOUT ANY WARRANTY; without even the implied warranty of
+  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+  * Lesser General Public License for more details.
+  *
+  * You should have received a copy of the GNU Lesser General Public
++ * License along with FFmpeg; if not, write to the Free Software
+  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+  */
+ #include <stdint.h>
+ #include "libavutil/rational.h"
+ #include "avcodec.h"
+ #include "bytestream.h"
+ #include "canopus.h"
+ int ff_canopus_parse_info_tag(AVCodecContext *avctx,
+                               const uint8_t *src, size_t size)
+ {
+     GetByteContext gbc;
+     int par_x, par_y, field_order;
+     bytestream2_init(&gbc, src, size);
+     /* Parse aspect ratio. */
+     bytestream2_skip(&gbc, 8); // unknown, 16 bits 1
+     par_x = bytestream2_get_le32(&gbc);
+     par_y = bytestream2_get_le32(&gbc);
+     if (par_x && par_y)
+         av_reduce(&avctx->sample_aspect_ratio.num,
+                   &avctx->sample_aspect_ratio.den,
+                   par_x, par_y, 255);
+     /* Short INFO tag (used in CLLC) has only AR data. */
+     if (size == 0x18)
+         return 0;
+     bytestream2_skip(&gbc, 16); // unknown RDRT tag
+     /* Parse FIEL tag. */
+     bytestream2_skip(&gbc, 8); // 'FIEL' and 4 bytes 0
+     field_order = bytestream2_get_le32(&gbc);
+     switch (field_order) {
+     case 0: avctx->field_order = AV_FIELD_TT; break;
+     case 1: avctx->field_order = AV_FIELD_BB; break;
+     case 2: avctx->field_order = AV_FIELD_PROGRESSIVE; break;
+     }
+     return 0;
+ }
index 0000000,9e5702d..faa1e8d
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,32 +1,32 @@@
 - * This file is part of Libav.
+ /*
+  * Canopus common routines
+  * Copyright (c) 2015 Vittorio Giovara <vittorio.giovara@gmail.com>
+  *
 - * Libav is free software; you can redistribute it and/or
++ * This file is part of FFmpeg.
+  *
 - * Libav is distributed in the hope that it will be useful,
++ * FFmpeg is free software; you can redistribute it and/or
+  * modify it under the terms of the GNU Lesser General Public
+  * License as published by the Free Software Foundation; either
+  * version 2.1 of the License, or (at your option) any later version.
+  *
 - * License along with Libav; if not, write to the Free Software
++ * FFmpeg is distributed in the hope that it will be useful,
+  * but WITHOUT ANY WARRANTY; without even the implied warranty of
+  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+  * Lesser General Public License for more details.
+  *
+  * You should have received a copy of the GNU Lesser General Public
++ * License along with FFmpeg; if not, write to the Free Software
+  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+  */
+ #ifndef AVCODEC_CANOPUS_H
+ #define AVCODEC_CANOPUS_H
+ #include <stdint.h>
+ #include "avcodec.h"
+ int ff_canopus_parse_info_tag(AVCodecContext *avctx,
+                               const uint8_t *src, size_t size);
+ #endif /* AVCODEC_CANOPUS_H */
Simple merge
Simple merge