mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
png_parser: try to fix big endian
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
16db88a093
commit
3d42addf33
@ -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,
|
|||||||
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,
|
|||||||
} 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
|
||||||
|
Loading…
Reference in New Issue
Block a user