[FFmpeg-devel] [PATCH] Reimplementation of OS/2 threads model

Dave Yeo daveryeo
Sun May 9 06:53:49 CEST 2010


On 05/04/10 09:47 pm, KO Myung-Hun wrote:
>
>
> Dave Yeo wrote:
>> On 04/28/10 08:01 am, Ramiro Polla wrote:
>>> Also have you tested performance?
>>
>> os2thread 1 thread utime=30.525s, 28.972s, 32.332s
>> os2thread with more then 1 thread crashes in thread #2 in
>> _ff_mpeg1_decode_block_intra
>>
>
> Strange, I have no problems with 2 or more threads using os2thread based
> on w32thread.
>

This command,
ffmpeg -threads 4 -i test.mp4 -benchmark -f null -y nul
results in
FFmpeg version SVN-r23061, Copyright (c) 2000-2010 the FFmpeg developers
   built on May  8 2010 21:13:03 with gcc 4.4.2
   configuration: --enable-gpl --enable-os2threads
   libavutil     50.15. 2 / 50.15. 2
   libavcodec    52.67. 0 / 52.67. 0
   libavformat   52.62. 0 / 52.62. 0
   libavdevice   52. 2. 0 / 52. 2. 0
   libavfilter    1.19. 0 /  1.19. 0
   libswscale     0.10. 0 /  0.10. 0
[mpeg2video @ 0xc3e9c0]mpeg_decode_postinit() failure

Seems stream 0 codec frame rate differs from container frame rate: 59.94 
(60000/1001) -> 59.94 (60000/1001)
     Last message repeated 3 times
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'test.mp4':
   Metadata:
     major_brand     : isom
     minor_version   : 512
     compatible_brands: isomiso2mp41
     encoder         : Lavf52.62.0
   Duration: 00:04:04.97, start: 0.000000, bitrate: 3843 kb/s
     Stream #0.0(und): Video: mpeg2video, yuv420p, 720x480 [PAR 32:27 
DAR 16:9],
9800 kb/s, PAR 853:720 DAR 853:480, 23.98 fps, 59.94 tbr, 60k tbn, 59.94 tbc
Output #0, null, to 'nul':
   Metadata:
     encoder         : Lavf52.62.0
     Stream #0.0(und): Video: rawvideo, yuv420p, 720x480 [PAR 186:157 
DAR 279:157], q=2-31, 200 kb/s, 90k tbn, 59.94 tbc
Stream mapping:
   Stream #0.0 -> #0.0
Press [q] to stop encoding
[mpeg2video @ 0xc3e9c0]mpeg_decode_postinit() failure

Killed by SIGSEGV
pid=0xc9f4 ppid=0x0050 tid=0x0002 slot=0x00e9 pri=0x0200 mc=0x0001
I:\USR\SRC\FFMPEG\OS2THREADS\FFMPEG_G.EXE
FFMPEG_G 0:002601ee
cs:eip=005b:002701ee      ss:esp=0053:02d5ff50      ebp=02d5ffb4
  ds=0053      es=0053      fs=150b      gs=0000     efl=00012206
eax=026afea8 ebx=00c492c0 ecx=002701e4 edx=002701e4 edi=005beb75 
esi=00c5db40
Process dumping was disabled, use DUMPPROC / PROCDUMP to enable it.

Killed by SIGSEGV
pid=0xca06 ppid=0x0050 tid=0x0001 slot=0x00f9 pri=0x0200 mc=0x0001
I:\USR\SRC\FFMPEG\OS2THREADS\FFMPEG_G.EXE
FFMPEG_G 0:005aea77
cs:eip=005b:005bea77      ss:esp=0053:006de800      ebp=0026d474
  ds=0053      es=0053      fs=150b      gs=0000     efl=00012202
eax=65706d5b ebx=00000002 ecx=00000002 edx=00000001 edi=00b53d90 
esi=006de86c
Process dumping was disabled, use DUMPPROC / PROCDUMP to enable it.

Where as this command,
ffmpeg -threads 4 -i test.mp4 -benchmark -f null -y nul 2>&1 | tee out
works with this result,
[...]
Stream mapping:
   Stream #0.0 -> #0.0
Press [q] to stop encoding
[mpeg2video @ 0xc3e9c0]mpeg_decode_postinit() failure
Error while decoding stream #0.0
Error while decoding stream #0.0
Error while decoding stream #0.0
Error while decoding stream #0.0
[...]
frame=14665 fps=394 q=0.0 size=      -0kB time=244.66 bitrate= 
-0.0kbits/s dup=8805 drop=0
     Last message repeated 3 times
[mpeg2video @ 0xc3e9c0]ac-tex damaged at 20 9
[mpeg2video @ 0xc3e9c0]Warning MVs not available
[mpeg2video @ 0xc3e9c0]concealing 945 DC, 945 AC, 945 MV errors
frame=14683 fps=394 q=0.0 Lsize=      -0kB time=244.96 bitrate= 
-0.0kbits/s dup=8815 drop=0

video:0kB audio:0kB global headers:0kB muxing overhead -inf%
bench: utime=37.342s maxrss=0kB

CPU is AMD Athlon XP2000, 768 MB ram, OS/2 ver4.5
Dave
ps 0:002601ee is in _av_write_frame and 0:005aea77 is in 
_ff_metadata_demux_compat



More information about the ffmpeg-devel mailing list