Opened 10 years ago

Closed 10 years ago

#3700 closed defect (fixed)

aic decoder output is not bit exact with and without mmx

Reported by: Timothy Gu Owned by:
Priority: normal Component: avcodec
Version: git-master Keywords: aic
Cc: Blocked By:
Blocking: Reproduced by developer: yes
Analyzed by developer: no

Description

Summary of the bug

The aic decoder outputs different framecrc with and without MMX, even with -flags +bitexact.

How to reproduce

Decoding the first 15 frames of http://samples.ffmpeg.org/V-codecs/icod/Title-40_Percent_Speed.mov:

With MMX optimization:

timothy_gu@ubuntu-lenovo:~/ffmpeg$ ./ffmpeg -cpuflags mmx -threads 1 -i Title-40_Percent_Speed.mov -an -flags +bitexact -vframes 15 -f framecrc -
ffmpeg version N-63714-g1a426d5 Copyright (c) 2000-2014 the FFmpeg developers
  built on Jun  4 2014 17:34:36 with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
  configuration: 
  libavutil      52. 89.100 / 52. 89.100
  libavcodec     55. 66.100 / 55. 66.100
  libavformat    55. 42.100 / 55. 42.100
  libavdevice    55. 13.101 / 55. 13.101
  libavfilter     4.  5.100 /  4.  5.100
  libswscale      2.  6.100 /  2.  6.100
  libswresample   0. 19.100 /  0. 19.100
Guessed Channel Layout for  Input Stream #0.1 : stereo
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'Title-40_Percent_Speed.mov':
  Metadata:
    major_brand     : qt  
    minor_version   : 537199360
    compatible_brands: qt  
    creation_time   : 2006-03-23 05:06:02
  Duration: 00:00:07.57, start: 0.000000, bitrate: 77602 kb/s
    Stream #0:0(eng): Video: aic (icod / 0x646F6369), yuv420p, 1440x1080, 76052 kb/s, SAR 4:3 DAR 16:9, 29.97 fps, 29.97 tbr, 2997 tbn, 2997 tbc (default)
    Metadata:
      creation_time   : 2006-03-23 05:06:02
      handler_name    : Apple Alias Data Handler
      encoder         : Apple Intermediate Codec
      timecode        : 01:00:00;00
    Stream #0:1(eng): Audio: pcm_s16be (twos / 0x736F7774), 48000 Hz, 2 channels, s16, 1536 kb/s (default)
    Metadata:
      creation_time   : 2006-03-23 05:06:03
      handler_name    : Apple Alias Data Handler
    Stream #0:2(eng): Data: none (tmcd / 0x64636D74), 0 kb/s (default)
    Metadata:
      creation_time   : 2006-03-23 05:07:21
      handler_name    : Apple Alias Data Handler
      timecode        : 01:00:00;00
#tb 0: 100/2997
Output #0, framecrc, to 'pipe:':
  Metadata:
    major_brand     : qt  
    minor_version   : 537199360
    compatible_brands: qt  
    Stream #0:0(eng): Video: rawvideo (I420 / 0x30323449), yuv420p, 1440x1080 [SAR 4:3 DAR 16:9], q=2-31, 200 kb/s, 29.97 fps, 29.97 tbn, 29.97 tbc (default)
    Metadata:
      creation_time   : 2006-03-23 05:06:02
      handler_name    : Apple Alias Data Handler
      timecode        : 01:00:00;00
      encoder         : Lavc rawvideo
Stream mapping:
  Stream #0:0 -> #0:0 (aic -> rawvideo)
Press [q] to stop, [?] for help
0,          0,          0,        1,  2332800, 0xca4b6adc
0,          1,          1,        1,  2332800, 0x91ed4efa
0,          2,          2,        1,  2332800, 0x45b8140f
0,          3,          3,        1,  2332800, 0x464ff320
0,          4,          4,        1,  2332800, 0xeea6342e
0,          5,          5,        1,  2332800, 0xf098212b
0,          6,          6,        1,  2332800, 0xda92d4df
0,          7,          7,        1,  2332800, 0x214358c7
0,          8,          8,        1,  2332800, 0xac20040c
0,          9,          9,        1,  2332800, 0xd07a910f
0,         10,         10,        1,  2332800, 0x7293f51c
0,         11,         11,        1,  2332800, 0x4d5a87d0
0,         12,         12,        1,  2332800, 0xa6134a78
0,         13,         13,        1,  2332800, 0xee6c3078
0,         14,         14,        1,  2332800, 0x6c40c05c

Without:

timothy_gu@ubuntu-lenovo:~/ffmpeg$ ./ffmpeg -cpuflags 0 -threads 1 -i Title-40_Percent_Speed.mov -an -flags +bitexact -vframes 15 -f framecrc -
ffmpeg version N-63714-g1a426d5 Copyright (c) 2000-2014 the FFmpeg developers
  built on Jun  4 2014 17:34:36 with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
  configuration: 
  libavutil      52. 89.100 / 52. 89.100
  libavcodec     55. 66.100 / 55. 66.100
  libavformat    55. 42.100 / 55. 42.100
  libavdevice    55. 13.101 / 55. 13.101
  libavfilter     4.  5.100 /  4.  5.100
  libswscale      2.  6.100 /  2.  6.100
  libswresample   0. 19.100 /  0. 19.100
