changeset 809:29ae10725c4c trunk

[svn] - make use of new millisecond seek API. - watchdog_func has been implemented as a thread. this thread will wake up every 10msec and will check changes of track while playing.
author yaz
date Mon, 12 Mar 2007 11:31:14 -0700
parents e8776388b02a
children 4174d2783be5
files ChangeLog src/cue/cuesheet.c
diffstat 2 files changed, 616 insertions(+), 55 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Mon Mar 12 11:18:54 2007 -0700
+++ b/ChangeLog	Mon Mar 12 11:31:14 2007 -0700
@@ -1,3 +1,438 @@
+2007-03-12 18:18:54 +0000  William Pitcock <nenolod@sacredspiral.co.uk>
+  revision [1716]
+  - add ffmpeg
+  
+  trunk/src/ffmpeg/libavcodec/4xm.c                            |  759 
+  trunk/src/ffmpeg/libavcodec/8bps.c                           |  236 
+  trunk/src/ffmpeg/libavcodec/Makefile                         |   69 
+  trunk/src/ffmpeg/libavcodec/a52dec.c                         |  257 
+  trunk/src/ffmpeg/libavcodec/aasc.c                           |  176 
+  trunk/src/ffmpeg/libavcodec/ac3.h                            |   65 
+  trunk/src/ffmpeg/libavcodec/ac3dec.c                         |  184 
+  trunk/src/ffmpeg/libavcodec/ac3enc.c                         | 1557 +
+  trunk/src/ffmpeg/libavcodec/ac3tab.h                         |  205 
+  trunk/src/ffmpeg/libavcodec/adpcm.c                          | 1370 +
+  trunk/src/ffmpeg/libavcodec/adx.c                            |  412 
+  trunk/src/ffmpeg/libavcodec/alac.c                           |  856 +
+  trunk/src/ffmpeg/libavcodec/allcodecs.c                      |  867 +
+  trunk/src/ffmpeg/libavcodec/alpha/asm.h                      |  191 
+  trunk/src/ffmpeg/libavcodec/alpha/dsputil_alpha.c            |  362 
+  trunk/src/ffmpeg/libavcodec/alpha/dsputil_alpha_asm.S        |  285 
+  trunk/src/ffmpeg/libavcodec/alpha/motion_est_alpha.c         |  345 
+  trunk/src/ffmpeg/libavcodec/alpha/motion_est_mvi_asm.S       |  185 
+  trunk/src/ffmpeg/libavcodec/alpha/mpegvideo_alpha.c          |  147 
+  trunk/src/ffmpeg/libavcodec/alpha/regdef.h                   |   66 
+  trunk/src/ffmpeg/libavcodec/alpha/simple_idct_alpha.c        |  308 
+  trunk/src/ffmpeg/libavcodec/amr.c                            |  666 
+  trunk/src/ffmpeg/libavcodec/apiexample.c                     |  457 
+  trunk/src/ffmpeg/libavcodec/armv4l/dsputil_arm.c             |  262 
+  trunk/src/ffmpeg/libavcodec/armv4l/dsputil_arm_s.S           |  696 
+  trunk/src/ffmpeg/libavcodec/armv4l/dsputil_iwmmxt.c          |  188 
+  trunk/src/ffmpeg/libavcodec/armv4l/dsputil_iwmmxt_rnd.h      | 1114 +
+  trunk/src/ffmpeg/libavcodec/armv4l/jrevdct_arm.S             |  386 
+  trunk/src/ffmpeg/libavcodec/armv4l/mathops.h                 |   49 
+  trunk/src/ffmpeg/libavcodec/armv4l/mpegvideo_arm.c           |   33 
+  trunk/src/ffmpeg/libavcodec/armv4l/mpegvideo_iwmmxt.c        |  119 
+  trunk/src/ffmpeg/libavcodec/armv4l/simple_idct_arm.S         |  487 
+  trunk/src/ffmpeg/libavcodec/armv4l/simple_idct_armv5te.S     |  718 
+  trunk/src/ffmpeg/libavcodec/asv1.c                           |  655 
+  trunk/src/ffmpeg/libavcodec/audioconvert.c                   |   79 
+  trunk/src/ffmpeg/libavcodec/avcodec.h                        | 2691 +++
+  trunk/src/ffmpeg/libavcodec/avs.c                            |  160 
+  trunk/src/ffmpeg/libavcodec/beosthread.c                     |  182 
+  trunk/src/ffmpeg/libavcodec/bfin/dsputil_bfin.c              |   55 
+  trunk/src/ffmpeg/libavcodec/bitstream.c                      |  254 
+  trunk/src/ffmpeg/libavcodec/bitstream.h                      |  956 +
+  trunk/src/ffmpeg/libavcodec/bitstream_filter.c               |  143 
+  trunk/src/ffmpeg/libavcodec/bmp.c                            |  253 
+  trunk/src/ffmpeg/libavcodec/bytestream.h                     |   50 
+  trunk/src/ffmpeg/libavcodec/cabac.c                          |  265 
+  trunk/src/ffmpeg/libavcodec/cabac.h                          |  850 +
+  trunk/src/ffmpeg/libavcodec/cavs.c                           | 1502 +
+  trunk/src/ffmpeg/libavcodec/cavsdata.h                       |  641 
+  trunk/src/ffmpeg/libavcodec/cavsdsp.c                        |  546 
+  trunk/src/ffmpeg/libavcodec/cinepak.c                        |  453 
+  trunk/src/ffmpeg/libavcodec/cljr.c                           |  158 
+  trunk/src/ffmpeg/libavcodec/cook.c                           | 1312 +
+  trunk/src/ffmpeg/libavcodec/cookdata.h                       |  559 
+  trunk/src/ffmpeg/libavcodec/cscd.c                           |  264 
+  trunk/src/ffmpeg/libavcodec/cyuv.c                           |  190 
+  trunk/src/ffmpeg/libavcodec/dct-test.c                       |  535 
+  trunk/src/ffmpeg/libavcodec/dpcm.c                           |  335 
+  trunk/src/ffmpeg/libavcodec/dsicinav.c                       |  362 
+  trunk/src/ffmpeg/libavcodec/dsputil.c                        | 4233 +++++
+  trunk/src/ffmpeg/libavcodec/dsputil.h                        |  701 
+  trunk/src/ffmpeg/libavcodec/dtsdec.c                         |  320 
+  trunk/src/ffmpeg/libavcodec/dv.c                             | 1265 +
+  trunk/src/ffmpeg/libavcodec/dvbsub.c                         |  445 
+  trunk/src/ffmpeg/libavcodec/dvbsubdec.c                      | 1633 ++
+  trunk/src/ffmpeg/libavcodec/dvdata.h                         | 2724 +++
+  trunk/src/ffmpeg/libavcodec/dvdsub.c                         |  477 
+  trunk/src/ffmpeg/libavcodec/dvdsubenc.c                      |  247 
+  trunk/src/ffmpeg/libavcodec/error_resilience.c               | 1030 +
+  trunk/src/ffmpeg/libavcodec/eval.c                           |  312 
+  trunk/src/ffmpeg/libavcodec/eval.h                           |   42 
+  trunk/src/ffmpeg/libavcodec/faac.c                           |  133 
+  trunk/src/ffmpeg/libavcodec/faad.c                           |  332 
+  trunk/src/ffmpeg/libavcodec/faandct.c                        |  220 
+  trunk/src/ffmpeg/libavcodec/faandct.h                        |   33 
+  trunk/src/ffmpeg/libavcodec/fdctref.c                        |  158 
+  trunk/src/ffmpeg/libavcodec/fft-test.c                       |  297 
+  trunk/src/ffmpeg/libavcodec/fft.c                            |  262 
+  trunk/src/ffmpeg/libavcodec/ffv1.c                           | 1040 +
+  trunk/src/ffmpeg/libavcodec/flac.c                           |  743 
+  trunk/src/ffmpeg/libavcodec/flacenc.c                        | 1383 +
+  trunk/src/ffmpeg/libavcodec/flashsv.c                        |  276 
+  trunk/src/ffmpeg/libavcodec/flicvideo.c                      |  748 
+  trunk/src/ffmpeg/libavcodec/fraps.c                          |  250 
+  trunk/src/ffmpeg/libavcodec/g726.c                           |  430 
+  trunk/src/ffmpeg/libavcodec/gifdec.c                         |  500 
+  trunk/src/ffmpeg/libavcodec/golomb.c                         |  156 
+  trunk/src/ffmpeg/libavcodec/golomb.h                         |  479 
+  trunk/src/ffmpeg/libavcodec/h261.c                           | 1055 +
+  trunk/src/ffmpeg/libavcodec/h261data.h                       |  157 
+  trunk/src/ffmpeg/libavcodec/h263.c                           | 6291 +++++++
+  trunk/src/ffmpeg/libavcodec/h263data.h                       |  308 
+  trunk/src/ffmpeg/libavcodec/h263dec.c                        |  913 +
+  trunk/src/ffmpeg/libavcodec/h264.c                           | 8655 +++++++++++
+  trunk/src/ffmpeg/libavcodec/h264data.h                       | 1280 +
+  trunk/src/ffmpeg/libavcodec/h264idct.c                       |  168 
+  trunk/src/ffmpeg/libavcodec/huffyuv.c                        | 1290 +
+  trunk/src/ffmpeg/libavcodec/i386/cavsdsp_mmx.c               |  518 
+  trunk/src/ffmpeg/libavcodec/i386/cputest.c                   |  126 
+  trunk/src/ffmpeg/libavcodec/i386/dsputil_h264_template_mmx.c |  326 
+  trunk/src/ffmpeg/libavcodec/i386/dsputil_mmx.c               | 3532 ++++
+  trunk/src/ffmpeg/libavcodec/i386/dsputil_mmx_avg.h           |  870 +
+  trunk/src/ffmpeg/libavcodec/i386/dsputil_mmx_rnd.h           |  592 
+  trunk/src/ffmpeg/libavcodec/i386/fdct_mmx.c                  |  566 
+  trunk/src/ffmpeg/libavcodec/i386/fft_3dn.c                   |  125 
+  trunk/src/ffmpeg/libavcodec/i386/fft_3dn2.c                  |  210 
+  trunk/src/ffmpeg/libavcodec/i386/fft_sse.c                   |  247 
+  trunk/src/ffmpeg/libavcodec/i386/h264dsp_mmx.c               | 1524 +
+  trunk/src/ffmpeg/libavcodec/i386/idct_mmx.c                  |  597 
+  trunk/src/ffmpeg/libavcodec/i386/idct_mmx_xvid.c             |  535 
+  trunk/src/ffmpeg/libavcodec/i386/mathops.h                   |   41 
+  trunk/src/ffmpeg/libavcodec/i386/mmx.h                       |  283 
+  trunk/src/ffmpeg/libavcodec/i386/motion_est_mmx.c            |  408 
+  trunk/src/ffmpeg/libavcodec/i386/mpegvideo_mmx.c             |  726 
+  trunk/src/ffmpeg/libavcodec/i386/mpegvideo_mmx_template.c    |  348 
+  trunk/src/ffmpeg/libavcodec/i386/simple_idct_mmx.c           | 1294 +
+  trunk/src/ffmpeg/libavcodec/i386/snowdsp_mmx.c               |  921 +
+  trunk/src/ffmpeg/libavcodec/i386/vp3dsp_mmx.c                |  324 
+  trunk/src/ffmpeg/libavcodec/i386/vp3dsp_sse2.c               |  827 +
+  trunk/src/ffmpeg/libavcodec/idcinvideo.c                     |  272 
+  trunk/src/ffmpeg/libavcodec/imgconvert.c                     | 2735 +++
+  trunk/src/ffmpeg/libavcodec/imgconvert_template.h            |  859 +
+  trunk/src/ffmpeg/libavcodec/imgresample.c                    |  942 +
+  trunk/src/ffmpeg/libavcodec/indeo2.c                         |  221 
+  trunk/src/ffmpeg/libavcodec/indeo2data.h                     |  134 
+  trunk/src/ffmpeg/libavcodec/indeo3.c                         | 1153 +
+  trunk/src/ffmpeg/libavcodec/indeo3data.h                     | 2335 ++
+  trunk/src/ffmpeg/libavcodec/interplayvideo.c                 |  964 +
+  trunk/src/ffmpeg/libavcodec/jfdctfst.c                       |  338 
+  trunk/src/ffmpeg/libavcodec/jfdctint.c                       |  406 
+  trunk/src/ffmpeg/libavcodec/jpeg_ls.c                        |  847 +
+  trunk/src/ffmpeg/libavcodec/jrevdct.c                        | 1159 +
+  trunk/src/ffmpeg/libavcodec/kmvc.c                           |  417 
+  trunk/src/ffmpeg/libavcodec/lcl.c                            |  928 +
+  trunk/src/ffmpeg/libavcodec/libgsm.c                         |   97 
+  trunk/src/ffmpeg/libavcodec/loco.c                           |  287 
+  trunk/src/ffmpeg/libavcodec/lzo.c                            |  226 
+  trunk/src/ffmpeg/libavcodec/lzo.h                            |   35 
+  trunk/src/ffmpeg/libavcodec/mace.c                           |  456 
+  trunk/src/ffmpeg/libavcodec/mathops.h                        |   69 
+  trunk/src/ffmpeg/libavcodec/mdct.c                           |  177 
+  trunk/src/ffmpeg/libavcodec/mdec.c                           |  270 
+  trunk/src/ffmpeg/libavcodec/mjpeg.c                          | 2464 +++
+  trunk/src/ffmpeg/libavcodec/mlib/dsputil_mlib.c              |  464 
+  trunk/src/ffmpeg/libavcodec/mmvideo.c                        |  206 
+  trunk/src/ffmpeg/libavcodec/motion_est.c                     | 2117 ++
+  trunk/src/ffmpeg/libavcodec/motion_est_template.c            | 1104 +
+  trunk/src/ffmpeg/libavcodec/motion_test.c                    |  159 
+  trunk/src/ffmpeg/libavcodec/mp3lameaudio.c                   |  221 
+  trunk/src/ffmpeg/libavcodec/mpeg12.c                         | 3316 ++++
+  trunk/src/ffmpeg/libavcodec/mpeg12data.h                     |  469 
+  trunk/src/ffmpeg/libavcodec/mpeg4data.h                      |  423 
+  trunk/src/ffmpeg/libavcodec/mpegaudio.c                      |  801 +
+  trunk/src/ffmpeg/libavcodec/mpegaudio.h                      |  106 
+  trunk/src/ffmpeg/libavcodec/mpegaudiodec.c                   | 2848 +++
+  trunk/src/ffmpeg/libavcodec/mpegaudiodectab.h                |  795 +
+  trunk/src/ffmpeg/libavcodec/mpegaudiotab.h                   |  111 
+  trunk/src/ffmpeg/libavcodec/mpegvideo.c                      | 6881 ++++++++
+  trunk/src/ffmpeg/libavcodec/mpegvideo.h                      |  943 +
+  trunk/src/ffmpeg/libavcodec/msmpeg4.c                        | 1938 ++
+  trunk/src/ffmpeg/libavcodec/msmpeg4data.h                    | 2028 ++
+  trunk/src/ffmpeg/libavcodec/msrle.c                          |  309 
+  trunk/src/ffmpeg/libavcodec/msvideo1.c                       |  349 
+  trunk/src/ffmpeg/libavcodec/nuv.c                            |  216 
+  trunk/src/ffmpeg/libavcodec/oggvorbis.c                      |  381 
+  trunk/src/ffmpeg/libavcodec/opt.c                            |  381 
+  trunk/src/ffmpeg/libavcodec/opt.h                            |   83 
+  trunk/src/ffmpeg/libavcodec/os2thread.c                      |  150 
+  trunk/src/ffmpeg/libavcodec/parser.c                         | 1107 +
+  trunk/src/ffmpeg/libavcodec/pcm.c                            |  548 
+  trunk/src/ffmpeg/libavcodec/png.c                            |  965 +
+  trunk/src/ffmpeg/libavcodec/pnm.c                            |  598 
+  trunk/src/ffmpeg/libavcodec/ppc/dsputil_altivec.c            | 1591 ++
+  trunk/src/ffmpeg/libavcodec/ppc/dsputil_altivec.h            |  106 
+  trunk/src/ffmpeg/libavcodec/ppc/dsputil_ppc.c                |  324 
+  trunk/src/ffmpeg/libavcodec/ppc/dsputil_ppc.h                |  155 
+  trunk/src/ffmpeg/libavcodec/ppc/fdct_altivec.c               |  493 
+  trunk/src/ffmpeg/libavcodec/ppc/fft_altivec.c                |  170 
+  trunk/src/ffmpeg/libavcodec/ppc/float_altivec.c              |  194 
+  trunk/src/ffmpeg/libavcodec/ppc/gcc_fixes.h                  |  119 
+  trunk/src/ffmpeg/libavcodec/ppc/gmc_altivec.c                |  146 
+  trunk/src/ffmpeg/libavcodec/ppc/h264_altivec.c               |  438 
+  trunk/src/ffmpeg/libavcodec/ppc/h264_template_altivec.c      |  719 
+  trunk/src/ffmpeg/libavcodec/ppc/idct_altivec.c               |  237 
+  trunk/src/ffmpeg/libavcodec/ppc/mathops.h                    |   33 
+  trunk/src/ffmpeg/libavcodec/ppc/mpegvideo_altivec.c          |  603 
+  trunk/src/ffmpeg/libavcodec/ppc/mpegvideo_ppc.c              |   87 
+  trunk/src/ffmpeg/libavcodec/ppc/snow_altivec.c               |  788 +
+  trunk/src/ffmpeg/libavcodec/ppc/vc1dsp_altivec.c             |  338 
+  trunk/src/ffmpeg/libavcodec/ps2/dsputil_mmi.c                |  163 
+  trunk/src/ffmpeg/libavcodec/ps2/idct_mmi.c                   |  363 
+  trunk/src/ffmpeg/libavcodec/ps2/mmi.h                        |  172 
+  trunk/src/ffmpeg/libavcodec/ps2/mpegvideo_mmi.c              |   89 
+  trunk/src/ffmpeg/libavcodec/pthread.c                        |  170 
+  trunk/src/ffmpeg/libavcodec/qdm2.c                           | 2042 ++
+  trunk/src/ffmpeg/libavcodec/qdm2data.h                       |  530 
+  trunk/src/ffmpeg/libavcodec/qdrw.c                           |  160 
+  trunk/src/ffmpeg/libavcodec/qpeg.c                           |  324 
+  trunk/src/ffmpeg/libavcodec/qtrle.c                          |  630 
+  trunk/src/ffmpeg/libavcodec/ra144.c                          |  519 
+  trunk/src/ffmpeg/libavcodec/ra144.h                          | 2428 +++
+  trunk/src/ffmpeg/libavcodec/ra288.c                          |  258 
+  trunk/src/ffmpeg/libavcodec/ra288.h                          |  205 
+  trunk/src/ffmpeg/libavcodec/rangecoder.c                     |  181 
+  trunk/src/ffmpeg/libavcodec/rangecoder.h                     |  127 
+  trunk/src/ffmpeg/libavcodec/ratecontrol.c                    |  937 +
+  trunk/src/ffmpeg/libavcodec/ratecontrol.h                    |  100 
+  trunk/src/ffmpeg/libavcodec/raw.c                            |  206 
+  trunk/src/ffmpeg/libavcodec/resample.c                       |  249 
+  trunk/src/ffmpeg/libavcodec/resample2.c                      |  274 
+  trunk/src/ffmpeg/libavcodec/roqvideo.c                       |  474 
+  trunk/src/ffmpeg/libavcodec/rpza.c                           |  292 
+  trunk/src/ffmpeg/libavcodec/rtjpeg.c                         |  164 
+  trunk/src/ffmpeg/libavcodec/rtjpeg.h                         |   40 
+  trunk/src/ffmpeg/libavcodec/rv10.c                           |  803 +
+  trunk/src/ffmpeg/libavcodec/sh4/dsputil_align.c              |  430 
+  trunk/src/ffmpeg/libavcodec/sh4/dsputil_sh4.c                |  120 
+  trunk/src/ffmpeg/libavcodec/sh4/idct_sh4.c                   |  366 
+  trunk/src/ffmpeg/libavcodec/sh4/qpel.c                       | 1667 ++
+  trunk/src/ffmpeg/libavcodec/shorten.c                        |  532 
+  trunk/src/ffmpeg/libavcodec/simple_idct.c                    |  587 
+  trunk/src/ffmpeg/libavcodec/simple_idct.h                    |   38 
+  trunk/src/ffmpeg/libavcodec/smacker.c                        |  723 
+  trunk/src/ffmpeg/libavcodec/smc.c                            |  493 
+  trunk/src/ffmpeg/libavcodec/snow.c                           | 4682 +++++
+  trunk/src/ffmpeg/libavcodec/snow.h                           |  176 
+  trunk/src/ffmpeg/libavcodec/sonic.c                          |  981 +
+  trunk/src/ffmpeg/libavcodec/sp5x.h                           |  332 
+  trunk/src/ffmpeg/libavcodec/sparc/dsputil_vis.c              | 4090 +++++
+  trunk/src/ffmpeg/libavcodec/sparc/vis.h                      |  327 
+  trunk/src/ffmpeg/libavcodec/svq1.c                           | 1431 +
+  trunk/src/ffmpeg/libavcodec/svq1_cb.h                        | 1580 ++
+  trunk/src/ffmpeg/libavcodec/svq1_vlc.h                       |  281 
+  trunk/src/ffmpeg/libavcodec/svq3.c                           | 1014 +
+  trunk/src/ffmpeg/libavcodec/swscale.h                        |   66 
+  trunk/src/ffmpeg/libavcodec/targa.c                          |  244 
+  trunk/src/ffmpeg/libavcodec/tiertexseqv.c                    |  232 
+  trunk/src/ffmpeg/libavcodec/tiff.c                           |  432 
+  trunk/src/ffmpeg/libavcodec/truemotion1.c                    |  923 +
+  trunk/src/ffmpeg/libavcodec/truemotion1data.h                |  829 +
+  trunk/src/ffmpeg/libavcodec/truemotion2.c                    |  893 +
+  trunk/src/ffmpeg/libavcodec/truespeech.c                     |  381 
+  trunk/src/ffmpeg/libavcodec/truespeech_data.h                |  157 
+  trunk/src/ffmpeg/libavcodec/tscc.c                           |  348 
+  trunk/src/ffmpeg/libavcodec/tta.c                            |  446 
+  trunk/src/ffmpeg/libavcodec/ulti.c                           |  428 
+  trunk/src/ffmpeg/libavcodec/ulti_cb.h                        | 4119 +++++
+  trunk/src/ffmpeg/libavcodec/utils.c                          | 1327 +
+  trunk/src/ffmpeg/libavcodec/vc1.c                            | 4315 +++++
+  trunk/src/ffmpeg/libavcodec/vc1acdata.h                      |  585 
+  trunk/src/ffmpeg/libavcodec/vc1data.h                        |  652 
+  trunk/src/ffmpeg/libavcodec/vc1dsp.c                         |  453 
+  trunk/src/ffmpeg/libavcodec/vcr1.c                           |  190 
+  trunk/src/ffmpeg/libavcodec/vmdav.c                          |  583 
+  trunk/src/ffmpeg/libavcodec/vmnc.c                           |  525 
+  trunk/src/ffmpeg/libavcodec/vorbis.c                         | 1814 ++
+  trunk/src/ffmpeg/libavcodec/vorbis.h                         |   43 
+  trunk/src/ffmpeg/libavcodec/vorbis_data.c                    | 2155 ++
+  trunk/src/ffmpeg/libavcodec/vorbis_enc.c                     | 1087 +
+  trunk/src/ffmpeg/libavcodec/vorbis_enc_data.h                |  498 
+  trunk/src/ffmpeg/libavcodec/vp3.c                            | 2659 +++
+  trunk/src/ffmpeg/libavcodec/vp3data.h                        | 3178 ++++
+  trunk/src/ffmpeg/libavcodec/vp3dsp.c                         |  225 
+  trunk/src/ffmpeg/libavcodec/vp5.c                            |  291 
+  trunk/src/ffmpeg/libavcodec/vp56.c                           |  665 
+  trunk/src/ffmpeg/libavcodec/vp56.h                           |  250 
+  trunk/src/ffmpeg/libavcodec/vp56data.c                       |   67 
+  trunk/src/ffmpeg/libavcodec/vp56data.h                       |  248 
+  trunk/src/ffmpeg/libavcodec/vp5data.h                        |  175 
+  trunk/src/ffmpeg/libavcodec/vp6.c                            |  514 
+  trunk/src/ffmpeg/libavcodec/vp6data.h                        |  293 
+  trunk/src/ffmpeg/libavcodec/vqavideo.c                       |  610 
+  trunk/src/ffmpeg/libavcodec/w32thread.c                      |  136 
+  trunk/src/ffmpeg/libavcodec/wavpack.c                        |  556 
+  trunk/src/ffmpeg/libavcodec/wmadata.h                        | 1433 +
+  trunk/src/ffmpeg/libavcodec/wmadec.c                         | 1337 +
+  trunk/src/ffmpeg/libavcodec/wmv2.c                           |  855 +
+  trunk/src/ffmpeg/libavcodec/wnv1.c                           |  146 
+  trunk/src/ffmpeg/libavcodec/ws-snd1.c                        |  144 
+  trunk/src/ffmpeg/libavcodec/x264.c                           |  295 
+  trunk/src/ffmpeg/libavcodec/xan.c                            |  492 
+  trunk/src/ffmpeg/libavcodec/xl.c                             |  140 
+  trunk/src/ffmpeg/libavcodec/xvid_internal.h                  |   32 
+  trunk/src/ffmpeg/libavcodec/xvid_rc.c                        |  148 
+  trunk/src/ffmpeg/libavcodec/xvidff.c                         |  768 
+  trunk/src/ffmpeg/libavcodec/xvmcvideo.c                      |  318 
+  trunk/src/ffmpeg/libavcodec/zmbv.c                           |  692 
+  trunk/src/ffmpeg/libavformat/4xm.c                           |  331 
+  trunk/src/ffmpeg/libavformat/Makefile                        |   39 
+  trunk/src/ffmpeg/libavformat/adtsenc.c                       |  123 
+  trunk/src/ffmpeg/libavformat/aiff.c                          |  436 
+  trunk/src/ffmpeg/libavformat/allformats.c                    |  513 
+  trunk/src/ffmpeg/libavformat/allformats.h                    |  190 
+  trunk/src/ffmpeg/libavformat/amr.c                           |  201 
+  trunk/src/ffmpeg/libavformat/asf-enc.c                       |  866 +
+  trunk/src/ffmpeg/libavformat/asf.c                           |  953 +
+  trunk/src/ffmpeg/libavformat/asf.h                           |  285 
+  trunk/src/ffmpeg/libavformat/au.c                            |  209 
+  trunk/src/ffmpeg/libavformat/audio.c                         |  352 
+  trunk/src/ffmpeg/libavformat/avformat.h                      |  578 
+  trunk/src/ffmpeg/libavformat/avi.h                           |   39 
+  trunk/src/ffmpeg/libavformat/avidec.c                        |  984 +
+  trunk/src/ffmpeg/libavformat/avienc.c                        |  580 
+  trunk/src/ffmpeg/libavformat/avio.c                          |  192 
+  trunk/src/ffmpeg/libavformat/avio.h                          |  201 
+  trunk/src/ffmpeg/libavformat/aviobuf.c                       |  788 +
+  trunk/src/ffmpeg/libavformat/avisynth.c                      |  222 
+  trunk/src/ffmpeg/libavformat/avs.c                           |  227 
+  trunk/src/ffmpeg/libavformat/barpainet.c                     |   44 
+  trunk/src/ffmpeg/libavformat/barpainet.h                     |   45 
+  trunk/src/ffmpeg/libavformat/beosaudio.cpp                   |  465 
+  trunk/src/ffmpeg/libavformat/crc.c                           |   98 
+  trunk/src/ffmpeg/libavformat/cutils.c                        |  275 
+  trunk/src/ffmpeg/libavformat/daud.c                          |   58 
+  trunk/src/ffmpeg/libavformat/dc1394.c                        |  193 
+  trunk/src/ffmpeg/libavformat/dsicin.c                        |  224 
+  trunk/src/ffmpeg/libavformat/dv.c                            |  451 
+  trunk/src/ffmpeg/libavformat/dv.h                            |   37 
+  trunk/src/ffmpeg/libavformat/dv1394.c                        |  240 
+  trunk/src/ffmpeg/libavformat/dv1394.h                        |  357 
+  trunk/src/ffmpeg/libavformat/dvenc.c                         |  413 
+  trunk/src/ffmpeg/libavformat/electronicarts.c                |  291 
+  trunk/src/ffmpeg/libavformat/ffm.c                           |  792 +
+  trunk/src/ffmpeg/libavformat/file.c                          |   91 
+  trunk/src/ffmpeg/libavformat/flic.c                          |  221 
+  trunk/src/ffmpeg/libavformat/flvdec.c                        |  248 
+  trunk/src/ffmpeg/libavformat/flvenc.c                        |  284 
+  trunk/src/ffmpeg/libavformat/framehook.c                     |  121 
+  trunk/src/ffmpeg/libavformat/framehook.h                     |   50 
+  trunk/src/ffmpeg/libavformat/gif.c                           |  432 
+  trunk/src/ffmpeg/libavformat/gifdec.c                        |  644 
+  trunk/src/ffmpeg/libavformat/grab.c                          |  860 +
+  trunk/src/ffmpeg/libavformat/grab_bktr.c                     |  330 
+  trunk/src/ffmpeg/libavformat/gxf.c                           |  516 
+  trunk/src/ffmpeg/libavformat/gxf.h                           |   34 
+  trunk/src/ffmpeg/libavformat/gxfenc.c                        |  819 +
+  trunk/src/ffmpeg/libavformat/idcin.c                         |  301 
+  trunk/src/ffmpeg/libavformat/idroq.c                         |  291 
+  trunk/src/ffmpeg/libavformat/img.c                           |  400 
+  trunk/src/ffmpeg/libavformat/img2.c                          |  423 
+  trunk/src/ffmpeg/libavformat/ipmovie.c                       |  625 
+  trunk/src/ffmpeg/libavformat/isom.c                          |  131 
+  trunk/src/ffmpeg/libavformat/isom.h                          |   38 
+  trunk/src/ffmpeg/libavformat/jpeg.c                          |  240 
+  trunk/src/ffmpeg/libavformat/matroska.c                      | 2648 +++
+  trunk/src/ffmpeg/libavformat/mm.c                            |  212 
+  trunk/src/ffmpeg/libavformat/mmf.c                           |  331 
+  trunk/src/ffmpeg/libavformat/mov.c                           | 1870 ++
+  trunk/src/ffmpeg/libavformat/movenc.c                        | 1674 ++
+  trunk/src/ffmpeg/libavformat/mp3.c                           |  430 
+  trunk/src/ffmpeg/libavformat/mpeg.c                          | 1824 ++
+  trunk/src/ffmpeg/libavformat/mpegts.c                        | 1527 +
+  trunk/src/ffmpeg/libavformat/mpegts.h                        |   63 
+  trunk/src/ffmpeg/libavformat/mpegtsenc.c                     |  676 
+  trunk/src/ffmpeg/libavformat/mpjpeg.c                        |   67 
+  trunk/src/ffmpeg/libavformat/mtv.c                           |  186 
+  trunk/src/ffmpeg/libavformat/mxf.c                           | 1078 +
+  trunk/src/ffmpeg/libavformat/nsvdec.c                        |  756 
+  trunk/src/ffmpeg/libavformat/nut.c                           | 1457 +
+  trunk/src/ffmpeg/libavformat/nuv.c                           |  241 
+  trunk/src/ffmpeg/libavformat/ogg.c                           |  283 
+  trunk/src/ffmpeg/libavformat/ogg2.c                          |  697 
+  trunk/src/ffmpeg/libavformat/ogg2.h                          |   85 
+  trunk/src/ffmpeg/libavformat/oggparseflac.c                  |   82 
+  trunk/src/ffmpeg/libavformat/oggparseogm.c                   |  166 
+  trunk/src/ffmpeg/libavformat/oggparsetheora.c                |  129 
+  trunk/src/ffmpeg/libavformat/oggparsevorbis.c                |  205 
+  trunk/src/ffmpeg/libavformat/os_support.c                    |   69 
+  trunk/src/ffmpeg/libavformat/os_support.h                    |   53 
+  trunk/src/ffmpeg/libavformat/png.c                           |  889 +
+  trunk/src/ffmpeg/libavformat/pnm.c                           |  478 
+  trunk/src/ffmpeg/libavformat/psxstr.c                        |  364 
+  trunk/src/ffmpeg/libavformat/qtpalette.h                     |  295 
+  trunk/src/ffmpeg/libavformat/raw.c                           |  813 +
+  trunk/src/ffmpeg/libavformat/riff.c                          |  470 
+  trunk/src/ffmpeg/libavformat/riff.h                          |   51 
+  trunk/src/ffmpeg/libavformat/rm.c                            | 1146 +
+  trunk/src/ffmpeg/libavformat/rtp.c                           |  876 +
+  trunk/src/ffmpeg/libavformat/rtp.h                           |  127 
+  trunk/src/ffmpeg/libavformat/rtpproto.c                      |  303 
+  trunk/src/ffmpeg/libavformat/segafilm.c                      |  310 
+  trunk/src/ffmpeg/libavformat/sgi.c                           |  460 
+  trunk/src/ffmpeg/libavformat/sierravmd.c                     |  332 
+  trunk/src/ffmpeg/libavformat/smacker.c                       |  345 
+  trunk/src/ffmpeg/libavformat/sol.c                           |  160 
+  trunk/src/ffmpeg/libavformat/swf.c                           |  941 +
+  trunk/src/ffmpeg/libavformat/tcp.c                           |  232 
+  trunk/src/ffmpeg/libavformat/tiertexseq.c                    |  310 
+  trunk/src/ffmpeg/libavformat/tta.c                           |  152 
+  trunk/src/ffmpeg/libavformat/udp.c                           |  504 
+  trunk/src/ffmpeg/libavformat/utils.c                         | 3184 ++++
+  trunk/src/ffmpeg/libavformat/v4l2.c                          |  541 
+  trunk/src/ffmpeg/libavformat/voc.c                           |  274 
+  trunk/src/ffmpeg/libavformat/voc.h                           |   34 
+  trunk/src/ffmpeg/libavformat/wav.c                           |  253 
+  trunk/src/ffmpeg/libavformat/wc3movie.c                      |  394 
+  trunk/src/ffmpeg/libavformat/westwood.c                      |  383 
+  trunk/src/ffmpeg/libavformat/wv.c                            |  202 
+  trunk/src/ffmpeg/libavformat/yuv.c                           |  161 
+  trunk/src/ffmpeg/libavformat/yuv4mpeg.c                      |  408 
+  trunk/src/ffmpeg/libavutil/Makefile                          |   18 
+  trunk/src/ffmpeg/libavutil/adler32.c                         |   71 
+  trunk/src/ffmpeg/libavutil/adler32.h                         |   27 
+  trunk/src/ffmpeg/libavutil/avutil.h                          |  133 
+  trunk/src/ffmpeg/libavutil/bswap.h                           |  175 
+  trunk/src/ffmpeg/libavutil/common.h                          |  418 
+  trunk/src/ffmpeg/libavutil/crc.c                             |  104 
+  trunk/src/ffmpeg/libavutil/crc.h                             |   35 
+  trunk/src/ffmpeg/libavutil/fifo.c                            |  137 
+  trunk/src/ffmpeg/libavutil/fifo.h                            |   25 
+  trunk/src/ffmpeg/libavutil/integer.c                         |  222 
+  trunk/src/ffmpeg/libavutil/integer.h                         |   49 
+  trunk/src/ffmpeg/libavutil/internal.h                        |  237 
+  trunk/src/ffmpeg/libavutil/intfloat_readwrite.c              |   97 
+  trunk/src/ffmpeg/libavutil/intfloat_readwrite.h              |   39 
+  trunk/src/ffmpeg/libavutil/lls.c                             |  151 
+  trunk/src/ffmpeg/libavutil/lls.h                             |   45 
+  trunk/src/ffmpeg/libavutil/log.c                             |   82 
+  trunk/src/ffmpeg/libavutil/log.h                             |   62 
+  trunk/src/ffmpeg/libavutil/mathematics.c                     |  139 
+  trunk/src/ffmpeg/libavutil/mathematics.h                     |   51 
+  trunk/src/ffmpeg/libavutil/md5.c                             |  186 
+  trunk/src/ffmpeg/libavutil/md5.h                             |   34 
+  trunk/src/ffmpeg/libavutil/mem.c                             |  171 
+  trunk/src/ffmpeg/libavutil/rational.c                        |  111 
+  trunk/src/ffmpeg/libavutil/rational.h                        |   71 
+  trunk/src/ffmpeg/libavutil/softfloat.c                       |   72 
+  trunk/src/ffmpeg/libavutil/softfloat.h                       |  122 
+  trunk/src/ffmpeg/libavutil/x86_cpu.h                         |   60 
+  428 files changed, 264680 insertions(+)
+
+
 2007-03-12 18:03:24 +0000  Yoshiki Yazawa <yaz@cc.rim.or.jp>
   revision [1714]
   - make use of new millisecond seek API.
