I try to play back footage from Canon’s HF100 camcorder, which records with up to 17MBit/s. Here for I’m using CoreCodec’s latest CoreAVC decoder on Linux with coreavc-for-linux. Version 1.8.5.0 has been released on 17th of October 2008, and I was awaiting this version eagerly, since I had the expectation, AVCHD (.mts) is going to work with the new version. I’ve also started this little page to collect affected AVCHD camcorders in a list, where you see what is known not to work atm for CoreAVC Decoder. Help appreciated.
The day they’ve published their new decoder, they wrote into their changelog:
CoreAVC H.264 Video Codec – Version 1.8.5.0 (20081017)
– Add: NV12 output
– Add: Option to disable/enable system tray icon
– Add: Filter is registered with preferred priority
– Fix: Proper seeking for streams with one IDR frame
– Fix: Decoder priority adjustable by limited user accounts
– Fix: Fix weighted prediction with MBAFF
– Fix: Options dialog wrong size with large fonts
– Fix: Fixed output format priority saving
– Fix: Improved dynamic reconnection
– Fix: Explicitly reject streams with unsupported resolutions
– Fix: Tray Icon stability
– Fix: Fix Force VMR AR correction function
– Fix: Help tab text highlight bug
And I was quite happy, and started testing right away (after a coreavc-for-linux bug has been fixed).
I’m testing on a Quad-Core CPU:
model name : Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz
and I’m using a recent kernel (Ubuntu 8.10 x86_64). Coreavc-for-Linux revision number is #77, the one of mplayer is #27800. This is my kernel version:
Linux pulsar 2.6.27-7-generic #1 SMP Fri Oct 24 06:40:41 UTC 2008 x86_64 GNU/Linux
This is what mplayer gives me, if I play back a .mts sample (such as this one, [58MB], output below results from a different sample )
acme@pulsar:/data/Videos/2008/10_Oktober/2008-10-23$ mplayer -demuxer lavf -vc coreserve 2008-10-23-164220.mts
MPlayer dev-SVN-r27800-4.3.2 (C) 2000-2008 MPlayer Team
CPU: Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz (Family: 6, Model: 15, Stepping: 11)
CPUflags: MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1
Compiled for x86 CPU with extensions: MMX MMX2 SSE SSE2
129 audio & 259 video codecsPlaying 2008-10-23-164220.mts.
libavformat file format detected.
LAVF: Program 1
[lavf] Video stream found, -vid 0
[lavf] Audio stream found, -aid 1
VIDEO: [H264] 1920x1080 0bpp 25.000 fps 0.0 kbps ( 0.0 kbyte/s)
==========================================================================
Forced video codec: coreserve
Opening video decoder: [dshowserver] DirectShowServer video codecs
shm:/dshow_shm.c92fa6e0
sem1:/dshow_sem1.c92fa6e0
sem2:/dshow_sem2.c92fa6e0
Opening device
len: 992
ProductVersion: 1.8.5
Decoder supports the following YUV formats: YUY2 UYVY YV12 I420
Decoder is capable of YUV output (flags 0x2b)
Setting fmt
Starting
Initialization is complete
VDec: vo config request - 1920 x 1080 (preferred colorspace: Packed YUY2)
[PP] Using codec's postprocessing, max q = 4.
VDec: using Planar YV12 as output csp (no 0)
Movie-Aspect is 1.78:1 - prescaling to correct movie aspect.
VO: [xv] 1920x1080 => 1920x1080 Planar YV12
Found DirectShow filterSelected video codec: [coreserve] vfm: dshowserver (CoreAVC DShow H264 decoder 1.3 for x86 - http://corecodec.org/)
==========================================================================
==========================================================================
Opening audio decoder: [liba52] AC3 decoding with liba52
Using SSE optimized IMDCT transform
Using MMX optimized resampler
AUDIO: 48000 Hz, 2 ch, s16le, 256.0 kbit/16.67% (ratio: 32000->192000)
Selected audio codec: [a52] afm: liba52 (AC3-liba52)
==========================================================================
AO: [oss] 48000Hz 2ch s16le (2 bytes per sample)
Starting playback...
pts value <= previous: 0.261 ct: 0.000 0/ 0 ??% ??% ??,?% 15 0 pts value <= previous: 0.481 ct: 0.000 0/ 0 ??% ??% ??,?% 18 0 pts value <= previous: 0.525 ct: 0.004 0/ 0 ??% ??% ??,?% 19 0 pts value <= previous: 0.402 ct: 0.011 0/ 0 ??% ??% ??,?% 21 0 pts value <= previous: 0.448 ct: 0.015 0/ 0 ??% ??% ??,?% 21 0 . . pts value <= previous: 0.052 ct: 0.200 0/ 0 19% 3% 25.9% 354 0 pts value <= previous: 0.016 ct: 0.200 0/ 0 19% 3% 25.9% 354 0 pts value <= previous: -0.000 ct: 0.200 0/ 0 19% 3% 25.9% 354 0 pts value <= previous: -0.000 ct: 0.200 0/ 0 19% 3% 25.9% 354 0 A: 257.6 V: 257.6 A-V: 0.000 ct: 0.200 0/ 0 19% 3% 25.9% 354 0 ************ in-frames: 12864 out-frames: 6429
************
Destroying filter
Exiting... (End of file)
It’s interesting to see, that almost exactly every second frame is droped! Whereas you can see quite easily, that the machine if far from maxing out the CPU:
top - 10:33:19 up 1:03, 1 user, load average: 1.24, 0.48, 0.38
Tasks: 173 total, 3 running, 167 sleeping, 0 stopped, 3 zombie
Cpu0 : 31.0%us, 6.9%sy, 0.0%ni, 61.8%id, 0.0%wa, 0.0%hi, 0.3%si, 0.0%st
Cpu1 : 29.1%us, 7.5%sy, 0.0%ni, 63.1%id, 0.0%wa, 0.3%hi, 0.0%si, 0.0%st
Cpu2 : 34.5%us, 7.0%sy, 0.0%ni, 58.2%id, 0.0%wa, 0.3%hi, 0.0%si, 0.0%st
Cpu3 : 43.0%us, 6.5%sy, 0.0%ni, 50.5%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 4055052k total, 2016924k used, 2038128k free, 79008k buffers
Swap: 4988172k total, 0k used, 4988172k free, 966564k cachedPID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
8174 acme 20 0 117m 52m 4200 S 121 1.3 1:04.07 dshowserver
6607 acme 20 0 459m 146m 43m R 28 3.7 1:07.45 kwin
6083 root 20 0 320m 141m 20m S 14 3.6 4:10.30 Xorg
8172 acme 20 0 94300 18m 12m S 9 0.5 0:04.94 mplayer
6666 acme 20 0 372m 34m 16m R 1 0.9 0:13.50 konsole
I don’t know, if this is a coreavc-for-linux problem, or a general one. I don’t even know, if AVCHD content is supposed to work with the CoreAVC Decoder. I’ve addressed this here, but without any response yet.
more to come…
Hi, i have same problem with droped frames, good cpu.
I try with 1.7 corecodec , same problem.
I think it’s problem with dshowserver ( before i don’t use , just Patch mplayer Win32 dshow code and it was OK with mplayer source RC2 )