OSDN Git Service

Merge commit '6fd99e78def3c795bdd0bc31f3ae0998d24bc94c'
authorMichael Niedermayer <michaelni@gmx.at>
Tue, 17 Dec 2013 16:58:06 +0000 (17:58 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Tue, 17 Dec 2013 16:58:53 +0000 (17:58 +0100)
* commit '6fd99e78def3c795bdd0bc31f3ae0998d24bc94c':
  png: add a standalone parser

Conflicts:
Changelog
libavcodec/png_parser.c
libavcodec/version.h

See: 2ee6dca3b8f40132be5c8b77e3700a9e3f26c382
Merged-by: Michael Niedermayer <michaelni@gmx.at>
1  2 
libavcodec/Makefile
libavcodec/png_parser.c
libavcodec/version.h

Simple merge
   * PNG parser
   */
  
 -#include "libavutil/intreadwrite.h"
 -#include "libavutil/common.h"
 -
  #include "parser.h"
 -
 -#define PNG_SIGNATURE UINT64_C(0x89504e470d0a1a0a)
 -#define MNG_SIGNATURE UINT64_C(0x8a4d4e470d0a1a0a)
 +#include "png.h"
  
- typedef struct PNGParseContext
- {
+ typedef struct PNGParseContext {
      ParseContext pc;
-     uint32_t index;
-     uint32_t chunk_length;
-     uint32_t remaining_size;
 -
 -    int chunk_pos;          ///< position inside current chunk
 -    int chunk_length;       ///< length of the current chunk
 -    int remaining_size;     ///< remaining size of the current chunk
++    uint32_t chunk_pos;           ///< position inside current chunk
++    uint32_t chunk_length;        ///< length of the current chunk
++    uint32_t remaining_size;      ///< remaining size of the current chunk
  } PNGParseContext;
  
  static int png_parse(AVCodecParserContext *s, AVCodecContext *avctx,
              }
          }
          ppc->pc.state64 = state64;
-     } else
-         if (ppc->remaining_size) {
-             i = FFMIN(ppc->remaining_size, buf_size);
-             ppc->remaining_size -= i;
-             if (ppc->remaining_size)
-                 goto flush;
-             if (ppc->index == -1) {
-                 next = i;
-                 goto flush;
-             }
+     } else if (ppc->remaining_size) {
+         i = FFMIN(ppc->remaining_size, buf_size);
+         ppc->remaining_size -= i;
+         if (ppc->remaining_size)
+             goto flush;
+         if (ppc->chunk_pos == -1) {
+             next = i;
+             goto flush;
          }
+     }
  
-     for (;ppc->pc.frame_start_found && i < buf_size; i++) {
-         ppc->pc.state = (ppc->pc.state<<8) | buf[i];
-         if (ppc->index == 3) {
+     for (; ppc->pc.frame_start_found && i < buf_size; i++) {
+         ppc->pc.state = (ppc->pc.state << 8) | buf[i];
+         if (ppc->chunk_pos == 3) {
 -            ppc->chunk_length = AV_RL32(&ppc->pc.state);
 +            ppc->chunk_length = ppc->pc.state;
              if (ppc->chunk_length > 0x7fffffff) {
-                 ppc->index = ppc->pc.frame_start_found = 0;
+                 ppc->chunk_pos = ppc->pc.frame_start_found = 0;
                  goto flush;
              }
              ppc->chunk_length += 4;
-         } else if (ppc->index == 7) {
+         } else if (ppc->chunk_pos == 7) {
              if (ppc->chunk_length >= buf_size - i)
-                     ppc->remaining_size = ppc->chunk_length - buf_size + i + 1;
+                 ppc->remaining_size = ppc->chunk_length - buf_size + i + 1;
 -            if (AV_RB32(&ppc->pc.state) == MKTAG('I', 'E', 'N', 'D')) {
 +            if (ppc->pc.state == MKBETAG('I', 'E', 'N', 'D')) {
                  if (ppc->remaining_size)
-                     ppc->index = -1;
+                     ppc->chunk_pos = -1;
                  else
                      next = ppc->chunk_length + i + 1;
                  break;
   * Libavcodec version macros.
   */
  
 +#include "libavutil/avutil.h"
 +
  #define LIBAVCODEC_VERSION_MAJOR 55
 -#define LIBAVCODEC_VERSION_MINOR 29
 -#define LIBAVCODEC_VERSION_MICRO  0
 +#define LIBAVCODEC_VERSION_MINOR  45
- #define LIBAVCODEC_VERSION_MICRO 101
++#define LIBAVCODEC_VERSION_MICRO 102
  
  #define LIBAVCODEC_VERSION_INT  AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
                                                 LIBAVCODEC_VERSION_MINOR, \