--- a/src/cue/cuesheet.c	Mon Mar 12 11:18:54 2007 -0700
+++ b/src/cue/cuesheet.c	Mon Mar 12 11:31:14 2007 -0700
@@ -15,6 +15,8 @@
 #include "config.h"
 #endif
 
+#define DEBUG 1
+
 #include <string.h>
 #include <stdlib.h>
 #include <stdio.h>
@@ -44,8 +46,18 @@
 static TitleInput *get_tuple(gchar *uri);
 static TitleInput *get_tuple_uri(gchar *uri);
 static void get_song_info(gchar *uri, gchar **title, gint *length);
+static void cue_init(void);
+static void cue_cleanup(void);
+static gpointer watchdog_func(gpointer data);
 
-static gint watchdog_func(gpointer data);
+GThread *watchdog_thread;
+static GMutex *cue_mutex;
+static GCond *cue_cond;
+static enum {
+    STOP,
+    RUN,
+    EXIT,
+} watchdog_state;
 
 static gchar *cue_file = NULL;
 static gchar *cue_title = NULL;
@@ -63,7 +75,6 @@
 	gint index;
 } cue_tracks[MAX_CUE_TRACKS];
 
-static gint timeout_tag = 0;
 static gint finetune_seek = 0;
 
 static InputPlayback *real_ip = NULL;
@@ -73,7 +84,7 @@
 	NULL,			/* handle */
 	NULL,			/* filename */
 	NULL,			/* description */
-	NULL,	       	/* init */
+	cue_init,	       	/* init */
 	NULL,	       	/* about */
 	NULL,	  	   	/* configure */
 	is_our_file,
@@ -86,7 +97,7 @@
 	get_time,
 	NULL,
 	NULL,
-	NULL,		/* cleanup */
+	cue_cleanup,		/* cleanup */
 	NULL,
 	NULL,
 	NULL,
@@ -98,6 +109,34 @@
 	NULL
 };
 
+static void cue_init(void)
+{
+    cue_mutex = g_mutex_new();
+    cue_cond = g_cond_new();
+
+    /* create watchdog thread */
+    g_mutex_lock(cue_mutex);
+    watchdog_state = STOP;
+    g_mutex_unlock(cue_mutex);
+    watchdog_thread = g_thread_create(watchdog_func, NULL, TRUE, NULL);
+#ifdef DEBUG
+    g_print("watchdog_thread = %p\n", watchdog_thread);
+#endif
+}
+
+static void cue_cleanup(void)
+{
+    g_mutex_lock(cue_mutex);
+    watchdog_state = EXIT;
+    g_cond_signal(cue_cond);
+    g_mutex_unlock(cue_mutex);
+
+    g_thread_join(watchdog_thread);
+
+    g_cond_free(cue_cond);
+    g_mutex_free(cue_mutex);
+}
+
 static int is_our_file(gchar *filename)
 {
 	gchar *ext;
@@ -141,7 +180,7 @@
 
 static void play(InputPlayback *data)
 {
-        gchar *uri = data->filename;
+    gchar *uri = data->filename;
 	/* this isn't a cue:// uri? */
 	if (strncasecmp("cue://", uri, 6))
 	{
@@ -254,10 +293,14 @@
 	if (real_ip != NULL)
 		real_ip->plugin->stop(real_ip);
 
-	if (data != NULL)
-		data->playing = 0;
+    if (data != NULL)
+        data->playing = 0;
 
-	gtk_timeout_remove(timeout_tag);
+    g_mutex_lock(cue_mutex);
+    watchdog_state = STOP;
+    g_cond_signal(cue_cond);
+    g_mutex_unlock(cue_mutex);
+
 	free_cue_info();
 
 	if (real_ip != NULL) {
@@ -295,32 +338,41 @@
 
 static void play_cue_uri(InputPlayback * data, gchar *uri)
 {
-        gchar *path2 = g_strdup(uri + 6);
-        gchar *_path = strchr(path2, '?');
+    gchar *path2 = g_strdup(uri + 6);
+    gchar *_path = strchr(path2, '?');
 	gint file_length = 0;
 	gint track = 0;
 	gchar *dummy = NULL;
 	InputPlugin *real_ip_plugin;
 
-        if (_path != NULL && *_path == '?')
-        {
-                *_path = '\0';
-                _path++;
-                track = atoi(_path);
-        }	
+#ifdef DEBUG
+    g_print("f: play_cue_uri\n");
+#endif
+    /* stop watchdog thread */
+    g_mutex_lock(cue_mutex);
+    watchdog_state = STOP;
+    g_cond_signal(cue_cond);
+    g_mutex_unlock(cue_mutex);
 
+    if (_path != NULL && *_path == '?')
+    {
+        *_path = '\0';
+        _path++;
+        track = atoi(_path);
+    }	
+	cur_cue_track = track;
 	cache_cue_file(path2);
 
-        if (cue_file == NULL)
-                return;
+    if (cue_file == NULL)
+        return;
 
 	real_ip_plugin = input_check_file(cue_file, FALSE);
 
 	if (real_ip_plugin != NULL)
 	{
-	        if (real_ip)
-	                g_free(real_ip);
-	        real_ip = g_new0(InputPlayback, 1);
+		if (real_ip)
+			g_free(real_ip);
+		real_ip = g_new0(InputPlayback, 1);
 		real_ip->plugin = real_ip_plugin;
 		real_ip->plugin->set_info = set_info_override;
 		real_ip->plugin->output = cue_ip.output;
@@ -331,7 +383,22 @@
 		real_ip->data = data->data;
 
 		real_ip->plugin->play_file(real_ip);
-		real_ip->plugin->seek(real_ip, finetune_seek ? finetune_seek / 1000 : cue_tracks[track].index / 1000 + 1);
+
+		if(real_ip->plugin->mseek) { // seek by millisecond
+#ifdef DEBUG
+			g_print("mseek\n");
+#endif
+			real_ip->plugin->mseek(real_ip, finetune_seek ? finetune_seek : cue_tracks[track].index);
+		}
+		else
+			real_ip->plugin->seek(real_ip, finetune_seek ? finetune_seek / 1000 : cue_tracks[track].index / 1000 + 1);
+
+        /* kick watchdog thread */
+        g_mutex_lock(cue_mutex);
+        watchdog_state = RUN;
+        g_cond_signal(cue_cond);
+        g_mutex_unlock(cue_mutex);
+
 		// in some plugins, NULL as 2nd arg causes crash.
 		real_ip->plugin->get_song_info(cue_file, &dummy, &file_length);
 		g_free(dummy);
@@ -340,9 +407,9 @@
 
 	finetune_seek = 0;
 
-	cur_cue_track = track;
-
-	timeout_tag = gtk_timeout_add(100, watchdog_func, data);
+#ifdef DEBUG
+    g_print("e: play_cue_uri\n");
+#endif
 }
 
 InputPlugin *get_iplugin_info(void)
@@ -368,41 +435,96 @@
  *
  *     - nenolod
  */
-static gint watchdog_func(gpointer data)
+static gpointer watchdog_func(gpointer data)
 {
-	gint time = get_output_time();
-	gboolean dir = FALSE;
-	Playlist *playlist = playlist_get_active();
+    gint time = 0;
+    Playlist *playlist = NULL;
+    GTimeVal sleep_time, startup_time;
+
+#ifdef DEBUG
+    g_print("f: watchdog\n");
+#endif
 
-	if (time == -1)
-		time = G_MAXINT;
+    while(1) {
+#if 0
+#if DEBUG
+        g_print("time = %d cur = %d cidx = %d nidx = %d\n", time, cur_cue_track,
+                cue_tracks[cur_cue_track].index,
+                cue_tracks[cur_cue_track+1].index);
+#endif
+#endif
+        g_get_current_time(&sleep_time);
+        g_time_val_add(&sleep_time, 10000); // 10msec
 
-	while (time < cue_tracks[cur_cue_track].index)
-	{
-		cur_cue_track--;
-		if (!(time < cue_tracks[cur_cue_track].index))
-			finetune_seek = time;
-		playlist_prev(playlist);
-		dir = TRUE;
-		time = get_output_time();
-		g_usleep(10000);
-	}
+        g_mutex_lock(cue_mutex);
+        switch(watchdog_state) {
+        case EXIT:
+#ifdef DEBUG
+            g_print("e: watchdog exit\n");
+#endif
+            g_mutex_unlock(cue_mutex); // stop() locks cue_mutex.
+            stop(real_ip); // need not to care about real_ip != NULL here.
+            g_thread_exit(NULL);
+            break;
+        case RUN:
+            if(!playlist)
+                playlist = playlist_get_active();
+            g_cond_timed_wait(cue_cond, cue_mutex, &sleep_time);
+            break;
+        case STOP:
+#ifdef DEBUG
+            g_print("watchdog deactivated\n");
+#endif
+            g_cond_wait(cue_cond, cue_mutex);
+            playlist = playlist_get_active();
+            break;
+        }
+        g_mutex_unlock(cue_mutex);
+
+        time = get_output_time();
+
+        if(time == 0 || (real_ip && real_ip->playing == 0))
+            continue;
 
-	while (dir == FALSE && cur_cue_track != last_cue_track && (time > cue_tracks[cur_cue_track + 1].index))
-	{
-		cur_cue_track++;
-		if (!(time > cue_tracks[cur_cue_track].index))
-			finetune_seek = time;
-		if(cfg.stopaftersong) {
-			stop(data);
-			return TRUE;
-		}
-		playlist_next(playlist);
-		time = get_output_time();
-		g_usleep(10000);
-	}
+        // prev track
+        if (time < cue_tracks[cur_cue_track].index)
+        {
+#ifdef DEBUG
+            g_print("i: watchdog prev\n");
+            g_print("time = %d cur = %d cidx = %d nidx = %d\n", time, cur_cue_track,
+                    cue_tracks[cur_cue_track].index,
+                    cue_tracks[cur_cue_track+1].index);
+#endif
+            cur_cue_track--;
+            if (time >= cue_tracks[cur_cue_track].index)
+                finetune_seek = time;
+            playlist_prev(playlist);
+        }
 
-	return TRUE;
+        // next track
+        if (cur_cue_track != last_cue_track && (time > cue_tracks[cur_cue_track + 1].index))
+        {
+#ifdef DEBUG
+            g_print("i: watchdog next\n");
+            g_print("time = %d cur = %d cidx = %d nidx = %d\n", time, cur_cue_track,
+                    cue_tracks[cur_cue_track].index,
+                    cue_tracks[cur_cue_track+1].index);
+#endif
+            cur_cue_track++;
+            if (time <= cue_tracks[cur_cue_track].index)
+                finetune_seek = time;
+
+            if(cfg.stopaftersong)
+                stop(real_ip);
+            else 
+                playlist_next(playlist);
+        }
+    }
+
+#ifdef DEBUG
+    g_print("e: watchdog\n");    
+#endif
+    return NULL; // dummy.
 }
 
 /******************************************************** cuefile */
@@ -422,6 +544,10 @@
 		g_free(cue_tracks[last_cue_track-1].title);
 		cue_tracks[last_cue_track-1].title = NULL;
 	}
+#ifdef DEBUG
+	g_print("last_cue_track = %d\n", last_cue_track);
+#endif
+	last_cue_track = 0;
 }
 
 static void cache_cue_file(char *f)