Guessed Channel Layout for  Input Stream #0.1 : stereo
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'Title-40_Percent_Speed.mov':
  Metadata:
    major_brand     : qt  
    minor_version   : 537199360
    compatible_brands: qt  
    creation_time   : 2006-03-23 05:06:02
  Duration: 00:00:07.57, start: 0.000000, bitrate: 77602 kb/s
    Stream #0:0(eng): Video: aic (icod / 0x646F6369), yuv420p, 1440x1080, 76052 kb/s, SAR 4:3 DAR 16:9, 29.97 fps, 29.97 tbr, 2997 tbn, 2997 tbc (default)
    Metadata:
      creation_time   : 2006-03-23 05:06:02
      handler_name    : Apple Alias Data Handler
      encoder         : Apple Intermediate Codec
      timecode        : 01:00:00;00
    Stream #0:1(eng): Audio: pcm_s16be (twos / 0x736F7774), 48000 Hz, 2 channels, s16, 1536 kb/s (default)
    Metadata:
      creation_time   : 2006-03-23 05:06:03
      handler_name    : Apple Alias Data Handler
    Stream #0:2(eng): Data: none (tmcd / 0x64636D74), 0 kb/s (default)
    Metadata:
      creation_time   : 2006-03-23 05:07:21
      handler_name    : Apple Alias Data Handler
      timecode        : 01:00:00;00
#tb 0: 100/2997
Output #0, framecrc, to 'pipe:':
  Metadata:
    major_brand     : qt  
    minor_version   : 537199360
    compatible_brands: qt  
    Stream #0:0(eng): Video: rawvideo (I420 / 0x30323449), yuv420p, 1440x1080 [SAR 4:3 DAR 16:9], q=2-31, 200 kb/s, 29.97 fps, 29.97 tbn, 29.97 tbc (default)
    Metadata:
      creation_time   : 2006-03-23 05:06:02
      handler_name    : Apple Alias Data Handler
      timecode        : 01:00:00;00
      encoder         : Lavc rawvideo
Stream mapping:
  Stream #0:0 -> #0:0 (aic -> rawvideo)
Press [q] to stop, [?] for help
0,          0,          0,        1,  2332800, 0x48fbbbbd
0,          1,          1,        1,  2332800, 0xfebc8f5b
0,          2,          2,        1,  2332800, 0xdcb14ac9
0,          3,          3,        1,  2332800, 0xae3344d0
0,          4,          4,        1,  2332800, 0xeff2700a
0,          5,          5,        1,  2332800, 0x00177859
0,          6,          6,        1,  2332800, 0xebb81c54
0,          7,          7,        1,  2332800, 0x16dc9fd2
0,          8,          8,        1,  2332800, 0x7a995dec
0,          9,          9,        1,  2332800, 0x0396df1a
0,         10,         10,        1,  2332800, 0x0e4b6267
0,         11,         11,        1,  2332800, 0xe48be2c7
0,         12,         12,        1,  2332800, 0x75bf9fef
0,         13,         13,        1,  2332800, 0x408d9cf9
0,         14,         14,        1,  2332800, 0x7d3721d4
frame=   15 fps=0.0 q=0.0 Lsize=       1kB time=00:00:00.50 bitrate=  14.2kbits/s    
video:34172kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown

Difference:

--- c-only	2014-06-04 17:42:53.650986856 -0700
+++ mmx	2014-06-04 17:42:47.722987012 -0700
@@ -1,16 +1,16 @@
 #tb 0: 100/2997
-0,          0,          0,        1,  2332800, 0x48fbbbbd
-0,          1,          1,        1,  2332800, 0xfebc8f5b
-0,          2,          2,        1,  2332800, 0xdcb14ac9
-0,          3,          3,        1,  2332800, 0xae3344d0
-0,          4,          4,        1,  2332800, 0xeff2700a
-0,          5,          5,        1,  2332800, 0x00177859
-0,          6,          6,        1,  2332800, 0xebb81c54
-0,          7,          7,        1,  2332800, 0x16dc9fd2
-0,          8,          8,        1,  2332800, 0x7a995dec
-0,          9,          9,        1,  2332800, 0x0396df1a
-0,         10,         10,        1,  2332800, 0x0e4b6267
-0,         11,         11,        1,  2332800, 0xe48be2c7
-0,         12,         12,        1,  2332800, 0x75bf9fef
-0,         13,         13,        1,  2332800, 0x408d9cf9
-0,         14,         14,        1,  2332800, 0x7d3721d4
+0,          0,          0,        1,  2332800, 0xca4b6adc
+0,          1,          1,        1,  2332800, 0x91ed4efa
+0,          2,          2,        1,  2332800, 0x45b8140f
+0,          3,          3,        1,  2332800, 0x464ff320
+0,          4,          4,        1,  2332800, 0xeea6342e
+0,          5,          5,        1,  2332800, 0xf098212b
+0,          6,          6,        1,  2332800, 0xda92d4df
+0,          7,          7,        1,  2332800, 0x214358c7
+0,          8,          8,        1,  2332800, 0xac20040c
+0,          9,          9,        1,  2332800, 0xd07a910f
+0,         10,         10,        1,  2332800, 0x7293f51c
+0,         11,         11,        1,  2332800, 0x4d5a87d0
+0,         12,         12,        1,  2332800, 0xa6134a78
+0,         13,         13,        1,  2332800, 0xee6c3078
+0,         14,         14,        1,  2332800, 0x6c40c05c

Change History (1)

comment:1 by Michael Niedermayer, 10 years ago

Reproduced by developer: set
Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.