[FFmpeg-cvslog] png_parser: Fix parsing on big endian
    Martin Storsjö 
    git at videolan.org
       
    Wed Dec 18 12:46:58 CET 2013
    
    
  
ffmpeg | branch: master | Martin Storsjö <martin at martin.st> | Wed Dec 18 10:39:47 2013 +0200| [b3189aff8b47fd5ca6a3f07a6a8ab68f8c9d40fe] | committer: Martin Storsjö
png_parser: Fix parsing on big endian
Since pc.state is populated by shifting in from the end of the
32 bit word, the content within pc.state is already in native endian
and should not be read with the AV_R{L,B} functions.
This was already done correctly for state64 above.
This fixes the fate-corepng test on big endian.
Signed-off-by: Martin Storsjö <martin at martin.st>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=b3189aff8b47fd5ca6a3f07a6a8ab68f8c9d40fe
---
 libavcodec/png_parser.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/libavcodec/png_parser.c b/libavcodec/png_parser.c
index 00cbb82..d07f288 100644
--- a/libavcodec/png_parser.c
+++ b/libavcodec/png_parser.c
@@ -78,7 +78,7 @@ static int png_parse(AVCodecParserContext *s, AVCodecContext *avctx,
     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->chunk_pos = ppc->pc.frame_start_found = 0;
                 goto flush;
@@ -87,7 +87,7 @@ static int png_parse(AVCodecParserContext *s, AVCodecContext *avctx,
         } else if (ppc->chunk_pos == 7) {
             if (ppc->chunk_length >= buf_size - i)
                 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->chunk_pos = -1;
                 else
    
    
More information about the ffmpeg-cvslog
mailing list