Commit 3d42addf authored by Michael Niedermayer's avatar Michael Niedermayer

png_parser: try to fix big endian

Signed-off-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parent 16db88a0
...@@ -24,7 +24,6 @@ ...@@ -24,7 +24,6 @@
* PNG parser * PNG parser
*/ */
#include "libavutil/intreadwrite.h"
#include "parser.h" #include "parser.h"
#define PNGSIG 0x89504e470d0a1a0a #define PNGSIG 0x89504e470d0a1a0a
...@@ -76,7 +75,7 @@ static int png_parse(AVCodecParserContext *s, AVCodecContext *avctx, ...@@ -76,7 +75,7 @@ static int png_parse(AVCodecParserContext *s, AVCodecContext *avctx,
for (;ppc->pc.frame_start_found && i < buf_size; i++) { for (;ppc->pc.frame_start_found && i < buf_size; i++) {
ppc->pc.state = (ppc->pc.state<<8) | buf[i]; ppc->pc.state = (ppc->pc.state<<8) | buf[i];
if (ppc->index == 3) { if (ppc->index == 3) {
ppc->chunk_length = AV_RL32(&ppc->pc.state); ppc->chunk_length = ppc->pc.state;
if (ppc->chunk_length > 0x7fffffff) { if (ppc->chunk_length > 0x7fffffff) {
ppc->index = ppc->pc.frame_start_found = 0; ppc->index = ppc->pc.frame_start_found = 0;
goto flush; goto flush;
...@@ -85,7 +84,7 @@ static int png_parse(AVCodecParserContext *s, AVCodecContext *avctx, ...@@ -85,7 +84,7 @@ static int png_parse(AVCodecParserContext *s, AVCodecContext *avctx,
} else if (ppc->index == 7) { } else if (ppc->index == 7) {
if (ppc->chunk_length >= buf_size - i) 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) if (ppc->remaining_size)
ppc->index = -1; ppc->index = -1;
else else
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment