summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDarren Salt <linux@youmustbejoking.demon.co.uk>2009-12-17 18:48:07 +0000
committerDarren Salt <linux@youmustbejoking.demon.co.uk>2009-12-17 18:48:07 +0000
commit926093783c7367a23291063bcafc199aee2b12eb (patch)
tree4165a6c04853d315293b39be646acef485684cc1 /src
parent44a9e76d27c08c715df5c79f2ad3308eeadef205 (diff)
parent8bd8e600bf475426cbcd5b8f8f89fb2d6e53ec29 (diff)
downloadxine-lib-926093783c7367a23291063bcafc199aee2b12eb.tar.gz
xine-lib-926093783c7367a23291063bcafc199aee2b12eb.tar.bz2
Merge from 1.2 main.
Diffstat (limited to 'src')
-rw-r--r--src/audio_dec/ff_dvaudio_decoder.c48
-rw-r--r--src/audio_dec/fooaudio.c18
-rw-r--r--src/audio_dec/gsm610.c10
-rw-r--r--src/audio_dec/xine_a52_decoder.c24
-rw-r--r--src/audio_dec/xine_dts_decoder.c68
-rw-r--r--src/audio_dec/xine_faad_decoder.c118
-rw-r--r--src/audio_dec/xine_lpcm_decoder.c64
-rw-r--r--src/audio_dec/xine_mad_decoder.c62
-rw-r--r--src/audio_dec/xine_musepack_decoder.c122
-rw-r--r--src/audio_out/Makefile.am6
-rw-r--r--src/audio_out/audio_alsa_out.c322
-rw-r--r--src/audio_out/audio_coreaudio_out.c68
-rw-r--r--src/audio_out/audio_directx2_out.c34
-rw-r--r--src/audio_out/audio_directx_out.c70
-rw-r--r--src/audio_out/audio_esd_out.c86
-rw-r--r--src/audio_out/audio_file_out.c18
-rw-r--r--src/audio_out/audio_fusionsound_out.c84
-rw-r--r--src/audio_out/audio_irixal_out.c28
-rw-r--r--src/audio_out/audio_jack_out.c2
-rw-r--r--src/audio_out/audio_none_out.c24
-rw-r--r--src/audio_out/audio_oss_out.c162
-rw-r--r--src/audio_out/audio_sun_out.c64
-rw-r--r--src/combined/Makefile.am2
-rw-r--r--src/combined/ffmpeg/ff_audio_decoder.c82
-rw-r--r--src/combined/ffmpeg/ff_mpeg_parser.c32
-rw-r--r--src/combined/ffmpeg/ff_mpeg_parser.h2
-rw-r--r--src/combined/ffmpeg/ff_video_decoder.c286
-rw-r--r--src/combined/ffmpeg/ffmpeg_decoder.c10
-rw-r--r--src/combined/ffmpeg/ffmpeg_decoder.h10
-rw-r--r--src/combined/flac_decoder.c78
-rw-r--r--src/combined/flac_demuxer.c98
-rw-r--r--src/combined/nsf_combined.c2
-rw-r--r--src/combined/nsf_decoder.c2
-rw-r--r--src/combined/nsf_demuxer.c4
-rw-r--r--src/combined/wavpack_combined.c2
-rw-r--r--src/combined/wavpack_decoder.c18
-rw-r--r--src/combined/wavpack_demuxer.c14
-rw-r--r--src/combined/xine_ogg_demuxer.c70
-rw-r--r--src/combined/xine_speex_decoder.c42
-rw-r--r--src/combined/xine_theora_decoder.c32
-rw-r--r--src/combined/xine_vorbis_decoder.c96
-rw-r--r--src/demuxers/Makefile.am4
-rw-r--r--src/demuxers/demux_4xm.c8
-rw-r--r--src/demuxers/demux_aac.c4
-rw-r--r--src/demuxers/demux_ac3.c4
-rw-r--r--src/demuxers/demux_aiff.c10
-rw-r--r--src/demuxers/demux_asf.c170
-rw-r--r--src/demuxers/demux_aud.c2
-rw-r--r--src/demuxers/demux_avi.c108
-rw-r--r--src/demuxers/demux_cdda.c2
-rw-r--r--src/demuxers/demux_dts.c14
-rw-r--r--src/demuxers/demux_eawve.c2
-rw-r--r--src/demuxers/demux_elem.c16
-rw-r--r--src/demuxers/demux_film.c32
-rw-r--r--src/demuxers/demux_flac.c31
-rw-r--r--src/demuxers/demux_fli.c4
-rw-r--r--src/demuxers/demux_flv.c138
-rw-r--r--src/demuxers/demux_idcin.c6
-rw-r--r--src/demuxers/demux_image.c12
-rw-r--r--src/demuxers/demux_ipmovie.c18
-rw-r--r--src/demuxers/demux_matroska-chapters.c8
-rw-r--r--src/demuxers/demux_matroska.c164
-rw-r--r--src/demuxers/demux_matroska.h14
-rw-r--r--src/demuxers/demux_mng.c2
-rw-r--r--src/demuxers/demux_mod.c42
-rw-r--r--src/demuxers/demux_mpc.c82
-rw-r--r--src/demuxers/demux_mpeg.c84
-rw-r--r--src/demuxers/demux_mpeg_block.c200
-rw-r--r--src/demuxers/demux_mpeg_pes.c230
-rw-r--r--src/demuxers/demux_mpgaudio.c44
-rw-r--r--src/demuxers/demux_nsv.c56
-rw-r--r--src/demuxers/demux_playlist.c172
-rw-r--r--src/demuxers/demux_pva.c10
-rw-r--r--src/demuxers/demux_qt.c170
-rw-r--r--src/demuxers/demux_rawdv.c30
-rw-r--r--src/demuxers/demux_real.c252
-rw-r--r--src/demuxers/demux_realaudio.c72
-rw-r--r--src/demuxers/demux_roq.c20
-rw-r--r--src/demuxers/demux_shn.c4
-rw-r--r--src/demuxers/demux_slave.c14
-rw-r--r--src/demuxers/demux_smjpeg.c2
-rw-r--r--src/demuxers/demux_snd.c16
-rw-r--r--src/demuxers/demux_str.c8
-rw-r--r--src/demuxers/demux_ts.c199
-rw-r--r--src/demuxers/demux_tta.c55
-rw-r--r--src/demuxers/demux_vmd.c12
-rw-r--r--src/demuxers/demux_voc.c6
-rw-r--r--src/demuxers/demux_vox.c4
-rw-r--r--src/demuxers/demux_vqa.c4
-rw-r--r--src/demuxers/demux_wc3movie.c28
-rw-r--r--src/demuxers/demux_yuv4mpeg2.c40
-rw-r--r--src/demuxers/demux_yuv_frames.c18
-rw-r--r--src/demuxers/ebml.c26
-rw-r--r--src/demuxers/ebml.h4
-rw-r--r--src/demuxers/group_audio.c2
-rw-r--r--src/demuxers/group_audio.h10
-rw-r--r--src/demuxers/group_games.c2
-rw-r--r--src/demuxers/group_games.h10
-rw-r--r--src/demuxers/id3.c62
-rw-r--r--src/demuxers/matroska.h2
-rw-r--r--src/demuxers/qtpalette.h4
-rw-r--r--src/dxr3/Makefile.am4
-rw-r--r--src/dxr3/dxr3.h12
-rw-r--r--src/dxr3/dxr3_decode_spu.c150
-rw-r--r--src/dxr3/dxr3_decode_video.c174
-rw-r--r--src/dxr3/dxr3_mpeg_encoders.c128
-rw-r--r--src/dxr3/dxr3_scr.c58
-rw-r--r--src/dxr3/dxr3_scr.h16
-rw-r--r--src/dxr3/dxr3_spu_encoder.c38
-rw-r--r--src/dxr3/em8300.h48
-rw-r--r--src/dxr3/ffmpeg_encoder.c56
-rw-r--r--src/dxr3/video_out_dxr3.c304
-rw-r--r--src/dxr3/video_out_dxr3.h30
-rw-r--r--src/input/http_helper.c20
-rw-r--r--src/input/input_cdda.c320
-rw-r--r--src/input/input_dvb.c498
-rw-r--r--src/input/input_dvd.c254
-rw-r--r--src/input/input_file.c172
-rw-r--r--src/input/input_gnome_vfs.c10
-rw-r--r--src/input/input_http.c156
-rw-r--r--src/input/input_mms.c74
-rw-r--r--src/input/input_net.c92
-rw-r--r--src/input/input_pnm.c38
-rw-r--r--src/input/input_pvr.c414
-rw-r--r--src/input/input_rtp.c126
-rw-r--r--src/input/input_rtsp.c40
-rw-r--r--src/input/input_smb.c76
-rw-r--r--src/input/input_stdin_fifo.c28
-rw-r--r--src/input/input_v4l.c682
-rw-r--r--src/input/input_vcd.c210
-rw-r--r--src/input/libreal/asmrp.c38
-rw-r--r--src/input/libreal/real.c106
-rw-r--r--src/input/libreal/real.h2
-rw-r--r--src/input/libreal/rmff.c62
-rw-r--r--src/input/libreal/rmff.h10
-rw-r--r--src/input/libreal/sdpplin.c30
-rw-r--r--src/input/libreal/sdpplin.h4
-rw-r--r--src/input/librtsp/rtsp.c86
-rw-r--r--src/input/librtsp/rtsp.h2
-rw-r--r--src/input/librtsp/rtsp_session.c36
-rw-r--r--src/input/media_helper.c24
-rw-r--r--src/input/mms.c122
-rw-r--r--src/input/mms.h8
-rw-r--r--src/input/mmsh.c90
-rw-r--r--src/input/mmsh.h8
-rw-r--r--src/input/net_buf_ctrl.c28
-rw-r--r--src/input/net_buf_ctrl.h8
-rw-r--r--src/input/pnm.c124
-rw-r--r--src/input/pnm.h2
-rw-r--r--src/input/vcd/vcdio.c106
-rw-r--r--src/input/vcd/vcdio.h26
-rw-r--r--src/input/vcd/vcdplayer.c288
-rw-r--r--src/input/vcd/vcdplayer.h84
-rw-r--r--src/input/vcd/xine-extra.c34
-rw-r--r--src/input/vcd/xine-extra.h30
-rw-r--r--src/input/vcd/xineplug_inp_vcd.c592
-rw-r--r--src/libreal/real_common.c18
-rw-r--r--src/libreal/real_common.h10
-rw-r--r--src/libreal/xine_real_audio_decoder.c58
-rw-r--r--src/libreal/xine_real_video_decoder.c94
-rw-r--r--src/libw32dll/DirectShow/DS_AudioDecoder.c16
-rw-r--r--src/libw32dll/DirectShow/DS_VideoDecoder.c88
-rw-r--r--src/libw32dll/DirectShow/iunk.h28
-rw-r--r--src/libw32dll/Makefile.am2
-rw-r--r--src/libw32dll/common.c4
-rw-r--r--src/libw32dll/dmo/DMO_AudioDecoder.c18
-rw-r--r--src/libw32dll/dmo/DMO_VideoDecoder.c42
-rw-r--r--src/libw32dll/dmo/Makefile.am2
-rw-r--r--src/libw32dll/dmo/dmo.c2
-rw-r--r--src/libw32dll/libwin32.h28
-rw-r--r--src/libw32dll/qt_decoder.c150
-rw-r--r--src/libw32dll/qtx/qtxsdk/components.h4
-rw-r--r--src/libw32dll/w32codec.c430
-rw-r--r--src/libw32dll/w32codec.h10
-rw-r--r--src/post/audio/audio_filters.c10
-rw-r--r--src/post/audio/audio_filters.h8
-rw-r--r--src/post/audio/dsp.h4
-rw-r--r--src/post/audio/filter.c66
-rw-r--r--src/post/audio/filter.h6
-rw-r--r--src/post/audio/stretch.c194
-rw-r--r--src/post/audio/upmix.c44
-rw-r--r--src/post/audio/upmix_mono.c56
-rw-r--r--src/post/audio/volnorm.c44
-rw-r--r--src/post/audio/window.c26
-rw-r--r--src/post/audio/window.h2
-rw-r--r--src/post/deinterlace/Makefile.am2
-rw-r--r--src/post/deinterlace/plugins/Makefile.am4
-rw-r--r--src/post/deinterlace/plugins/greedy.c6
-rw-r--r--src/post/deinterlace/plugins/greedy2frame_template.c32
-rw-r--r--src/post/deinterlace/plugins/greedyhmacros.h26
-rw-r--r--src/post/deinterlace/plugins/linearblend.c2
-rw-r--r--src/post/deinterlace/plugins/tomsmocomp/tomsmocompmacros.h26
-rw-r--r--src/post/deinterlace/pulldown.c10
-rw-r--r--src/post/deinterlace/speedy.c26
-rw-r--r--src/post/deinterlace/speedy.h4
-rw-r--r--src/post/deinterlace/tvtime.h2
-rw-r--r--src/post/deinterlace/xine_plugin.c200
-rw-r--r--src/post/goom/xine_goom.c120
-rw-r--r--src/post/mosaico/mosaico.c86
-rw-r--r--src/post/mosaico/switch.c38
-rw-r--r--src/post/planar/Makefile.am4
-rw-r--r--src/post/planar/boxblur.c62
-rw-r--r--src/post/planar/denoise3d.c50
-rw-r--r--src/post/planar/eq.c42
-rw-r--r--src/post/planar/eq2.c54
-rw-r--r--src/post/planar/expand.c78
-rw-r--r--src/post/planar/fill.c44
-rw-r--r--src/post/planar/invert.c36
-rw-r--r--src/post/planar/noise.c62
-rw-r--r--src/post/planar/planar.c10
-rw-r--r--src/post/planar/pp.c50
-rw-r--r--src/post/planar/unsharp.c58
-rw-r--r--src/post/visualizations/fft.c6
-rw-r--r--src/post/visualizations/fft.h6
-rw-r--r--src/post/visualizations/fftgraph.c54
-rw-r--r--src/post/visualizations/fftscope.c42
-rw-r--r--src/post/visualizations/fooviz.c80
-rw-r--r--src/post/visualizations/oscope.c88
-rw-r--r--src/spu_dec/cc_decoder.c92
-rw-r--r--src/spu_dec/cc_decoder.h12
-rw-r--r--src/spu_dec/cmml_decoder.c50
-rw-r--r--src/spu_dec/spu_decoder.c44
-rw-r--r--src/spu_dec/spudec.c136
-rw-r--r--src/spu_dec/spudec.h12
-rw-r--r--src/spu_dec/spudvb_decoder.c122
-rw-r--r--src/spu_dec/spuhdmv_decoder.c78
-rw-r--r--src/spu_dec/sputext_decoder.c190
-rw-r--r--src/spu_dec/sputext_demuxer.c278
-rw-r--r--src/spu_dec/xine_cc_decoder.c50
-rw-r--r--src/vdr/combined_vdr.c12
-rw-r--r--src/vdr/input_vdr.c454
-rw-r--r--src/vdr/post_vdr_audio.c60
-rw-r--r--src/vdr/post_vdr_video.c110
-rw-r--r--src/video_dec/foovideo.c6
-rw-r--r--src/video_dec/gdkpixbuf.c30
-rw-r--r--src/video_dec/image.c34
-rw-r--r--src/video_dec/libmpeg2/xine_mpeg2_decoder.c16
-rw-r--r--src/video_dec/libmpeg2new/xine_mpeg2new_decoder.c28
-rw-r--r--src/video_dec/rgb.c72
-rw-r--r--src/video_dec/yuv.c38
-rw-r--r--src/video_out/Makefile.am4
-rw-r--r--src/video_out/macosx/video_window.h2
-rw-r--r--src/video_out/myglext.h8
-rw-r--r--src/video_out/video_out_aa.c50
-rw-r--r--src/video_out/video_out_caca.c36
-rw-r--r--src/video_out/video_out_directfb.c618
-rw-r--r--src/video_out/video_out_directx.c74
-rw-r--r--src/video_out/video_out_fb.c156
-rw-r--r--src/video_out/video_out_none.c58
-rw-r--r--src/video_out/video_out_opengl.c124
-rw-r--r--src/video_out/video_out_pgx32.c24
-rw-r--r--src/video_out/video_out_pgx64.c22
-rw-r--r--src/video_out/video_out_raw.c13
-rw-r--r--src/video_out/video_out_sdl.c36
-rw-r--r--src/video_out/video_out_stk.c60
-rw-r--r--src/video_out/video_out_vidix.c328
-rw-r--r--src/video_out/video_out_xcbshm.c146
-rw-r--r--src/video_out/video_out_xcbxv.c82
-rw-r--r--src/video_out/video_out_xshm.c190
-rw-r--r--src/video_out/video_out_xv.c100
-rw-r--r--src/video_out/video_out_xvmc.c268
-rw-r--r--src/video_out/video_out_xxmc.c438
-rw-r--r--src/video_out/x11osd.c62
-rw-r--r--src/video_out/x11osd.h2
-rw-r--r--src/video_out/xcbosd.c38
-rw-r--r--src/video_out/xcbosd.h2
-rw-r--r--src/video_out/xvmc_mocomp.c44
-rw-r--r--src/video_out/xvmc_vld.c38
-rw-r--r--src/video_out/xxmc.h36
-rw-r--r--src/video_out/yuv2rgb.c260
-rw-r--r--src/video_out/yuv2rgb.h6
-rw-r--r--src/video_out/yuv2rgb_mlib.c10
-rw-r--r--src/video_out/yuv2rgb_mmx.c102
-rw-r--r--src/xine-engine/accel_xvmc.h12
-rw-r--r--src/xine-engine/alphablend.c302
-rw-r--r--src/xine-engine/audio_decoder.c130
-rw-r--r--src/xine-engine/audio_out.c250
-rw-r--r--src/xine-engine/broadcaster.c96
-rw-r--r--src/xine-engine/bswap.h4
-rw-r--r--src/xine-engine/buffer.c20
-rw-r--r--src/xine-engine/buffer_types.c34
-rw-r--r--src/xine-engine/configfile.c122
-rw-r--r--src/xine-engine/demux.c108
-rw-r--r--src/xine-engine/events.c34
-rw-r--r--src/xine-engine/info_helper.c46
-rw-r--r--src/xine-engine/input_cache.c46
-rw-r--r--src/xine-engine/input_rip.c72
-rw-r--r--src/xine-engine/io_helper.c46
-rw-r--r--src/xine-engine/load_plugins.c204
-rw-r--r--src/xine-engine/lrb.c18
-rw-r--r--src/xine-engine/lrb.h8
-rw-r--r--src/xine-engine/metronom.c186
-rw-r--r--src/xine-engine/osd.c308
-rw-r--r--src/xine-engine/post.c202
-rw-r--r--src/xine-engine/refcounter.c14
-rw-r--r--src/xine-engine/resample.c82
-rw-r--r--src/xine-engine/scratch.c12
-rw-r--r--src/xine-engine/spu.c12
-rw-r--r--src/xine-engine/video_decoder.c148
-rw-r--r--src/xine-engine/video_out.c328
-rw-r--r--src/xine-engine/video_overlay.c166
-rw-r--r--src/xine-engine/vo_scale.c76
-rw-r--r--src/xine-engine/xine.c244
-rw-r--r--src/xine-engine/xine_interface.c136
-rw-r--r--src/xine-engine/xine_private.h8
-rw-r--r--src/xine-utils/array.c10
-rw-r--r--src/xine-utils/color.c116
-rw-r--r--src/xine-utils/copy.c20
-rw-r--r--src/xine-utils/cpu_accel.c12
-rw-r--r--src/xine-utils/list.c10
-rw-r--r--src/xine-utils/mangle.h4
-rw-r--r--src/xine-utils/memcpy.c2
-rw-r--r--src/xine-utils/monitor.c10
-rw-r--r--src/xine-utils/pool.c12
-rw-r--r--src/xine-utils/ring_buffer.c10
-rw-r--r--src/xine-utils/sorted_array.c10
-rw-r--r--src/xine-utils/utils.c32
-rw-r--r--src/xine-utils/xine_buffer.c26
-rw-r--r--src/xine-utils/xine_check.c26
-rw-r--r--src/xine-utils/xine_mmx.h2
-rw-r--r--src/xine-utils/xine_mutex.c16
-rw-r--r--src/xine-utils/xmllexer.c4
-rw-r--r--src/xine-utils/xmlparser.c6
323 files changed, 11719 insertions, 11649 deletions
diff --git a/src/audio_dec/ff_dvaudio_decoder.c b/src/audio_dec/ff_dvaudio_decoder.c
index eba6dee4a..f38167cf8 100644
--- a/src/audio_dec/ff_dvaudio_decoder.c
+++ b/src/audio_dec/ff_dvaudio_decoder.c
@@ -1,25 +1,25 @@
/*
* Copyright (C) 2005 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
*
* dv audio decoder based on patch by Dan Dennedy <dan@dennedy.org>
*/
-
+
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
@@ -219,29 +219,29 @@ static void dvaudio_decode_data (audio_decoder_t *this_gen, buf_element_t *buf)
int out;
audio_buffer_t *audio_buffer;
int bytes_to_send;
-
+
if (buf->decoder_flags & BUF_FLAG_PREVIEW)
return;
-
+
if (buf->decoder_flags & BUF_FLAG_STDHEADER) {
this->buf = calloc(1, AUDIOBUFSIZE);
this->bufsize = AUDIOBUFSIZE;
this->size = 0;
this->decode_buffer = calloc(1, MAXFRAMESIZE);
-
+
this->audio_sample_rate = buf->decoder_info[1];
this->audio_bits = buf->decoder_info[2];
this->audio_channels = buf->decoder_info[3];
-
+
_x_meta_info_set_utf8(this->stream, XINE_META_INFO_AUDIOCODEC, "DV Audio");
-
+
this->decoder_ok = 1;
-
+
return;
}
-
+
if (this->decoder_ok && !(buf->decoder_flags & (BUF_FLAG_HEADER|BUF_FLAG_SPECIAL))) {
-
+
if (!this->output_open) {
this->output_open = (this->stream->audio_out->open) (this->stream->audio_out,
this->stream, this->audio_bits, this->audio_sample_rate,
@@ -251,11 +251,11 @@ static void dvaudio_decode_data (audio_decoder_t *this_gen, buf_element_t *buf)
/* if the audio still isn't open, bail */
if (!this->output_open)
return;
-
+
if( this->size + buf->size > this->bufsize ) {
this->bufsize = this->size + 2 * buf->size;
xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
- _("dvaudio: increasing buffer to %d to avoid overflow.\n"),
+ _("dvaudio: increasing buffer to %d to avoid overflow.\n"),
this->bufsize);
this->buf = realloc( this->buf, this->bufsize );
}
@@ -273,14 +273,14 @@ static void dvaudio_decode_data (audio_decoder_t *this_gen, buf_element_t *buf)
bytes_consumed = dv_frame_profile(&this->buf[offset])->frame_size;
else
bytes_consumed = decode_buffer_size;
-
+
/* dispatch the decoded audio */
out = 0;
while (out < decode_buffer_size) {
- audio_buffer =
+ audio_buffer =
this->stream->audio_out->get_buffer (this->stream->audio_out);
if (audio_buffer->mem_size == 0) {
- xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
"dvaudio: Help! Allocated audio buffer with nothing in it!\n");
return;
}
@@ -316,7 +316,7 @@ static void dvaudio_decode_data (audio_decoder_t *this_gen, buf_element_t *buf)
static void dvaudio_reset (audio_decoder_t *this_gen) {
dvaudio_decoder_t *this = (dvaudio_decoder_t *) this_gen;
-
+
this->size = 0;
}
@@ -326,7 +326,7 @@ static void dvaudio_discontinuity (audio_decoder_t *this_gen) {
static void dvaudio_dispose (audio_decoder_t *this_gen) {
dvaudio_decoder_t *this = (dvaudio_decoder_t *) this_gen;
-
+
if (this->output_open)
this->stream->audio_out->close (this->stream->audio_out, this->stream);
this->output_open = 0;
@@ -354,7 +354,7 @@ static audio_decoder_t *dvaudio_open_plugin (audio_decoder_class_t *class_gen, x
this->buf = NULL;
this->size = 0;
this->decoder_ok = 0;
-
+
return &this->audio_decoder;
}
@@ -372,7 +372,7 @@ static void *init_dvaudio_plugin (xine_t *xine, void *data) {
return this;
}
-static uint32_t supported_audio_types[] = {
+static uint32_t supported_audio_types[] = {
BUF_AUDIO_DV,
0
};
@@ -381,13 +381,13 @@ static const decoder_info_t dec_info_dvaudio = {
supported_audio_types, /* supported types */
5 /* priority */
};
-
+
/*
* exported plugin catalog entry
*/
const plugin_info_t xine_plugin_info[] EXPORTED = {
- /* type, API, "name", version, special_info, init_function */
+ /* type, API, "name", version, special_info, init_function */
{ PLUGIN_AUDIO_DECODER, 16, "dvaudio", XINE_VERSION_CODE, &dec_info_dvaudio, init_dvaudio_plugin },
{ PLUGIN_NONE, 0, "", 0, NULL, NULL }
};
diff --git a/src/audio_dec/fooaudio.c b/src/audio_dec/fooaudio.c
index 7e202d627..d2f1f74a4 100644
--- a/src/audio_dec/fooaudio.c
+++ b/src/audio_dec/fooaudio.c
@@ -130,7 +130,7 @@ static void fooaudio_decode_data (audio_decoder_t *this_gen, buf_element_t *buf)
* the accumulator buffer size as necessary */
if( this->size + buf->size > this->bufsize ) {
this->bufsize = this->size + 2 * buf->size;
- xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"fooaudio: increasing source buffer to %d to avoid overflow.\n", this->bufsize);
this->buf = realloc( this->buf, this->bufsize );
}
@@ -151,8 +151,8 @@ static void fooaudio_decode_data (audio_decoder_t *this_gen, buf_element_t *buf)
* This decoder generates a continuous sine pattern based on the pts
* values sent by the xine engine. Two pts values are needed to know
* how long to make the audio. Thus, If this is the first frame or
- * a seek has occurred (indicated by this->last_pts = -1),
- * log the pts but do not create any audio.
+ * a seek has occurred (indicated by this->last_pts = -1),
+ * log the pts but do not create any audio.
*
* When a valid pts delta is generated, create n audio samples, where
* n is given as:
@@ -181,7 +181,7 @@ static void fooaudio_decode_data (audio_decoder_t *this_gen, buf_element_t *buf)
/* get an audio buffer */
audio_buffer = this->stream->audio_out->get_buffer (this->stream->audio_out);
if (audio_buffer->mem_size == 0) {
- xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
"fooaudio: Help! Allocated audio buffer with nothing in it!\n");
return;
}
@@ -196,7 +196,7 @@ static void fooaudio_decode_data (audio_decoder_t *this_gen, buf_element_t *buf)
#define WAVE_HZ 300
/* fill up the samples in the buffer */
for (i = 0; i < samples_to_send; i++)
- audio_buffer->mem[i] =
+ audio_buffer->mem[i] =
(short)(sin(2 * M_PI * this->iteration++ / WAVE_HZ) * 32767);
/* final prep for audio buffer dispatch */
@@ -296,7 +296,7 @@ static void dispose_class (audio_decoder_class_t *this_gen) {
free (this);
}
-/* This function allocates a private audio decoder class and initializes
+/* This function allocates a private audio decoder class and initializes
* the class's member functions. */
static void *init_plugin (xine_t *xine, void *data) {
@@ -312,18 +312,18 @@ static void *init_plugin (xine_t *xine, void *data) {
return this;
}
-/* This is a list of all of the internal xine audio buffer types that
+/* This is a list of all of the internal xine audio buffer types that
* this decoder is able to handle. Check src/xine-engine/buffer.h for a
* list of valid buffer types (and add a new one if the one you need does
* not exist). Terminate the list with a 0. */
-static const uint32_t audio_types[] = {
+static const uint32_t audio_types[] = {
/* BUF_AUDIO_FOO, */
0
};
/* This data structure combines the list of supported xine buffer types and
* the priority that the plugin should be given with respect to other
- * plugins that handle the same buffer type. A plugin with priority (n+1)
+ * plugins that handle the same buffer type. A plugin with priority (n+1)
* will be used instead of a plugin with priority (n). */
static const decoder_info_t dec_info_audio = {
audio_types, /* supported types */
diff --git a/src/audio_dec/gsm610.c b/src/audio_dec/gsm610.c
index 25f54d310..be98da798 100644
--- a/src/audio_dec/gsm610.c
+++ b/src/audio_dec/gsm610.c
@@ -34,7 +34,7 @@
* are deemed to have made any representations as to the suitability of this
* software for any purpose nor are held responsible for any defects of
* this software. THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE.
- *
+ *
* As a matter of courtesy, the authors request to be informed about uses
* this software has found, about bugs in this software, and about any
* improvements that may be of general interest.
@@ -125,7 +125,7 @@ static void gsm610_decode_data (audio_decoder_t *this_gen, buf_element_t *buf) {
if( this->size + buf->size > this->bufsize ) {
this->bufsize = this->size + 2 * buf->size;
- xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"gsm610: increasing source buffer to %d to avoid overflow.\n", this->bufsize);
this->buf = realloc( this->buf, this->bufsize );
}
@@ -143,7 +143,7 @@ static void gsm610_decode_data (audio_decoder_t *this_gen, buf_element_t *buf) {
/* the data should line up on a 65-byte boundary */
if ((buf->size % 65) != 0) {
- xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
"gsm610: received MS GSM block that does not line up\n");
this->size = 0;
return;
@@ -263,7 +263,7 @@ static void *init_plugin (xine_t *xine, void *data) {
return this;
}
-static const uint32_t audio_types[] = {
+static const uint32_t audio_types[] = {
BUF_AUDIO_MSGSM,
BUF_AUDIO_GSM610,
0
@@ -275,7 +275,7 @@ static const decoder_info_t dec_info_audio = {
};
const plugin_info_t xine_plugin_info[] EXPORTED = {
- /* type, API, "name", version, special_info, init_function */
+ /* type, API, "name", version, special_info, init_function */
{ PLUGIN_AUDIO_DECODER, 16, "gsm610", XINE_VERSION_CODE, &dec_info_audio, init_plugin },
{ PLUGIN_NONE, 0, "", 0, NULL, NULL }
};
diff --git a/src/audio_dec/xine_a52_decoder.c b/src/audio_dec/xine_a52_decoder.c
index 02ed2b622..bb0169a21 100644
--- a/src/audio_dec/xine_a52_decoder.c
+++ b/src/audio_dec/xine_a52_decoder.c
@@ -76,11 +76,11 @@ int a52file;
typedef struct {
audio_decoder_class_t decoder_class;
config_values_t *config;
-
+
float a52_level;
int disable_dynrng_compress;
int enable_surround_downmix;
-
+
const AVCRC *av_crc;
} a52dec_class_t;
@@ -226,7 +226,7 @@ static void a52dec_decode_frame (a52dec_decoder_t *this, int64_t pts, int previe
*/
#ifdef LOG_PTS
printf("a52dec:decode_frame:pts=%lld\n",pts);
-#endif
+#endif
if (!this->bypass_mode) {
int a52_output_flags, i;
@@ -278,7 +278,7 @@ static void a52dec_decode_frame (a52dec_decoder_t *this, int64_t pts, int previe
this->stream->audio_out->close (this->stream->audio_out, this->stream);
- this->output_open = (this->stream->audio_out->open) (this->stream->audio_out,
+ this->output_open = (this->stream->audio_out->open) (this->stream->audio_out,
this->stream, 16,
this->a52_sample_rate,
output_mode) ;
@@ -302,13 +302,13 @@ static void a52dec_decode_frame (a52dec_decoder_t *this, int64_t pts, int previe
for (i = 0; i < 6; i++) {
if (a52_block (this->a52_state)) {
xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG, "liba52: a52_block error on audio channel %d\n", i);
-#if 0
+#if 0
for(n=0;n<2000;n++) {
printf("%02x ",this->frame_buffer[n]);
if ((n % 32) == 0) printf("\n");
}
printf("\n");
-#endif
+#endif
buf->num_frames = 0;
break;
}
@@ -460,7 +460,7 @@ static void a52dec_decode_data (audio_decoder_t *this_gen, buf_element_t *buf) {
* We call the start of an A52 frame a frame header.
* So, if a A52 pack has 2 "Number of frame headers" is means that the A52 pack contains 2 A52 frame headers.
* The "First access unit" then tells us which A52 frame the PTS value applies to.
- *
+ *
* Take the following example: -
* PACK1: PTS = 10. Contains the entire A52 frame1, followed by the beginning of the frame2. PTS applies to frame1.
* PACK2: PTS = 1000, Contains the rest of frame2, and the whole of frame3. and the start of frame4. PTS applies to frame4.
@@ -582,14 +582,14 @@ static void a52dec_decode_data (audio_decoder_t *this_gen, buf_element_t *buf) {
}
}
break;
-
+
case 2: /* Filling frame_buffer with sync_info bytes */
*this->frame_ptr++ = *current++;
this->frame_todo--;
if (this->frame_todo < 1) {
this->sync_state = 3;
} else break;
-
+
case 3: { /* Ready for decode */
if (av_crc(this->class->av_crc, 0, &this->frame_buffer[2], this->frame_length - 2) != 0) { /* CRC16 failed */
xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG, "liba52:a52 frame failed crc16 checksum.\n");
@@ -622,7 +622,7 @@ static void a52dec_decode_data (audio_decoder_t *this_gen, buf_element_t *buf) {
this->syncword = 0;
this->sync_state = 0;
break;
- default: /* No come here */
+ default: /* No come here */
break;
}
}
@@ -676,14 +676,14 @@ static audio_decoder_t *open_plugin (audio_decoder_class_t *class_gen, xine_stre
this->pts_list_position = 0;
if( !this->a52_state ) {
- this->a52_state =
+ this->a52_state =
#ifdef HAVE_A52DEC_A52_H /* External liba52 */
/* When using external liba52, enable _all_ capabilities, even
if that might break stuff if they add some new capability
that depends on CPU's caps.
At the moment the only capability is DJBFFT, which is tested
only if djbfft is being used at compile time.
-
+
The actual question would be: why don't they check for
capabilities themselves?
*/
diff --git a/src/audio_dec/xine_dts_decoder.c b/src/audio_dec/xine_dts_decoder.c
index 345d821fd..2f4039696 100644
--- a/src/audio_dec/xine_dts_decoder.c
+++ b/src/audio_dec/xine_dts_decoder.c
@@ -1,18 +1,18 @@
-/*
+/*
* Copyright (C) 2000-2007 the xine project
- *
+ *
* This file is part of xine, a unix video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -75,7 +75,7 @@ typedef struct {
dts_state_t *dts_state;
int64_t pts;
- int audio_caps;
+ int audio_caps;
int sync_state;
int ac5_length, ac5_pcm_length, frame_todo;
uint32_t syncdword;
@@ -83,7 +83,7 @@ typedef struct {
uint8_t *frame_ptr;
int output_open;
-
+
int bypass_mode;
int dts_flags;
int dts_sample_rate;
@@ -91,8 +91,8 @@ typedef struct {
int dts_flags_map[11]; /* Convert from stream dts_flags to the dts_flags we want from the dts downmixer */
int ao_flags_map[11]; /* Convert from the xine AO_CAP's to dts_flags. */
int have_lfe;
-
-
+
+
} dts_decoder_t;
static void dts_reset (audio_decoder_t *const this_gen) {
@@ -143,7 +143,7 @@ static void dts_decode_frame (dts_decoder_t *this, const int64_t pts, const int
int output_mode = AO_CAP_MODE_STEREO;
uint8_t *data_out;
uint8_t *const data_in = this->frame_buffer;
-
+
lprintf("decode_frame\n");
audio_buffer = this->stream->audio_out->get_buffer (this->stream->audio_out);
audio_buffer->vpts = pts;
@@ -152,13 +152,13 @@ static void dts_decode_frame (dts_decoder_t *this, const int64_t pts, const int
/* SPDIF digital output */
if (!this->output_open) {
this->output_open = ((this->stream->audio_out->open) (this->stream->audio_out, this->stream,
- 16, this->dts_sample_rate,
+ 16, this->dts_sample_rate,
AO_CAP_MODE_AC5));
}
-
- if (!this->output_open)
+
+ if (!this->output_open)
return;
-
+
data_out=(uint8_t *) audio_buffer->mem;
if (this->ac5_length > 8191) {
xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG, "libdts: ac5_length too long\n");
@@ -176,7 +176,7 @@ static void dts_decode_frame (dts_decoder_t *this, const int64_t pts, const int
ac5_spdif_type = 0x0d; /* DTS-1 (2048-sample bursts) */
break;
default:
- xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"libdts: DTS %i-sample bursts not supported\n", this->ac5_pcm_length);
return;
}
@@ -256,17 +256,17 @@ static void dts_decode_frame (dts_decoder_t *this, const int64_t pts, const int
if (!this->output_open) {
this->output_open = (this->stream->audio_out->open) (this->stream->audio_out, this->stream,
- 16, this->dts_sample_rate,
+ 16, this->dts_sample_rate,
output_mode);
}
-
- if (!this->output_open)
+
+ if (!this->output_open)
return;
- number_of_dts_blocks = dts_blocks_num (this->dts_state);
+ number_of_dts_blocks = dts_blocks_num (this->dts_state);
audio_buffer->num_frames = 256*number_of_dts_blocks;
for(i = 0; i < number_of_dts_blocks; i++) {
if(dts_block(this->dts_state)) {
- xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"libdts: dts_block error on audio channel %d\n", i);
audio_buffer->num_frames = 0;
break;
@@ -320,10 +320,10 @@ static void dts_decode_frame (dts_decoder_t *this, const int64_t pts, const int
}
}
}
-
+
this->stream->audio_out->put_buffer (this->stream->audio_out, audio_buffer, this->stream);
-
-
+
+
}
static void dts_decode_data (audio_decoder_t *this_gen, buf_element_t *buf) {
@@ -332,7 +332,7 @@ static void dts_decode_data (audio_decoder_t *this_gen, buf_element_t *buf) {
uint8_t *current = (uint8_t *)buf->content;
uint8_t *sync_start=current + 1;
uint8_t *const end = buf->content + buf->size;
-
+
lprintf("decode_data\n");
if (buf->decoder_flags & BUF_FLAG_PREVIEW)
@@ -431,14 +431,14 @@ static void dts_decode_data (audio_decoder_t *this_gen, buf_element_t *buf) {
}
}
break;
-
+
case 2: /* Filling frame_buffer with sync_info bytes */
*this->frame_ptr++ = *current++;
this->frame_todo--;
if (this->frame_todo < 1) {
this->sync_state = 3;
} else break;
-
+
case 3: /* Ready for decode */
#if 0
dtsdec_decode_frame (this, this->pts_list[0], buf->decoder_flags & BUF_FLAG_PREVIEW);
@@ -450,18 +450,18 @@ static void dts_decode_data (audio_decoder_t *this_gen, buf_element_t *buf) {
this->syncdword = 0;
this->sync_state = 0;
break;
- default: /* No come here */
+ default: /* No come here */
break;
}
}
}
static void dts_dispose (audio_decoder_t *this_gen) {
- dts_decoder_t *const this = (dts_decoder_t *) this_gen;
-
- if (this->output_open)
+ dts_decoder_t *const this = (dts_decoder_t *) this_gen;
+
+ if (this->output_open)
this->stream->audio_out->close (this->stream->audio_out, this->stream);
-
+
free (this);
}
@@ -507,7 +507,7 @@ static audio_decoder_t *open_plugin (audio_decoder_class_t *class_gen, xine_stre
this->dts_flags_map[DTS_3F2R] = DTS_3F2R | DTS_LFE;
this->ao_flags_map[DTS_2F2R] = AO_CAP_MODE_4CHANNEL;
this->ao_flags_map[DTS_3F2R] = AO_CAP_MODE_5CHANNEL;
-
+
} else if (this->audio_caps & AO_CAP_MODE_5CHANNEL) {
this->dts_flags_map[DTS_2F2R] = DTS_2F2R;
@@ -574,7 +574,7 @@ static void *init_plugin (xine_t *xine, void *data) {
return this;
}
-static const uint32_t audio_types[] = {
+static const uint32_t audio_types[] = {
BUF_AUDIO_DTS, 0
};
@@ -584,7 +584,7 @@ static const decoder_info_t dec_info_audio = {
};
const plugin_info_t xine_plugin_info[] EXPORTED = {
- /* type, API, "name", version, special_info, init_function */
+ /* type, API, "name", version, special_info, init_function */
{ PLUGIN_AUDIO_DECODER, 16, "dts", XINE_VERSION_CODE, &dec_info_audio, init_plugin },
{ PLUGIN_NONE, 0, "", 0, NULL, NULL }
};
diff --git a/src/audio_dec/xine_faad_decoder.c b/src/audio_dec/xine_faad_decoder.c
index 9646c0744..cd58771e7 100644
--- a/src/audio_dec/xine_faad_decoder.c
+++ b/src/audio_dec/xine_faad_decoder.c
@@ -1,18 +1,18 @@
-/*
+/*
* Copyright (C) 2000-2005 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -58,29 +58,29 @@ typedef struct faad_decoder_s {
audio_decoder_t audio_decoder;
xine_stream_t *stream;
-
+
/* faad2 stuff */
NeAACDecHandle faac_dec;
NeAACDecConfigurationPtr faac_cfg;
NeAACDecFrameInfo faac_finfo;
int faac_failed;
-
+
int raw_mode;
-
+
unsigned char *buf;
int size;
int rec_audio_src_size;
int max_audio_src_size;
int pts;
-
+
unsigned char *dec_config;
int dec_config_size;
-
+
unsigned long rate;
- int bits_per_sample;
- unsigned char num_channels;
+ int bits_per_sample;
+ unsigned char num_channels;
int sbr;
-
+
int output_open;
unsigned long total_time;
@@ -138,7 +138,7 @@ static int faad_open_dec( faad_decoder_t *this ) {
if( this->dec_config ) {
used = NeAACDecInit2(this->faac_dec, this->dec_config, this->dec_config_size,
&this->rate, &this->num_channels);
-
+
if( used < 0 ) {
xprintf( this->stream->xine, XINE_VERBOSITY_LOG,
_("libfaad: libfaad NeAACDecInit2 failed.\n"));
@@ -149,7 +149,7 @@ static int faad_open_dec( faad_decoder_t *this ) {
} else {
used = NeAACDecInit(this->faac_dec, this->buf, this->size,
&this->rate, &this->num_channels);
-
+
if( used < 0 ) {
xprintf ( this->stream->xine, XINE_VERBOSITY_LOG,
_("libfaad: libfaad NeAACDecInit failed.\n"));
@@ -157,16 +157,16 @@ static int faad_open_dec( faad_decoder_t *this ) {
} else {
lprintf( "NeAACDecInit() returned rate=%"PRId32" channels=%d (used=%d)\n",
this->rate, this->num_channels, used);
-
+
this->size -= used;
memmove( this->buf, &this->buf[used], this->size );
}
}
}
-
+
if( !this->bits_per_sample )
this->bits_per_sample = 16;
-
+
if( this->faac_failed ) {
if( this->faac_dec ) {
NeAACDecClose( this->faac_dec );
@@ -176,7 +176,7 @@ static int faad_open_dec( faad_decoder_t *this ) {
} else {
faad_meta_info_set(this);
}
-
+
return this->faac_failed;
}
@@ -184,10 +184,10 @@ static int faad_open_output( faad_decoder_t *this ) {
int ao_cap_mode;
this->rec_audio_src_size = this->num_channels * FAAD_MIN_STREAMSIZE;
-
+
switch( this->num_channels ) {
case 1:
- ao_cap_mode=AO_CAP_MODE_MONO;
+ ao_cap_mode=AO_CAP_MODE_MONO;
break;
case 6:
if(this->stream->audio_out->get_capabilities(this->stream->audio_out) &
@@ -202,11 +202,11 @@ static int faad_open_output( faad_decoder_t *this ) {
}
case 2:
ao_cap_mode=AO_CAP_MODE_STEREO;
- break;
+ break;
default:
return 0;
}
-
+
this->output_open = (this->stream->audio_out->open) (this->stream->audio_out,
this->stream,
this->bits_per_sample,
@@ -221,48 +221,48 @@ static void faad_decode_audio ( faad_decoder_t *this, int end_frame ) {
uint8_t *inbuf;
audio_buffer_t *audio_buffer;
int sample_size = this->size;
-
+
if( !this->faac_dec )
return;
inbuf = this->buf;
while( (!this->raw_mode && end_frame && this->size >= 10) ||
(this->raw_mode && this->size >= this->rec_audio_src_size) ) {
-
- sample_buffer = NeAACDecDecode(this->faac_dec,
+
+ sample_buffer = NeAACDecDecode(this->faac_dec,
&this->faac_finfo, inbuf, sample_size);
-
+
if( !sample_buffer ) {
xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"libfaad: %s\n", NeAACDecGetErrorMessage(this->faac_finfo.error));
- used = 1;
+ used = 1;
} else {
used = this->faac_finfo.bytesconsumed;
-
+
/* raw AAC parameters might only be known after decoding the first frame */
if( !this->dec_config &&
(this->num_channels != this->faac_finfo.channels ||
this->rate != this->faac_finfo.samplerate) ) {
-
+
this->num_channels = this->faac_finfo.channels;
this->rate = this->faac_finfo.samplerate;
-
+
lprintf("NeAACDecDecode() returned rate=%"PRId32" channels=%d used=%d\n",
this->rate, this->num_channels, used);
-
+
this->stream->audio_out->close (this->stream->audio_out, this->stream);
this->output_open = 0;
faad_open_output( this );
faad_meta_info_set( this );
}
-
+
/* faad doesn't tell us about sbr until after the first frame */
if (this->sbr != this->faac_finfo.sbr) {
this->sbr = this->faac_finfo.sbr;
faad_meta_info_set( this );
}
-
+
/* estimate bitrate */
this->total_time += (1000*this->faac_finfo.samples/(this->rate*this->num_channels));
this->total_data += 8*used;
@@ -308,25 +308,25 @@ static void faad_decode_audio ( faad_decoder_t *this, int end_frame ) {
while( decoded ) {
audio_buffer = this->stream->audio_out->get_buffer (this->stream->audio_out);
-
+
if( decoded < audio_buffer->mem_size )
- outsize = decoded;
+ outsize = decoded;
else
outsize = audio_buffer->mem_size;
-
+
xine_fast_memcpy( audio_buffer->mem, sample_buffer, outsize );
audio_buffer->num_frames = outsize / (this->num_channels*2);
audio_buffer->vpts = this->pts;
this->stream->audio_out->put_buffer (this->stream->audio_out, audio_buffer, this->stream);
-
+
this->pts = 0;
decoded -= outsize;
sample_buffer += outsize;
}
}
-
+
if(used >= this->size){
this->size = 0;
} else {
@@ -335,7 +335,7 @@ static void faad_decode_audio ( faad_decoder_t *this, int end_frame ) {
}
if( !this->raw_mode )
- this->size = 0;
+ this->size = 0;
}
if( this->size )
@@ -346,31 +346,31 @@ static void faad_decode_audio ( faad_decoder_t *this, int end_frame ) {
static void faad_decode_data (audio_decoder_t *this_gen, buf_element_t *buf) {
faad_decoder_t *this = (faad_decoder_t *) this_gen;
-
+
if (buf->decoder_flags & BUF_FLAG_PREVIEW)
return;
/* store config information from ESDS mp4/qt atom */
if( !this->faac_dec && (buf->decoder_flags & BUF_FLAG_SPECIAL) &&
buf->decoder_info[1] == BUF_SPECIAL_DECODER_CONFIG ) {
-
+
this->dec_config = malloc(buf->decoder_info[2]);
this->dec_config_size = buf->decoder_info[2];
memcpy(this->dec_config, buf->decoder_info_ptr[2], buf->decoder_info[2]);
-
+
if( faad_open_dec(this) )
return;
this->raw_mode = 0;
}
- /* get audio parameters from file header
- (may be overwritten by libfaad returned parameters) */
+ /* get audio parameters from file header
+ (may be overwritten by libfaad returned parameters) */
if (buf->decoder_flags & BUF_FLAG_STDHEADER) {
this->rate=buf->decoder_info[1];
- this->bits_per_sample=buf->decoder_info[2] ;
- this->num_channels=buf->decoder_info[3] ;
-
+ this->bits_per_sample=buf->decoder_info[2] ;
+ this->num_channels=buf->decoder_info[3] ;
+
if( buf->size > sizeof(xine_waveformatex) ) {
xine_waveformatex *wavex = (xine_waveformatex *) buf->content;
@@ -379,7 +379,7 @@ static void faad_decode_data (audio_decoder_t *this_gen, buf_element_t *buf) {
this->dec_config_size = wavex->cbSize;
memcpy(this->dec_config, buf->content + sizeof(xine_waveformatex),
wavex->cbSize);
-
+
if( faad_open_dec(this) )
return;
@@ -395,15 +395,15 @@ static void faad_decode_data (audio_decoder_t *this_gen, buf_element_t *buf) {
if( !this->size )
this->pts = buf->pts;
-
+
if( this->size + buf->size > this->max_audio_src_size ) {
this->max_audio_src_size = this->size + 2 * buf->size;
this->buf = realloc( this->buf, this->max_audio_src_size );
}
-
+
memcpy (&this->buf[this->size], buf->content, buf->size);
this->size += buf->size;
-
+
if( !this->faac_dec && faad_open_dec(this) )
return;
@@ -421,23 +421,23 @@ static void faad_discontinuity (audio_decoder_t *this_gen) {
static void faad_dispose (audio_decoder_t *this_gen) {
- faad_decoder_t *this = (faad_decoder_t *) this_gen;
+ faad_decoder_t *this = (faad_decoder_t *) this_gen;
- if (this->output_open)
+ if (this->output_open)
this->stream->audio_out->close (this->stream->audio_out, this->stream);
this->output_open = 0;
-
+
if( this->buf )
free(this->buf);
this->buf = NULL;
this->size = 0;
this->max_audio_src_size = 0;
-
+
if( this->dec_config )
free(this->dec_config);
this->dec_config = NULL;
this->dec_config_size = 0;
-
+
if( this->faac_dec )
NeAACDecClose(this->faac_dec);
this->faac_dec = NULL;
@@ -461,7 +461,7 @@ static audio_decoder_t *open_plugin (audio_decoder_class_t *class_gen, xine_stre
this->stream = stream;
this->output_open = 0;
this->raw_mode = 1;
- this->faac_dec = NULL;
+ this->faac_dec = NULL;
this->faac_failed = 0;
this->buf = NULL;
this->size = 0;
@@ -490,7 +490,7 @@ static void *init_plugin (xine_t *xine, void *data) {
return this;
}
-static const uint32_t audio_types[] = {
+static const uint32_t audio_types[] = {
BUF_AUDIO_AAC, 0
};
diff --git a/src/audio_dec/xine_lpcm_decoder.c b/src/audio_dec/xine_lpcm_decoder.c
index ebaceee8d..f5e2aeb6d 100644
--- a/src/audio_dec/xine_lpcm_decoder.c
+++ b/src/audio_dec/xine_lpcm_decoder.c
@@ -1,18 +1,18 @@
-/*
+/*
* Copyright (C) 2000-2003 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -62,10 +62,10 @@ typedef struct lpcm_decoder_s {
xine_stream_t *stream;
uint32_t rate;
- uint32_t bits_per_sample;
- uint32_t number_of_channels;
- uint32_t ao_cap_mode;
-
+ uint32_t bits_per_sample;
+ uint32_t number_of_channels;
+ uint32_t ao_cap_mode;
+
int output_open;
int cpu_be; /**< TRUE, if we're a Big endian CPU */
} lpcm_decoder_t;
@@ -86,7 +86,7 @@ static void lpcm_decode_data (audio_decoder_t *this_gen, buf_element_t *buf) {
int stream_be;
audio_buffer_t *audio_buffer;
int format_changed = 0;
-
+
/* Drop preview data */
if (buf->decoder_flags & BUF_FLAG_PREVIEW)
return;
@@ -97,7 +97,7 @@ static void lpcm_decode_data (audio_decoder_t *this_gen, buf_element_t *buf) {
unsigned int bits_per_sample = 16;
unsigned int sample_rate = 0;
unsigned int num_channels;
-
+
num_channels = (buf->decoder_info[2] & 0x7) + 1;
switch ((buf->decoder_info[2]>>4) & 3) {
case 0: sample_rate = 48000; break;
@@ -110,7 +110,7 @@ static void lpcm_decode_data (audio_decoder_t *this_gen, buf_element_t *buf) {
case 1: bits_per_sample = 20; break;
case 2: bits_per_sample = 24; break;
}
-
+
if( this->bits_per_sample != bits_per_sample ||
this->number_of_channels != num_channels ||
this->rate != sample_rate ||
@@ -119,16 +119,16 @@ static void lpcm_decode_data (audio_decoder_t *this_gen, buf_element_t *buf) {
this->number_of_channels = num_channels;
this->rate = sample_rate;
format_changed++;
- }
+ }
}
-
+
if( buf->decoder_flags & BUF_FLAG_STDHEADER ) {
this->rate=buf->decoder_info[1];
- this->bits_per_sample=buf->decoder_info[2] ;
- this->number_of_channels=buf->decoder_info[3] ;
+ this->bits_per_sample=buf->decoder_info[2] ;
+ this->number_of_channels=buf->decoder_info[3] ;
format_changed++;
}
-
+
/*
* (re-)open output device
*/
@@ -152,11 +152,11 @@ static void lpcm_decode_data (audio_decoder_t *this_gen, buf_element_t *buf) {
/* stream/meta info */
_x_meta_info_set_utf8(this->stream, XINE_META_INFO_AUDIOCODEC, "Linear PCM");
- _x_stream_info_set(this->stream, XINE_STREAM_INFO_AUDIO_BITRATE,
+ _x_stream_info_set(this->stream, XINE_STREAM_INFO_AUDIO_BITRATE,
this->bits_per_sample * this->rate * this->number_of_channels);
}
- if (!this->output_open || (buf->decoder_flags & BUF_FLAG_HEADER) )
+ if (!this->output_open || (buf->decoder_flags & BUF_FLAG_HEADER) )
return;
audio_buffer = this->stream->audio_out->get_buffer (this->stream->audio_out);
@@ -164,7 +164,7 @@ static void lpcm_decode_data (audio_decoder_t *this_gen, buf_element_t *buf) {
/* Swap LPCM samples into native byte order, if necessary */
buf->type &= 0xffff0000;
stream_be = ( buf->type == BUF_AUDIO_LPCM_BE );
-
+
if( this->bits_per_sample == 16 ){
if (stream_be != this->cpu_be)
swab (sample_buffer, audio_buffer->mem, buf->size);
@@ -175,20 +175,20 @@ static void lpcm_decode_data (audio_decoder_t *this_gen, buf_element_t *buf) {
uint8_t *s = (uint8_t *)sample_buffer;
uint8_t *d = (uint8_t *)audio_buffer->mem;
int n = buf->size;
-
+
if (stream_be != this->cpu_be) {
while( n >= 0 ) {
swab( s, d, 8 );
s += 10;
d += 8;
- n -= 10;
+ n -= 10;
}
} else {
while( n >= 0 ) {
memcpy( d, s, 8 );
s += 10;
d += 8;
- n -= 10;
+ n -= 10;
}
}
} else if( this->bits_per_sample == 24 ) {
@@ -227,7 +227,7 @@ static void lpcm_decode_data (audio_decoder_t *this_gen, buf_element_t *buf) {
} else {
memcpy (audio_buffer->mem, sample_buffer, buf->size);
}
-
+
audio_buffer->vpts = buf->pts;
audio_buffer->num_frames = (((buf->size*8)/this->number_of_channels)/this->bits_per_sample);
@@ -236,9 +236,9 @@ static void lpcm_decode_data (audio_decoder_t *this_gen, buf_element_t *buf) {
}
static void lpcm_dispose (audio_decoder_t *this_gen) {
- lpcm_decoder_t *this = (lpcm_decoder_t *) this_gen;
+ lpcm_decoder_t *this = (lpcm_decoder_t *) this_gen;
- if (this->output_open)
+ if (this->output_open)
this->stream->audio_out->close (this->stream->audio_out, this->stream);
this->output_open = 0;
@@ -258,11 +258,11 @@ static audio_decoder_t *open_plugin (audio_decoder_class_t *class_gen, xine_stre
this->output_open = 0;
this->rate = 0;
- this->bits_per_sample=0;
- this->number_of_channels=0;
- this->ao_cap_mode=0;
+ this->bits_per_sample=0;
+ this->number_of_channels=0;
+ this->ao_cap_mode=0;
this->stream = stream;
-
+
this->cpu_be = ( htons(1) == 1 );
return &this->audio_decoder;
@@ -282,7 +282,7 @@ static void *init_plugin (xine_t *xine, void *data) {
return this;
}
-static const uint32_t audio_types[] = {
+static const uint32_t audio_types[] = {
BUF_AUDIO_LPCM_BE, BUF_AUDIO_LPCM_LE, 0
};
@@ -292,7 +292,7 @@ static const decoder_info_t dec_info_audio = {
};
const plugin_info_t xine_plugin_info[] EXPORTED = {
- /* type, API, "name", version, special_info, init_function */
+ /* type, API, "name", version, special_info, init_function */
{ PLUGIN_AUDIO_DECODER, 16, "pcm", XINE_VERSION_CODE, &dec_info_audio, init_plugin },
{ PLUGIN_NONE, 0, "", 0, NULL, NULL }
};
diff --git a/src/audio_dec/xine_mad_decoder.c b/src/audio_dec/xine_mad_decoder.c
index 9d66d4f5b..3338028dd 100644
--- a/src/audio_dec/xine_mad_decoder.c
+++ b/src/audio_dec/xine_mad_decoder.c
@@ -1,18 +1,18 @@
-/*
+/*
* Copyright (C) 2000-2003 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -73,7 +73,7 @@ typedef struct mad_decoder_s {
int64_t pts;
- struct mad_synth synth;
+ struct mad_synth synth;
struct mad_stream stream;
struct mad_frame frame;
@@ -115,7 +115,7 @@ static void mad_reset (audio_decoder_t *this_gen) {
static void mad_discontinuity (audio_decoder_t *this_gen) {
mad_decoder_t *this = (mad_decoder_t *) this_gen;
-
+
this->pts = 0;
}
@@ -165,7 +165,7 @@ static void mad_decode_data (audio_decoder_t *this_gen, buf_element_t *buf) {
buf->size, INPUT_BUF_SIZE-this->bytes_in_buffer);
buf->size = INPUT_BUF_SIZE-this->bytes_in_buffer;
}
-
+
if ((buf->decoder_flags & BUF_FLAG_HEADER) == 0) {
/* reset decoder on leaving preview mode */
@@ -179,15 +179,15 @@ static void mad_decode_data (audio_decoder_t *this_gen, buf_element_t *buf) {
bytes_in_buffer_at_pts = this->bytes_in_buffer;
- xine_fast_memcpy (&this->buffer[this->bytes_in_buffer],
+ xine_fast_memcpy (&this->buffer[this->bytes_in_buffer],
buf->content, buf->size);
this->bytes_in_buffer += buf->size;
-
+
/*
printf ("libmad: decode data - doing it\n");
*/
- mad_stream_buffer (&this->stream, this->buffer,
+ mad_stream_buffer (&this->stream, this->buffer,
this->bytes_in_buffer);
if (this->bytes_in_buffer < MAD_MIN_SIZE)
@@ -211,7 +211,7 @@ static void mad_decode_data (audio_decoder_t *this_gen, buf_element_t *buf) {
if (this->stream.next_frame) {
int num_bytes =
this->buffer + this->bytes_in_buffer - this->stream.next_frame;
-
+
/* printf("libmad: MAD_ERROR_BUFLEN\n"); */
memmove(this->buffer, this->stream.next_frame, num_bytes);
@@ -225,16 +225,16 @@ static void mad_decode_data (audio_decoder_t *this_gen, buf_element_t *buf) {
this->needs_more_data = 1;
return;
- default:
+ default:
lprintf ("error 0x%04X, mad_stream_buffer %d bytes\n", this->stream.error, this->bytes_in_buffer);
- mad_stream_buffer (&this->stream, this->buffer,
+ mad_stream_buffer (&this->stream, this->buffer,
this->bytes_in_buffer);
}
} else {
int mode = (this->frame.header.mode == MAD_MODE_SINGLE_CHANNEL) ? AO_CAP_MODE_MONO : AO_CAP_MODE_STEREO;
- if (!this->output_open
+ if (!this->output_open
|| (this->output_sampling_rate != this->frame.header.samplerate)
|| (this->output_mode != mode)) {
@@ -250,23 +250,23 @@ static void mad_decode_data (audio_decoder_t *this_gen, buf_element_t *buf) {
if (! _x_meta_info_get(this->xstream, XINE_META_INFO_AUDIOCODEC)) {
switch (this->frame.header.layer) {
case MAD_LAYER_I:
- _x_meta_info_set_utf8(this->xstream, XINE_META_INFO_AUDIOCODEC,
+ _x_meta_info_set_utf8(this->xstream, XINE_META_INFO_AUDIOCODEC,
"MPEG audio layer 1 (lib: MAD)");
break;
case MAD_LAYER_II:
- _x_meta_info_set_utf8(this->xstream, XINE_META_INFO_AUDIOCODEC,
+ _x_meta_info_set_utf8(this->xstream, XINE_META_INFO_AUDIOCODEC,
"MPEG audio layer 2 (lib: MAD)");
break;
case MAD_LAYER_III:
- _x_meta_info_set_utf8(this->xstream, XINE_META_INFO_AUDIOCODEC,
+ _x_meta_info_set_utf8(this->xstream, XINE_META_INFO_AUDIOCODEC,
"MPEG audio layer 3 (lib: MAD)");
break;
default:
- _x_meta_info_set_utf8(this->xstream, XINE_META_INFO_AUDIOCODEC,
+ _x_meta_info_set_utf8(this->xstream, XINE_META_INFO_AUDIOCODEC,
"MPEG audio (lib: MAD)");
}
}
-
+
if (this->output_open) {
this->xstream->audio_out->close (this->xstream->audio_out, this->xstream);
this->output_open = 0;
@@ -274,7 +274,7 @@ static void mad_decode_data (audio_decoder_t *this_gen, buf_element_t *buf) {
if (!this->output_open) {
this->output_open = (this->xstream->audio_out->open) (this->xstream->audio_out,
this->xstream, 16,
- this->frame.header.samplerate,
+ this->frame.header.samplerate,
mode) ;
}
if (!this->output_open) {
@@ -287,7 +287,7 @@ static void mad_decode_data (audio_decoder_t *this_gen, buf_element_t *buf) {
mad_synth_frame (&this->synth, &this->frame);
if ( (buf->decoder_flags & BUF_FLAG_PREVIEW) == 0 ) {
-
+
unsigned int nchannels, nsamples;
mad_fixed_t const *left_ch, *right_ch;
struct mad_pcm *pcm = &this->synth.pcm;
@@ -323,10 +323,10 @@ static void mad_decode_data (audio_decoder_t *this_gen, buf_element_t *buf) {
while (nsamples--) {
/* output sample(s) in 16-bit signed little-endian PCM */
-
+
*output++ = scale(*left_ch++);
-
- if (nchannels == 2)
+
+ if (nchannels == 2)
*output++ = scale(*right_ch++);
}
@@ -371,13 +371,13 @@ static void mad_decode_data (audio_decoder_t *this_gen, buf_element_t *buf) {
static void mad_dispose (audio_decoder_t *this_gen) {
- mad_decoder_t *this = (mad_decoder_t *) this_gen;
+ mad_decoder_t *this = (mad_decoder_t *) this_gen;
mad_synth_finish (&this->synth);
mad_frame_finish (&this->frame);
mad_stream_finish(&this->stream);
- if (this->output_open) {
+ if (this->output_open) {
this->xstream->audio_out->close (this->xstream->audio_out, this->xstream);
this->output_open = 0;
}
@@ -408,7 +408,7 @@ static audio_decoder_t *open_plugin (audio_decoder_class_t *class_gen, xine_stre
this->stream.options = MAD_OPTION_IGNORECRC;
- lprintf ("init\n");
+ lprintf ("init\n");
return &this->audio_decoder;
}
@@ -419,7 +419,7 @@ static audio_decoder_t *open_plugin (audio_decoder_class_t *class_gen, xine_stre
static void *init_plugin (xine_t *xine, void *data) {
mad_class_t *this;
-
+
this = (mad_class_t *) calloc(1, sizeof(mad_class_t));
this->decoder_class.open_plugin = open_plugin;
@@ -430,7 +430,7 @@ static void *init_plugin (xine_t *xine, void *data) {
return this;
}
-static const uint32_t audio_types[] = {
+static const uint32_t audio_types[] = {
BUF_AUDIO_MPEG, 0
};
@@ -440,7 +440,7 @@ static const decoder_info_t dec_info_audio = {
};
const plugin_info_t xine_plugin_info[] EXPORTED = {
- /* type, API, "name", version, special_info, init_function */
+ /* type, API, "name", version, special_info, init_function */
{ PLUGIN_AUDIO_DECODER, 16, "mad", XINE_VERSION_CODE, &dec_info_audio, init_plugin },
{ PLUGIN_NONE, 0, "", 0, NULL, NULL }
};
diff --git a/src/audio_dec/xine_musepack_decoder.c b/src/audio_dec/xine_musepack_decoder.c
index 42ba64108..93991832a 100644
--- a/src/audio_dec/xine_musepack_decoder.c
+++ b/src/audio_dec/xine_musepack_decoder.c
@@ -88,10 +88,10 @@ typedef struct mpc_decoder_s {
#else
mpc_demux *decoder;
#endif
-
+
int decoder_ok;
unsigned int current_frame;
-
+
int32_t file_size;
} mpc_decoder_t;
@@ -100,26 +100,26 @@ typedef struct mpc_decoder_s {
/**************************************************************************
* musepack specific functions
*************************************************************************/
-
+
/* Reads size bytes of data into buffer at ptr. */
static int32_t mpc_reader_read(void *const data, void *const ptr, int size) {
mpc_decoder_t *const this = (mpc_decoder_t *) data;
-
+
lprintf("mpc_reader_read: size=%d\n", size);
-
+
/* Don't try to read more data than we have */
if (size > (this->size - this->read))
size = this->size - this->read;
/* Copy the data */
xine_fast_memcpy(ptr, &this->buf[this->read], size);
-
+
/* Update our position in the data buffer */
this->read += size;
-
+
return size;
}
-
+
/* Seeks to byte position offset. */
#ifndef HAVE_MPC_MPCDEC_H
static mpc_bool_t mpc_reader_seek(void *const data, const int32_t offset) {
@@ -128,13 +128,13 @@ static mpc_bool_t mpc_reader_seek(void *const data, const int32_t offset) {
static mpc_bool_t mpc_reader_seek(mpc_reader *data, int32_t offset) {
mpc_decoder_t *const this = (mpc_decoder_t *) data->data;
#endif
-
+
lprintf("mpc_reader_seek: offset=%d\n", offset);
-
+
/* seek is only called when reading the header so we can assume
* that the buffer starts at the start of the file */
this->read = offset;
-
+
#ifndef HAVE_MPC_MPCDEC_H
return TRUE;
#else
@@ -149,7 +149,7 @@ static int32_t mpc_reader_tell(void *const data) {
static int32_t mpc_reader_tell(mpc_reader *const data) {
#endif
lprintf("mpc_reader_tell\n");
-
+
/* Tell isn't used so just return 0 */
return 0;
}
@@ -162,9 +162,9 @@ static int32_t mpc_reader_get_size(void *const data) {
static int32_t mpc_reader_get_size(mpc_reader *const data) {
mpc_decoder_t *const this = (mpc_decoder_t *) data->data;
#endif
-
+
lprintf("mpc_reader_get_size\n");
-
+
return this->file_size;
}
@@ -172,7 +172,7 @@ static int32_t mpc_reader_get_size(mpc_reader *const data) {
#ifndef HAVE_MPC_MPCDEC_H
static mpc_bool_t mpc_reader_canseek(void *data) {
lprintf("mpc_reader_canseek\n");
-
+
return TRUE;
#else
static mpc_bool_t mpc_reader_canseek(mpc_reader *data) {
@@ -213,9 +213,9 @@ static int mpc_decode_frame (mpc_decoder_t *this) {
#ifdef HAVE_MPC_MPCDEC_H
mpc_frame_info frame;
#endif
-
+
lprintf("mpd_decode_frame\n");
-
+
#ifndef HAVE_MPC_MPCDEC_H
frames = mpc_decoder_decode(&this->decoder, buffer, 0, 0);
#else
@@ -223,26 +223,26 @@ static int mpc_decode_frame (mpc_decoder_t *this) {
mpc_demux_decode(this->decoder, &frame);
frames = frame.samples;
#endif
-
+
if (frames > 0) {
- audio_buffer_t *audio_buffer;
+ audio_buffer_t *audio_buffer;
int16_t *int_samples;
-
+
lprintf("got %d samples\n", frames);
-
+
/* Get audio buffer */
audio_buffer = this->stream->audio_out->get_buffer (this->stream->audio_out);
audio_buffer->vpts = 0;
audio_buffer->num_frames = frames;
-
+
/* Convert samples */
int_samples = (int16_t *) audio_buffer->mem;
float_to_int(buffer, int_samples, frames*this->channels);
-
+
/* Output converted samples */
this->stream->audio_out->put_buffer (this->stream->audio_out, audio_buffer, this->stream);
}
-
+
return frames;
}
@@ -255,28 +255,28 @@ static void mpc_decode_data (audio_decoder_t *this_gen, buf_element_t *buf) {
int err;
lprintf("mpc_decode_data\n");
-
+
if (!_x_stream_info_get(this->stream, XINE_STREAM_INFO_AUDIO_HANDLED))
return;
-
+
/* We don't handle special buffers */
if (buf->decoder_flags & BUF_FLAG_SPECIAL)
return;
-
+
/* Read header */
if (buf->decoder_flags & BUF_FLAG_HEADER) {
-
+
lprintf("header\n");
-
+
/* File size is in decoder_info[0] */
this->file_size = buf->decoder_info[0];
-
+
/* Initialise the data accumulation buffer */
this->buf = calloc(1, INIT_BUFSIZE);
this->buf_max = INIT_BUFSIZE;
this->read = 0;
this->size = 0;
-
+
/* Initialise the reader */
this->reader.read = mpc_reader_read;
this->reader.seek = mpc_reader_seek;
@@ -284,11 +284,11 @@ static void mpc_decode_data (audio_decoder_t *this_gen, buf_element_t *buf) {
this->reader.get_size = mpc_reader_get_size;
this->reader.canseek = mpc_reader_canseek;
this->reader.data = this;
-
+
/* Copy header to buffer */
xine_fast_memcpy(this->buf, buf->content, buf->size);
this->size = buf->size;
-
+
#ifdef HAVE_MPC_MPCDEC_H
this->decoder = mpc_demux_init(&this->reader);
if (!this->decoder) {
@@ -301,28 +301,28 @@ static void mpc_decode_data (audio_decoder_t *this_gen, buf_element_t *buf) {
#else
/* Initialise and read stream info */
mpc_streaminfo_init(&this->streaminfo);
-
+
if ((err = mpc_streaminfo_read(&this->streaminfo, &this->reader))) {
xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
_("libmusepack: mpc_streaminfo_read failed: %d\n"), err);
-
+
_x_stream_info_set(this->stream, XINE_STREAM_INFO_AUDIO_HANDLED, 0);
return;
}
#endif
-
+
this->sample_rate = this->streaminfo.sample_freq;
this->channels = this->streaminfo.channels;
this->bits_per_sample = 16;
-
+
/* After the header the demuxer starts sending data from an offset
* of 28 bytes */
this->size = 28;
-
+
/* We need to keep track of the current frame so we now when we've
* reached the end of the stream */
this->current_frame = 0;
-
+
/* Setup the decoder */
#ifndef HAVE_MPC_MPCDEC_H
mpc_decoder_setup(&this->decoder, &this->reader);
@@ -330,16 +330,16 @@ static void mpc_decode_data (audio_decoder_t *this_gen, buf_element_t *buf) {
this->decoder_ok = 0;
/* Take this opportunity to initialize stream/meta information */
- _x_meta_info_set_utf8(this->stream, XINE_META_INFO_AUDIOCODEC,
+ _x_meta_info_set_utf8(this->stream, XINE_META_INFO_AUDIOCODEC,
"Musepack (libmusepack)");
- _x_stream_info_set(this->stream, XINE_STREAM_INFO_AUDIO_BITRATE,
+ _x_stream_info_set(this->stream, XINE_STREAM_INFO_AUDIO_BITRATE,
(int) this->streaminfo.average_bitrate);
return;
}
lprintf("data: %u size=%u read=%u\n", buf->size, this->size, this->read);
-
+
/* if the audio output is not open yet, open the audio output */
if (!this->output_open) {
this->output_open = (this->stream->audio_out->open) (
@@ -353,7 +353,7 @@ static void mpc_decode_data (audio_decoder_t *this_gen, buf_element_t *buf) {
/* if the audio still isn't open, do not go any further with the decode */
if (!this->output_open)
return;
-
+
/* If we run out of space in our internal buffer we discard what's
* already been read */
if (((this->size + buf->size) > this->buf_max) && this->read) {
@@ -362,7 +362,7 @@ static void mpc_decode_data (audio_decoder_t *this_gen, buf_element_t *buf) {
memmove(this->buf, &this->buf[this->read], this->size);
this->read = 0;
}
-
+
/* If there still isn't space we have to increase the size of the
* internal buffer */
if ((this->size + buf->size) > this->buf_max) {
@@ -371,11 +371,11 @@ static void mpc_decode_data (audio_decoder_t *this_gen, buf_element_t *buf) {
this->buf_max += 2*buf->size;
this->buf = realloc(this->buf, this->buf_max);
}
-
+
/* Copy data */
xine_fast_memcpy(&this->buf[this->size], buf->content, buf->size);
this->size += buf->size;
-
+
/* Time to decode */
if (buf->decoder_flags & BUF_FLAG_FRAME_END) {
/* Increment frame count */
@@ -388,45 +388,45 @@ static void mpc_decode_data (audio_decoder_t *this_gen, buf_element_t *buf) {
_("libmusepack: data after last frame ignored\n"));
return;
}
-
+
if (!this->decoder_ok) {
/* We require MPC_DECODER_MEMSIZE bytes to initialise the decoder */
if ((this->size - this->read) >= MPC_DECODER_MEMSIZE) {
lprintf("initialise");
-
+
#ifndef HAVE_MPC_MPCDEC_H
if (!mpc_decoder_initialize(&this->decoder, &this->streaminfo)) {
#else
if (!this->decoder) {
#endif
xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
- _("libmusepack: mpc_decoder_initialise failed\n"));
-
+ _("libmusepack: mpc_decoder_initialise failed\n"));
+
_x_stream_info_set(this->stream, XINE_STREAM_INFO_AUDIO_HANDLED, 0);
return;
}
-
+
this->decoder_ok = 1;
} else {
/* Not enough data yet */
return;
}
}
-
+
/* mpc_decoder_decode may cause a read of MPC_DECODER_MEMSIZE/2 bytes so
* make sure we have enough data available */
if ((this->size - this->read) >= MPC_DECODER_MEMSIZE2) {
lprintf("decoding\n");
-
+
if ((err = mpc_decode_frame(this)) < 0) {
xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
- _("libmusepack: mpc_decoder_decode failed: %d\n"), err);
-
+ _("libmusepack: mpc_decoder_decode failed: %d\n"), err);
+
_x_stream_info_set(this->stream, XINE_STREAM_INFO_AUDIO_HANDLED, 0);
return;
}
}
-
+
/* If we are at the end of the stream we decode the remaining frames as we
* know we'll have enough data */
#ifndef HAVE_MPC_MPCDEC_H
@@ -435,14 +435,14 @@ static void mpc_decode_data (audio_decoder_t *this_gen, buf_element_t *buf) {
if (this->current_frame == this->streaminfo.samples) {
#endif
lprintf("flushing buffers\n");
-
+
do {
if ((err = mpc_decode_frame(this)) < 0) {
xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
_("libmusepack: mpc_decoder_decode failed: %d\n"), err);
}
} while (err > 0);
-
+
lprintf("buffers flushed\n");
}
}
@@ -474,7 +474,7 @@ static void mpc_dispose (audio_decoder_t *this_gen) {
if (this->decoder)
mpc_demux_exit(this->decoder);
#endif
-
+
free(this);
}
@@ -495,7 +495,7 @@ static audio_decoder_t *open_plugin (audio_decoder_class_t *class_gen, xine_stre
/* audio output is not open at the start */
this->output_open = 0;
-
+
/* no buffer yet */
this->buf = NULL;
@@ -522,7 +522,7 @@ static void *init_plugin (xine_t *xine, void *data) {
return this;
}
-static const uint32_t audio_types[] = {
+static const uint32_t audio_types[] = {
BUF_AUDIO_MPC,
0
};
diff --git a/src/audio_out/Makefile.am b/src/audio_out/Makefile.am
index 958c87cea..a22db6e96 100644
--- a/src/audio_out/Makefile.am
+++ b/src/audio_out/Makefile.am
@@ -7,7 +7,7 @@ AM_LDFLAGS = $(xineplug_ldflags)
##
# IMPORTANT:
# ---------
-# all xine audio out plugins should be named like the
+# all xine audio out plugins should be named like the
# scheme "xineplug_ao_out_"
#
@@ -86,14 +86,14 @@ xineplug_ao_out_alsa_la_SOURCES = audio_alsa_out.c
xineplug_ao_out_alsa_la_LIBADD = $(XINE_LIB) $(ALSA_LIBS) $(PTHREAD_LIBS) $(LTLIBINTL)
xineplug_ao_out_alsa_la_CFLAGS = $(AM_CFLAGS) $(ALSA_CFLAGS)
-xineplug_ao_out_esd_la_SOURCES = audio_esd_out.c
+xineplug_ao_out_esd_la_SOURCES = audio_esd_out.c
xineplug_ao_out_esd_la_LIBADD = $(XINE_LIB) $(ESD_LIBS) $(LTLIBINTL)
xineplug_ao_out_esd_la_CFLAGS = $(AM_CFLAGS) $(ESD_CFLAGS)
xineplug_ao_out_sun_la_SOURCES = audio_sun_out.c
xineplug_ao_out_sun_la_LIBADD = $(XINE_LIB)
-#xineplug_ao_out_irixal_la_SOURCES = audio_irixal_out.c
+#xineplug_ao_out_irixal_la_SOURCES = audio_irixal_out.c
#xineplug_ao_out_irixal_la_LIBADD = $(IRIXAL_LIBS)
#xineplug_ao_out_irixal_la_CFLAGS = $(AM_CFLAGS) $(IRIXAL_CFLAGS)
diff --git a/src/audio_out/audio_alsa_out.c b/src/audio_out/audio_alsa_out.c
index cd6254281..8bc0c241d 100644
--- a/src/audio_out/audio_alsa_out.c
+++ b/src/audio_out/audio_alsa_out.c
@@ -1,23 +1,23 @@
-/*
+/*
* Copyright (C) 2000-2006 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
*
- * Credits go
+ * Credits go
* - for the SPDIF A/52 sync part
* - frame size calculation added (16-08-2001)
* (c) 2001 Andy Lo A Foe <andy@alsaplayer.org>
@@ -99,7 +99,7 @@ typedef struct alsa_driver_s {
uint32_t bytes_per_frame;
uint32_t bytes_in_buffer; /* number of bytes writen to audio hardware */
snd_pcm_uframes_t buffer_size;
- int32_t mmap;
+ int32_t mmap;
struct {
pthread_t thread;
@@ -136,10 +136,10 @@ static int my_snd_mixer_wait(snd_mixer_t *mixer, int timeout) {
if (count < 0)
return count;
-
+
if ((unsigned int) count > sizeof(spfds) / sizeof(spfds[0])) {
pfds = calloc(count, sizeof(*pfds));
-
+
if (!pfds)
return -ENOMEM;
@@ -169,44 +169,44 @@ static void *ao_alsa_handle_event_thread(void *data) {
int old_mute;
pthread_mutex_lock(&this->mixer.mutex);
-
+
old_mute = (this->mixer.mute & MIXER_MASK_MUTE) ? 1 : 0;
if((err = snd_mixer_handle_events(this->mixer.handle)) < 0) {
- xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
"audio_alsa_out: snd_mixer_handle_events(): %s\n", snd_strerror(err));
pthread_mutex_unlock(&this->mixer.mutex);
continue;
}
-
+
if((err = snd_mixer_selem_get_playback_volume(this->mixer.elem, SND_MIXER_SCHN_FRONT_LEFT, &left_vol)) < 0) {
- xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
"audio_alsa_out: snd_mixer_selem_get_playback_volume(): %s\n", snd_strerror(err));
pthread_mutex_unlock(&this->mixer.mutex);
continue;
}
-
+
if((err = snd_mixer_selem_get_playback_volume(this->mixer.elem, SND_MIXER_SCHN_FRONT_RIGHT, &right_vol)) < 0) {
- xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
"audio_alsa_out: snd_mixer_selem_get_playback_volume(): %s\n", snd_strerror(err));
pthread_mutex_unlock(&this->mixer.mutex);
continue;
}
-
+
if(this->mixer.mute & MIXER_HAS_MUTE_SWITCH) {
-
+
if(this->mixer.mute & MIXER_MASK_STEREO) {
snd_mixer_selem_get_playback_switch(this->mixer.elem, SND_MIXER_SCHN_FRONT_LEFT, &swl);
mute = (swl) ? 0 : 1;
}
else {
-
+
if (this->mixer.mute & MIXER_MASK_LEFT)
snd_mixer_selem_get_playback_switch(this->mixer.elem, SND_MIXER_SCHN_FRONT_LEFT, &swl);
-
+
if ((SND_MIXER_SCHN_FRONT_RIGHT != SND_MIXER_SCHN_UNKNOWN) && (this->mixer.mute & MIXER_MASK_RIGHT))
snd_mixer_selem_get_playback_switch(this->mixer.elem, SND_MIXER_SCHN_FRONT_RIGHT, &swr);
-
+
mute = (swl || swr) ? 0 : 1;
}
}
@@ -216,26 +216,26 @@ static void *ao_alsa_handle_event_thread(void *data) {
xine_audio_level_data_t data;
xine_stream_t *stream;
xine_list_iterator_t ite;
-
+
this->mixer.right_vol = right_vol;
this->mixer.left_vol = left_vol;
if(mute)
this->mixer.mute |= MIXER_MASK_MUTE;
else
this->mixer.mute &= ~MIXER_MASK_MUTE;
-
- data.right = ao_alsa_get_percent_from_volume(this->mixer.right_vol,
+
+ data.right = ao_alsa_get_percent_from_volume(this->mixer.right_vol,
this->mixer.min, this->mixer.max);
- data.left = ao_alsa_get_percent_from_volume(this->mixer.left_vol,
+ data.left = ao_alsa_get_percent_from_volume(this->mixer.left_vol,
this->mixer.min, this->mixer.max);
data.mute = (this->mixer.mute & MIXER_MASK_MUTE) ? 1 : 0;
-
+
event.type = XINE_EVENT_AUDIO_LEVEL;
event.data = &data;
event.data_length = sizeof(data);
-
+
pthread_mutex_lock(&this->class->xine->streams_lock);
- for(ite = xine_list_front(this->class->xine->streams);
+ for(ite = xine_list_front(this->class->xine->streams);
ite; ite = xine_list_next(this->class->xine->streams, ite)) {
stream = xine_list_get_value(this->class->xine->streams, ite);
event.stream = stream;
@@ -243,12 +243,12 @@ static void *ao_alsa_handle_event_thread(void *data) {
}
pthread_mutex_unlock(&this->class->xine->streams_lock);
}
-
+
pthread_mutex_unlock(&this->mixer.mutex);
}
} while(this->mixer.running);
-
+
pthread_exit(NULL);
}
@@ -261,11 +261,11 @@ static long ao_alsa_get_volume_from_percent(int val, long min, long max) {
}
/*
- * Error callback, we need to control this,
+ * Error callback, we need to control this,
* error message should be printed only in DEBUG mode.
*/
static void XINE_FORMAT_PRINTF(5, 6)
- error_callback(const char *file, int line,
+ error_callback(const char *file, int line,
const char *function, int err, const char *fmt, ...) {
#ifdef DEBUG
va_list args;
@@ -286,13 +286,13 @@ static int ao_alsa_open(ao_driver_t *this_gen, uint32_t bits, uint32_t rate, int
alsa_driver_t *this = (alsa_driver_t *) this_gen;
config_values_t *config = this->class->xine->config;
char *pcm_device;
- snd_pcm_stream_t direction = SND_PCM_STREAM_PLAYBACK;
+ snd_pcm_stream_t direction = SND_PCM_STREAM_PLAYBACK;
snd_pcm_hw_params_t *params;
snd_pcm_sw_params_t *swparams;
snd_pcm_access_mask_t *mask;
snd_pcm_uframes_t period_size;
- snd_pcm_uframes_t period_size_min;
- snd_pcm_uframes_t period_size_max;
+ snd_pcm_uframes_t period_size_min;
+ snd_pcm_uframes_t period_size_max;
snd_pcm_uframes_t buffer_size_min;
snd_pcm_uframes_t buffer_size_max;
snd_pcm_format_t format;
@@ -310,7 +310,7 @@ static int ao_alsa_open(ao_driver_t *this_gen, uint32_t bits, uint32_t rate, int
snd_pcm_hw_params_alloca(&params);
snd_pcm_sw_params_alloca(&swparams);
err = snd_output_stdio_attach(&jcd_out, stdout, 0);
-
+
switch (mode) {
case AO_CAP_MODE_MONO:
this->num_channels = 1;
@@ -336,10 +336,10 @@ static int ao_alsa_open(ao_driver_t *this_gen, uint32_t bits, uint32_t rate, int
pcm_device = config->lookup_entry(config, "audio.device.alsa_passthrough_device")->str_value;
break;
default:
- xprintf (this->class->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->class->xine, XINE_VERBOSITY_DEBUG,
"audio_alsa_out: ALSA Driver does not support the requested mode: 0x%X\n",mode);
return 0;
- }
+ }
#ifdef ALSA_LOG
printf("audio_alsa_out: Audio Device name = %s\n",pcm_device);
@@ -362,25 +362,25 @@ static int ao_alsa_open(ao_driver_t *this_gen, uint32_t bits, uint32_t rate, int
*/
gettimeofday(&start_time, NULL);
do {
- err = snd_pcm_open(&this->audio_fd, pcm_device, direction, open_mode);
+ err = snd_pcm_open(&this->audio_fd, pcm_device, direction, open_mode);
gettimeofday(&end_time, NULL);
if( err == -EBUSY ) {
- if( (double)end_time.tv_sec + 1E-6*end_time.tv_usec
+ if( (double)end_time.tv_sec + 1E-6*end_time.tv_usec
- (double)start_time.tv_sec - 1E-6*start_time.tv_usec > 0.8)
break;
else
usleep(10000);
}
} while( err == -EBUSY );
-
- if(err <0 ) {
- xprintf (this->class->xine, XINE_VERBOSITY_LOG,
- _("audio_alsa_out: snd_pcm_open() of %s failed: %s\n"), pcm_device, snd_strerror(err));
- xprintf (this->class->xine, XINE_VERBOSITY_LOG,
+
+ if(err <0 ) {
+ xprintf (this->class->xine, XINE_VERBOSITY_LOG,
+ _("audio_alsa_out: snd_pcm_open() of %s failed: %s\n"), pcm_device, snd_strerror(err));
+ xprintf (this->class->xine, XINE_VERBOSITY_LOG,
_("audio_alsa_out: >>> check if another program already uses PCM <<<\n"));
return 0;
}
- /* printf ("audio_alsa_out: snd_pcm_open() opened %s\n", pcm_device); */
+ /* printf ("audio_alsa_out: snd_pcm_open() opened %s\n", pcm_device); */
/* We wanted non blocking open but now put it back to normal */
//snd_pcm_nonblock(this->audio_fd, 0);
snd_pcm_nonblock(this->audio_fd, 1);
@@ -389,7 +389,7 @@ static int ao_alsa_open(ao_driver_t *this_gen, uint32_t bits, uint32_t rate, int
*/
err = snd_pcm_hw_params_any(this->audio_fd, params);
if (err < 0) {
- xprintf (this->class->xine, XINE_VERBOSITY_LOG,
+ xprintf (this->class->xine, XINE_VERBOSITY_LOG,
_("audio_alsa_out: broken configuration for this PCM: no configurations available: %s\n"),
snd_strerror(err));
goto close;
@@ -403,7 +403,7 @@ static int ao_alsa_open(ao_driver_t *this_gen, uint32_t bits, uint32_t rate, int
snd_pcm_access_mask_set(mask, SND_PCM_ACCESS_MMAP_COMPLEX);
err = snd_pcm_hw_params_set_access_mask(this->audio_fd, params, mask);
if (err < 0) {
- xprintf (this->class->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->class->xine, XINE_VERBOSITY_DEBUG,
"audio_alsa_out: mmap not availiable, falling back to compatiblity mode\n");
this->mmap=0;
err = snd_pcm_hw_params_set_access(this->audio_fd, params,
@@ -413,9 +413,9 @@ static int ao_alsa_open(ao_driver_t *this_gen, uint32_t bits, uint32_t rate, int
err = snd_pcm_hw_params_set_access(this->audio_fd, params,
SND_PCM_ACCESS_RW_INTERLEAVED);
}
-
+
if (err < 0) {
- xprintf (this->class->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->class->xine, XINE_VERBOSITY_DEBUG,
"audio_alsa_out: access type not available: %s\n", snd_strerror(err));
goto close;
}
@@ -438,23 +438,23 @@ static int ao_alsa_open(ao_driver_t *this_gen, uint32_t bits, uint32_t rate, int
case 4:
format = SND_PCM_FORMAT_FLOAT;
break;
- default:
+ default:
format = SND_PCM_FORMAT_S16;
- xprintf (this->class->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->class->xine, XINE_VERBOSITY_DEBUG,
"audio_alsa_out: pcm format bits=%d unknown. failed: %s\n", bits, snd_strerror(err));
break;
}
err = snd_pcm_hw_params_set_format(this->audio_fd, params, format );
if (err < 0) {
- xprintf (this->class->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->class->xine, XINE_VERBOSITY_DEBUG,
"audio_alsa_out: sample format non available: %s\n", snd_strerror(err));
goto close;
}
/* set the number of channels */
err = snd_pcm_hw_params_set_channels(this->audio_fd, params, this->num_channels);
if (err < 0) {
- xprintf (this->class->xine, XINE_VERBOSITY_DEBUG,
- "audio_alsa_out: Cannot set number of channels to %d (err=%d:%s)\n",
+ xprintf (this->class->xine, XINE_VERBOSITY_DEBUG,
+ "audio_alsa_out: Cannot set number of channels to %d (err=%d:%s)\n",
this->num_channels, err, snd_strerror(err));
goto close;
}
@@ -466,13 +466,13 @@ static int ao_alsa_open(ao_driver_t *this_gen, uint32_t bits, uint32_t rate, int
dir=0;
err = snd_pcm_hw_params_set_rate_near(this->audio_fd, params, &rate, &dir);
if (err < 0) {
- xprintf (this->class->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->class->xine, XINE_VERBOSITY_DEBUG,
"audio_alsa_out: rate not available: %s\n", snd_strerror(err));
goto close;
}
this->output_sample_rate = (uint32_t)rate;
if (this->input_sample_rate != this->output_sample_rate) {
- xprintf (this->class->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->class->xine, XINE_VERBOSITY_DEBUG,
"audio_alsa_out: audio rate : %d requested, %d provided by device/sec\n",
this->input_sample_rate, this->output_sample_rate);
}
@@ -504,7 +504,7 @@ static int ao_alsa_open(ao_driver_t *this_gen, uint32_t bits, uint32_t rate, int
periods=8;
err = snd_pcm_hw_params_set_periods_near(this->audio_fd, params, &periods ,&dir);
if (err < 0) {
- xprintf (this->class->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->class->xine, XINE_VERBOSITY_DEBUG,
"audio_alsa_out: unable to set any periods: %s\n", snd_strerror(err));
goto close;
}
@@ -512,7 +512,7 @@ static int ao_alsa_open(ao_driver_t *this_gen, uint32_t bits, uint32_t rate, int
dir=0;
err = snd_pcm_hw_params_set_buffer_time_near(this->audio_fd, params, &buffer_time, &dir);
if (err < 0) {
- xprintf (this->class->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->class->xine, XINE_VERBOSITY_DEBUG,
"audio_alsa_out: buffer time not available: %s\n", snd_strerror(err));
goto close;
}
@@ -522,7 +522,7 @@ static int ao_alsa_open(ao_driver_t *this_gen, uint32_t bits, uint32_t rate, int
dir=0;
err = snd_pcm_hw_params_set_period_size_near(this->audio_fd, params, &period_size, &dir);
if (err < 0) {
- xprintf (this->class->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->class->xine, XINE_VERBOSITY_DEBUG,
"audio_alsa_out: period time not available: %s\n", snd_strerror(err));
goto close;
}
@@ -533,7 +533,7 @@ static int ao_alsa_open(ao_driver_t *this_gen, uint32_t bits, uint32_t rate, int
dir=0;
err = snd_pcm_hw_params_set_buffer_size_near(this->audio_fd, params, &this->buffer_size);
if (err < 0) {
- xprintf (this->class->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->class->xine, XINE_VERBOSITY_DEBUG,
"audio_alsa_out: buffer time not available: %s\n", snd_strerror(err));
goto close;
}
@@ -543,22 +543,22 @@ static int ao_alsa_open(ao_driver_t *this_gen, uint32_t bits, uint32_t rate, int
printf("was set buffer_size = %ld\n",this->buffer_size);
#endif
if (2*period_size > this->buffer_size) {
- xprintf (this->class->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->class->xine, XINE_VERBOSITY_DEBUG,
"audio_alsa_out: buffer to small, could not use\n");
goto close;
}
-
+
/* write the parameters to device */
err = snd_pcm_hw_params(this->audio_fd, params);
if (err < 0) {
- xprintf (this->class->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->class->xine, XINE_VERBOSITY_DEBUG,
"audio_alsa_out: pcm hw_params failed: %s\n", snd_strerror(err));
goto close;
}
/* Check for pause/resume support */
this->has_pause_resume = ( snd_pcm_hw_params_can_pause (params)
&& snd_pcm_hw_params_can_resume (params) );
- xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
"audio_alsa_out:open pause_resume=%d\n", this->has_pause_resume);
this->sample_rate_factor = (double) this->output_sample_rate / (double) this->input_sample_rate;
this->bytes_per_frame = snd_pcm_frames_to_bytes (this->audio_fd, 1);
@@ -568,28 +568,28 @@ static int ao_alsa_open(ao_driver_t *this_gen, uint32_t bits, uint32_t rate, int
/* Copy current parameters into swparams */
err = snd_pcm_sw_params_current(this->audio_fd, swparams);
if (err < 0) {
- xprintf (this->class->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->class->xine, XINE_VERBOSITY_DEBUG,
"audio_alsa_out: Unable to determine current swparams: %s\n", snd_strerror(err));
goto close;
}
/* align all transfers to 1 sample */
err = snd_pcm_sw_params_set_xfer_align(this->audio_fd, swparams, 1);
if (err < 0) {
- xprintf (this->class->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->class->xine, XINE_VERBOSITY_DEBUG,
"audio_alsa_out: Unable to set transfer alignment: %s\n", snd_strerror(err));
goto close;
}
/* allow the transfer when at least period_size samples can be processed */
err = snd_pcm_sw_params_set_avail_min(this->audio_fd, swparams, period_size);
if (err < 0) {
- xprintf (this->class->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->class->xine, XINE_VERBOSITY_DEBUG,
"audio_alsa_out: Unable to set available min: %s\n", snd_strerror(err));
goto close;
}
/* start the transfer when the buffer contains at least period_size samples */
err = snd_pcm_sw_params_set_start_threshold(this->audio_fd, swparams, period_size);
if (err < 0) {
- xprintf (this->class->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->class->xine, XINE_VERBOSITY_DEBUG,
"audio_alsa_out: Unable to set start threshold: %s\n", snd_strerror(err));
goto close;
}
@@ -597,7 +597,7 @@ static int ao_alsa_open(ao_driver_t *this_gen, uint32_t bits, uint32_t rate, int
/* never stop the transfer, even on xruns */
err = snd_pcm_sw_params_set_stop_threshold(this->audio_fd, swparams, this->buffer_size);
if (err < 0) {
- xprintf (this->class->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->class->xine, XINE_VERBOSITY_DEBUG,
"audio_alsa_out: Unable to set stop threshold: %s\n", snd_strerror(err));
goto close;
}
@@ -605,15 +605,15 @@ static int ao_alsa_open(ao_driver_t *this_gen, uint32_t bits, uint32_t rate, int
/* Install swparams into current parameters */
err = snd_pcm_sw_params(this->audio_fd, swparams);
if (err < 0) {
- xprintf (this->class->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->class->xine, XINE_VERBOSITY_DEBUG,
"audio_alsa_out: Unable to set swparams: %s\n", snd_strerror(err));
goto close;
}
#ifdef ALSA_LOG
- snd_pcm_dump_setup(this->audio_fd, jcd_out);
+ snd_pcm_dump_setup(this->audio_fd, jcd_out);
snd_pcm_sw_params_dump(swparams, jcd_out);
#endif
-
+
return this->output_sample_rate;
close:
@@ -648,7 +648,7 @@ static int ao_alsa_get_gap_tolerance (ao_driver_t *this_gen) {
/*
* Return the delay. is frames measured by looking at pending samples
*/
-/* FIXME: delay returns invalid data if status is not RUNNING.
+/* FIXME: delay returns invalid data if status is not RUNNING.
* e.g When there is an XRUN or we are in PREPARED mode.
*/
static int ao_alsa_delay (ao_driver_t *this_gen) {
@@ -678,12 +678,12 @@ static int ao_alsa_delay (ao_driver_t *this_gen) {
/*
* Handle over/under-run
*/
-static void xrun(alsa_driver_t *this)
+static void xrun(alsa_driver_t *this)
{
/* snd_pcm_status_t *status; */
int res;
- /*
+ /*
snd_pcm_status_alloca(&status);
if ((res = snd_pcm_status(this->audio_fd, status))<0) {
printf ("audio_alsa_out: status error: %s\n", snd_strerror(res));
@@ -759,7 +759,7 @@ static int ao_alsa_write(ao_driver_t *this_gen, int16_t *data, uint32_t count) {
#ifdef LOG_DEBUG
printf("audio_alsa_out:write:XRUN before\n");
snd_pcm_status(this->audio_fd, pcm_stat);
- snd_pcm_status_dump(pcm_stat, jcd_out);
+ snd_pcm_status_dump(pcm_stat, jcd_out);
#endif
if ((res = snd_pcm_prepare(this->audio_fd))<0) {
return 0;
@@ -771,14 +771,14 @@ static int ao_alsa_write(ao_driver_t *this_gen, int16_t *data, uint32_t count) {
#ifdef LOG_DEBUG
printf("audio_alsa_out:write:XRUN after\n");
#endif
- }
+ }
if ( (state != SND_PCM_STATE_PREPARED) &&
(state != SND_PCM_STATE_RUNNING) &&
(state != SND_PCM_STATE_DRAINING) ) {
- xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
"audio_alsa_out:write:BAD STATE, state = %d\n",state);
}
-
+
while( number_of_frames > 0) {
if ( (state == SND_PCM_STATE_RUNNING) ) {
#ifdef LOG_DEBUG
@@ -816,7 +816,7 @@ static int ao_alsa_write(ao_driver_t *this_gen, int16_t *data, uint32_t count) {
} else if ( (state != SND_PCM_STATE_PREPARED) &&
(state != SND_PCM_STATE_RUNNING) &&
(state != SND_PCM_STATE_DRAINING) ) {
- xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
"audio_alsa_out:write:BAD STATE2, state = %d, going to try XRUN\n",state);
if ((res = snd_pcm_prepare(this->audio_fd))<0) {
xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
@@ -895,7 +895,7 @@ static void ao_alsa_exit(ao_driver_t *this_gen) {
this->mixer.handle=0;
}
pthread_mutex_destroy(&this->mixer.mutex);
-
+
if (this->audio_fd) snd_pcm_close(this->audio_fd);
this->audio_fd=NULL;
free (this);
@@ -913,45 +913,45 @@ static int ao_alsa_get_property (ao_driver_t *this_gen, int property) {
case AO_PROP_PCM_VOL:
if(this->mixer.elem) {
int vol;
-
+
pthread_mutex_lock(&this->mixer.mutex);
if((err = snd_mixer_selem_get_playback_volume(this->mixer.elem, SND_MIXER_SCHN_FRONT_LEFT,
&this->mixer.left_vol)) < 0) {
- xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
"audio_alsa_out: snd_mixer_selem_get_playback_volume(): %s\n", snd_strerror(err));
goto done;
}
-
+
if((err = snd_mixer_selem_get_playback_volume(this->mixer.elem, SND_MIXER_SCHN_FRONT_RIGHT,
&this->mixer.right_vol)) < 0) {
- xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
"audio_alsa_out: snd_mixer_selem_get_playback_volume(): %s\n", snd_strerror(err));
goto done;
}
-
+
done:
vol = (((ao_alsa_get_percent_from_volume(this->mixer.left_vol, this->mixer.min, this->mixer.max)) +
(ao_alsa_get_percent_from_volume(this->mixer.right_vol, this->mixer.min, this->mixer.max))) /2);
pthread_mutex_unlock(&this->mixer.mutex);
-
+
return vol;
}
break;
-
+
case AO_PROP_MUTE_VOL:
{
int mute;
-
+
pthread_mutex_lock(&this->mixer.mutex);
mute = ((this->mixer.mute & MIXER_HAS_MUTE_SWITCH) && (this->mixer.mute & MIXER_MASK_MUTE)) ? 1 : 0;
pthread_mutex_unlock(&this->mixer.mutex);
-
+
return mute;
}
break;
}
-
+
return 0;
}
@@ -970,18 +970,18 @@ static int ao_alsa_set_property (ao_driver_t *this_gen, int property, int value)
pthread_mutex_lock(&this->mixer.mutex);
this->mixer.left_vol = this->mixer.right_vol = ao_alsa_get_volume_from_percent(value, this->mixer.min, this->mixer.max);
-
+
if((err = snd_mixer_selem_set_playback_volume(this->mixer.elem, SND_MIXER_SCHN_FRONT_LEFT,
this->mixer.left_vol)) < 0) {
- xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
"audio_alsa_out: snd_mixer_selem_get_playback_volume(): %s\n", snd_strerror(err));
pthread_mutex_unlock(&this->mixer.mutex);
return ~value;
}
-
+
if((err = snd_mixer_selem_set_playback_volume(this->mixer.elem, SND_MIXER_SCHN_FRONT_RIGHT,
this->mixer.right_vol)) < 0) {
- xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
"audio_alsa_out: snd_mixer_selem_get_playback_volume(): %s\n", snd_strerror(err));
pthread_mutex_unlock(&this->mixer.mutex);
return ~value;
@@ -997,20 +997,20 @@ static int ao_alsa_set_property (ao_driver_t *this_gen, int property, int value)
if(this->mixer.mute & MIXER_HAS_MUTE_SWITCH) {
int swl = 0, swr = 0;
int old_mute;
-
+
pthread_mutex_lock(&this->mixer.mutex);
-
+
old_mute = this->mixer.mute;
if(value)
this->mixer.mute |= MIXER_MASK_MUTE;
else
this->mixer.mute &= ~MIXER_MASK_MUTE;
-
+
if ((this->mixer.mute & MIXER_MASK_MUTE) != (old_mute & MIXER_MASK_MUTE)) {
if(this->mixer.mute & MIXER_MASK_STEREO) {
snd_mixer_selem_get_playback_switch(this->mixer.elem, SND_MIXER_SCHN_FRONT_LEFT, &swl);
snd_mixer_selem_set_playback_switch_all(this->mixer.elem, !swl);
- }
+ }
else {
if (this->mixer.mute & MIXER_MASK_LEFT) {
snd_mixer_selem_get_playback_switch(this->mixer.elem, SND_MIXER_SCHN_FRONT_LEFT, &swl);
@@ -1050,7 +1050,7 @@ static int ao_alsa_ctrl(ao_driver_t *this_gen, int cmd, ...) {
if (this->audio_fd) {
if (this->has_pause_resume) {
if ((err=snd_pcm_pause(this->audio_fd, 1)) < 0) {
- xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
"audio_alsa_out: Pause call failed. (err=%d:%s)\n",err, snd_strerror(err));
this->has_pause_resume = 0;
ao_alsa_ctrl(this_gen, AO_CTRL_PLAY_PAUSE, NULL);
@@ -1059,15 +1059,15 @@ static int ao_alsa_ctrl(ao_driver_t *this_gen, int cmd, ...) {
}
} else {
if ((err=snd_pcm_reset(this->audio_fd)) < 0) {
- xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
"audio_alsa_out: Reset call failed. (err=%d:%s)\n",err, snd_strerror(err));
}
if ((err=snd_pcm_drain(this->audio_fd)) < 0) {
- xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
"audio_alsa_out: Drain call failed. (err=%d:%s)\n",err, snd_strerror(err));
}
if ((err=snd_pcm_prepare(this->audio_fd)) < 0) {
- xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
"audio_alsa_out: Prepare call failed. (err=%d:%s)\n",err, snd_strerror(err));
}
}
@@ -1079,12 +1079,12 @@ static int ao_alsa_ctrl(ao_driver_t *this_gen, int cmd, ...) {
if (this->has_pause_resume && this->is_paused) {
if ((err=snd_pcm_pause(this->audio_fd, 0)) < 0) {
if (err == -77) {
- xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
"audio_alsa_out: Warning: How am I supposed to RESUME, if I am not PAUSED. "
"audio_out.c, please don't call me!\n");
break;
}
- xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
"audio_alsa_out: Resume call failed. (err=%d:%s)\n",err, snd_strerror(err));
this->has_pause_resume = 0;
} else {
@@ -1097,11 +1097,11 @@ static int ao_alsa_ctrl(ao_driver_t *this_gen, int cmd, ...) {
case AO_CTRL_FLUSH_BUFFERS:
if (this->audio_fd) {
if ((err=snd_pcm_drop(this->audio_fd)) < 0) {
- xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
"audio_alsa_out: Drop call failed. (err=%d:%s)\n",err, snd_strerror(err));
}
if ((err=snd_pcm_prepare(this->audio_fd)) < 0) {
- xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
"audio_alsa_out: Prepare call failed. (err=%d:%s)\n",err, snd_strerror(err));
}
}
@@ -1129,43 +1129,43 @@ static void ao_alsa_mixer_init(ao_driver_t *this_gen) {
int found;
int swl = 0, swr = 0, send_events;
- this->mixer.elem = 0;
+ this->mixer.elem = 0;
snd_ctl_card_info_alloca(&hw_info);
pcm_device = config->lookup_entry(config, "audio.device.alsa_default_device")->str_value;
if ((err = snd_ctl_open (&ctl_handle, pcm_device, 0)) < 0) {
xprintf (this->class->xine, XINE_VERBOSITY_DEBUG, "audio_alsa_out: snd_ctl_open(): %s\n", snd_strerror(err));
return;
}
-
+
if ((err = snd_ctl_card_info (ctl_handle, hw_info)) < 0) {
xprintf (this->class->xine, XINE_VERBOSITY_DEBUG,
"audio_alsa_out: snd_ctl_card_info(): %s\n", snd_strerror(err));
snd_ctl_close(ctl_handle);
return;
}
-
+
snd_ctl_close (ctl_handle);
- /*
+ /*
* Open mixer device
*/
if ((err = snd_mixer_open (&this->mixer.handle, 0)) < 0) {
- xprintf (this->class->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->class->xine, XINE_VERBOSITY_DEBUG,
"audio_alsa_out: snd_mixer_open(): %s\n", snd_strerror(err));
this->mixer.handle=0;
return;
}
-
+
if ((err = snd_mixer_attach (this->mixer.handle, pcm_device)) < 0) {
- xprintf (this->class->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->class->xine, XINE_VERBOSITY_DEBUG,
"audio_alsa_out: snd_mixer_attach(): %s\n", snd_strerror(err));
snd_mixer_close(this->mixer.handle);
this->mixer.handle=0;
return;
}
-
+
if ((err = snd_mixer_selem_register (this->mixer.handle, NULL, NULL)) < 0) {
- xprintf (this->class->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->class->xine, XINE_VERBOSITY_DEBUG,
"audio_alsa_out: snd_mixer_selem_register(): %s\n", snd_strerror(err));
snd_mixer_close(this->mixer.handle);
this->mixer.handle=0;
@@ -1173,77 +1173,77 @@ static void ao_alsa_mixer_init(ao_driver_t *this_gen) {
}
if ((err = snd_mixer_load (this->mixer.handle)) < 0) {
- xprintf (this->class->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->class->xine, XINE_VERBOSITY_DEBUG,
"audio_alsa_out: snd_mixer_load(): %s\n", snd_strerror(err));
snd_mixer_close(this->mixer.handle);
this->mixer.handle=0;
return;
}
-
+
mixer_sid = alloca(snd_mixer_selem_id_sizeof() * snd_mixer_get_count(this->mixer.handle));
if (mixer_sid == NULL) {
- xprintf (this->class->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->class->xine, XINE_VERBOSITY_DEBUG,
"audio_alsa_out: alloca() failed: %s\n", strerror(errno));
snd_mixer_close(this->mixer.handle);
this->mixer.handle=0;
return;
}
-
+
again:
found = 0;
mixer_n_selems = 0;
for (elem = snd_mixer_first_elem(this->mixer.handle); elem; elem = snd_mixer_elem_next(elem)) {
sid = (snd_mixer_selem_id_t *)(((char *)mixer_sid) + snd_mixer_selem_id_sizeof() * mixer_n_selems);
-
+
if ((snd_mixer_elem_get_type(elem) != SND_MIXER_ELEM_SIMPLE) ||
!snd_mixer_selem_is_active(elem))
continue;
-
+
snd_mixer_selem_get_id(elem, sid);
mixer_n_selems++;
if(!strcmp((snd_mixer_selem_get_name(elem)), this->mixer.name)) {
/* printf("found %s\n", snd_mixer_selem_get_name(elem)); */
-
+
this->mixer.elem = elem;
-
- snd_mixer_selem_get_playback_volume_range(this->mixer.elem,
+
+ snd_mixer_selem_get_playback_volume_range(this->mixer.elem,
&this->mixer.min, &this->mixer.max);
if((err = snd_mixer_selem_get_playback_volume(this->mixer.elem, SND_MIXER_SCHN_FRONT_LEFT,
&this->mixer.left_vol)) < 0) {
- xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
"audio_alsa_out: snd_mixer_selem_get_playback_volume(): %s\n", snd_strerror(err));
this->mixer.elem = NULL;
continue;
}
-
+
if((err = snd_mixer_selem_get_playback_volume(this->mixer.elem, SND_MIXER_SCHN_FRONT_RIGHT,
&this->mixer.right_vol)) < 0) {
- xprintf (this->class->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->class->xine, XINE_VERBOSITY_DEBUG,
"audio_alsa_out: snd_mixer_selem_get_playback_volume(): %s\n", snd_strerror(err));
this->mixer.elem = NULL;
continue;
}
-
+
/* Channels mute */
this->mixer.mute = 0;
if(snd_mixer_selem_has_playback_switch(this->mixer.elem)) {
this->mixer.mute |= MIXER_HAS_MUTE_SWITCH;
-
+
if (snd_mixer_selem_has_playback_switch_joined(this->mixer.elem)) {
this->mixer.mute |= MIXER_MASK_STEREO;
snd_mixer_selem_get_playback_switch(this->mixer.elem, SND_MIXER_SCHN_FRONT_LEFT, &swl);
- }
+ }
else {
this->mixer.mute |= MIXER_MASK_LEFT;
snd_mixer_selem_get_playback_switch(this->mixer.elem, SND_MIXER_SCHN_FRONT_LEFT, &swl);
-
+
if (SND_MIXER_SCHN_FRONT_RIGHT != SND_MIXER_SCHN_UNKNOWN) {
this->mixer.mute |= MIXER_MASK_RIGHT;
snd_mixer_selem_get_playback_switch(this->mixer.elem, SND_MIXER_SCHN_FRONT_RIGHT, &swr);
}
-
+
if(!swl || !swr)
this->mixer.mute |= MIXER_MASK_MUTE;
}
@@ -1256,10 +1256,10 @@ static void ao_alsa_mixer_init(ao_driver_t *this_gen) {
goto mixer_found;
}
}
-
+
if(loop)
goto mixer_found; /* Yes, untrue but... ;-) */
-
+
if(!strcmp(this->mixer.name, "PCM")) {
config->update_string(config, "audio.device.alsa_mixer_name", "Master");
loop++;
@@ -1267,14 +1267,14 @@ static void ao_alsa_mixer_init(ao_driver_t *this_gen) {
else {
config->update_string(config, "audio.device.alsa_mixer_name", "PCM");
}
-
+
this->mixer.name = config->lookup_entry(config, "audio.device.alsa_mixer_name")->str_value;
-
+
goto again;
mixer_found:
-
- /*
+
+ /*
* Ugly: yes[*] no[ ]
*/
if(found) {
@@ -1301,11 +1301,11 @@ static void ao_alsa_mixer_init(ao_driver_t *this_gen) {
if (send_events && found) {
pthread_attr_t pth_attrs;
struct sched_param pth_params;
-
+
this->mixer.running = 1;
pthread_attr_init(&pth_attrs);
-
+
pthread_attr_getschedparam(&pth_attrs, &pth_params);
pth_params.sched_priority = sched_get_priority_min(SCHED_OTHER);
pthread_attr_setschedparam(&pth_attrs, &pth_params);
@@ -1317,7 +1317,7 @@ static void ao_alsa_mixer_init(ao_driver_t *this_gen) {
}
static void alsa_speaker_arrangement_cb (void *user_data,
- xine_cfg_entry_t *entry);
+ xine_cfg_entry_t *entry);
/*
* Initialize plugin
@@ -1358,8 +1358,8 @@ static ao_driver_t *open_plugin (audio_driver_class_t *class_gen, const void *da
err = snd_lib_error_set_handler(error_callback);
if(err < 0)
- xine_log(this->class->xine, XINE_LOG_MSG, _("snd_lib_error_set_handler() failed: %d"), err);
-
+ xine_log(this->class->xine, XINE_LOG_MSG, _("snd_lib_error_set_handler() failed: %d"), err);
+
snd_pcm_hw_params_alloca(&params);
this->mmap = config->register_bool (config,
@@ -1424,7 +1424,7 @@ static ao_driver_t *open_plugin (audio_driver_class_t *class_gen, const void *da
/* Use the default device to open first */
pcm_device = config->lookup_entry(config, "audio.device.alsa_default_device")->str_value;
-
+
/*
* find best device driver/channel
*/
@@ -1434,11 +1434,11 @@ static ao_driver_t *open_plugin (audio_driver_class_t *class_gen, const void *da
err=snd_pcm_open(&this->audio_fd, pcm_device, SND_PCM_STREAM_PLAYBACK, 1); /* NON-BLOCK mode */
if(err <0 ) {
xine_log (this->class->xine, XINE_LOG_MSG,
- _("snd_pcm_open() failed:%d:%s\n"), err, snd_strerror(err));
+ _("snd_pcm_open() failed:%d:%s\n"), err, snd_strerror(err));
xine_log (this->class->xine, XINE_LOG_MSG,
- _(">>> Check if another program already uses PCM <<<\n"));
+ _(">>> Check if another program already uses PCM <<<\n"));
free(this);
- return NULL;
+ return NULL;
}
/*
@@ -1446,7 +1446,7 @@ static ao_driver_t *open_plugin (audio_driver_class_t *class_gen, const void *da
*/
err = snd_pcm_hw_params_any(this->audio_fd, params);
if (err < 0) {
- xprintf (this->class->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->class->xine, XINE_VERBOSITY_DEBUG,
"audio_alsa_out: broken configuration for this PCM: no configurations available\n");
snd_pcm_close(this->audio_fd);
free(this);
@@ -1455,7 +1455,7 @@ static ao_driver_t *open_plugin (audio_driver_class_t *class_gen, const void *da
err = snd_pcm_hw_params_set_access(this->audio_fd, params,
SND_PCM_ACCESS_RW_INTERLEAVED);
if (err < 0) {
- xprintf (this->class->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->class->xine, XINE_VERBOSITY_DEBUG,
"audio_alsa_out: access type not available");
snd_pcm_close(this->audio_fd);
free(this);
@@ -1537,31 +1537,31 @@ static ao_driver_t *open_plugin (audio_driver_class_t *class_gen, const void *da
( speakers == SURROUND4 )) {
this->capabilities |= AO_CAP_MODE_4CHANNEL;
xine_strcat_realloc (&logmsg, _(" 4-channel"));
- }
+ }
else
xine_strcat_realloc (&logmsg, _(" (4-channel not enabled in xine config)"));
-
- if (!(snd_pcm_hw_params_test_channels(this->audio_fd, params, 6)) &&
+
+ if (!(snd_pcm_hw_params_test_channels(this->audio_fd, params, 6)) &&
( speakers == SURROUND41 )) {
this->capabilities |= AO_CAP_MODE_4_1CHANNEL;
xine_strcat_realloc (&logmsg, _(" 4.1-channel"));
- }
+ }
else
xine_strcat_realloc (&logmsg, _(" (4.1-channel not enabled in xine config)"));
- if (!(snd_pcm_hw_params_test_channels(this->audio_fd, params, 6)) &&
+ if (!(snd_pcm_hw_params_test_channels(this->audio_fd, params, 6)) &&
( speakers == SURROUND5 )) {
this->capabilities |= AO_CAP_MODE_5CHANNEL;
xine_strcat_realloc (&logmsg, _(" 5-channel"));
- }
+ }
else
xine_strcat_realloc (&logmsg, _(" (5-channel not enabled in xine config)"));
- if (!(snd_pcm_hw_params_test_channels(this->audio_fd, params, 6)) &&
+ if (!(snd_pcm_hw_params_test_channels(this->audio_fd, params, 6)) &&
( speakers >= SURROUND51 )) {
this->capabilities |= AO_CAP_MODE_5_1CHANNEL;
xine_strcat_realloc (&logmsg, _(" 5.1-channel"));
- }
+ }
else
xine_strcat_realloc (&logmsg, _(" (5.1-channel not enabled in xine config)"));
@@ -1587,7 +1587,7 @@ static ao_driver_t *open_plugin (audio_driver_class_t *class_gen, const void *da
this->capabilities |= AO_CAP_MODE_A52;
this->capabilities |= AO_CAP_MODE_AC5;
xine_strcat_realloc (&logmsg, _(" a/52 and DTS pass-through"));
- }
+ }
else
xine_strcat_realloc (&logmsg, _(" (a/52 and DTS pass-through not enabled in xine config)"));
@@ -1622,7 +1622,7 @@ static ao_driver_t *open_plugin (audio_driver_class_t *class_gen, const void *da
this->ao_driver.num_channels = ao_alsa_num_channels;
this->ao_driver.bytes_per_frame = ao_alsa_bytes_per_frame;
this->ao_driver.delay = ao_alsa_delay;
- this->ao_driver.write = ao_alsa_write;
+ this->ao_driver.write = ao_alsa_write;
this->ao_driver.close = ao_alsa_close;
this->ao_driver.exit = ao_alsa_exit;
this->ao_driver.get_gap_tolerance = ao_alsa_get_gap_tolerance;
@@ -1695,7 +1695,7 @@ static ao_info_t ao_info_alsa = {
*/
const plugin_info_t xine_plugin_info[] EXPORTED = {
- /* type, API, "name", version, special_info, init_function */
+ /* type, API, "name", version, special_info, init_function */
{ PLUGIN_AUDIO_OUT, AO_OUT_ALSA_IFACE_VERSION, "alsa", XINE_VERSION_CODE, &ao_info_alsa, init_class },
{ PLUGIN_NONE, 0, "", 0, NULL, NULL }
};
diff --git a/src/audio_out/audio_coreaudio_out.c b/src/audio_out/audio_coreaudio_out.c
index 93275ac04..acee16750 100644
--- a/src/audio_out/audio_coreaudio_out.c
+++ b/src/audio_out/audio_coreaudio_out.c
@@ -1,18 +1,18 @@
-/*
+/*
* Copyright (C) 2000-2004 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -54,7 +54,7 @@
#define AO_OUT_COREAUDIO_IFACE_VERSION 9
-#define GAP_TOLERANCE AO_MAX_GAP
+#define GAP_TOLERANCE AO_MAX_GAP
#define BUFSIZE 30720
/* Number of seconds to wait for buffered data to arrive/be used
* before giving up. */
@@ -75,7 +75,7 @@ typedef struct coreaudio_driver_s {
Component au_component;
Component converter_component;
-
+
AudioUnit au_unit;
AudioUnit converter_unit;
@@ -86,7 +86,7 @@ typedef struct coreaudio_driver_s {
int mute;
Float32 pre_mute_volume;
-
+
pthread_mutex_t mutex;
pthread_cond_t buffer_ready_for_reading;
pthread_cond_t buffer_ready_for_writing;
@@ -131,7 +131,7 @@ static OSStatus ao_coreaudio_render_proc (coreaudio_driver_t *this,
pthread_mutex_lock (&this->mutex);
if(this->buf_head < ((BUFSIZE) >> 2)) {
set_to_future(&future);
- if(pthread_cond_timedwait
+ if(pthread_cond_timedwait
(&this->buffer_ready_for_reading, &this->mutex, &future) == ETIMEDOUT)
{
/* Timed out, give up and fill remainder with silence. */
@@ -143,13 +143,13 @@ static OSStatus ao_coreaudio_render_proc (coreaudio_driver_t *this,
return noErr;
}
}
-
+
if(this->buf_head < buffer_size - buffer_progress) {
chunk_size = this->buf_head;
} else {
chunk_size = buffer_size - buffer_progress;
}
-
+
xine_fast_memcpy (ioData->mBuffers[i].mData, this->buf, chunk_size);
if(chunk_size < this->buf_head) {
memmove(this->buf, &(this->buf[chunk_size]), this->buf_head - chunk_size);
@@ -188,7 +188,7 @@ static int ao_coreaudio_open(ao_driver_t *this_gen, uint32_t bits, uint32_t rate
AudioStreamBasicDescription format;
AudioUnitConnection connection;
ComponentDescription desc;
-
+
switch (mode) {
case AO_CAP_MODE_MONO:
this->num_channels = 1;
@@ -209,7 +209,7 @@ static int ao_coreaudio_open(ao_driver_t *this_gen, uint32_t bits, uint32_t rate
pthread_cond_init (&this->buffer_ready_for_reading, NULL);
pthread_cond_init (&this->buffer_ready_for_writing, NULL);
- xprintf (this->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->xine, XINE_VERBOSITY_DEBUG,
"audio_coreaudio_out: ao_open bits=%d rate=%d, mode=%d\n", bits, rate, mode);
/* find an audio output unit */
@@ -218,17 +218,17 @@ static int ao_coreaudio_open(ao_driver_t *this_gen, uint32_t bits, uint32_t rate
desc.componentManufacturer = kAudioUnitManufacturer_Apple;
desc.componentFlags = 0;
desc.componentFlagsMask = 0;
-
+
this->au_component = FindNextComponent (NULL, &desc);
if (this->au_component == NULL) {
- xprintf (this->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->xine, XINE_VERBOSITY_DEBUG,
"audio_coreaudio_out: Unable to find a usable audio output unit component\n");
return 0;
}
-
+
OpenAComponent (this->au_component, &this->au_unit);
-
+
/* find a converter unit */
desc.componentType = kAudioUnitType_FormatConverter;
desc.componentSubType = kAudioUnitSubType_AUConverter;
@@ -236,11 +236,11 @@ static int ao_coreaudio_open(ao_driver_t *this_gen, uint32_t bits, uint32_t rate
this->converter_component = FindNextComponent (NULL, &desc);
if (this->converter_component == NULL) {
- xprintf (this->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->xine, XINE_VERBOSITY_DEBUG,
"audio_coreaudio_out: Unable to find a usable audio converter unit component\n");
return 0;
}
-
+
OpenAComponent (this->converter_component, &this->converter_unit);
/* set up the render procedure */
@@ -258,7 +258,7 @@ static int ao_coreaudio_open(ao_driver_t *this_gen, uint32_t bits, uint32_t rate
connection.destInputNumber = 0;
AudioUnitSetProperty (this->au_unit,
kAudioUnitProperty_MakeConnection,
- kAudioUnitScope_Input, 0,
+ kAudioUnitScope_Input, 0,
&connection, sizeof(connection));
/* set up the audio format we want to use */
@@ -274,7 +274,7 @@ static int ao_coreaudio_open(ao_driver_t *this_gen, uint32_t bits, uint32_t rate
format.mBytesPerFrame = this->bytes_per_frame;
format.mFramesPerPacket = 1;
format.mBytesPerPacket = format.mBytesPerFrame;
-
+
AudioUnitSetProperty (this->converter_unit,
kAudioUnitProperty_StreamFormat,
kAudioUnitScope_Input,
@@ -339,7 +339,7 @@ static int ao_coreaudio_write(ao_driver_t *this_gen, int16_t *data,
pthread_mutex_lock (&this->mutex);
if(this->buf_head > ((3 * BUFSIZE)>>2)) {
set_to_future(&future);
- if(pthread_cond_timedwait
+ if(pthread_cond_timedwait
(&this->buffer_ready_for_writing, &this->mutex, &future) == ETIMEDOUT)
{
/* Timed out, give up. */
@@ -354,10 +354,10 @@ static int ao_coreaudio_write(ao_driver_t *this_gen, int16_t *data,
} else {
chunk_size = remaining_bytes;
}
-
+
xine_fast_memcpy(&(this->buf[this->buf_head]), data, chunk_size);
this->buf_head += chunk_size;
- remaining_bytes -= chunk_size;
+ remaining_bytes -= chunk_size;
if(this->buf_head > 0) {
pthread_cond_broadcast (&this->buffer_ready_for_reading);
@@ -389,13 +389,13 @@ static void ao_coreaudio_close(ao_driver_t *this_gen)
CloseComponent (this->au_unit);
this->au_unit = 0;
}
-
+
if (this->converter_unit) {
AudioUnitUninitialize (this->converter_unit);
CloseComponent (this->converter_unit);
this->converter_unit = 0;
}
-
+
if (this->au_component) {
this->au_component = NULL;
}
@@ -417,7 +417,7 @@ static uint32_t ao_coreaudio_get_capabilities (ao_driver_t *this_gen) {
static void ao_coreaudio_exit(ao_driver_t *this_gen)
{
coreaudio_driver_t *this = (coreaudio_driver_t *) this_gen;
-
+
ao_coreaudio_close(this_gen);
free (this);
@@ -436,7 +436,7 @@ static int ao_coreaudio_get_property (ao_driver_t *this_gen, int property) {
kAudioUnitScope_Output,
0, &val);
} else {
- val = this->pre_mute_volume;
+ val = this->pre_mute_volume;
}
return (int) (val * 12);
break;
@@ -472,12 +472,12 @@ static int ao_coreaudio_set_property (ao_driver_t *this_gen, int property, int v
kHALOutputParam_Volume,
kAudioUnitScope_Output,
0, &(this->pre_mute_volume));
-
+
AudioUnitSetParameter (this->au_unit,
kHALOutputParam_Volume,
kAudioUnitScope_Output,
0, 0, 0);
-
+
this->mute = 1;
}
} else {
@@ -487,14 +487,14 @@ static int ao_coreaudio_set_property (ao_driver_t *this_gen, int property, int v
kHALOutputParam_Volume,
kAudioUnitScope_Output,
0, this->pre_mute_volume, 0);
-
+
this->mute = 0;
}
}
return value;
break;
}
-
+
return ~value;
}
@@ -521,7 +521,7 @@ static int ao_coreaudio_ctrl(ao_driver_t *this_gen, int cmd, ...) {
return 0;
}
-static ao_driver_t *open_plugin (audio_driver_class_t *class_gen,
+static ao_driver_t *open_plugin (audio_driver_class_t *class_gen,
const void *data) {
coreaudio_class_t *class = (coreaudio_class_t *) class_gen;
@@ -590,7 +590,7 @@ static const ao_info_t ao_info_coreaudio = {
*/
const plugin_info_t xine_plugin_info[] EXPORTED = {
- /* type, API, "name", version, special_info, init_function */
+ /* type, API, "name", version, special_info, init_function */
{ PLUGIN_AUDIO_OUT, AO_OUT_COREAUDIO_IFACE_VERSION, "coreaudio", XINE_VERSION_CODE, &ao_info_coreaudio, init_class },
{ PLUGIN_NONE, 0, "", 0, NULL, NULL }
};
diff --git a/src/audio_out/audio_directx2_out.c b/src/audio_out/audio_directx2_out.c
index 5a1929203..fddad16d0 100644
--- a/src/audio_out/audio_directx2_out.c
+++ b/src/audio_out/audio_directx2_out.c
@@ -69,14 +69,14 @@
/*
* If GAP_TOLERANCE is lower than AO_MAX_GAP, xine will
- * try to smooth playback without skipping frames or
+ * try to smooth playback without skipping frames or
* inserting silence.
*/
#define GAP_TOLERANCE (AO_MAX_GAP/3)
-/*
- * buffer size in miliseconds
- * (one second takes 11-192 KB)
+/*
+ * buffer size in miliseconds
+ * (one second takes 11-192 KB)
*/
#define BUFFER_MS 1000
@@ -85,7 +85,7 @@
*/
#define BUFFER_MIN_MS 200
-/*
+/*
* base power factor for volume remapping
*/
#define FACTOR 60.0
@@ -116,8 +116,8 @@ typedef struct {
LPDIRECTSOUNDBUFFER dsbuffer; /* DirectSound buffer */
size_t buffer_size; /* size of the buffer */
- size_t write_pos; /* positition in ring buffer for writing*/
-
+ size_t write_pos; /* positition in ring buffer for writing*/
+
int status; /* current status of the driver */
int paused; /* paused mode */
int finished; /* driver finished */
@@ -355,7 +355,7 @@ static int audio_flush(dx2_driver_t *this) {
}
-/*
+/*
* set the volume
*
* DirecSound can only lower the volume by software way.
@@ -402,7 +402,7 @@ static int audio_fill(dx2_driver_t *this, char *data, size_t size) {
// this->read_size += size;
this->write_pos = (this->write_pos + size ) % this->buffer_size;
- lprintf("size %u, write_pos %u\n", size, this->write_pos);
+ lprintf("size %u, write_pos %u\n", size, this->write_pos);
if ((err = IDirectSoundBuffer_Unlock(this->dsbuffer, ptr1, size1, ptr2, size2)) != DS_OK) {
audio_error(this, err, _("Couldn't unlock direct sound buffer"));
@@ -466,8 +466,8 @@ static int test_capability(LPDIRECTSOUNDBUFFER buffer, uint32_t bits, uint32_t r
}
-/*
- * test capabilities of driver before opening
+/*
+ * test capabilities of driver before opening
*
* Passed only 8 bit and 16 bit with mono or stereo.
*/
@@ -516,7 +516,7 @@ static int test_capabilities(dx2_driver_t *this) {
/* size of free space in the ring buffer */
static size_t buffer_free_size(dx2_driver_t *this) {
-
+
int ret;
size_t play_pos;
size_t free_space;
@@ -525,10 +525,10 @@ static size_t buffer_free_size(dx2_driver_t *this) {
ret = audio_tell(this, &play_pos);
if (!ret)
return 0;
-
+
// calc free space (-1)
free_space = (this->buffer_size + play_pos - this->write_pos - 1) % this->buffer_size;
-
+
return free_space;
}
@@ -542,10 +542,10 @@ static size_t buffer_occupied_size(dx2_driver_t *this) {
// get current play pos
ret = audio_tell(this, &play_pos);
if (!ret) return 0;
-
+
// calc used space
used_space = (this->buffer_size + this->write_pos - play_pos) % this->buffer_size;
-
+
return used_space;
}
@@ -758,7 +758,7 @@ static int ao_dx2_delay(ao_driver_t *this_gen) {
if (ret){
frames = buffer_occupied_size(this) / this->frame_size;
}
- }
+ }
pthread_mutex_unlock(&this->data_mutex);
diff --git a/src/audio_out/audio_directx_out.c b/src/audio_out/audio_directx_out.c
index 7b5029a45..0df4b21de 100644
--- a/src/audio_out/audio_directx_out.c
+++ b/src/audio_out/audio_directx_out.c
@@ -1,18 +1,18 @@
-/*
+/*
* Copyright (C) 2001-2003 the xine project
- *
+ *
* This file is part of xine, a unix video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -81,14 +81,14 @@ typedef struct {
int capabilities;
xine_t *xine;
-
+
/* directx objects */
LPDIRECTSOUND dsobj;
LPDIRECTSOUNDBUFFER dsbuffer;
DSBCAPS dsbcaps;
LPDIRECTSOUNDNOTIFY notify;
DSBPOSITIONNOTIFY notify_events[ 2 ];
-
+
/* buffer vars */
long buffer_size;
int write_status;
@@ -96,13 +96,13 @@ typedef struct {
uint8_t prebuff[ SOUND_BUFFER_MAX ];
uint32_t prebuff_size;
-
+
/* current buffer properties */
int bits;
int rate;
int chnn;
int frsz;
-
+
/* current mixer settings */
int mute;
int volume;
@@ -118,7 +118,7 @@ typedef struct {
*
* BEGIN : Direct Sound and win32 handlers
* for xine audio output plugins.
- *
+ *
* ------------------------------------------- */
void Error( HWND hwnd, LPSTR szfmt, ... );
@@ -128,7 +128,7 @@ boolean CreateSoundBuffer( ao_directx_t * ao_directx );
void DestroySoundBuffer( ao_directx_t * ao_directx );
uint32_t FillSoundBuffer( ao_directx_t * ao_directx, int code, unsigned char * samples );
-/* Display formatted error message in
+/* Display formatted error message in
* popup message box. */
void Error( HWND hwnd, LPSTR szfmt, ... )
@@ -229,25 +229,25 @@ boolean CreateSoundBuffer( ao_directx_t * ao_directx )
* related resources */
DestroySoundBuffer( ao_directx );
-
+
/* create a secondary sound buffer */
-
- memset( &pcmwf, 0, sizeof( PCMWAVEFORMAT ) );
+
+ memset( &pcmwf, 0, sizeof( PCMWAVEFORMAT ) );
pcmwf.wBitsPerSample = ( unsigned short ) ao_directx->bits;
- pcmwf.wf.wFormatTag = WAVE_FORMAT_PCM;
+ pcmwf.wf.wFormatTag = WAVE_FORMAT_PCM;
pcmwf.wf.nChannels = ao_directx->chnn;
- pcmwf.wf.nSamplesPerSec = ao_directx->rate;
+ pcmwf.wf.nSamplesPerSec = ao_directx->rate;
pcmwf.wf.nBlockAlign = ao_directx->frsz;
- pcmwf.wf.nAvgBytesPerSec = ao_directx->rate * ao_directx->frsz;
+ pcmwf.wf.nAvgBytesPerSec = ao_directx->rate * ao_directx->frsz;
- memset( &dsbdesc, 0, sizeof( DSBUFFERDESC ) );
- dsbdesc.dwSize = sizeof( DSBUFFERDESC );
- dsbdesc.dwFlags = (DSBCAPS_CTRLVOLUME | DSBCAPS_GLOBALFOCUS |
+ memset( &dsbdesc, 0, sizeof( DSBUFFERDESC ) );
+ dsbdesc.dwSize = sizeof( DSBUFFERDESC );
+ dsbdesc.dwFlags = (DSBCAPS_CTRLVOLUME | DSBCAPS_GLOBALFOCUS |
DSBCAPS_GETCURRENTPOSITION2 | DSBCAPS_CTRLPOSITIONNOTIFY);
dsbdesc.dwBufferBytes = ao_directx->buffer_size;
dsbdesc.lpwfxFormat = ( LPWAVEFORMATEX ) &pcmwf;
- if( IDirectSound_CreateSoundBuffer( ao_directx->dsobj, &dsbdesc,
+ if( IDirectSound_CreateSoundBuffer( ao_directx->dsobj, &dsbdesc,
&ao_directx->dsbuffer, 0 ) != DS_OK )
{
Error( 0, "IDirectSound_CreateSoundBuffer : Unable to create secondary sound buffer" );
@@ -282,7 +282,7 @@ boolean CreateSoundBuffer( ao_directx_t * ao_directx )
/* get the direct sound notification interface */
if( IDirectSoundBuffer_QueryInterface( ao_directx->dsbuffer,
- &IID_IDirectSoundNotify,
+ &IID_IDirectSoundNotify,
(LPVOID *)&ao_directx->notify ) != DS_OK )
{
Error( 0, "IDirectSoundBuffer_QueryInterface : Unable to get notification interface" );
@@ -380,9 +380,9 @@ uint32_t FillSoundBuffer( ao_directx_t * ao_directx, int code, unsigned char * s
#ifdef LOG
if ((void*)samples != (void*)0)
- printf("audio_directx_out: FillSoundBuffer(%08x, %d, Null) Enter\n", (unsigned long)ao_directx, code);
+ printf("audio_directx_out: FillSoundBuffer(%08x, %d, Null) Enter\n", (unsigned long)ao_directx, code);
else
- printf("audio_directx_out: FillSoundBuffer(%08x, %d, Null) Enter\n", (unsigned long)ao_directx, code);
+ printf("audio_directx_out: FillSoundBuffer(%08x, %d, Null) Enter\n", (unsigned long)ao_directx, code);
#endif
half_size = ao_directx->buffer_size / 2;
@@ -485,7 +485,7 @@ uint32_t FillSoundBuffer( ao_directx_t * ao_directx, int code, unsigned char * s
}
/* write data to our sound buffer */
-
+
memcpy( buff_pointer, samples, buff_length );
/* unlock our sound buffer */
@@ -512,7 +512,7 @@ uint32_t FillSoundBuffer( ao_directx_t * ao_directx, int code, unsigned char * s
* ----------------------------------------- */
static int ao_directx_control(ao_driver_t *this_gen, int cmd, ...) {
- switch (cmd)
+ switch (cmd)
{
case AO_CTRL_PLAY_PAUSE:
@@ -539,7 +539,7 @@ static int ao_directx_open( ao_driver_t * ao_driver, uint32_t bits, uint32_t rat
ao_directx->bits = bits;
ao_directx->rate = rate;
-
+
/* store channel count */
switch( mode )
@@ -628,7 +628,7 @@ static int ao_directx_write( ao_driver_t * ao_driver, int16_t * frame_buffer, ui
uint32_t wrote; /* number of bytes written */
uint32_t half_size; /* half our sound buffer size */
- lprintf("ao_directx_write(%08x, %08x, %d) Enter\n",
+ lprintf("ao_directx_write(%08x, %08x, %d) Enter\n",
(unsigned long)ao_directx, (unsigned long)frame_buffer, num_frames);
/* zero write counter */
@@ -745,7 +745,7 @@ static int ao_directx_set_property( ao_driver_t * ao_driver, int property, int v
{
ao_directx_t *ao_directx = ( ao_directx_t * ) ao_driver;
- lprintf("ao_directx_set_property(%08x, %d, %d) Enter\n",
+ lprintf("ao_directx_set_property(%08x, %d, %d) Enter\n",
(unsigned long)ao_directx, property, value);
switch( property )
@@ -759,7 +759,7 @@ static int ao_directx_set_property( ao_driver_t * ao_driver, int property, int v
if( !ao_directx->mute && ao_directx->dsbuffer )
IDirectSoundBuffer_SetVolume( ao_directx->dsbuffer, ao_directx->volume );
- xprintf(ao_directx->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(ao_directx->xine, XINE_VERBOSITY_DEBUG,
"ao_directx : volume set to %d - directX volume = %d\n", value, ao_directx->volume);
return value;
@@ -793,11 +793,11 @@ static ao_driver_t *open_plugin (audio_driver_class_t *class_gen, const void *da
{
audiox_class_t *class = (audiox_class_t *) class_gen;
ao_directx_t *ao_directx;
-
+
ao_directx = calloc(1, sizeof(ao_directx_t));
if (!ao_directx)
return NULL;
-
+
lprintf("open_plugin(%08x, %08x) Enter\n", (unsigned long)class_gen, (unsigned long)data);
lprintf("open_plugin: ao_directx=%08x\n", (unsigned long)ao_directx);
@@ -834,7 +834,7 @@ static void *init_class (xine_t *xine, void *data) {
audiox = calloc(1, sizeof (audiox_class_t));
if (!audiox)
return NULL;
-
+
audiox->driver_class.open_plugin = open_plugin;
audiox->driver_class.identifier = "DirectX";
audiox->driver_class.description = N_("xine audio output plugin for win32 using directx");
@@ -844,7 +844,7 @@ static void *init_class (xine_t *xine, void *data) {
audiox->config = xine->config;
lprintf("init_class() Exit! Returning audiox=%08x\n", audiox);
-
+
return audiox;
}
@@ -856,7 +856,7 @@ static const ao_info_t ao_info_directx = {
* exported plugin catalog entry
*/
const plugin_info_t xine_plugin_info[] EXPORTED = {
- /* type, API, "name", version, special_info, init_function */
+ /* type, API, "name", version, special_info, init_function */
{ PLUGIN_AUDIO_OUT, AO_DIRECTX_IFACE_VERSION, "directx", XINE_VERSION_CODE, &ao_info_directx, init_class },
{ PLUGIN_NONE, 0, "", 0, NULL, NULL }
};
diff --git a/src/audio_out/audio_esd_out.c b/src/audio_out/audio_esd_out.c
index eab8dd0ff..917a4bfab 100644
--- a/src/audio_out/audio_esd_out.c
+++ b/src/audio_out/audio_esd_out.c
@@ -1,18 +1,18 @@
-/*
+/*
* Copyright (C) 2000-2003 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -77,7 +77,7 @@ typedef struct esd_driver_s {
/*
* Temporary sample buffer used to reblock the sample output stream
* to writes using buffer sizes of n*ESD_BUF_SIZE bytes.
- *
+ *
* The reblocking avoids a bug with esd 0.2.18 servers and reduces
* cpu load with newer versions of the esd server.
*
@@ -99,7 +99,7 @@ typedef struct {
/*
- * connect to esd
+ * connect to esd
*/
static int ao_esd_open(ao_driver_t *this_gen,
uint32_t bits, uint32_t rate, int mode)
@@ -107,7 +107,7 @@ static int ao_esd_open(ao_driver_t *this_gen,
esd_driver_t *this = (esd_driver_t *) this_gen;
esd_format_t format;
- xprintf (this->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->xine, XINE_VERBOSITY_DEBUG,
"audio_esd_out: ao_open bits=%d rate=%d, mode=%d\n", bits, rate, mode);
if ( (mode & this->capabilities) == 0 ) {
@@ -117,12 +117,12 @@ static int ao_esd_open(ao_driver_t *this_gen,
if (this->audio_fd>=0) {
- if ( (mode == this->mode) && (rate == this->input_sample_rate) )
+ if ( (mode == this->mode) && (rate == this->input_sample_rate) )
return this->output_sample_rate;
esd_close (this->audio_fd);
}
-
+
this->mode = mode;
this->input_sample_rate = rate;
this->output_sample_rate = rate;
@@ -170,7 +170,7 @@ static int ao_esd_open(ao_driver_t *this_gen,
return this->output_sample_rate;
}
-static int ao_esd_num_channels(ao_driver_t *this_gen)
+static int ao_esd_num_channels(ao_driver_t *this_gen)
{
esd_driver_t *this = (esd_driver_t *) this_gen;
return this->num_channels;
@@ -200,14 +200,14 @@ static int ao_esd_delay(ao_driver_t *this_gen)
frames += (tv.tv_sec - this->start_time.tv_sec)
* this->output_sample_rate;
- frames -= this->latency;
+ frames -= this->latency;
if (frames < 0)
frames = 0;
-
+
/* calc delay */
-
+
bytes_left = this->bytes_in_buffer - frames * this->bytes_per_frame;
-
+
if (bytes_left<=0) /* buffer ran dry */
bytes_left = 0;
return bytes_left / this->bytes_per_frame;
@@ -230,18 +230,18 @@ static int ao_esd_write(ao_driver_t *this_gen,
/* check if simulated buffer ran dry */
gettimeofday(&tv, NULL);
-
+
frames = (tv.tv_usec - this->start_time.tv_usec)
* this->output_sample_k_rate / 1000;
frames += (tv.tv_sec - this->start_time.tv_sec)
* this->output_sample_rate;
-
- frames -= this->latency;
+
+ frames -= this->latency;
if (frames < 0)
frames = 0;
/* calc delay */
-
+
simulated_bytes_in_buffer = frames * this->bytes_per_frame;
if (this->bytes_in_buffer < simulated_bytes_in_buffer)
@@ -296,7 +296,7 @@ static int ao_esd_write(ao_driver_t *this_gen,
if (nwritten != num_bytes) {
if (nwritten < 0)
xprintf(this->xine, XINE_VERBOSITY_DEBUG, "audio_esd_out: writev failed: %s\n", strerror(errno));
- else
+ else
xprintf(this->xine, XINE_VERBOSITY_DEBUG, "audio_esd_out: warning, incomplete write: %d\n", nwritten);
}
if (nwritten > 0)
@@ -337,7 +337,7 @@ static int ao_esd_get_gap_tolerance (ao_driver_t *this_gen) {
static void ao_esd_exit(ao_driver_t *this_gen)
{
esd_driver_t *this = (esd_driver_t *) this_gen;
-
+
if (this->audio_fd != -1)
esd_close(this->audio_fd);
@@ -351,19 +351,19 @@ static int ao_esd_get_property (ao_driver_t *this_gen, int property) {
int mixer_fd;
esd_player_info_t *esd_pi;
esd_info_t *esd_i;
-
+
switch(property) {
case AO_PROP_MIXER_VOL:
-
+
if((mixer_fd = esd_open_sound(NULL)) >= 0) {
if((esd_i = esd_get_all_info(mixer_fd)) != NULL) {
for(esd_pi = esd_i->player_list; esd_pi != NULL; esd_pi = esd_pi->next) {
if(!strcmp(this->pname, esd_pi->name)) {
this->mixer.source_id = esd_pi->source_id;
-
+
if(!this->mixer.mute)
- this->mixer.volume = (((esd_pi->left_vol_scale * 100) / 256) +
+ this->mixer.volume = (((esd_pi->left_vol_scale * 100) / 256) +
((esd_pi->right_vol_scale * 100) / 256)) >> 1;
}
@@ -372,7 +372,7 @@ static int ao_esd_get_property (ao_driver_t *this_gen, int property) {
}
esd_close(mixer_fd);
}
-
+
return this->mixer.volume;
break;
@@ -390,39 +390,39 @@ static int ao_esd_set_property (ao_driver_t *this_gen, int property, int value)
switch(property) {
case AO_PROP_MIXER_VOL:
-
+
if(!this->mixer.mute) {
-
+
/* need this to get source_id */
(void) ao_esd_get_property(&this->ao_driver, AO_PROP_MIXER_VOL);
if((mixer_fd = esd_open_sound(NULL)) >= 0) {
int v = (value * 256) / 100;
-
+
esd_set_stream_pan(mixer_fd, this->mixer.source_id, v, v);
-
+
if(!this->mixer.mute)
this->mixer.volume = value;
-
+
esd_close(mixer_fd);
}
}
else
this->mixer.volume = value;
-
+
return this->mixer.volume;
break;
-
+
case AO_PROP_MUTE_VOL: {
int mute = (value) ? 1 : 0;
-
+
/* need this to get source_id */
(void) ao_esd_get_property(&this->ao_driver, AO_PROP_MIXER_VOL);
-
+
if(mute) {
if((mixer_fd = esd_open_sound(NULL)) >= 0) {
int v = 0;
-
+
esd_set_stream_pan(mixer_fd, this->mixer.source_id, v, v);
esd_close(mixer_fd);
}
@@ -430,14 +430,14 @@ static int ao_esd_set_property (ao_driver_t *this_gen, int property, int value)
else {
if((mixer_fd = esd_open_sound(NULL)) >= 0) {
int v = (this->mixer.volume * 256) / 100;
-
+
esd_set_stream_pan(mixer_fd, this->mixer.source_id, v, v);
esd_close(mixer_fd);
}
}
-
+
this->mixer.mute = mute;
-
+
return value;
}
break;
@@ -465,7 +465,7 @@ static int ao_esd_ctrl(ao_driver_t *this_gen, int cmd, ...) {
return 0;
}
-static ao_driver_t *open_plugin (audio_driver_class_t *class_gen,
+static ao_driver_t *open_plugin (audio_driver_class_t *class_gen,
const void *data) {
esd_class_t *class = (esd_class_t *) class_gen;
@@ -491,7 +491,7 @@ static ao_driver_t *open_plugin (audio_driver_class_t *class_gen,
sigemptyset(&vo_mask);
sigaddset(&vo_mask, SIGALRM);
- if (sigprocmask(SIG_UNBLOCK, &vo_mask, &vo_mask_orig))
+ if (sigprocmask(SIG_UNBLOCK, &vo_mask, &vo_mask_orig))
xprintf(class->xine, XINE_VERBOSITY_DEBUG, "audio_esd_out: cannot unblock SIGALRM: %s\n", strerror(errno));
xprintf(class->xine, XINE_VERBOSITY_LOG, _("audio_esd_out: connecting to esd server...\n"));
@@ -511,7 +511,7 @@ static ao_driver_t *open_plugin (audio_driver_class_t *class_gen,
return NULL;
}
-
+
esd_svinfo = esd_get_server_info(audio_fd);
if (esd_svinfo) {
server_sample_rate = esd_svinfo->rate;
@@ -590,7 +590,7 @@ static const ao_info_t ao_info_esd = {
*/
const plugin_info_t xine_plugin_info[] EXPORTED = {
- /* type, API, "name", version, special_info, init_function */
+ /* type, API, "name", version, special_info, init_function */
{ PLUGIN_AUDIO_OUT, AO_OUT_ESD_IFACE_VERSION, "esd", XINE_VERSION_CODE, &ao_info_esd, init_class },
{ PLUGIN_NONE, 0, "", 0, NULL, NULL }
};
diff --git a/src/audio_out/audio_file_out.c b/src/audio_out/audio_file_out.c
index a3672092f..85ee8ad48 100644
--- a/src/audio_out/audio_file_out.c
+++ b/src/audio_out/audio_file_out.c
@@ -1,18 +1,18 @@
-/*
+/*
* Copyright (C) 2000-2003 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -46,7 +46,7 @@ struct wavhdr {
unsigned char bRiffMagic[4]; // 'RIFF'
uint32_t wRiffLength ; // length of file minus the 8 byte riff header
unsigned char bWaveMagic[8]; // 'WAVEfmt '
- uint32_t wFmtSize; // length of format chunk minus 8 byte header
+ uint32_t wFmtSize; // length of format chunk minus 8 byte header
uint16_t wFormatTag; // identifies PCM, ULAW etc
uint16_t wChannels;
uint32_t dwSamplesPerSecond; // samples per second per channel
@@ -93,7 +93,7 @@ static int ao_file_open(ao_driver_t *this_gen, uint32_t bits, uint32_t rate, int
file_driver_t *this = (file_driver_t *) this_gen;
struct wavhdr w;
- xprintf (this->xine, XINE_VERBOSITY_LOG,
+ xprintf (this->xine, XINE_VERBOSITY_LOG,
"audio_file_out: ao_open bits=%d rate=%d, mode=%d\n", bits, rate, mode);
this->mode = mode;
@@ -314,7 +314,7 @@ static int ao_file_ctrl(ao_driver_t *this_gen, int cmd, ...) {
return 0;
}
-static ao_driver_t *open_plugin (audio_driver_class_t *class_gen,
+static ao_driver_t *open_plugin (audio_driver_class_t *class_gen,
const void *data) {
file_class_t *class = (file_class_t *) class_gen;
@@ -383,7 +383,7 @@ static const ao_info_t ao_info_file = {
*/
const plugin_info_t xine_plugin_info[] EXPORTED = {
- /* type, API, "name", version, special_info, init_function */
+ /* type, API, "name", version, special_info, init_function */
{ PLUGIN_AUDIO_OUT, AO_OUT_FILE_IFACE_VERSION, "file", XINE_VERSION_CODE, &ao_info_file, init_class },
{ PLUGIN_NONE, 0, "", 0, NULL, NULL }
};
diff --git a/src/audio_out/audio_fusionsound_out.c b/src/audio_out/audio_fusionsound_out.c
index 7db9e1ad2..c3455fd14 100644
--- a/src/audio_out/audio_fusionsound_out.c
+++ b/src/audio_out/audio_fusionsound_out.c
@@ -1,13 +1,13 @@
/*
* Copyright (C) 2000-2006 the xine project and Claudio Ciccani
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
@@ -47,7 +47,7 @@
#define FUSIONSOUND_VERSION_CODE VERSION_CODE( FUSIONSOUND_MAJOR_VERSION, \
FUSIONSOUND_MINOR_VERSION, \
FUSIONSOUND_MICRO_VERSION )
-
+
#if FUSIONSOUND_VERSION_CODE >= VERSION_CODE(1,1,0)
# include <fusionsound_limits.h> /* defines FS_MAX_CHANNELS */
#else
@@ -75,10 +75,10 @@ typedef struct fusionsound_driver_s {
float vol;
int vol_mute;
-
+
float amp;
int amp_mute;
-
+
int paused;
} fusionsound_driver_t;
@@ -96,12 +96,12 @@ static int ao_fusionsound_open(ao_driver_t *ao_driver,
DFBResult ret;
lprintf ("ao_open( bits=%d, rate=%d, mode=%d )\n", bits, rate, mode);
-
- dsc.flags = FSSDF_BUFFERSIZE | FSBDF_CHANNELS |
+
+ dsc.flags = FSSDF_BUFFERSIZE | FSBDF_CHANNELS |
FSSDF_SAMPLEFORMAT | FSSDF_SAMPLERATE;
switch (mode) {
- case AO_CAP_MODE_MONO:
+ case AO_CAP_MODE_MONO:
dsc.channels = 1;
break;
case AO_CAP_MODE_STEREO:
@@ -168,13 +168,13 @@ static int ao_fusionsound_open(ao_driver_t *ao_driver,
this->playback->Release (this->playback);
this->playback = NULL;
}
-
+
if (this->stream) {
this->stream->Release (this->stream);
this->stream = NULL;
}
-
- ret = this->sound->CreateStream (this->sound, &dsc, &this->stream);
+
+ ret = this->sound->CreateStream (this->sound, &dsc, &this->stream);
if (ret != DFB_OK) {
xprintf (this->xine, XINE_VERBOSITY_LOG,
"audio_fusionsound_out: IFusionSound::CreateStream() failed [%s]\n",
@@ -188,10 +188,10 @@ static int ao_fusionsound_open(ao_driver_t *ao_driver,
this->channels = dsc.channels;
this->rate = dsc.samplerate;
this->bytes_per_frame = this->channels * FS_BYTES_PER_SAMPLE(this->format);
-
+
ret = this->stream->GetPlayback (this->stream, &this->playback);
if (ret == DFB_OK) {
- this->playback->SetVolume (this->playback,
+ this->playback->SetVolume (this->playback,
(this->vol_mute ? 0 : this->vol) *
(this->amp_mute ? 0 : this->amp));
if (this->paused)
@@ -210,22 +210,22 @@ static int ao_fusionsound_open(ao_driver_t *ao_driver,
static int ao_fusionsound_num_channels(ao_driver_t *ao_driver) {
fusionsound_driver_t *this = (fusionsound_driver_t *) ao_driver;
-
+
return this->channels;
}
static int ao_fusionsound_bytes_per_frame(ao_driver_t *ao_driver) {
fusionsound_driver_t *this = (fusionsound_driver_t *) ao_driver;
-
+
return this->bytes_per_frame;
}
static int ao_fusionsound_delay(ao_driver_t *ao_driver) {
fusionsound_driver_t *this = (fusionsound_driver_t *) ao_driver;
int delay = 0;
-
+
this->stream->GetPresentationDelay (this->stream, &delay);
-
+
return (delay * this->rate / 1000);
}
@@ -237,7 +237,7 @@ static int ao_fusionsound_write(ao_driver_t *ao_driver,
int16_t *data, uint32_t num_frames) {
fusionsound_driver_t *this = (fusionsound_driver_t *) ao_driver;
DFBResult ret;
-
+
if (this->paused) {
xprintf (this->xine, XINE_VERBOSITY_DEBUG,
"audio_fusionsound_out: "
@@ -254,7 +254,7 @@ static int ao_fusionsound_write(ao_driver_t *ao_driver,
FusionSoundErrorString (ret));
return 0;
}
-
+
return num_frames;
}
@@ -278,15 +278,15 @@ static void ao_fusionsound_close(ao_driver_t *ao_driver){
*/
static uint32_t ao_fusionsound_get_capabilities(ao_driver_t *ao_driver) {
- uint32_t caps = AO_CAP_MODE_MONO | AO_CAP_MODE_STEREO |
+ uint32_t caps = AO_CAP_MODE_MONO | AO_CAP_MODE_STEREO |
AO_CAP_MIXER_VOL | AO_CAP_MUTE_VOL |
AO_CAP_8BITS | AO_CAP_16BITS |
- AO_CAP_24BITS;
+ AO_CAP_24BITS;
#if FUSIONSOUND_VERSION_CODE >= VERSION_CODE(0,9,26)
caps |= AO_CAP_FLOAT32;
#endif
#if FS_MAX_CHANNELS > 2
- caps |= AO_CAP_MODE_4CHANNEL | AO_CAP_MODE_4_1CHANNEL |
+ caps |= AO_CAP_MODE_4CHANNEL | AO_CAP_MODE_4_1CHANNEL |
AO_CAP_MODE_5CHANNEL | AO_CAP_MODE_5_1CHANNEL;
#endif
return caps;
@@ -297,13 +297,13 @@ static void ao_fusionsound_exit(ao_driver_t *ao_driver) {
if (this->playback)
this->playback->Release (this->playback);
-
+
if (this->stream)
this->stream->Release (this->stream);
if (this->sound)
this->sound->Release (this->sound);
-
+
free (this);
}
@@ -320,17 +320,17 @@ static int ao_fusionsound_get_property(ao_driver_t *ao_driver, int property) {
xprintf (this->xine, XINE_VERBOSITY_DEBUG,
"audio_fusionsound_out: volume mute is %d\n", this->vol_mute);
return this->vol_mute;
-
+
case AO_PROP_AMP:
xprintf (this->xine, XINE_VERBOSITY_DEBUG,
"audio_fusionsound_out: amplifier is %.2f\n", this->amp);
return (int) (this->amp * 100.0);
-
+
case AO_PROP_AMP_MUTE:
xprintf (this->xine, XINE_VERBOSITY_DEBUG,
"audio_fusionsound_out: amplifier mute is %d\n", this->amp_mute);
return this->amp_mute;
-
+
default:
break;
}
@@ -338,10 +338,10 @@ static int ao_fusionsound_get_property(ao_driver_t *ao_driver, int property) {
return 0;
}
-static int ao_fusionsound_set_property(ao_driver_t *ao_driver,
+static int ao_fusionsound_set_property(ao_driver_t *ao_driver,
int property, int value ) {
fusionsound_driver_t *this = (fusionsound_driver_t *) ao_driver;
-
+
if (!this->playback)
return 0;
@@ -351,11 +351,11 @@ static int ao_fusionsound_set_property(ao_driver_t *ao_driver,
xprintf (this->xine, XINE_VERBOSITY_DEBUG,
"audio_fusionsound_out: volume set to %.2f\n", this->vol);
break;
-
+
case AO_PROP_MUTE_VOL:
this->vol_mute = value ? 1 : 0;
xprintf (this->xine, XINE_VERBOSITY_DEBUG,
- "audio_fusionsound_out: volume mute set to %d\n",
+ "audio_fusionsound_out: volume mute set to %d\n",
this->vol_mute);
break;
@@ -364,20 +364,20 @@ static int ao_fusionsound_set_property(ao_driver_t *ao_driver,
xprintf (this->xine, XINE_VERBOSITY_DEBUG,
"audio_fusionsound_out: amplifier set to %.2f\n", this->amp);
break;
-
+
case AO_PROP_AMP_MUTE:
this->amp_mute = value ? 1 : 0;
xprintf (this->xine, XINE_VERBOSITY_DEBUG,
- "audio_fusionsound_out: amplifier mute set to %d\n",
+ "audio_fusionsound_out: amplifier mute set to %d\n",
this->amp_mute);
break;
default:
return 0;
}
-
+
if (this->playback) {
- this->playback->SetVolume (this->playback,
+ this->playback->SetVolume (this->playback,
(this->vol_mute ? 0 : this->vol) *
(this->amp_mute ? 0 : this->amp));
}
@@ -395,10 +395,10 @@ static int ao_fusionsound_control(ao_driver_t *ao_driver, int cmd, ...) {
this->playback->Stop (this->playback);
this->paused = 1;
return 1;
-
+
case AO_CTRL_PLAY_RESUME:
lprintf ("Resume()\n");
- if (this->playback)
+ if (this->playback)
this->playback->Continue (this->playback);
this->paused = 0;
return 1;
@@ -417,7 +417,7 @@ static int ao_fusionsound_control(ao_driver_t *ao_driver, int cmd, ...) {
}
-static ao_driver_t* open_plugin(audio_driver_class_t *ao_class,
+static ao_driver_t* open_plugin(audio_driver_class_t *ao_class,
const void *data ) {
fusionsound_class_t *class = (fusionsound_class_t *) ao_class;
fusionsound_driver_t *this;
@@ -457,7 +457,7 @@ static ao_driver_t* open_plugin(audio_driver_class_t *ao_class,
this->ao_driver.exit = ao_fusionsound_exit;
this->ao_driver.get_gap_tolerance = ao_fusionsound_get_gap_tolerance;
this->ao_driver.control = ao_fusionsound_control;
-
+
this->vol = this->amp = 1.0;
return &this->ao_driver;
@@ -470,7 +470,7 @@ static ao_driver_t* open_plugin(audio_driver_class_t *ao_class,
static void* init_class(xine_t *xine, void *data) {
fusionsound_class_t *class;
const char *error;
-
+
/* check FusionSound version */
error = FusionSoundCheckVersion( FUSIONSOUND_MAJOR_VERSION,
FUSIONSOUND_MINOR_VERSION,
@@ -506,7 +506,7 @@ static const ao_info_t ao_info_fusionsound = {
*/
const plugin_info_t xine_plugin_info[] EXPORTED = {
- /* type, API, "name", version, special_info, init_function */
+ /* type, API, "name", version, special_info, init_function */
{ PLUGIN_AUDIO_OUT, AO_OUT_FS_IFACE_VERSION, "FusionSound",
XINE_VERSION_CODE, &ao_info_fusionsound, init_class },
{ PLUGIN_NONE, 0, "", 0, NULL, NULL }
diff --git a/src/audio_out/audio_irixal_out.c b/src/audio_out/audio_irixal_out.c
index e86b78e76..3a0f21196 100644
--- a/src/audio_out/audio_irixal_out.c
+++ b/src/audio_out/audio_irixal_out.c
@@ -1,18 +1,18 @@
-/*
+/*
* Copyright (C) 2000-2003 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -113,7 +113,7 @@ static int ao_irixal_open(ao_driver_t *this_gen, uint32_t bits, uint32_t rate, i
default:
xlerror ("irixal Driver does not support the requested mode: 0x%x",mode);
return 0;
- }
+ }
if (! (config = alNewConfig ()))
{
@@ -126,7 +126,7 @@ static int ao_irixal_open(ao_driver_t *this_gen, uint32_t bits, uint32_t rate, i
alFreeConfig (config);
return 0;
}
-
+
switch (bits) {
case 8:
if ( (alSetWidth (config, AL_SAMPLE_8)) == -1)
@@ -211,7 +211,7 @@ static int ao_irixal_get_gap_tolerance (ao_driver_t *this_gen)
return this->gap_tolerance;
}
-static int ao_irixal_delay (ao_driver_t *this_gen)
+static int ao_irixal_delay (ao_driver_t *this_gen)
{
irixal_driver_t *this = (irixal_driver_t *) this_gen;
stamp_t stamp, time;
@@ -230,7 +230,7 @@ static int ao_irixal_write(ao_driver_t *this_gen,int16_t *data, uint32_t num_fra
{
irixal_driver_t *this = (irixal_driver_t *) this_gen;
stamp_t stamp;
-
+
/* Grmbf. IRIX audio does not tell us, wenn we run dry.
* We have to detect this ourself. */
/* get absolute number of samples played so far
@@ -249,7 +249,7 @@ static int ao_irixal_write(ao_driver_t *this_gen,int16_t *data, uint32_t num_fra
* alGetFillable() would tell us, whether space was available */
alWriteFrames (this->port, data, num_frames);
this->frames_in_buffer += num_frames;
-
+
return num_frames;
}
@@ -376,9 +376,9 @@ static void *init_audio_out_plugin (config_values_t *config)
}
}
}
-
+
printf (" capabilities 0x%X\n",this->capabilities);
-
+
/* TODO: anything can change during runtime... move check to the right location */
this->gap_tolerance = config->register_range (config, "audio.device.irixal_gap_tolerance",
DEFAULT_GAP_TOLERANCE, 0, 90000,
@@ -396,7 +396,7 @@ static void *init_audio_out_plugin (config_values_t *config)
this->ao_driver.num_channels = ao_irixal_num_channels;
this->ao_driver.bytes_per_frame = ao_irixal_bytes_per_frame;
this->ao_driver.delay = ao_irixal_delay;
- this->ao_driver.write = ao_irixal_write;
+ this->ao_driver.write = ao_irixal_write;
this->ao_driver.close = ao_irixal_close;
this->ao_driver.exit = ao_irixal_exit;
this->ao_driver.get_gap_tolerance = ao_irixal_get_gap_tolerance;
@@ -421,7 +421,7 @@ ao_info_t *get_audio_out_plugin_info()
*/
const plugin_info_t xine_plugin_info[] EXPORTED = {
- /* type, API, "name", version, special_info, init_function */
+ /* type, API, "name", version, special_info, init_function */
{ PLUGIN_AUDIO_OUT, AO_OUT_IRIXAL_IFACE_VERSION, "irixal", XINE_VERSION_CODE, &ao_info_irixal, init_audio_out_plugin },
{ PLUGIN_NONE, 0, "", 0, NULL, NULL }
};
diff --git a/src/audio_out/audio_jack_out.c b/src/audio_out/audio_jack_out.c
index f65fbd9b0..eca1263ed 100644
--- a/src/audio_out/audio_jack_out.c
+++ b/src/audio_out/audio_jack_out.c
@@ -89,7 +89,7 @@ typedef struct
/**
* \brief get the number of free bytes in the buffer
* \return number of free bytes in buffer
- *
+ *
* may only be called by Xine's thread
* return value may change between immediately following two calls,
* and the real number of free bytes might be larger!
diff --git a/src/audio_out/audio_none_out.c b/src/audio_out/audio_none_out.c
index 8be61d16d..c63d3a563 100644
--- a/src/audio_out/audio_none_out.c
+++ b/src/audio_out/audio_none_out.c
@@ -1,18 +1,18 @@
-/*
+/*
* Copyright (C) 2000-2003 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -40,7 +40,7 @@
#define AUDIO_NUM_FRAGMENTS 15
#define AUDIO_FRAGMENT_SIZE 8192
-#define GAP_TOLERANCE AO_MAX_GAP
+#define GAP_TOLERANCE AO_MAX_GAP
typedef struct none_driver_s {
@@ -74,7 +74,7 @@ static int ao_none_open(ao_driver_t *this_gen, uint32_t bits, uint32_t rate, int
{
none_driver_t *this = (none_driver_t *) this_gen;
- xprintf (this->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->xine, XINE_VERBOSITY_DEBUG,
"audio_none_out: ao_open bits=%d rate=%d, mode=%d\n", bits, rate, mode);
this->mode = mode;
@@ -115,13 +115,13 @@ static int ao_none_write(ao_driver_t *this_gen, int16_t *data,
uint32_t num_frames)
{
none_driver_t *this = (none_driver_t *) this_gen;
-
+
/* take some time to pretend we are doing something.
* avoids burning cpu.
*/
if( (1000 * num_frames / this->sample_rate) > 10 )
xine_usec_sleep ((1000 * num_frames / this->sample_rate)*1000/2);
-
+
return 1;
}
@@ -143,7 +143,7 @@ static uint32_t ao_none_get_capabilities (ao_driver_t *this_gen) {
static void ao_none_exit(ao_driver_t *this_gen)
{
none_driver_t *this = (none_driver_t *) this_gen;
-
+
ao_none_close(this_gen);
free (this);
@@ -177,7 +177,7 @@ static int ao_none_ctrl(ao_driver_t *this_gen, int cmd, ...) {
return 0;
}
-static ao_driver_t *open_plugin (audio_driver_class_t *class_gen,
+static ao_driver_t *open_plugin (audio_driver_class_t *class_gen,
const void *data) {
none_class_t *class = (none_class_t *) class_gen;
@@ -244,7 +244,7 @@ static const ao_info_t ao_info_none = {
*/
const plugin_info_t xine_plugin_info[] EXPORTED = {
- /* type, API, "name", version, special_info, init_function */
+ /* type, API, "name", version, special_info, init_function */
{ PLUGIN_AUDIO_OUT, AO_OUT_NONE_IFACE_VERSION, "none", XINE_VERSION_CODE, &ao_info_none, init_class },
{ PLUGIN_NONE, 0, "", 0, NULL, NULL }
};
diff --git a/src/audio_out/audio_oss_out.c b/src/audio_out/audio_oss_out.c
index 615281454..693c2b80f 100644
--- a/src/audio_out/audio_oss_out.c
+++ b/src/audio_out/audio_oss_out.c
@@ -1,25 +1,25 @@
-/*
+/*
* Copyright (C) 2000-2008 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
*
* 20-8-2001 First implementation of Audio sync and Audio driver separation.
* Copyright (C) 2001 James Courtier-Dutton James@superbug.demon.co.uk
- *
+ *
* General Programming Guidelines: -
* New concept of an "audio_frame".
* An audio_frame consists of all the samples required to fill every audio channel
@@ -90,7 +90,7 @@
#endif
#ifndef AFMT_AC3
-# define AFMT_AC3 0x00000400
+# define AFMT_AC3 0x00000400
#endif
#define AO_OUT_OSS_IFACE_VERSION 9
@@ -127,7 +127,7 @@ typedef struct oss_driver_s {
uint32_t bytes_per_frame;
uint32_t bytes_in_buffer; /* number of bytes writen to audio hardware */
uint32_t last_getoptr;
-
+
int audio_started;
int sync_method;
int latency;
@@ -178,7 +178,7 @@ static int ao_oss_open(ao_driver_t *this_gen,
close (this->audio_fd);
}
-
+
this->mode = mode;
this->input_sample_rate = rate;
this->bits_per_sample = bits;
@@ -192,11 +192,11 @@ static int ao_oss_open(ao_driver_t *this_gen,
this->audio_fd=open(this->audio_dev,O_WRONLY|O_NONBLOCK);
if (this->audio_fd < 0) {
- xprintf(this->xine, XINE_VERBOSITY_LOG,
+ xprintf(this->xine, XINE_VERBOSITY_LOG,
_("audio_oss_out: Opening audio device %s: %s\n"), this->audio_dev, strerror(errno));
return 0;
}
-
+
/* We wanted non blocking open but now put it back to normal */
fcntl(this->audio_fd, F_SETFL, fcntl(this->audio_fd, F_GETFL)&~O_NONBLOCK);
@@ -213,8 +213,8 @@ static int ao_oss_open(ao_driver_t *this_gen,
tmp = this->input_sample_rate;
if (ioctl(this->audio_fd,SNDCTL_DSP_SPEED, &tmp) == -1) {
-
- xprintf(this->xine, XINE_VERBOSITY_LOG,
+
+ xprintf(this->xine, XINE_VERBOSITY_LOG,
_("audio_oss_out: warning: sampling rate %d Hz not supported, trying 44100 Hz\n"),
this->input_sample_rate);
@@ -272,7 +272,7 @@ static int ao_oss_open(ao_driver_t *this_gen,
xprintf(this->xine, XINE_VERBOSITY_LOG, "audio_oss_out: %d channels output\n", this->num_channels);
this->bytes_per_frame=(this->bits_per_sample*this->num_channels)/8;
-
+
/*
* set format
*/
@@ -303,7 +303,7 @@ static int ao_oss_open(ao_driver_t *this_gen,
else
xprintf(this->xine, XINE_VERBOSITY_DEBUG, "audio_oss_out: The AFMT_S16_NE ioctl failed.\n");
return 0;
- }
+ }
}
break;
case AO_CAP_MODE_A52:
@@ -317,7 +317,7 @@ static int ao_oss_open(ao_driver_t *this_gen,
ioctl(this->audio_fd, SNDCTL_DSP_CHANNELS, &tmp);
tmp = AFMT_AC3;
if (ioctl(this->audio_fd, SNDCTL_DSP_SETFMT, &tmp) < 0 || tmp != AFMT_AC3) {
- xprintf(this->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->xine, XINE_VERBOSITY_DEBUG,
"audio_oss_out: AC3 SNDCTL_DSP_SETFMT failed. %d. Using alternative.\n",tmp);
tmp = AFMT_S16_LE;
ioctl(this->audio_fd, SNDCTL_DSP_SETFMT, &tmp);
@@ -344,7 +344,7 @@ static int ao_oss_open(ao_driver_t *this_gen,
printf ("audio_oss_out: audio buffer fragment info : %x\n",tmp);
- ioctl(this->audio_fd,SNDCTL_DSP_SETFRAGMENT,&tmp);
+ ioctl(this->audio_fd,SNDCTL_DSP_SETFRAGMENT,&tmp);
*/
return this->output_sample_rate;
@@ -395,9 +395,9 @@ static int ao_oss_delay(ao_driver_t *this_gen) {
* this->output_sample_k_rate / 1000;
frames += (tv.tv_sec - this->start_time.tv_sec)
* this->output_sample_rate;
-
+
frames -= this->latency * this->output_sample_k_rate;
-
+
/* calc delay */
bytes_left = this->bytes_in_buffer - frames * this->bytes_per_frame;
@@ -421,15 +421,15 @@ static int ao_oss_delay(ao_driver_t *this_gen) {
if (ioctl (this->audio_fd, SNDCTL_DSP_GETOPTR, &info)) {
perror ("audio_oss_out: SNDCTL_DSP_GETOPTR failed:");
}
-
+
lprintf ("%d bytes output\n", info.bytes);
if (this->bytes_in_buffer < info.bytes) {
this->bytes_in_buffer -= this->last_getoptr; /* GETOPTR wrapped */
- }
-
+ }
+
bytes_left = this->bytes_in_buffer - info.bytes; /* calc delay */
-
+
if (bytes_left<=0) { /* buffer ran dry */
bytes_left = 0;
this->bytes_in_buffer = info.bytes;
@@ -476,7 +476,7 @@ static int ao_oss_write(ao_driver_t *this_gen,
this->bytes_in_buffer += num_frames * this->bytes_per_frame;
- n = write(this->audio_fd, frame_buffer, num_frames * this->bytes_per_frame);
+ n = write(this->audio_fd, frame_buffer, num_frames * this->bytes_per_frame);
lprintf ("ao_oss_write done\n");
@@ -520,20 +520,20 @@ static int ao_oss_get_property (ao_driver_t *this_gen, int property) {
case AO_PROP_PCM_VOL:
case AO_PROP_MIXER_VOL:
if(!this->mixer.mute) {
-
+
if(this->mixer.fd != -1) {
IOCTL_REQUEST_TYPE cmd = 0;
int v;
-
+
ioctl(this->mixer.fd, SOUND_MIXER_READ_DEVMASK, &audio_devs);
-
+
if(audio_devs & SOUND_MASK_PCM)
cmd = SOUND_MIXER_READ_PCM;
else if(audio_devs & SOUND_MASK_VOLUME)
cmd = SOUND_MIXER_READ_VOLUME;
else
return -1;
-
+
ioctl(this->mixer.fd, cmd, &v);
this->mixer.volume = (((v & 0xFF00) >> 8) + (v & 0x00FF)) / 2;
} else
@@ -559,20 +559,20 @@ static int ao_oss_set_property (ao_driver_t *this_gen, int property, int value)
case AO_PROP_PCM_VOL:
case AO_PROP_MIXER_VOL:
if(!this->mixer.mute) {
-
+
if(this->mixer.fd != -1) {
IOCTL_REQUEST_TYPE cmd = 0;
int v;
-
+
ioctl(this->mixer.fd, SOUND_MIXER_READ_DEVMASK, &audio_devs);
-
+
if(audio_devs & SOUND_MASK_PCM)
cmd = SOUND_MIXER_WRITE_PCM;
else if(audio_devs & SOUND_MASK_VOLUME)
cmd = SOUND_MIXER_WRITE_VOLUME;
else
return -1;
-
+
v = (value << 8) | value;
ioctl(this->mixer.fd, cmd, &v);
this->mixer.volume = value;
@@ -588,26 +588,26 @@ static int ao_oss_set_property (ao_driver_t *this_gen, int property, int value)
this->mixer.mute = (value) ? 1 : 0;
if(this->mixer.mute) {
-
+
if(this->mixer.fd != -1) {
IOCTL_REQUEST_TYPE cmd = 0;
int v = 0;
-
+
ioctl(this->mixer.fd, SOUND_MIXER_READ_DEVMASK, &audio_devs);
-
+
if(audio_devs & SOUND_MASK_PCM)
cmd = SOUND_MIXER_WRITE_PCM;
else if(audio_devs & SOUND_MASK_VOLUME)
cmd = SOUND_MIXER_WRITE_VOLUME;
else
return -1;
-
+
ioctl(this->mixer.fd, cmd, &v);
} else
return -1;
} else
(void) ao_oss_set_property(&this->ao_driver, this->mixer.prop, this->mixer.volume);
-
+
return value;
break;
}
@@ -625,7 +625,7 @@ static int ao_oss_ctrl(ao_driver_t *this_gen, int cmd, ...) {
if (this->sync_method != OSS_SYNC_SOFTSYNC)
ioctl(this->audio_fd, SNDCTL_DSP_RESET, NULL);
-
+
/* close/reopen if RESET causes problems */
if (this->sync_method == OSS_SYNC_GETOPTR) {
ao_oss_close(this_gen);
@@ -641,7 +641,7 @@ static int ao_oss_ctrl(ao_driver_t *this_gen, int cmd, ...) {
lprintf ("AO_CTRL_FLUSH_BUFFERS\n");
if (this->sync_method != OSS_SYNC_SOFTSYNC)
ioctl(this->audio_fd, SNDCTL_DSP_RESET, NULL);
-
+
if (this->sync_method == OSS_SYNC_GETOPTR) {
ao_oss_close(this_gen);
ao_oss_open(this_gen, this->bits_per_sample, this->input_sample_rate, this->mode);
@@ -687,14 +687,14 @@ static int probe_audio_devices(oss_driver_t *this) {
strcpy(this->audio_dev, devname); /* Better, keep this one */
best_rate = rate;
}
-
+
close (audio_fd);
}
}
}
return best_rate; /* Will be zero if we did not find one */
-}
-
+}
+
static void oss_speaker_arrangement_cb (void *user_data,
xine_cfg_entry_t *entry);
@@ -728,7 +728,7 @@ static ao_driver_t *open_plugin (audio_driver_class_t *class_gen, const void *da
#define A52_PASSTHRU 12
int speakers;
-
+
this = calloc(1, sizeof (oss_driver_t));
if (!this)
return NULL;
@@ -762,7 +762,7 @@ static ao_driver_t *open_plugin (audio_driver_class_t *class_gen, const void *da
xprintf(class->xine, XINE_VERBOSITY_LOG,
_("audio_oss_out: audio.device.oss_device_name = auto, probing devs\n"));
if ( ! probe_audio_devices(this)) { /* Returns zero on fail */
- xprintf(class->xine, XINE_VERBOSITY_LOG,
+ xprintf(class->xine, XINE_VERBOSITY_LOG,
_("audio_oss_out: Auto probe for audio device failed\n"));
free (this);
return NULL;
@@ -784,18 +784,18 @@ static ao_driver_t *open_plugin (audio_driver_class_t *class_gen, const void *da
audio_fd = open(this->audio_dev, O_WRONLY|O_NONBLOCK);
if (audio_fd < 0) {
- xprintf(class->xine, XINE_VERBOSITY_LOG,
+ xprintf(class->xine, XINE_VERBOSITY_LOG,
_("audio_oss_out: opening audio device %s failed:\n%s\n"), this->audio_dev, strerror(errno));
free (this);
return NULL;
- }
+ }
/*
* set up driver to reasonable values for capabilities tests
*/
- arg = AFMT_S16_NE;
+ arg = AFMT_S16_NE;
status = ioctl(audio_fd, SNDCTL_DSP_SETFMT, &arg);
arg = 44100;
status = ioctl(audio_fd, SNDCTL_DSP_SPEED, &arg);
@@ -805,7 +805,7 @@ static ao_driver_t *open_plugin (audio_driver_class_t *class_gen, const void *da
*/
this->sync_method = config->register_enum (config, "audio.oss_sync_method", OSS_SYNC_AUTO_DETECT,
- sync_methods,
+ sync_methods,
_("a/v sync method to use by OSS"),
_("xine can use different methods to keep audio and video "
"synchronized. Which setting works best depends on the "
@@ -862,9 +862,9 @@ static ao_driver_t *open_plugin (audio_driver_class_t *class_gen, const void *da
"audio_oss_out: ...will use system real-time clock for soft-sync instead\n"
"audio_oss_out: ...there may be audio/video synchronization issues\n"));
xine_monotonic_clock(&this->start_time, NULL);
-
+
this->latency = config->register_range (config, "audio.oss_latency", 0,
- -3000, 3000,
+ -3000, 3000,
_("OSS audio output latency (adjust a/v sync)"),
_("If you experience audio being not in sync "
"with the video, you can enter a fixed offset "
@@ -873,20 +873,20 @@ static ao_driver_t *open_plugin (audio_driver_class_t *class_gen, const void *da
"of a second."),
20, NULL, NULL);
}
-
+
if (this->sync_method == OSS_SYNC_PROBEBUFFER) {
char *buf;
int c;
this->buffer_size = 0;
-
+
if( (buf=calloc(1, 1024)) != NULL ) {
do {
c = write(audio_fd,buf,1024);
if( c != -1 )
this->buffer_size += c;
} while( c == 1024 );
-
+
free(buf);
}
close(audio_fd);
@@ -896,7 +896,7 @@ static ao_driver_t *open_plugin (audio_driver_class_t *class_gen, const void *da
audio_fd=open(this->audio_dev, O_WRONLY|O_NONBLOCK);
- if(audio_fd < 0)
+ if(audio_fd < 0)
{
xprintf(class->xine, XINE_VERBOSITY_LOG,
_("audio_oss_out: opening audio device %s failed:\n%s\n"), this->audio_dev, strerror(errno));
@@ -907,11 +907,11 @@ static ao_driver_t *open_plugin (audio_driver_class_t *class_gen, const void *da
}
this->capabilities = 0;
-
+
arg = AFMT_U8;
if( ioctl(audio_fd, SNDCTL_DSP_SETFMT, &arg) != -1 && arg == AFMT_U8)
this->capabilities |= AO_CAP_8BITS;
-
+
/* switch back to 16bits, because some soundcards otherwise do not report all their capabilities */
arg = AFMT_S16_NE;
if (ioctl(audio_fd, SNDCTL_DSP_SETFMT, &arg) == -1 || arg != AFMT_S16_NE) {
@@ -956,30 +956,30 @@ static ao_driver_t *open_plugin (audio_driver_class_t *class_gen, const void *da
char *logmsg = strdup (_("audio_oss_out: supported modes are"));
- num_channels = 1;
- status = ioctl(audio_fd, SNDCTL_DSP_CHANNELS, &num_channels);
+ num_channels = 1;
+ status = ioctl(audio_fd, SNDCTL_DSP_CHANNELS, &num_channels);
if ( (status != -1) && (num_channels==1) ) {
this->capabilities |= AO_CAP_MODE_MONO;
xine_strcat_realloc (&logmsg, _(" mono"));
}
- num_channels = 2;
- status = ioctl(audio_fd, SNDCTL_DSP_CHANNELS, &num_channels);
+ num_channels = 2;
+ status = ioctl(audio_fd, SNDCTL_DSP_CHANNELS, &num_channels);
if ( (status != -1) && (num_channels==2) ) {
this->capabilities |= AO_CAP_MODE_STEREO;
xine_strcat_realloc (&logmsg, _(" stereo"));
}
- num_channels = 4;
- status = ioctl(audio_fd, SNDCTL_DSP_CHANNELS, &num_channels);
+ num_channels = 4;
+ status = ioctl(audio_fd, SNDCTL_DSP_CHANNELS, &num_channels);
if ( (status != -1) && (num_channels==4) ) {
if ( speakers == SURROUND4 ) {
this->capabilities |= AO_CAP_MODE_4CHANNEL;
xine_strcat_realloc (&logmsg, _(" 4-channel"));
- }
+ }
else
xine_strcat_realloc (&logmsg, _(" (4-channel not enabled in xine config)"));
}
- num_channels = 5;
- status = ioctl(audio_fd, SNDCTL_DSP_CHANNELS, &num_channels);
+ num_channels = 5;
+ status = ioctl(audio_fd, SNDCTL_DSP_CHANNELS, &num_channels);
if ( (status != -1) && (num_channels==5) ) {
if ( speakers == SURROUND5 ) {
this->capabilities |= AO_CAP_MODE_5CHANNEL;
@@ -988,13 +988,13 @@ static ao_driver_t *open_plugin (audio_driver_class_t *class_gen, const void *da
else
xine_strcat_realloc (&logmsg, _(" (5-channel not enabled in xine config)"));
}
- num_channels = 6;
- status = ioctl(audio_fd, SNDCTL_DSP_CHANNELS, &num_channels);
+ num_channels = 6;
+ status = ioctl(audio_fd, SNDCTL_DSP_CHANNELS, &num_channels);
if ( (status != -1) && (num_channels==6) ) {
if ( speakers == SURROUND51 ) {
this->capabilities |= AO_CAP_MODE_5_1CHANNEL;
xine_strcat_realloc (&logmsg, _(" 5.1-channel"));
- }
+ }
else
xine_strcat_realloc (&logmsg, _(" (5.1-channel not enabled in xine config)"));
}
@@ -1007,13 +1007,13 @@ static ao_driver_t *open_plugin (audio_driver_class_t *class_gen, const void *da
this->capabilities |= AO_CAP_MODE_A52;
this->capabilities |= AO_CAP_MODE_AC5;
xine_strcat_realloc (&logmsg, _(" a/52 pass-through"));
- }
- else
+ }
+ else
xine_strcat_realloc (&logmsg, _(" (a/52 pass-through not enabled in xine config)"));
xprintf(class->xine, XINE_VERBOSITY_DEBUG, "%s\n", logmsg);
free (logmsg);
-
+
/*
* mixer initialisation.
*/
@@ -1022,7 +1022,7 @@ static ao_driver_t *open_plugin (audio_driver_class_t *class_gen, const void *da
int mixer_num;
int audio_devs;
char *parse;
-
+
mixer_num = config->register_num(config, "audio.device.oss_mixer_number", -1,
_("OSS audio mixer number, -1 for none"),
_("The full mixer device name is created by taking the "
@@ -1033,7 +1033,7 @@ static ao_driver_t *open_plugin (audio_driver_class_t *class_gen, const void *da
"The range of this value is -1 or 0-15. This setting is "
"ignored, when the OSS audio device name is set to \"auto\"."),
10, NULL, NULL);
-
+
/* get the mixer device name from the audio device name by replacing "dsp" with "mixer" */
strcpy(mixer_name, this->audio_dev);
if ((parse = strstr(mixer_name, "dsp"))) {
@@ -1047,13 +1047,13 @@ static ao_driver_t *open_plugin (audio_driver_class_t *class_gen, const void *da
asprintf(&this->mixer.name, "%smixer%d", mixer_name, mixer_num);
}
_x_assert(this->mixer.name);
-
+
this->mixer.fd = open(this->mixer.name, O_RDONLY);
if(this->mixer.fd != -1) {
ioctl(this->mixer.fd, SOUND_MIXER_READ_DEVMASK, &audio_devs);
-
+
if(audio_devs & SOUND_MASK_PCM) {
this->capabilities |= AO_CAP_PCM_VOL;
this->mixer.prop = AO_PROP_PCM_VOL;
@@ -1062,9 +1062,9 @@ static ao_driver_t *open_plugin (audio_driver_class_t *class_gen, const void *da
this->capabilities |= AO_CAP_MIXER_VOL;
this->mixer.prop = AO_PROP_MIXER_VOL;
}
-
+
/*
- * This is obsolete in Linux kernel OSS
+ * This is obsolete in Linux kernel OSS
* implementation, so this will certainly doesn't work.
* So we just simulate the mute stuff
*/
@@ -1073,11 +1073,11 @@ static ao_driver_t *open_plugin (audio_driver_class_t *class_gen, const void *da
this->capabilities |= AO_CAP_MUTE_VOL;
*/
this->capabilities |= AO_CAP_MUTE_VOL;
-
- } else
+
+ } else
xprintf (class->xine, XINE_VERBOSITY_LOG,
_("audio_oss_out: open() mixer %s failed: %s\n"), this->mixer.name, strerror(errno));
-
+
this->mixer.mute = 0;
this->mixer.volume = ao_oss_get_property (&this->ao_driver, this->mixer.prop);
@@ -1171,7 +1171,7 @@ static const ao_info_t ao_info_oss = {
*/
const plugin_info_t xine_plugin_info[] EXPORTED = {
- /* type, API, "name", version, special_info, init_function */
+ /* type, API, "name", version, special_info, init_function */
{ PLUGIN_AUDIO_OUT, AO_OUT_OSS_IFACE_VERSION, "oss", XINE_VERSION_CODE, &ao_info_oss, init_class },
{ PLUGIN_NONE, 0, "", 0, NULL, NULL }
};
diff --git a/src/audio_out/audio_sun_out.c b/src/audio_out/audio_sun_out.c
index 57448b963..5b5f39365 100644
--- a/src/audio_out/audio_sun_out.c
+++ b/src/audio_out/audio_sun_out.c
@@ -1,18 +1,18 @@
-/*
+/*
* Copyright (C) 2001-2003 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -159,7 +159,7 @@ static int realtime_samplecounter_available(xine_t *xine, char *dev)
silence = calloc(1, len);
if (silence == NULL)
goto error;
-
+
if ((fd = open(dev, O_WRONLY|O_NONBLOCK)) < 0)
goto error;
@@ -176,7 +176,7 @@ static int realtime_samplecounter_available(xine_t *xine, char *dev)
xprintf(xine, XINE_VERBOSITY_DEBUG, "rtsc: SETINFO failed\n");
goto error;
}
-
+
if (write(fd, silence, len) != len) {
xprintf(xine, XINE_VERBOSITY_DEBUG, "rtsc: write failed\n");
goto error;
@@ -195,7 +195,7 @@ static int realtime_samplecounter_available(xine_t *xine, char *dev)
delay.tv_sec = 0;
delay.tv_nsec = 10000000;
nanosleep(&delay, NULL);
-
+
gettimeofday(&end, NULL);
usec_delay = (end.tv_sec - start.tv_sec) * 1000000
+ end.tv_usec - start.tv_usec;
@@ -230,7 +230,7 @@ static int realtime_samplecounter_available(xine_t *xine, char *dev)
* sample counter increment from the soundcard driver of less than
* 2000 samples, we assume that the driver provides a useable realtime
* sample counter in the AUDIO_INFO play.samples field. Timing based
- * on sample counts should be much more accurate than counting whole
+ * on sample counts should be much more accurate than counting whole
* 16kbyte chunks.
*/
if (min_increment < 2000)
@@ -238,10 +238,10 @@ static int realtime_samplecounter_available(xine_t *xine, char *dev)
/*
printf("audio_sun_out: minimum sample counter increment per 10msec interval: %d\n"
- "\t%susing sample counter based timing code\n",
+ "\t%susing sample counter based timing code\n",
min_increment, rtsc_ok == RTSC_ENABLED ? "" : "not ");
*/
-
+
error:
if (silence != NULL) free(silence);
@@ -261,7 +261,7 @@ error:
}
-/*
+/*
* match the requested sample rate |sample_rate| against the
* sample rates supported by the audio device |dev|. Return
* a supported sample rate, it that sample rate is close to
@@ -292,7 +292,7 @@ find_close_samplerate_match(int dev, int sample_rate)
if (sr->flags & MIXER_SR_LIMITS) {
/*
- * HW can playback any rate between
+ * HW can playback any rate between
* sr->samp_rates[0] .. sr->samp_rates[1]
*/
free(sr);
@@ -338,7 +338,7 @@ find_close_samplerate_match(int dev, int sample_rate)
for (i = 0; audiocs_rates[i]; i++) {
err = abs(audiocs_rates[i] - sample_rate);
if (err == 0) {
- /*
+ /*
* exact supported sample rate match, no need to
* retry something elise
*/
@@ -383,7 +383,7 @@ find_highest_samplerate(int dev)
if (sr->flags & MIXER_SR_LIMITS) {
/*
- * HW can playback any rate between
+ * HW can playback any rate between
* sr->samp_rates[0] .. sr->samp_rates[1]
*/
max_rate = sr->samp_rates[1];
@@ -410,7 +410,7 @@ find_highest_samplerate(int dev)
* Implicit assumptions about audio format (bits/rate/mode):
*
* bits == 16: We always get 16-bit samples in native endian format,
- * using signed linear encoding
+ * using signed linear encoding
*
* bits == 8: 8-bit samples use unsigned linear encoding,
* other 8-bit formats (uLaw, aLaw, etc) are currently not supported
@@ -438,7 +438,7 @@ static int ao_sun_open(ao_driver_t *this_gen,
close (this->audio_fd);
}
-
+
this->mode = mode;
this->input_sample_rate = rate;
#ifdef __svr4__
@@ -451,11 +451,11 @@ static int ao_sun_open(ao_driver_t *this_gen,
this->audio_fd = open(this->audio_dev, O_WRONLY|O_NONBLOCK);
if(this->audio_fd < 0) {
- xprintf(this->xine, XINE_VERBOSITY_LOG,
+ xprintf(this->xine, XINE_VERBOSITY_LOG,
_("audio_sun_out: opening audio device %s failed: %s\n"), this->audio_dev, strerror(errno));
return 0;
}
-
+
/* We wanted non blocking open but now put it back to normal */
fcntl(this->audio_fd, F_SETFL, fcntl(this->audio_fd, F_GETFL) & ~O_NONBLOCK);
@@ -483,7 +483,7 @@ static int ao_sun_open(ao_driver_t *this_gen,
if (pass & 1) {
/*
- * on some sun audio drivers, 8-bit unsigned LINEAR8 encoding is
+ * on some sun audio drivers, 8-bit unsigned LINEAR8 encoding is
* not supported, but 8-bit signed encoding is.
*
* Try S8, and if it works, use our own U8->S8 conversion before
@@ -509,7 +509,7 @@ static int ao_sun_open(ao_driver_t *this_gen,
*/
if (!(info.play.sample_rate =
find_close_samplerate_match(this->audio_fd,
- this->input_sample_rate)))
+ this->input_sample_rate)))
continue;
}
@@ -565,7 +565,7 @@ static int ao_sun_open(ao_driver_t *this_gen,
return this->output_sample_rate;
}
-static int ao_sun_num_channels(ao_driver_t *this_gen)
+static int ao_sun_num_channels(ao_driver_t *this_gen)
{
sun_driver_t *this = (sun_driver_t *) this_gen;
return this->num_channels;
@@ -587,7 +587,7 @@ static int ao_sun_delay(ao_driver_t *this_gen)
(this->frames_in_buffer == 0 || info.play.samples > 0)) {
if (info.play.samples < this->last_samplecnt) {
- xprintf(this->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->xine, XINE_VERBOSITY_DEBUG,
"audio_sun_out: broken sound driver, sample counter runs backwards, cur %u < prev %u\n",
info.play.samples, this->last_samplecnt);
}
@@ -726,7 +726,7 @@ static int ao_sun_write(ao_driver_t *this_gen,
int num_written;
if (this->convert_u8_s8) {
- /*
+ /*
* Audio hardware does not support 8-bit unsigned format,
* only 8-bit signed. Convert to 8-bit unsigned before sending
* the data to the audio device.
@@ -734,7 +734,7 @@ static int ao_sun_write(ao_driver_t *this_gen,
uint8_t *p = (void *)frame_buffer;
int i;
- for (i = num_frames * this->bytes_per_frame; --i >= 0; p++)
+ for (i = num_frames * this->bytes_per_frame; --i >= 0; p++)
*p ^= 0x80;
}
num_written = sun_audio_write(this, frame_buffer, num_frames * this->bytes_per_frame);
@@ -745,7 +745,7 @@ static int ao_sun_write(ao_driver_t *this_gen,
this->frames_in_buffer += num_written / this->bytes_per_frame;
#endif
- /*
+ /*
* Avoid storing too much data in the sound driver's buffers.
*
* When we find more than 3 seconds of buffered audio data in the
@@ -781,7 +781,7 @@ static uint32_t ao_sun_get_capabilities (ao_driver_t *this_gen) {
static void ao_sun_exit(ao_driver_t *this_gen)
{
sun_driver_t *this = (sun_driver_t *) this_gen;
-
+
if (this->audio_fd >= 0)
close(this->audio_fd);
@@ -867,7 +867,7 @@ static int ao_sun_ctrl(ao_driver_t *this_gen, int cmd, ...) {
/* flush buffered STEAMS data first */
ioctl(this->audio_fd, I_FLUSH, FLUSHW);
- /*
+ /*
* the flush above discarded an unknown amount of data from the
* audio device. To get the "*_delay" computation in sync again,
* reset the audio device's sample counter to 0, after waiting
@@ -942,7 +942,7 @@ static ao_driver_t *ao_sun_open_plugin (audio_driver_class_t *class_gen, const v
this->audio_fd = open(this->audio_dev = devname, O_WRONLY|O_NONBLOCK);
- if(this->audio_fd < 0)
+ if(this->audio_fd < 0)
{
xprintf(this->xine, XINE_VERBOSITY_LOG,
_("audio_sun_out: opening audio device %s failed: %s\n"), devname, strerror(errno));
@@ -960,7 +960,7 @@ static ao_driver_t *ao_sun_open_plugin (audio_driver_class_t *class_gen, const v
info.play.precision = AUDIO_PRECISION_16;
info.play.sample_rate = 44100;
status = ioctl(this->audio_fd, AUDIO_SETINFO, &info);
-
+
if (status < 0) {
xprintf(this->xine, XINE_VERBOSITY_LOG,
_("audio_sun_out: audio ioctl on device %s failed: %s\n"), devname, strerror(errno));
@@ -974,7 +974,7 @@ static ao_driver_t *ao_sun_open_plugin (audio_driver_class_t *class_gen, const v
*/
this->capabilities = AO_CAP_MODE_MONO | AO_CAP_MODE_STEREO | AO_CAP_8BITS
- | AO_CAP_16BITS | AO_CAP_PCM_VOL;
+ | AO_CAP_16BITS | AO_CAP_PCM_VOL;
#ifdef __svr4__
this->capabilities |= AO_CAP_MUTE_VOL;
#endif
@@ -1038,7 +1038,7 @@ static const ao_info_t ao_info_sun = {
*/
const plugin_info_t xine_plugin_info[] EXPORTED = {
- /* type, API, "name", version, special_info, init_function */
+ /* type, API, "name", version, special_info, init_function */
{ PLUGIN_AUDIO_OUT, AO_SUN_IFACE_VERSION, "sun", XINE_VERSION_CODE, &ao_info_sun, ao_sun_init_class },
{ PLUGIN_NONE, 0, "", 0, NULL, NULL }
};
diff --git a/src/combined/Makefile.am b/src/combined/Makefile.am
index 3b133c412..233009105 100644
--- a/src/combined/Makefile.am
+++ b/src/combined/Makefile.am
@@ -42,7 +42,7 @@ xineplug_nsf_la_CPPFLAGS = $(AM_CPPFLAGS) -DNSF_PLAYER -I$(top_srcdir)/contrib/n
xineplug_xiph_la_SOURCES = xine_ogg_demuxer.c
xineplug_xiph_la_LIBADD = $(XINE_LIB) $(LTLIBINTL)
-xineplug_xiph_la_CFLAGS = $(AM_CFLAGS)
+xineplug_xiph_la_CFLAGS = $(AM_CFLAGS)
xineplug_xiph_la_CPPFLAGS = $(AM_CPPFLAGS) -I$(top_srcdir)/src/demuxers
if ENABLE_VORBIS
diff --git a/src/combined/ffmpeg/ff_audio_decoder.c b/src/combined/ffmpeg/ff_audio_decoder.c
index bae0f92a4..f58fcfb46 100644
--- a/src/combined/ffmpeg/ff_audio_decoder.c
+++ b/src/combined/ffmpeg/ff_audio_decoder.c
@@ -1,25 +1,25 @@
/*
* Copyright (C) 2001-2008 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
*
* xine audio decoder plugin using ffmpeg
*/
-
+
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
@@ -65,7 +65,7 @@ typedef struct ff_audio_decoder_s {
AVCodecContext *context;
AVCodec *codec;
-
+
char *decode_buffer;
int decoder_ok;
@@ -78,7 +78,7 @@ typedef struct ff_audio_decoder_s {
if (size > this->bufsize) {
this->bufsize = size + size / 2;
xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
- _("ffmpeg_audio_dec: increasing buffer to %d to avoid overflow.\n"),
+ _("ffmpeg_audio_dec: increasing buffer to %d to avoid overflow.\n"),
this->bufsize);
this->buf = realloc( this->buf, this->bufsize );
}
@@ -101,15 +101,15 @@ static void ff_audio_decode_data (audio_decoder_t *this_gen, buf_element_t *buf)
ff_audio_ensure_buffer_size(this, this->size + buf->size);
memcpy(this->buf + this->size, buf->content, buf->size);
this->size += buf->size;
-
+
if (buf->decoder_flags & BUF_FLAG_FRAME_END) {
size_t i;
unsigned int codec_type;
xine_waveformatex *audio_header;
-
+
codec_type = buf->type & 0xFFFF0000;
this->codec = NULL;
-
+
for(i = 0; i < sizeof(ff_audio_lookup)/sizeof(ff_codec_t); i++)
if(ff_audio_lookup[i].type == codec_type) {
pthread_mutex_lock (&ffmpeg_lock);
@@ -119,57 +119,57 @@ static void ff_audio_decode_data (audio_decoder_t *this_gen, buf_element_t *buf)
ff_audio_lookup[i].name);
break;
}
-
+
if (!this->codec) {
- xprintf (this->stream->xine, XINE_VERBOSITY_LOG,
+ xprintf (this->stream->xine, XINE_VERBOSITY_LOG,
_("ffmpeg_audio_dec: couldn't find ffmpeg decoder for buf type 0x%X\n"),
codec_type);
_x_stream_info_set(this->stream, XINE_STREAM_INFO_AUDIO_HANDLED, 0);
return;
}
-
+
this->context = avcodec_alloc_context();
-
+
if(buf->decoder_flags & BUF_FLAG_STDHEADER) {
this->audio_sample_rate = buf->decoder_info[1];
this->audio_channels = buf->decoder_info[3];
-
+
if(this->size) {
audio_header = (xine_waveformatex *)this->buf;
-
+
this->context->block_align = audio_header->nBlockAlign;
this->context->bit_rate = audio_header->nAvgBytesPerSec * 8;
-
+
if(audio_header->cbSize > 0) {
this->context->extradata = malloc(audio_header->cbSize);
this->context->extradata_size = audio_header->cbSize;
- memcpy( this->context->extradata,
+ memcpy( this->context->extradata,
(uint8_t *)audio_header + sizeof(xine_waveformatex),
- audio_header->cbSize );
+ audio_header->cbSize );
}
}
} else {
short *ptr;
-
+
switch(codec_type) {
case BUF_AUDIO_14_4:
this->audio_sample_rate = 8000;
this->audio_channels = 1;
-
+
this->context->block_align = 240;
break;
case BUF_AUDIO_28_8:
this->audio_sample_rate = _X_BE_16(&this->buf[0x30]);
this->audio_channels = this->buf[0x37];
/* this->audio_bits = buf->content[0x35] */
-
+
this->context->block_align = _X_BE_32(&this->buf[0x18]);
this->context->extradata_size = 5*sizeof(short);
this->context->extradata = malloc(this->context->extradata_size);
-
+
ptr = (short *) this->context->extradata;
-
+
ptr[0] = _X_BE_16(&this->buf[0x2C]); /* subpacket size */
ptr[1] = _X_BE_16(&this->buf[0x28]); /* subpacket height */
ptr[2] = _X_BE_16(&this->buf[0x16]); /* subpacket flavour */
@@ -226,23 +226,23 @@ static void ff_audio_decode_data (audio_decoder_t *this_gen, buf_element_t *buf)
break;
}
}
-
- /* Current ffmpeg audio decoders always use 16 bits/sample
+
+ /* Current ffmpeg audio decoders always use 16 bits/sample
* buf->decoder_info[2] can't be used as it doesn't refer to the output
* bits/sample for some codecs (e.g. MS ADPCM) */
- this->audio_bits = 16;
-
+ this->audio_bits = 16;
+
this->context->bits_per_sample = this->audio_bits;
this->context->sample_rate = this->audio_sample_rate;
this->context->channels = this->audio_channels;
this->context->codec_id = this->codec->id;
this->context->codec_type = this->codec->type;
this->context->codec_tag = _x_stream_info_get(this->stream, XINE_STREAM_INFO_AUDIO_FOURCC);
-
+
this->size = 0;
-
+
this->decode_buffer = calloc(1, AVCODEC_MAX_AUDIO_FRAME_SIZE);
-
+
return;
}
} else if ((buf->decoder_flags & BUF_FLAG_SPECIAL) &&
@@ -267,12 +267,12 @@ static void ff_audio_decode_data (audio_decoder_t *this_gen, buf_element_t *buf)
pthread_mutex_lock (&ffmpeg_lock);
if (avcodec_open (this->context, this->codec) < 0) {
pthread_mutex_unlock (&ffmpeg_lock);
- xprintf (this->stream->xine, XINE_VERBOSITY_LOG,
+ xprintf (this->stream->xine, XINE_VERBOSITY_LOG,
_("ffmpeg_audio_dec: couldn't open decoder\n"));
_x_stream_info_set(this->stream, XINE_STREAM_INFO_AUDIO_HANDLED, 0);
return;
}
- pthread_mutex_unlock (&ffmpeg_lock);
+ pthread_mutex_unlock (&ffmpeg_lock);
this->decoder_ok = 1;
}
@@ -310,14 +310,14 @@ static void ff_audio_decode_data (audio_decoder_t *this_gen, buf_element_t *buf)
offset = 0;
while (this->size>0) {
decode_buffer_size = AVCODEC_MAX_AUDIO_FRAME_SIZE;
- bytes_consumed = avcodec_decode_audio2 (this->context,
+ bytes_consumed = avcodec_decode_audio2 (this->context,
(int16_t *)this->decode_buffer,
- &decode_buffer_size,
+ &decode_buffer_size,
&this->buf[offset],
this->size);
if (bytes_consumed<0) {
- xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
"ffmpeg_audio_dec: error decompressing audio frame\n");
this->size=0;
return;
@@ -337,10 +337,10 @@ static void ff_audio_decode_data (audio_decoder_t *this_gen, buf_element_t *buf)
return;
}
- audio_buffer =
+ audio_buffer =
this->stream->audio_out->get_buffer (this->stream->audio_out);
if (audio_buffer->mem_size == 0) {
- xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
"ffmpeg_audio_dec: Help! Allocated audio buffer with nothing in it!\n");
return;
}
@@ -376,7 +376,7 @@ static void ff_audio_decode_data (audio_decoder_t *this_gen, buf_element_t *buf)
static void ff_audio_reset (audio_decoder_t *this_gen) {
ff_audio_decoder_t *this = (ff_audio_decoder_t *) this_gen;
-
+
this->size = 0;
/* try to reset the wma decoder */
@@ -395,7 +395,7 @@ static void ff_audio_discontinuity (audio_decoder_t *this_gen) {
static void ff_audio_dispose (audio_decoder_t *this_gen) {
ff_audio_decoder_t *this = (ff_audio_decoder_t *) this_gen;
-
+
if( this->context && this->decoder_ok ) {
pthread_mutex_lock (&ffmpeg_lock);
avcodec_close (this->context);
@@ -436,7 +436,7 @@ static audio_decoder_t *ff_audio_open_plugin (audio_decoder_class_t *class_gen,
this->size = 0;
this->bufsize = 0;
this->decoder_ok = 0;
-
+
ff_audio_ensure_buffer_size(this, AUDIOBUFSIZE);
return &this->audio_decoder;
diff --git a/src/combined/ffmpeg/ff_mpeg_parser.c b/src/combined/ffmpeg/ff_mpeg_parser.c
index 3c2c2cf48..54f7d6c94 100644
--- a/src/combined/ffmpeg/ff_mpeg_parser.c
+++ b/src/combined/ffmpeg/ff_mpeg_parser.c
@@ -57,7 +57,7 @@ void mpeg_parser_init (mpeg_parser_t *parser)
void mpeg_parser_dispose (mpeg_parser_t *parser)
{
if ( parser == NULL ) return;
-
+
free(parser->chunk_buffer);
}
@@ -124,7 +124,7 @@ static int parse_chunk (mpeg_parser_t *parser, int code, uint8_t *buffer, int le
{
int is_frame_done;
int next_code = parser->code;
-
+
/* wait for sequence_header_code */
if (parser->is_sequence_needed) {
if (code != 0xb3) {
@@ -133,7 +133,7 @@ static int parse_chunk (mpeg_parser_t *parser, int code, uint8_t *buffer, int le
return 0;
}
}
-
+
is_frame_done = parser->in_slice && ((!next_code) || (next_code == 0xb7));
if (is_frame_done)
@@ -141,7 +141,7 @@ static int parse_chunk (mpeg_parser_t *parser, int code, uint8_t *buffer, int le
switch (code) {
case 0x00: /* picture_start_code */
-
+
parse_header_picture (parser, buffer);
parser->in_slice = 1;
@@ -150,11 +150,11 @@ static int parse_chunk (mpeg_parser_t *parser, int code, uint8_t *buffer, int le
case B_TYPE:
lprintf ("B-Frame\n");
break;
-
+
case P_TYPE:
lprintf ("P-Frame\n");
break;
-
+
case I_TYPE:
lprintf ("I-Frame\n");
break;
@@ -169,11 +169,11 @@ static int parse_chunk (mpeg_parser_t *parser, int code, uint8_t *buffer, int le
{
int value;
uint16_t width, height;
-
+
if (parser->is_sequence_needed) {
parser->is_sequence_needed = 0;
}
-
+
if ((buffer[6] & 0x20) != 0x20) {
lprintf("Invalid sequence: missing marker_bit\n");
parser->has_sequence = 0;
@@ -185,7 +185,7 @@ static int parse_chunk (mpeg_parser_t *parser, int code, uint8_t *buffer, int le
buffer[2];
width = ((value >> 12) + 15) & ~15;
height = ((value & 0xfff) + 15) & ~15;
-
+
if ((width > 1920) || (height > 1152)) {
lprintf("Invalid sequence: width=%d, height=%d\n", width, height);
parser->has_sequence = 0;
@@ -196,7 +196,7 @@ static int parse_chunk (mpeg_parser_t *parser, int code, uint8_t *buffer, int le
parser->height = height;
parser->rate_code = buffer[3] & 15;
parser->aspect_ratio_info = buffer[3] >> 4;
-
+
if (parser->rate_code < (sizeof(frame_rate_tab)/sizeof(*frame_rate_tab))) {
parser->frame_duration = 90000;
parser->frame_duration *= frame_rate_tab[parser->rate_code][1];
@@ -211,7 +211,7 @@ static int parse_chunk (mpeg_parser_t *parser, int code, uint8_t *buffer, int le
parser->is_mpeg1 = 1;
}
break;
-
+
case 0xb5: /* extension_start_code */
switch (buffer[0] & 0xf0) {
case 0x10: /* sequence extension */
@@ -282,7 +282,7 @@ uint8_t *mpeg_parser_decode_data (mpeg_parser_t *parser,
ret = 0;
*flush = 0;
-
+
while (current != end) {
if (parser->chunk_ptr == parser->chunk_buffer) {
/* write the beginning of the chunk */
@@ -294,9 +294,9 @@ uint8_t *mpeg_parser_decode_data (mpeg_parser_t *parser,
parser->chunk_start = parser->chunk_ptr;
parser->has_sequence = 0;
}
-
+
code = parser->code;
-
+
current = copy_chunk (parser, current, end);
if (current == NULL)
return NULL;
@@ -309,10 +309,10 @@ uint8_t *mpeg_parser_decode_data (mpeg_parser_t *parser,
}
parser->buffer_size = parser->chunk_ptr - parser->chunk_buffer - 4;
parser->chunk_ptr = parser->chunk_buffer;
-
+
if (parser->code == 0xb7) /* sequence end, maybe a still menu */
*flush = 1;
-
+
return current;
}
}
diff --git a/src/combined/ffmpeg/ff_mpeg_parser.h b/src/combined/ffmpeg/ff_mpeg_parser.h
index 504e746f9..c1ebc326f 100644
--- a/src/combined/ffmpeg/ff_mpeg_parser.h
+++ b/src/combined/ffmpeg/ff_mpeg_parser.h
@@ -49,7 +49,7 @@ typedef struct mpeg_parser_s {
uint8_t in_slice:1;
uint8_t rate_code:4;
-
+
int aspect_ratio_info;
/* public properties */
diff --git a/src/combined/ffmpeg/ff_video_decoder.c b/src/combined/ffmpeg/ff_video_decoder.c
index f317b86e8..726945acd 100644
--- a/src/combined/ffmpeg/ff_video_decoder.c
+++ b/src/combined/ffmpeg/ff_video_decoder.c
@@ -1,25 +1,25 @@
/*
* Copyright (C) 2001-2008 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
*
* xine video decoder plugin using ffmpeg
*/
-
+
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
@@ -66,7 +66,7 @@ typedef struct ff_video_class_s {
int thread_count;
int8_t skip_loop_filter_enum;
int8_t choose_speed_over_accuracy;
-
+
xine_t *xine;
} ff_video_class_t;
@@ -98,13 +98,13 @@ struct ff_video_decoder_s {
int bufsize;
int size;
int skipframes;
-
+
int slice_offset_size;
AVFrame *av_frame;
AVCodecContext *context;
AVCodec *codec;
-
+
int pp_quality;
int pp_flags;
pp_context_t *pp_context;
@@ -117,7 +117,7 @@ struct ff_video_decoder_s {
int aspect_ratio_prio;
int frame_flags;
int crop_right, crop_bottom;
-
+
int output_format;
xine_list_t *dr1_frames;
@@ -145,7 +145,7 @@ static int get_buffer(AVCodecContext *context, AVFrame *av_frame){
vo_frame_t *img;
int width = context->width;
int height = context->height;
-
+
if (!this->bih.biWidth || !this->bih.biHeight) {
this->bih.biWidth = width;
this->bih.biHeight = height;
@@ -157,12 +157,12 @@ static int get_buffer(AVCodecContext *context, AVFrame *av_frame){
set_stream_info(this);
}
}
-
+
avcodec_align_dimensions(context, &width, &height);
if( this->context->pix_fmt != PIX_FMT_YUV420P && this->context->pix_fmt != PIX_FMT_YUVJ420P ) {
if (!this->is_direct_rendering_disabled) {
- xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
_("ffmpeg_video_dec: unsupported frame format, DR1 disabled.\n"));
this->is_direct_rendering_disabled = 1;
}
@@ -173,14 +173,14 @@ static int get_buffer(AVCodecContext *context, AVFrame *av_frame){
av_frame->data[2]= NULL;
return avcodec_default_get_buffer(context, av_frame);
}
-
+
if((width != this->bih.biWidth) || (height != this->bih.biHeight)) {
if(this->stream->video_out->get_capabilities(this->stream->video_out) & VO_CAP_CROP) {
this->crop_right = width - this->bih.biWidth;
this->crop_bottom = height - this->bih.biHeight;
} else {
if (!this->is_direct_rendering_disabled) {
- xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
_("ffmpeg_video_dec: unsupported frame dimensions, DR1 disabled.\n"));
this->is_direct_rendering_disabled = 1;
}
@@ -195,7 +195,7 @@ static int get_buffer(AVCodecContext *context, AVFrame *av_frame){
img = this->stream->video_out->get_frame (this->stream->video_out,
width,
height,
- this->aspect_ratio,
+ this->aspect_ratio,
this->output_format,
VO_BOTH_FIELDS|this->frame_flags);
@@ -235,7 +235,7 @@ static void release_buffer(struct AVCodecContext *context, AVFrame *av_frame){
}
xine_list_iterator_t it;
-
+
it = xine_list_find(this->dr1_frames, av_frame);
assert(it);
if( it != NULL )
@@ -289,7 +289,7 @@ static void init_video_codec (ff_video_decoder_t *this, unsigned int codec_type)
}
if (!this->codec) {
- xprintf (this->stream->xine, XINE_VERBOSITY_LOG,
+ xprintf (this->stream->xine, XINE_VERBOSITY_LOG,
_("ffmpeg_video_dec: couldn't find ffmpeg decoder for buf type 0x%X\n"),
codec_type);
_x_stream_info_set(this->stream, XINE_STREAM_INFO_VIDEO_HANDLED, 0);
@@ -298,14 +298,14 @@ static void init_video_codec (ff_video_decoder_t *this, unsigned int codec_type)
lprintf("lavc decoder found\n");
- /* force (width % 8 == 0), otherwise there will be
- * display problems with Xv.
- */
+ /* force (width % 8 == 0), otherwise there will be
+ * display problems with Xv.
+ */
this->bih.biWidth = (this->bih.biWidth + 1) & (~1);
this->context->width = this->bih.biWidth;
this->context->height = this->bih.biHeight;
- this->context->stream_codec_tag = this->context->codec_tag =
+ this->context->stream_codec_tag = this->context->codec_tag =
_x_stream_info_get(this->stream, XINE_STREAM_INFO_VIDEO_FOURCC);
@@ -314,14 +314,14 @@ static void init_video_codec (ff_video_decoder_t *this, unsigned int codec_type)
if(this->codec->capabilities & CODEC_CAP_DR1 && this->codec->id != CODEC_ID_H264) {
this->context->flags |= CODEC_FLAG_EMU_EDGE;
}
-
+
if (this->class->choose_speed_over_accuracy)
this->context->flags2 |= CODEC_FLAG2_FAST;
pthread_mutex_lock(&ffmpeg_lock);
if (avcodec_open (this->context, this->codec) < 0) {
pthread_mutex_unlock(&ffmpeg_lock);
- xprintf (this->stream->xine, XINE_VERBOSITY_LOG,
+ xprintf (this->stream->xine, XINE_VERBOSITY_LOG,
_("ffmpeg_video_dec: couldn't open decoder\n"));
free(this->context);
this->context = NULL;
@@ -329,14 +329,14 @@ static void init_video_codec (ff_video_decoder_t *this, unsigned int codec_type)
return;
}
- if (this->codec->id == CODEC_ID_VC1 &&
+ if (this->codec->id == CODEC_ID_VC1 &&
(!this->bih.biWidth || !this->bih.biHeight)) {
/* VC1 codec must be re-opened with correct width and height. */
avcodec_close(this->context);
if (avcodec_open (this->context, this->codec) < 0) {
pthread_mutex_unlock(&ffmpeg_lock);
- xprintf (this->stream->xine, XINE_VERBOSITY_LOG,
+ xprintf (this->stream->xine, XINE_VERBOSITY_LOG,
_("ffmpeg_video_dec: couldn't open decoder (pass 2)\n"));
free(this->context);
this->context = NULL;
@@ -373,14 +373,14 @@ static void init_video_codec (ff_video_decoder_t *this, unsigned int codec_type)
(this->stream->video_out->open) (this->stream->video_out, this->stream);
this->skipframes = 0;
-
+
/* enable direct rendering by default */
this->output_format = XINE_IMGFMT_YV12;
#ifdef ENABLE_DIRECT_RENDERING
if( this->codec->capabilities & CODEC_CAP_DR1 && this->codec->id != CODEC_ID_H264 ) {
this->context->get_buffer = get_buffer;
this->context->release_buffer = release_buffer;
- xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
_("ffmpeg_video_dec: direct rendering enabled\n"));
}
#endif
@@ -411,25 +411,25 @@ static void init_video_codec (ff_video_decoder_t *this, unsigned int codec_type)
static void choose_speed_over_accuracy_cb(void *user_data, xine_cfg_entry_t *entry) {
ff_video_class_t *class = (ff_video_class_t *) user_data;
-
+
class->choose_speed_over_accuracy = entry->num_value;
}
static void skip_loop_filter_enum_cb(void *user_data, xine_cfg_entry_t *entry) {
ff_video_class_t *class = (ff_video_class_t *) user_data;
-
+
class->skip_loop_filter_enum = entry->num_value;
}
static void thread_count_cb(void *user_data, xine_cfg_entry_t *entry) {
ff_video_class_t *class = (ff_video_class_t *) user_data;
-
+
class->thread_count = entry->num_value;
}
static void pp_quality_cb(void *user_data, xine_cfg_entry_t *entry) {
ff_video_class_t *class = (ff_video_class_t *) user_data;
-
+
class->pp_quality = entry->num_value;
}
@@ -442,15 +442,15 @@ static void pp_change_quality (ff_video_decoder_t *this) {
this->pp_flags);
if(this->pp_mode)
pp_free_mode(this->pp_mode);
-
- this->pp_mode = pp_get_mode_by_name_and_quality("hb:a,vb:a,dr:a",
+
+ this->pp_mode = pp_get_mode_by_name_and_quality("hb:a,vb:a,dr:a",
this->pp_quality);
} else {
if(this->pp_mode) {
pp_free_mode(this->pp_mode);
this->pp_mode = NULL;
}
-
+
if(this->pp_context) {
pp_free_context(this->pp_context);
this->pp_context = NULL;
@@ -475,22 +475,22 @@ static void init_postprocess (ff_video_decoder_t *this) {
this->pp_available = 0;
break;
}
-
+
/* Detect what cpu accel we have */
cpu_caps = xine_mm_accel();
this->pp_flags = PP_FORMAT_420;
-
+
if(cpu_caps & MM_ACCEL_X86_MMX)
this->pp_flags |= PP_CPU_CAPS_MMX;
-
+
if(cpu_caps & MM_ACCEL_X86_MMXEXT)
this->pp_flags |= PP_CPU_CAPS_MMX2;
-
- if(cpu_caps & MM_ACCEL_X86_3DNOW)
+
+ if(cpu_caps & MM_ACCEL_X86_3DNOW)
this->pp_flags |= PP_CPU_CAPS_3DNOW;
-
+
/* Set level */
- pp_change_quality(this);
+ pp_change_quality(this);
}
static int ff_handle_mpeg_sequence(ff_video_decoder_t *this, mpeg_parser_t *parser) {
@@ -499,13 +499,13 @@ static int ff_handle_mpeg_sequence(ff_video_decoder_t *this, mpeg_parser_t *pars
* init codec
*/
if (this->decoder_init_mode) {
- _x_meta_info_set_utf8(this->stream, XINE_META_INFO_VIDEOCODEC,
+ _x_meta_info_set_utf8(this->stream, XINE_META_INFO_VIDEOCODEC,
"mpeg-1 (ffmpeg)");
init_video_codec (this, BUF_VIDEO_MPEG);
this->decoder_init_mode = 0;
}
-
+
/* frame format change */
if ((parser->width != this->bih.biWidth) ||
(parser->height != this->bih.biHeight) ||
@@ -531,7 +531,7 @@ static int ff_handle_mpeg_sequence(ff_video_decoder_t *this, mpeg_parser_t *pars
xine_event_send(this->stream, &event);
}
this->video_step = this->mpeg_parser->frame_duration;
-
+
return 1;
}
@@ -600,7 +600,7 @@ static void ff_convert_frame(ff_video_decoder_t *this, vo_frame_t *img) {
this->bih.biHeight);
} else if (this->context->pix_fmt == PIX_FMT_RGB32) {
-
+
int x, plane_ptr = 0;
uint32_t *argb_pixels;
uint32_t argb;
@@ -609,7 +609,7 @@ static void ff_convert_frame(ff_video_decoder_t *this, vo_frame_t *img) {
argb_pixels = (uint32_t *)sy;
for(x = 0; x < img->width; x++) {
uint8_t r, g, b;
-
+
/* this is endian-safe as the ARGB pixels are stored in
* machine order */
argb = *argb_pixels++;
@@ -624,9 +624,9 @@ static void ff_convert_frame(ff_video_decoder_t *this, vo_frame_t *img) {
}
sy += this->av_frame->linesize[0];
}
-
+
yuv444_to_yuy2(&this->yuv, img->base[0], img->pitches[0]);
-
+
} else if (this->context->pix_fmt == PIX_FMT_RGB565) {
int x, plane_ptr = 0;
@@ -637,7 +637,7 @@ static void ff_convert_frame(ff_video_decoder_t *this, vo_frame_t *img) {
src = sy;
for(x = 0; x < img->width; x++) {
uint8_t r, g, b;
-
+
/* a 16-bit RGB565 pixel is supposed to be stored in native-endian
* byte order; the following should be endian-safe */
pixel16 = *((uint16_t *)src);
@@ -653,20 +653,20 @@ static void ff_convert_frame(ff_video_decoder_t *this, vo_frame_t *img) {
}
sy += this->av_frame->linesize[0];
}
-
+
yuv444_to_yuy2(&this->yuv, img->base[0], img->pitches[0]);
-
+
} else if (this->context->pix_fmt == PIX_FMT_RGB555) {
-
+
int x, plane_ptr = 0;
uint8_t *src;
uint16_t pixel16;
-
+
for(y = 0; y < this->bih.biHeight; y++) {
src = sy;
for(x = 0; x < img->width; x++) {
uint8_t r, g, b;
-
+
/* a 16-bit RGB555 pixel is supposed to be stored in native-endian
* byte order; the following should be endian-safe */
pixel16 = *((uint16_t *)src);
@@ -682,9 +682,9 @@ static void ff_convert_frame(ff_video_decoder_t *this, vo_frame_t *img) {
}
sy += this->av_frame->linesize[0];
}
-
+
yuv444_to_yuy2(&this->yuv, img->base[0], img->pitches[0]);
-
+
} else if (this->context->pix_fmt == PIX_FMT_BGR24) {
int x, plane_ptr = 0;
@@ -694,7 +694,7 @@ static void ff_convert_frame(ff_video_decoder_t *this, vo_frame_t *img) {
src = sy;
for(x = 0; x < img->width; x++) {
uint8_t r, g, b;
-
+
b = *src++;
g = *src++;
r = *src++;
@@ -706,9 +706,9 @@ static void ff_convert_frame(ff_video_decoder_t *this, vo_frame_t *img) {
}
sy += this->av_frame->linesize[0];
}
-
+
yuv444_to_yuy2(&this->yuv, img->base[0], img->pitches[0]);
-
+
} else if (this->context->pix_fmt == PIX_FMT_RGB24) {
int x, plane_ptr = 0;
@@ -718,7 +718,7 @@ static void ff_convert_frame(ff_video_decoder_t *this, vo_frame_t *img) {
src = sy;
for(x = 0; x < img->width; x++) {
uint8_t r, g, b;
-
+
r = *src++;
g = *src++;
b = *src++;
@@ -730,11 +730,11 @@ static void ff_convert_frame(ff_video_decoder_t *this, vo_frame_t *img) {
}
sy += this->av_frame->linesize[0];
}
-
+
yuv444_to_yuy2(&this->yuv, img->base[0], img->pitches[0]);
-
+
} else if (this->context->pix_fmt == PIX_FMT_PAL8) {
-
+
int x, plane_ptr = 0;
uint8_t *src;
uint8_t pixel;
@@ -769,34 +769,34 @@ static void ff_convert_frame(ff_video_decoder_t *this, vo_frame_t *img) {
}
sy += this->av_frame->linesize[0];
}
-
+
yuv444_to_yuy2(&this->yuv, img->base[0], img->pitches[0]);
-
+
} else {
-
+
for (y = 0; y < this->bih.biHeight; y++) {
xine_fast_memcpy (dy, sy, img->width);
-
+
dy += img->pitches[0];
-
+
sy += this->av_frame->linesize[0];
}
for (y = 0; y < this->bih.biHeight / 2; y++) {
-
+
if (this->context->pix_fmt != PIX_FMT_YUV444P) {
-
+
xine_fast_memcpy (du, su, img->width/2);
xine_fast_memcpy (dv, sv, img->width/2);
-
+
} else {
-
+
int x;
uint8_t *src;
uint8_t *dst;
-
+
/* subsample */
-
+
src = su; dst = du;
for (x=0; x<(img->width/2); x++) {
*dst = *src;
@@ -811,7 +811,7 @@ static void ff_convert_frame(ff_video_decoder_t *this, vo_frame_t *img) {
}
}
-
+
du += img->pitches[1];
dv += img->pitches[2];
@@ -829,8 +829,8 @@ static void ff_convert_frame(ff_video_decoder_t *this, vo_frame_t *img) {
static void ff_check_bufsize (ff_video_decoder_t *this, int size) {
if (size > this->bufsize) {
this->bufsize = size + size / 2;
- xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
- _("ffmpeg_video_dec: increasing buffer to %d to avoid overflow.\n"),
+ xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
+ _("ffmpeg_video_dec: increasing buffer to %d to avoid overflow.\n"),
this->bufsize);
this->buf = realloc(this->buf, this->bufsize + FF_INPUT_BUFFER_PADDING_SIZE );
}
@@ -876,28 +876,28 @@ static void ff_handle_header_buffer (ff_video_decoder_t *this, buf_element_t *bu
if (buf->decoder_flags & BUF_FLAG_STDHEADER) {
lprintf("standard header\n");
-
+
/* init package containing bih */
memcpy ( &this->bih, this->buf, sizeof(xine_bmiheader) );
if (this->bih.biSize > sizeof(xine_bmiheader)) {
this->context->extradata_size = this->bih.biSize - sizeof(xine_bmiheader);
- this->context->extradata = malloc(this->context->extradata_size +
+ this->context->extradata = malloc(this->context->extradata_size +
FF_INPUT_BUFFER_PADDING_SIZE);
memcpy(this->context->extradata, this->buf + sizeof(xine_bmiheader),
this->context->extradata_size);
}
-
+
this->context->bits_per_sample = this->bih.biBitCount;
-
+
} else {
-
+
switch (codec_type) {
case BUF_VIDEO_RV10:
case BUF_VIDEO_RV20:
this->bih.biWidth = _X_BE_16(&this->buf[12]);
this->bih.biHeight = _X_BE_16(&this->buf[14]);
-
+
this->context->sub_id = _X_BE_32(&this->buf[30]);
this->context->slice_offset = calloc(SLICE_OFFSET_SIZE, sizeof(int));
@@ -939,7 +939,7 @@ static void ff_handle_header_buffer (ff_video_decoder_t *this, buf_element_t *bu
}
static void ff_handle_special_buffer (ff_video_decoder_t *this, buf_element_t *buf) {
- /* take care of all the various types of special buffers
+ /* take care of all the various types of special buffers
* note that order is important here */
lprintf("special buffer\n");
@@ -948,34 +948,34 @@ static void ff_handle_special_buffer (ff_video_decoder_t *this, buf_element_t *b
lprintf("BUF_SPECIAL_STSD_ATOM\n");
this->context->extradata_size = buf->decoder_info[2];
- this->context->extradata = malloc(buf->decoder_info[2] +
+ this->context->extradata = malloc(buf->decoder_info[2] +
FF_INPUT_BUFFER_PADDING_SIZE);
memcpy(this->context->extradata, buf->decoder_info_ptr[2],
buf->decoder_info[2]);
} else if (buf->decoder_info[1] == BUF_SPECIAL_DECODER_CONFIG &&
!this->context->extradata_size) {
-
+
lprintf("BUF_SPECIAL_DECODER_CONFIG\n");
this->context->extradata_size = buf->decoder_info[2];
this->context->extradata = malloc(buf->decoder_info[2] +
FF_INPUT_BUFFER_PADDING_SIZE);
memcpy(this->context->extradata, buf->decoder_info_ptr[2],
buf->decoder_info[2]);
-
+
} else if (buf->decoder_info[1] == BUF_SPECIAL_PALETTE) {
unsigned int i;
palette_entry_t *demuxer_palette;
AVPaletteControl *decoder_palette;
-
+
lprintf("BUF_SPECIAL_PALETTE\n");
this->context->palctrl = &this->palette_control;
decoder_palette = (AVPaletteControl *)this->context->palctrl;
demuxer_palette = (palette_entry_t *)buf->decoder_info_ptr[2];
for (i = 0; i < buf->decoder_info[2]; i++) {
- decoder_palette->palette[i] =
+ decoder_palette->palette[i] =
(demuxer_palette[i].r << 16) |
(demuxer_palette[i].g << 8) |
(demuxer_palette[i].b << 0);
@@ -984,20 +984,20 @@ static void ff_handle_special_buffer (ff_video_decoder_t *this, buf_element_t *b
} else if (buf->decoder_info[1] == BUF_SPECIAL_RV_CHUNK_TABLE) {
int i;
-
+
lprintf("BUF_SPECIAL_RV_CHUNK_TABLE\n");
this->context->slice_count = buf->decoder_info[2]+1;
lprintf("slice_count=%d\n", this->context->slice_count);
-
+
if(this->context->slice_count > this->slice_offset_size) {
this->context->slice_offset = realloc(this->context->slice_offset,
sizeof(int)*this->context->slice_count);
this->slice_offset_size = this->context->slice_count;
}
-
+
for(i = 0; i < this->context->slice_count; i++) {
- this->context->slice_offset[i] =
+ this->context->slice_offset[i] =
((uint32_t *) buf->decoder_info_ptr[2])[(2*i)+1];
lprintf("slice_offset[%d]=%d\n", i, this->context->slice_offset[i]);
}
@@ -1040,7 +1040,7 @@ static void ff_handle_mpeg12_buffer (ff_video_decoder_t *this, buf_element_t *bu
if (!this->decoder_ok)
return;
-
+
if (flush) {
lprintf("flush lavc buffers\n");
/* hack: ffmpeg outputs the last frame if size=0 */
@@ -1058,11 +1058,11 @@ static void ff_handle_mpeg12_buffer (ff_video_decoder_t *this, buf_element_t *bu
len, got_picture);
len = current - buf->content - offset;
lprintf("avcodec_decode_video: consumed_size=%d\n", len);
-
+
flush = next_flush;
if ((len < 0) || (len > buf->size)) {
- xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
"ffmpeg_video_dec: error decompressing frame\n");
size = 0; /* draw a bad frame and exit */
} else {
@@ -1077,7 +1077,7 @@ static void ff_handle_mpeg12_buffer (ff_video_decoder_t *this, buf_element_t *bu
img = this->stream->video_out->get_frame (this->stream->video_out,
this->bih.biWidth,
this->bih.biHeight,
- this->aspect_ratio,
+ this->aspect_ratio,
this->output_format,
VO_BOTH_FIELDS|this->frame_flags);
free_img = 1;
@@ -1097,7 +1097,7 @@ static void ff_handle_mpeg12_buffer (ff_video_decoder_t *this, buf_element_t *bu
img->crop_right = this->crop_right;
img->crop_bottom = this->crop_bottom;
-
+
this->skipframes = img->draw(img, this->stream);
if(free_img)
@@ -1110,7 +1110,7 @@ static void ff_handle_mpeg12_buffer (ff_video_decoder_t *this, buf_element_t *bu
img = this->stream->video_out->get_frame (this->stream->video_out,
this->bih.biWidth,
this->bih.biHeight,
- this->aspect_ratio,
+ this->aspect_ratio,
this->output_format,
VO_BOTH_FIELDS|this->frame_flags);
img->pts = 0;
@@ -1250,7 +1250,7 @@ static void ff_handle_buffer (ff_video_decoder_t *this, buf_element_t *buf) {
/* data accumulation */
if (buf->size > 0) {
if ((this->size == 0) &&
- ((buf->size + FF_INPUT_BUFFER_PADDING_SIZE) < buf->max_size) &&
+ ((buf->size + FF_INPUT_BUFFER_PADDING_SIZE) < buf->max_size) &&
(buf->decoder_flags & BUF_FLAG_FRAME_END)) {
/* buf contains a complete frame */
/* no memcpy needed */
@@ -1263,7 +1263,7 @@ static void ff_handle_buffer (ff_video_decoder_t *this, buf_element_t *buf) {
chunk_buf = this->buf; /* ff_check_bufsize might realloc this->buf */
xine_fast_memcpy (&this->buf[this->size], buf->content, buf->size);
-
+
this->size += buf->size;
lprintf("accumulate data into this->buf\n");
}
@@ -1286,7 +1286,7 @@ static void ff_handle_buffer (ff_video_decoder_t *this, buf_element_t *buf) {
memset(&chunk_buf[this->size], 0, FF_INPUT_BUFFER_PADDING_SIZE);
while (this->size > 0) {
-
+
/* DV frames can be completely skipped */
if( codec_type == BUF_VIDEO_DV && this->skipframes ) {
this->size = 0;
@@ -1305,7 +1305,7 @@ static void ff_handle_buffer (ff_video_decoder_t *this, buf_element_t *buf) {
lprintf("consumed size: %d, got_picture: %d\n", len, got_picture);
if ((len <= 0) || (len > this->size)) {
- xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
"ffmpeg_video_dec: error decompressing frame\n");
this->size = 0;
@@ -1343,7 +1343,7 @@ static void ff_handle_buffer (ff_video_decoder_t *this, buf_element_t *buf) {
this->bih.biHeight = this->context->height;
}
- this->aspect_ratio = av_q2d(this->context->sample_aspect_ratio) *
+ this->aspect_ratio = av_q2d(this->context->sample_aspect_ratio) *
(double)this->bih.biWidth / (double)this->bih.biHeight;
this->aspect_ratio_prio = 2;
lprintf("ffmpeg aspect ratio: %f\n", this->aspect_ratio);
@@ -1382,7 +1382,7 @@ static void ff_handle_buffer (ff_video_decoder_t *this, buf_element_t *buf) {
img = this->stream->video_out->get_frame (this->stream->video_out,
(this->bih.biWidth + 15) & ~15,
(this->bih.biHeight + 15) & ~15,
- this->aspect_ratio,
+ this->aspect_ratio,
this->output_format,
VO_BOTH_FIELDS|this->frame_flags);
free_img = 1;
@@ -1403,17 +1403,17 @@ static void ff_handle_buffer (ff_video_decoder_t *this, buf_element_t *buf) {
img = this->stream->video_out->get_frame (this->stream->video_out,
(img->width + 15) & ~15,
(img->height + 15) & ~15,
- this->aspect_ratio,
+ this->aspect_ratio,
this->output_format,
VO_BOTH_FIELDS|this->frame_flags);
free_img = 1;
}
- pp_postprocess(this->av_frame->data, this->av_frame->linesize,
- img->base, img->pitches,
+ pp_postprocess(this->av_frame->data, this->av_frame->linesize,
+ img->base, img->pitches,
img->width, img->height,
this->av_frame->qscale_table, this->av_frame->qstride,
- this->pp_mode, this->pp_context,
+ this->pp_mode, this->pp_context,
this->av_frame->pict_type);
} else if (!this->av_frame->opaque) {
@@ -1448,7 +1448,7 @@ static void ff_handle_buffer (ff_video_decoder_t *this, buf_element_t *buf) {
img->top_field_first = this->av_frame->top_field_first;
this->skipframes = img->draw(img, this->stream);
-
+
if(free_img)
img->free(img);
}
@@ -1462,7 +1462,7 @@ static void ff_handle_buffer (ff_video_decoder_t *this, buf_element_t *buf) {
img = this->stream->video_out->get_frame (this->stream->video_out,
(this->bih.biWidth <= 0) ? 16 : ((this->bih.biWidth + 15) & ~15),
(this->bih.biHeight <= 0) ? 16 : ((this->bih.biHeight + 15) & ~15),
- this->aspect_ratio,
+ this->aspect_ratio,
this->output_format,
VO_BOTH_FIELDS|this->frame_flags);
/* set PTS to allow early syncing */
@@ -1487,7 +1487,7 @@ static void ff_handle_buffer (ff_video_decoder_t *this, buf_element_t *buf) {
static void ff_decode_data (video_decoder_t *this_gen, buf_element_t *buf) {
ff_video_decoder_t *this = (ff_video_decoder_t *) this_gen;
- lprintf ("processing packet type = %08x, len = %d, decoder_flags=%08x\n",
+ lprintf ("processing packet type = %08x, len = %d, decoder_flags=%08x\n",
buf->type, buf->size, buf->decoder_flags);
if (buf->decoder_flags & BUF_FLAG_FRAMERATE) {
@@ -1496,7 +1496,7 @@ static void ff_decode_data (video_decoder_t *this_gen, buf_element_t *buf) {
}
if (buf->decoder_flags & BUF_FLAG_PREVIEW) {
-
+
ff_handle_preview_buffer(this, buf);
} else {
@@ -1504,7 +1504,7 @@ static void ff_decode_data (video_decoder_t *this_gen, buf_element_t *buf) {
if (buf->decoder_flags & BUF_FLAG_SPECIAL) {
ff_handle_special_buffer(this, buf);
-
+
}
if (buf->decoder_flags & BUF_FLAG_HEADER) {
@@ -1518,7 +1518,7 @@ static void ff_decode_data (video_decoder_t *this_gen, buf_element_t *buf) {
lprintf("aspect ratio: %f\n", this->aspect_ratio);
set_stream_info(this);
}
- }
+ }
} else {
@@ -1549,7 +1549,7 @@ static void ff_reset (video_decoder_t *this_gen) {
if(this->context && this->decoder_ok)
avcodec_flush_buffers(this->context);
-
+
if (this->is_mpeg12)
mpeg_parser_reset(this->mpeg_parser);
@@ -1561,13 +1561,13 @@ static void ff_reset (video_decoder_t *this_gen) {
static void ff_discontinuity (video_decoder_t *this_gen) {
ff_video_decoder_t *this = (ff_video_decoder_t *) this_gen;
-
+
lprintf ("ff_discontinuity\n");
this->pts = 0;
/*
* there is currently no way to reset all the pts which are stored in the decoder.
- * therefore, we add a unique tag (generated from pts_tag_counter) to pts (see
+ * therefore, we add a unique tag (generated from pts_tag_counter) to pts (see
* ff_tag_pts()) and wait for it to appear on returned frames.
* until then, any retrieved pts value will be reset to 0 (see ff_untag_pts()).
* when we see the tag returned, pts_tag will be reset to 0. from now on, any
@@ -1603,15 +1603,15 @@ static void ff_dispose (video_decoder_t *this_gen) {
ff_video_decoder_t *this = (ff_video_decoder_t *) this_gen;
lprintf ("ff_dispose\n");
-
+
if (this->decoder_ok) {
xine_list_iterator_t it;
AVFrame *av_frame;
-
+
pthread_mutex_lock(&ffmpeg_lock);
avcodec_close (this->context);
pthread_mutex_unlock(&ffmpeg_lock);
-
+
/* frame garbage collector here - workaround for buggy ffmpeg codecs that
* don't release their DR1 frames */
while( (it = xine_list_front(this->dr1_frames)) != NULL )
@@ -1619,7 +1619,7 @@ static void ff_dispose (video_decoder_t *this_gen) {
av_frame = (AVFrame *)xine_list_get_value(this->dr1_frames, it);
release_buffer(this->context, av_frame);
}
-
+
this->stream->video_out->close(this->stream->video_out, this->stream);
this->decoder_ok = 0;
}
@@ -1632,27 +1632,27 @@ static void ff_dispose (video_decoder_t *this_gen) {
if(this->yuv_init)
free_yuv_planes(&this->yuv);
-
+
if( this->context )
av_free( this->context );
if( this->av_frame )
av_free( this->av_frame );
-
+
if (this->buf)
free(this->buf);
this->buf = NULL;
-
+
if(this->pp_context)
pp_free_context(this->pp_context);
-
+
if(this->pp_mode)
pp_free_mode(this->pp_mode);
mpeg_parser_dispose(this->mpeg_parser);
-
+
xine_list_delete(this->dr1_frames);
-
+
free (this_gen);
}
@@ -1678,7 +1678,7 @@ static video_decoder_t *ff_video_open_plugin (video_decoder_class_t *class_gen,
this->context = avcodec_alloc_context();
this->context->opaque = this;
this->context->palctrl = NULL;
-
+
this->decoder_ok = 0;
this->decoder_init_mode = 1;
this->buf = calloc(1, VIDEOBUFSIZE + FF_INPUT_BUFFER_PADDING_SIZE);
@@ -1690,9 +1690,9 @@ static video_decoder_t *ff_video_open_plugin (video_decoder_class_t *class_gen,
this->pp_quality = 0;
this->pp_context = NULL;
this->pp_mode = NULL;
-
+
this->mpeg_parser = NULL;
-
+
this->dr1_frames = xine_list_new();
#ifdef LOG
@@ -1706,7 +1706,7 @@ void *init_video_plugin (xine_t *xine, void *data) {
ff_video_class_t *this;
config_values_t *config;
-
+
this = calloc(1, sizeof (ff_video_class_t));
this->decoder_class.open_plugin = ff_video_open_plugin;
@@ -1716,12 +1716,12 @@ void *init_video_plugin (xine_t *xine, void *data) {
this->xine = xine;
pthread_once( &once_control, init_once_routine );
-
+
/* Configuration for post processing quality - default to mid (3) for the
* moment */
config = xine->config;
-
- this->pp_quality = xine->config->register_range(config, "video.processing.ffmpeg_pp_quality", 3,
+
+ this->pp_quality = xine->config->register_range(config, "video.processing.ffmpeg_pp_quality", 3,
0, PP_QUALITY_MAX,
_("MPEG-4 postprocessing quality"),
_("You can adjust the amount of post processing applied to MPEG-4 video.\n"
@@ -1730,8 +1730,8 @@ void *init_video_plugin (xine_t *xine, void *data) {
"too heavy post processing can actually make the image worse by blurring it "
"too much."),
10, pp_quality_cb, this);
-
- this->thread_count = xine->config->register_num(config, "video.processing.ffmpeg_thread_count", 1,
+
+ this->thread_count = xine->config->register_num(config, "video.processing.ffmpeg_thread_count", 1,
_("FFmpeg video decoding thread count"),
_("You can adjust the number of video decoding threads which FFmpeg may use.\n"
"Higher values should speed up decoding but it depends on the codec used "
@@ -1740,7 +1740,7 @@ void *init_video_plugin (xine_t *xine, void *data) {
"A change of this setting will take effect with playing the next stream."),
10, thread_count_cb, this);
- this->skip_loop_filter_enum = xine->config->register_enum(config, "video.processing.ffmpeg_skip_loop_filter", 0,
+ this->skip_loop_filter_enum = xine->config->register_enum(config, "video.processing.ffmpeg_skip_loop_filter", 0,
(char **)skip_loop_filter_enum_names,
_("Skip loop filter"),
_("You can control for which frames the loop filter shall be skipped after "
@@ -1751,7 +1751,7 @@ void *init_video_plugin (xine_t *xine, void *data) {
"A change of this setting will take effect with playing the next stream."),
10, skip_loop_filter_enum_cb, this);
- this->choose_speed_over_accuracy = xine->config->register_bool(config, "video.processing.ffmpeg_choose_speed_over_accuracy", 0,
+ this->choose_speed_over_accuracy = xine->config->register_bool(config, "video.processing.ffmpeg_choose_speed_over_accuracy", 0,
_("Choose speed over specification compliance"),
_("You may want to allow speed cheats which violate codec specification.\n"
"Cheating may speed up decoding but can also lead to decoding artefacts.\n"
@@ -1761,14 +1761,14 @@ void *init_video_plugin (xine_t *xine, void *data) {
return this;
}
-static const uint32_t wmv8_video_types[] = {
+static const uint32_t wmv8_video_types[] = {
BUF_VIDEO_WMV8,
- 0
+ 0
};
-static const uint32_t wmv9_video_types[] = {
+static const uint32_t wmv9_video_types[] = {
BUF_VIDEO_WMV9,
- 0
+ 0
};
decoder_info_t dec_info_ffmpeg_video = {
diff --git a/src/combined/ffmpeg/ffmpeg_decoder.c b/src/combined/ffmpeg/ffmpeg_decoder.c
index 8a8a79270..4f9a0f7a4 100644
--- a/src/combined/ffmpeg/ffmpeg_decoder.c
+++ b/src/combined/ffmpeg/ffmpeg_decoder.c
@@ -1,18 +1,18 @@
/*
* Copyright (C) 2001-2004 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -46,7 +46,7 @@ void init_once_routine(void) {
*/
const plugin_info_t xine_plugin_info[] EXPORTED = {
- /* type, API, "name", version, special_info, init_function */
+ /* type, API, "name", version, special_info, init_function */
{ PLUGIN_VIDEO_DECODER | PLUGIN_MUST_PRELOAD, 19, "ffmpegvideo", XINE_VERSION_CODE, &dec_info_ffmpeg_video, init_video_plugin },
{ PLUGIN_VIDEO_DECODER, 19, "ffmpeg-wmv8", XINE_VERSION_CODE, &dec_info_ffmpeg_wmv8, init_video_plugin },
{ PLUGIN_VIDEO_DECODER, 19, "ffmpeg-wmv9", XINE_VERSION_CODE, &dec_info_ffmpeg_wmv9, init_video_plugin },
diff --git a/src/combined/ffmpeg/ffmpeg_decoder.h b/src/combined/ffmpeg/ffmpeg_decoder.h
index 3eb86f4bf..f679a5ce9 100644
--- a/src/combined/ffmpeg/ffmpeg_decoder.h
+++ b/src/combined/ffmpeg/ffmpeg_decoder.h
@@ -1,23 +1,23 @@
/*
* Copyright (C) 2001-2005 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
*/
-
+
#ifndef HAVE_XINE_DECODER_H
#define HAVE_XINE_DECODER_H
diff --git a/src/combined/flac_decoder.c b/src/combined/flac_decoder.c
index 4982a6a6c..312749c7b 100644
--- a/src/combined/flac_decoder.c
+++ b/src/combined/flac_decoder.c
@@ -1,18 +1,18 @@
-/*
+/*
* Copyright (C) 2000-2003 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -74,8 +74,8 @@ typedef struct flac_decoder_s {
* FLAC callback functions
*/
-static FLAC__StreamDecoderReadStatus
-flac_read_callback (const FLAC__StreamDecoder *decoder,
+static FLAC__StreamDecoderReadStatus
+flac_read_callback (const FLAC__StreamDecoder *decoder,
FLAC__byte buffer[],
unsigned *bytes,
void *client_data)
@@ -123,36 +123,36 @@ flac_write_callback (const FLAC__StreamDecoder *decoder,
lprintf("flac_write_callback\n");
while( samples_left ) {
-
+
audio_buffer = this->stream->audio_out->get_buffer(this->stream->audio_out);
if( audio_buffer->mem_size < samples_left * frame->header.channels * bytes_per_sample )
buf_samples = audio_buffer->mem_size / (frame->header.channels * bytes_per_sample);
else
buf_samples = samples_left;
-
-
+
+
if( frame->header.bits_per_sample == 8 ) {
data8 = (int8_t *)audio_buffer->mem;
-
+
for( j=0; j < buf_samples; j++ )
for( i=0; i < frame->header.channels; i++ )
*data8++ = buffer[i][j];
-
+
} else {
-
+
data16 = (int16_t *)audio_buffer->mem;
-
+
for( j=0; j < buf_samples; j++ )
for( i=0; i < frame->header.channels; i++ )
*data16++ = buffer[i][j];
- }
+ }
audio_buffer->num_frames = buf_samples;
audio_buffer->vpts = this->pts;
this->pts = 0;
this->stream->audio_out->put_buffer (this->stream->audio_out, audio_buffer, this->stream);
-
+
samples_left -= buf_samples;
}
return FLAC__STREAM_DECODER_WRITE_STATUS_CONTINUE;
@@ -165,9 +165,9 @@ flac_metadata_callback (const FLAC__StreamDecoder *decoder,
void *client_data)
{
/* flac_decoder_t *this = (flac_decoder_t *)client_data; */
-
+
lprintf("Metadata callback called!\n");
-
+
#ifdef LOG
if (metadata->type == FLAC__METADATA_TYPE_STREAMINFO) {
printf("libflac: min_blocksize = %d\n", metadata->data.stream_info.min_blocksize);
@@ -201,7 +201,7 @@ flac_error_callback (const FLAC__StreamDecoder *decoder,
else
printf("libflac: unknown error.\n");
#endif
-
+
return;
}
@@ -210,34 +210,34 @@ flac_error_callback (const FLAC__StreamDecoder *decoder,
* FLAC plugin decoder
*/
-static void
+static void
flac_reset (audio_decoder_t *this_gen)
{
flac_decoder_t *this = (flac_decoder_t *) this_gen;
this->buf_pos = 0;
-
- if( FLAC__stream_decoder_get_state(this->flac_decoder) !=
- FLAC__STREAM_DECODER_SEARCH_FOR_METADATA )
+
+ if( FLAC__stream_decoder_get_state(this->flac_decoder) !=
+ FLAC__STREAM_DECODER_SEARCH_FOR_METADATA )
FLAC__stream_decoder_flush (this->flac_decoder);
}
-static void
-flac_discontinuity (audio_decoder_t *this_gen)
+static void
+flac_discontinuity (audio_decoder_t *this_gen)
{
flac_decoder_t *this = (flac_decoder_t *) this_gen;
this->pts = 0;
-
+
lprintf("Discontinuity!\n");
}
-static void
+static void
flac_decode_data (audio_decoder_t *this_gen, buf_element_t *buf)
{
flac_decoder_t *this = (flac_decoder_t *) this_gen;
int ret = 1;
-
+
/* We are getting the stream header, open up the audio
* device, and collect information about the stream
*/
@@ -277,15 +277,15 @@ flac_decode_data (audio_decoder_t *this_gen, buf_element_t *buf)
xine_fast_memcpy (&this->buf[this->buf_pos], buf->content, buf->size);
this->buf_pos += buf->size;
-
+
if (buf->pts)
this->pts = buf->pts;
/* We have enough to decode a frame */
while( ret && this->buf_pos > this->min_size ) {
-
+
FLAC__StreamDecoderState state = FLAC__stream_decoder_get_state(this->flac_decoder);
-
+
if( state == FLAC__STREAM_DECODER_SEARCH_FOR_METADATA ) {
lprintf("process_until_end_of_metadata\n");
ret = FLAC__stream_decoder_process_until_end_of_metadata (this->flac_decoder);
@@ -301,24 +301,24 @@ flac_decode_data (audio_decoder_t *this_gen, buf_element_t *buf)
}
} else
return;
-
+
}
static void
flac_dispose (audio_decoder_t *this_gen) {
- flac_decoder_t *this = (flac_decoder_t *) this_gen;
+ flac_decoder_t *this = (flac_decoder_t *) this_gen;
FLAC__stream_decoder_finish (this->flac_decoder);
FLAC__stream_decoder_delete (this->flac_decoder);
- if (this->output_open)
+ if (this->output_open)
this->stream->audio_out->close (this->stream->audio_out, this->stream);
if (this->buf)
free(this->buf);
-
+
free (this_gen);
}
@@ -384,7 +384,7 @@ open_plugin (audio_decoder_class_t *class_gen, xine_stream_t *stream) {
static void *
init_plugin (xine_t *xine, void *data) {
flac_class_t *this;
-
+
this = calloc(1, sizeof (flac_class_t));
this->decoder_class.open_plugin = open_plugin;
@@ -398,17 +398,17 @@ init_plugin (xine_t *xine, void *data) {
void *demux_flac_init_class (xine_t *xine, void *data);
-static const uint32_t audio_types[] = {
+static const uint32_t audio_types[] = {
BUF_AUDIO_FLAC, 0
};
static const decoder_info_t dec_info_audio = {
audio_types, /* supported types */
- 5 /* priority */
+ 8 /* priority */
};
const plugin_info_t xine_plugin_info[] EXPORTED = {
- /* type, API, "name", version, special_info, init_function */
+ /* type, API, "name", version, special_info, init_function */
{ PLUGIN_DEMUX, 27, "flac", XINE_VERSION_CODE, NULL, demux_flac_init_class },
{ PLUGIN_AUDIO_DECODER, 16, "flacdec", XINE_VERSION_CODE, &dec_info_audio, init_plugin },
{ PLUGIN_NONE, 0, "", 0, NULL, NULL }
diff --git a/src/combined/flac_demuxer.c b/src/combined/flac_demuxer.c
index 1105e353a..0685631c7 100644
--- a/src/combined/flac_demuxer.c
+++ b/src/combined/flac_demuxer.c
@@ -1,18 +1,18 @@
-/*
+/*
* Copyright (C) 2000-2006 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -64,7 +64,7 @@ typedef struct demux_flac_s {
demux_plugin_t demux_plugin;
xine_stream_t *stream;
-
+
fifo_buffer_t *audio_fifo;
fifo_buffer_t *video_fifo;
@@ -110,15 +110,15 @@ flac_read_callback (const FLAC__SeekableStreamDecoder *decoder,
void *client_data)
{
demux_flac_t *this = (demux_flac_t *)client_data;
- input_plugin_t *input = this->input;
+ input_plugin_t *input = this->input;
off_t offset = *bytes;
lprintf("flac_read_callback\n");
-
+
/* This should only be called when flac is reading the metadata
* of the flac stream.
*/
-
+
offset = input->read (input, buffer, offset);
lprintf("Read %lld / %u bytes into buffer\n", offset, *bytes);
@@ -128,7 +128,7 @@ flac_read_callback (const FLAC__SeekableStreamDecoder *decoder,
{
*bytes = offset;
lprintf("Marking EOF\n");
-
+
this->status = DEMUX_FINISHED;
#ifdef LEGACY_FLAC
return FLAC__SEEKABLE_STREAM_DECODER_READ_STATUS_ERROR;
@@ -140,7 +140,7 @@ flac_read_callback (const FLAC__SeekableStreamDecoder *decoder,
{
*bytes = offset;
lprintf("Read was perfect\n");
-
+
#ifdef LEGACY_FLAC
return FLAC__SEEKABLE_STREAM_DECODER_READ_STATUS_OK;
#else
@@ -231,7 +231,7 @@ flac_length_callback (const FLAC__SeekableStreamDecoder *decoder,
#endif
}
-static FLAC__bool
+static FLAC__bool
flac_eof_callback (const FLAC__SeekableStreamDecoder *decoder,
void *client_data)
{
@@ -253,28 +253,28 @@ flac_eof_callback (const FLAC__SeekableStreamDecoder *decoder,
}
}
-static FLAC__StreamDecoderWriteStatus
-flac_write_callback (const FLAC__SeekableStreamDecoder *decoder,
+static FLAC__StreamDecoderWriteStatus
+flac_write_callback (const FLAC__SeekableStreamDecoder *decoder,
const FLAC__Frame *frame,
const FLAC__int32 * const buffer[],
- void *client_data)
+ void *client_data)
{
/* This should never be called, all we use flac for in this demuxer
* is seeking. We do the decoding in the decoder
*/
-
+
lprintf("Error: Write callback was called!\n");
return FLAC__STREAM_DECODER_WRITE_STATUS_ABORT;
}
-static void
-flac_metadata_callback (const FLAC__SeekableStreamDecoder *decoder,
- const FLAC__StreamMetadata *metadata,
+static void
+flac_metadata_callback (const FLAC__SeekableStreamDecoder *decoder,
+ const FLAC__StreamMetadata *metadata,
void *client_data)
{
demux_flac_t *this = (demux_flac_t *)client_data;
-
+
lprintf("IN: Metadata callback\n");
/* This should be called when we first look at a flac stream,
@@ -293,8 +293,8 @@ flac_metadata_callback (const FLAC__SeekableStreamDecoder *decoder,
return;
}
-static void
-flac_error_callback (const FLAC__SeekableStreamDecoder *decoder,
+static void
+flac_error_callback (const FLAC__SeekableStreamDecoder *decoder,
FLAC__StreamDecoderErrorStatus status,
void *client_data)
{
@@ -306,24 +306,24 @@ flac_error_callback (const FLAC__SeekableStreamDecoder *decoder,
xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG, "demux_flac: flac_error_callback\n");
if (status == FLAC__STREAM_DECODER_ERROR_STATUS_LOST_SYNC)
- xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"demux_flac: Decoder lost synchronization.\n");
else if (status == FLAC__STREAM_DECODER_ERROR_STATUS_BAD_HEADER)
xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"demux_flac: Decoder encounted a corrupted frame header.\n");
else if (status == FLAC__STREAM_DECODER_ERROR_STATUS_FRAME_CRC_MISMATCH)
- xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"demux_flac: Frame's data did not match the CRC in the footer.\n");
else
xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG, "demux_flac: unknown error.\n");
-
+
this->status = DEMUX_FINISHED;
-
+
return;
}
/* FLAC Demuxer plugin */
-static int
+static int
demux_flac_send_chunk (demux_plugin_t *this_gen) {
demux_flac_t *this = (demux_flac_t *) this_gen;
buf_element_t *buf = NULL;
@@ -333,7 +333,7 @@ demux_flac_send_chunk (demux_plugin_t *this_gen) {
remaining_sample_bytes = 2048;
- current_file_pos = this->input->get_current_pos (this->input)
+ current_file_pos = this->input->get_current_pos (this->input)
- this->data_start;
if( (this->data_size - this->data_start) > 0 )
file_size = (this->data_size - this->data_start);
@@ -398,7 +398,7 @@ demux_flac_send_chunk (demux_plugin_t *this_gen) {
return this->status;
}
-static void
+static void
demux_flac_send_headers (demux_plugin_t *this_gen) {
demux_flac_t *this = (demux_flac_t *) this_gen;
@@ -432,7 +432,7 @@ demux_flac_send_headers (demux_plugin_t *this_gen) {
}
}
-static void
+static void
demux_flac_dispose (demux_plugin_t *this_gen) {
demux_flac_t *this = (demux_flac_t *) this_gen;
@@ -449,7 +449,7 @@ demux_flac_dispose (demux_plugin_t *this_gen) {
return;
}
-static int
+static int
demux_flac_get_status (demux_plugin_t *this_gen) {
demux_flac_t *this = (demux_flac_t *) this_gen;
@@ -459,7 +459,7 @@ demux_flac_get_status (demux_plugin_t *this_gen) {
}
-static int
+static int
demux_flac_seek (demux_plugin_t *this_gen, off_t start_pos, int start_time, int playing) {
demux_flac_t *this = (demux_flac_t *) this_gen;
@@ -477,15 +477,15 @@ demux_flac_seek (demux_plugin_t *this_gen, off_t start_pos, int start_time, int
}
start_pos = (uint64_t)(distance * (this->data_size - this->data_start));
}
-
+
if (start_pos || !start_time) {
-
+
start_pos += this->data_start;
this->input->seek (this->input, start_pos, SEEK_SET);
lprintf ("Seek to position: %lld\n", start_pos);
-
+
} else {
-
+
double distance = (double)start_time;
uint64_t target_sample;
FLAC__bool s = false;
@@ -516,9 +516,9 @@ demux_flac_seek (demux_plugin_t *this_gen, off_t start_pos, int start_time, int
return this->status;
}
-static int
+static int
demux_flac_get_stream_length (demux_plugin_t *this_gen) {
- demux_flac_t *this = (demux_flac_t *) this_gen;
+ demux_flac_t *this = (demux_flac_t *) this_gen;
lprintf("demux_flac_get_stream_length\n");
@@ -528,14 +528,14 @@ demux_flac_get_stream_length (demux_plugin_t *this_gen) {
return 0;
}
-static uint32_t
+static uint32_t
demux_flac_get_capabilities (demux_plugin_t *this_gen) {
lprintf("demux_flac_get_capabilities\n");
return DEMUX_CAP_NOCAP;
}
-static int
+static int
demux_flac_get_optional_data (demux_plugin_t *this_gen, void *data, int dtype) {
lprintf("demux_flac_get_optional_data\n");
@@ -543,8 +543,8 @@ demux_flac_get_optional_data (demux_plugin_t *this_gen, void *data, int dtype) {
}
static demux_plugin_t *
-open_plugin (demux_class_t *class_gen,
- xine_stream_t *stream,
+open_plugin (demux_class_t *class_gen,
+ xine_stream_t *stream,
input_plugin_t *input) {
demux_flac_t *this;
@@ -556,22 +556,22 @@ open_plugin (demux_class_t *class_gen,
uint8_t buf[MAX_PREVIEW_SIZE];
int len;
- /*
+ /*
* try to get a preview of the data
*/
len = input->get_optional_data (input, buf, INPUT_OPTIONAL_DATA_PREVIEW);
if (len == INPUT_OPTIONAL_UNSUPPORTED) {
-
+
if (input->get_capabilities (input) & INPUT_CAP_SEEKABLE) {
-
+
input->seek (input, 0, SEEK_SET);
if ( (len=input->read (input, buf, 1024)) <= 0)
return NULL;
input->seek (input, 0, SEEK_SET);
-
+
} else
return NULL;
- }
+ }
/* FIXME: Skip id3v2 tag */
/* Look for fLaC tag at the beginning of file */
@@ -607,7 +607,7 @@ open_plugin (demux_class_t *class_gen,
this->demux_plugin.demux_class = class_gen;
this->seek_flag = 0;
-
+
/* Get a new FLAC decoder and hook up callbacks */
#ifdef LEGACY_FLAC
@@ -703,7 +703,7 @@ void *
demux_flac_init_class (xine_t *xine, void *data) {
demux_flac_class_t *this;
-
+
lprintf("demux_flac_init_class\n");
this = calloc(1, sizeof (demux_flac_class_t));
diff --git a/src/combined/nsf_combined.c b/src/combined/nsf_combined.c
index 0364e2db2..c4c19f48a 100644
--- a/src/combined/nsf_combined.c
+++ b/src/combined/nsf_combined.c
@@ -25,7 +25,7 @@ static const demuxer_info_t demux_info_nsf = {
10 /* priority */
};
-static const uint32_t audio_types[] = {
+static const uint32_t audio_types[] = {
BUF_AUDIO_NSF,
0
};
diff --git a/src/combined/nsf_decoder.c b/src/combined/nsf_decoder.c
index babeffae0..36f7f2990 100644
--- a/src/combined/nsf_decoder.c
+++ b/src/combined/nsf_decoder.c
@@ -234,7 +234,7 @@ static audio_decoder_t *open_plugin (audio_decoder_class_t *class_gen, xine_stre
return &this->audio_decoder;
}
-/* This function allocates a private audio decoder class and initializes
+/* This function allocates a private audio decoder class and initializes
* the class's member functions. */
void *decoder_nsf_init_plugin (xine_t *xine, void *data) {
diff --git a/src/combined/nsf_demuxer.c b/src/combined/nsf_demuxer.c
index 059a91ff4..2081d13b8 100644
--- a/src/combined/nsf_demuxer.c
+++ b/src/combined/nsf_demuxer.c
@@ -22,7 +22,7 @@
* NSF File "Demuxer" by Mike Melanson (melanson@pcisys.net)
* This is really just a loader for NES Music File Format (extension NSF)
* which loads an entire NSF file and passes it over to the NSF audio
- * decoder.
+ * decoder.
*
* After the file is sent over, the demuxer controls the playback by
* sending empty buffers with incrementing pts values.
@@ -167,7 +167,7 @@ static int demux_nsf_send_chunk(demux_plugin_t *this_gen) {
buf->decoder_info[1] = 0;
buf->type = BUF_AUDIO_NSF;
- if(this->total_songs)
+ if(this->total_songs)
buf->extra_info->input_normpos = (this->current_song - 1) * 65535 / this->total_songs;
buf->extra_info->input_time = this->current_pts / 90;
buf->pts = this->current_pts;
diff --git a/src/combined/wavpack_combined.c b/src/combined/wavpack_combined.c
index ca54635e7..8fe241d27 100644
--- a/src/combined/wavpack_combined.c
+++ b/src/combined/wavpack_combined.c
@@ -27,7 +27,7 @@ static const demuxer_info_t demux_info_wv = {
0 /* priority */
};
-static const uint32_t audio_types[] = {
+static const uint32_t audio_types[] = {
BUF_AUDIO_WAVPACK, 0
};
diff --git a/src/combined/wavpack_decoder.c b/src/combined/wavpack_decoder.c
index fdf6a5514..49c700087 100644
--- a/src/combined/wavpack_decoder.c
+++ b/src/combined/wavpack_decoder.c
@@ -140,7 +140,7 @@ static void wavpack_reset (audio_decoder_t *const this_gen)
this->buf_pos = 0;
}
-static void wavpack_discontinuity (audio_decoder_t *const this_gen)
+static void wavpack_discontinuity (audio_decoder_t *const this_gen)
{
/* wavpack_decoder_t *this = (wavpack_decoder_t *) this_gen; */
@@ -150,7 +150,7 @@ static void wavpack_discontinuity (audio_decoder_t *const this_gen)
static void wavpack_decode_data (audio_decoder_t *const this_gen, buf_element_t *const buf)
{
wavpack_decoder_t *const this = (wavpack_decoder_t *) this_gen;
-
+
/* We are getting the stream header, open up the audio
* device, and collect information about the stream
*/
@@ -194,7 +194,7 @@ static void wavpack_decode_data (audio_decoder_t *const this_gen, buf_element_t
xine_fast_memcpy (&this->buf[this->buf_pos], buf->content, buf->size);
this->buf_pos += buf->size;
-
+
if ( buf->decoder_flags & BUF_FLAG_FRAME_END ) {
static WavpackStreamReader wavpack_buffer_reader = {
.read_bytes = xine_buffer_read_bytes,
@@ -216,7 +216,7 @@ static void wavpack_decode_data (audio_decoder_t *const this_gen, buf_element_t
this->buf_pos = 0;
if ( le2me_32(header->samples_count) == 0 ) return;
-
+
ctx = WavpackOpenFileInputEx(&wavpack_buffer_reader, this, NULL, error, OPEN_STREAMING, 0);
if ( ! ctx ) {
lprintf("unable to open the stream: %s\n", error);
@@ -250,14 +250,14 @@ static void wavpack_decode_data (audio_decoder_t *const this_gen, buf_element_t
}
lprintf("Decoded %d samples\n", buf_samples);
-
+
samples_left -= decoded_count;
audio_buffer->num_frames = decoded_count;
audio_buffer->vpts = 0; /* TODO: Fix the pts calculation */
// audio_buffer->vpts = (buf->pts * (samples_total-samples_left)) / samples_total;
lprintf("Audio buffer with pts %"PRId64"\n", audio_buffer->vpts);
-
+
switch(this->bits_per_sample) {
case 8: {
int8_t *data8 = (int8_t*)audio_buffer->mem;
@@ -282,13 +282,13 @@ static void wavpack_decode_data (audio_decoder_t *const this_gen, buf_element_t
}
static void wavpack_dispose (audio_decoder_t *this_gen) {
- wavpack_decoder_t *this = (wavpack_decoder_t *) this_gen;
+ wavpack_decoder_t *this = (wavpack_decoder_t *) this_gen;
if (this->output_open)
this->stream->audio_out->close (this->stream->audio_out, this->stream);
free(this->buf);
-
+
free (this_gen);
}
@@ -313,7 +313,7 @@ static audio_decoder_t *open_plugin (audio_decoder_class_t *class_gen, xine_stre
void *decoder_wavpack_init_plugin (xine_t *xine, void *data) {
wavpack_class_t *this;
-
+
this = calloc(1, sizeof (wavpack_class_t));
this->decoder_class.open_plugin = open_plugin;
diff --git a/src/combined/wavpack_demuxer.c b/src/combined/wavpack_demuxer.c
index 51b2c7af9..a4cec9e56 100644
--- a/src/combined/wavpack_demuxer.c
+++ b/src/combined/wavpack_demuxer.c
@@ -39,7 +39,7 @@
typedef struct {
demux_plugin_t demux_plugin;
-
+
xine_stream_t *stream;
fifo_buffer_t *audio_fifo;
input_plugin_t *input;
@@ -188,7 +188,7 @@ static int demux_wv_send_chunk(demux_plugin_t *const this_gen) {
this->status = DEMUX_FINISHED;
return this->status;
}
-
+
lprintf("current sample: %u\n", this->current_sample);
do {
@@ -229,7 +229,7 @@ static int demux_wv_send_chunk(demux_plugin_t *const this_gen) {
input_time_guess *= buf->extra_info->input_normpos;
input_time_guess /= 65535;
buf->extra_info->input_time = input_time_guess;
-
+
if ( ! header_sent )
offset = sizeof(wvheader_t);
@@ -247,7 +247,7 @@ static int demux_wv_send_chunk(demux_plugin_t *const this_gen) {
if ( bytes_to_read <= 0 && (le2me_32(header.flags) & FINAL_BLOCK) == FINAL_BLOCK)
buf->decoder_flags |= BUF_FLAG_FRAME_END;
-
+
this->audio_fifo->put(this->audio_fifo, buf);
}
} while ( (le2me_32(header.flags) & FINAL_BLOCK) != FINAL_BLOCK );
@@ -271,7 +271,7 @@ static void demux_wv_send_headers(demux_plugin_t *const this_gen) {
/* Send header to decoder */
if (this->audio_fifo) {
buf = this->audio_fifo->buffer_pool_alloc (this->audio_fifo);
-
+
buf->type = BUF_AUDIO_WAVPACK;
buf->decoder_flags = BUF_FLAG_HEADER|BUF_FLAG_STDHEADER|BUF_FLAG_FRAME_END;
buf->decoder_info[0] = this->input->get_length(this->input);
@@ -346,12 +346,12 @@ static demux_plugin_t *open_plugin (demux_class_t *const class_gen,
case METHOD_BY_MRL:
case METHOD_BY_CONTENT:
case METHOD_EXPLICIT:
-
+
if (!open_wv_file(this)) {
free (this);
return NULL;
}
-
+
break;
default:
diff --git a/src/combined/xine_ogg_demuxer.c b/src/combined/xine_ogg_demuxer.c
index 5ec30c00d..4671c12bd 100644
--- a/src/combined/xine_ogg_demuxer.c
+++ b/src/combined/xine_ogg_demuxer.c
@@ -1,18 +1,18 @@
/*
* Copyright (C) 2000-2004 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -332,7 +332,7 @@ static void send_ogg_packet (demux_ogg_t *this,
buf->pts = pts;
if( this->input->get_length (this->input) )
- buf->extra_info->input_normpos = (int)( (double) this->input->get_current_pos (this->input) *
+ buf->extra_info->input_normpos = (int)( (double) this->input->get_current_pos (this->input) *
65535 / this->input->get_length (this->input) );
buf->extra_info->input_time = buf->pts / 90 ;
buf->type = this->si[stream_num]->buf_types;
@@ -585,10 +585,10 @@ static void send_ogg_buf (demux_ogg_t *this,
int normpos = 0;
if( this->input->get_length (this->input) )
- normpos = (int)( (double) this->input->get_current_pos (this->input) *
+ normpos = (int)( (double) this->input->get_current_pos (this->input) *
65535 / this->input->get_length (this->input) );
-
+
hdrlen = (*op->packet & PACKET_LEN_BITS01) >> 6;
hdrlen |= (*op->packet & PACKET_LEN_BITS2) << 1;
@@ -693,7 +693,7 @@ static void send_ogg_buf (demux_ogg_t *this,
check_newpts( this, pts, PTS_VIDEO, decoder_flags );
} else
pts = 0;
-
+
llprintf(DEBUG_VIDEO_PACKETS,
"videostream %d op-gpos %" PRId64 " hdr-gpos %" PRId64 " pts %" PRId64 " \n",
stream_num,
@@ -1344,7 +1344,7 @@ static void decode_anxdata_header (demux_ogg_t *this, const int stream_num, ogg_
} else {
this->si[stream_num]->buf_types = BUF_CONTROL_NOP;
}
-
+
}
static void decode_cmml_header (demux_ogg_t *this, const int stream_num, ogg_packet *op) {
@@ -1619,10 +1619,10 @@ static int demux_ogg_send_chunk (demux_plugin_t *this_gen) {
if (ogg_page_eos(&this->og)) {
int i;
int finished_streams = 0;
-
+
lprintf("end of stream, serialnumber %d\n", cur_serno);
this->si[stream_num]->delivered_eos = 1;
-
+
/* check if all logical streams are finished */
for (i = 0; i < this->num_streams; i++) {
finished_streams += this->si[i]->delivered_eos;
@@ -1644,12 +1644,12 @@ static int demux_ogg_send_chunk (demux_plugin_t *this_gen) {
this->unhandled_video_streams = 0;
this->num_spu_streams = 0;
this->avg_bitrate = 1;
-
+
/* try to read a chained stream */
this->send_newpts = 1;
this->last_pts[0] = 0;
this->last_pts[1] = 0;
-
+
/* send control buffer to avoid buffer leak */
_x_demux_control_end(this->stream, 0);
_x_demux_control_start(this->stream);
@@ -1778,7 +1778,7 @@ static int demux_ogg_seek (demux_plugin_t *this_gen,
hasn` changed its length, otherwise no seek to "new" data is possible*/
lprintf ("seek to time %d called\n",start_time);
- lprintf ("current time is %d\n",current_time);
+ lprintf ("current time is %d\n",current_time);
if (current_time > start_time) {
/*seek between beginning and current_pos*/
@@ -1798,7 +1798,7 @@ static int demux_ogg_seek (demux_plugin_t *this_gen,
}
lprintf ("current_pos is %" PRId64 "\n",current_pos);
- lprintf ("new_pos is %" PRId64 "\n",start_pos);
+ lprintf ("new_pos is %" PRId64 "\n",start_pos);
} else {
/*seek using avg_bitrate*/
@@ -1817,9 +1817,9 @@ static int demux_ogg_seek (demux_plugin_t *this_gen,
ogg_stream_reset(&this->si[i]->oss);
}
- /*some strange streams have no syncpoint flag set at the beginning*/
- if (start_pos == 0)
- this->keyframe_needed = 0;
+ /*some strange streams have no syncpoint flag set at the beginning*/
+ if (start_pos == 0)
+ this->keyframe_needed = 0;
lprintf ("seek to %" PRId64 " called\n",start_pos);
@@ -1830,7 +1830,7 @@ static int demux_ogg_seek (demux_plugin_t *this_gen,
/* fixme - this would be a nice position to do the following tasks
1. adjust an ogg videostream to a keyframe
2. compare the keyframe_pts with start_time. if the difference is to
- high (e.g. larger than max keyframe_intervall, do a new seek or
+ high (e.g. larger than max keyframe_intervall, do a new seek or
continue reading
3. adjust the audiostreams in such a way, that the
difference is not to high.
@@ -1838,12 +1838,12 @@ static int demux_ogg_seek (demux_plugin_t *this_gen,
In short words, do all the cleanups necessary to continue playback
without further actions
*/
-
+
this->send_newpts = 1;
this->status = DEMUX_OK;
-
+
if( !playing ) {
-
+
this->buf_flag_seek = 0;
} else {
@@ -1860,13 +1860,13 @@ static int demux_ogg_seek (demux_plugin_t *this_gen,
_x_demux_flush_engine(this->stream);
}
-
+
return this->status;
}
static int demux_ogg_get_stream_length (demux_plugin_t *this_gen) {
- demux_ogg_t *this = (demux_ogg_t *) this_gen;
+ demux_ogg_t *this = (demux_ogg_t *) this_gen;
if (this->time_length==-1){
if (this->avg_bitrate) {
@@ -1881,7 +1881,7 @@ static int demux_ogg_get_stream_length (demux_plugin_t *this_gen) {
}
static uint32_t demux_ogg_get_capabilities(demux_plugin_t *this_gen) {
- demux_ogg_t *this = (demux_ogg_t *) this_gen;
+ demux_ogg_t *this = (demux_ogg_t *) this_gen;
int cap_chapter = 0;
if (this->chapter_info)
@@ -1911,8 +1911,8 @@ static int format_lang_string (demux_ogg_t * this, uint32_t buf_mask, uint32_t b
static int demux_ogg_get_optional_data(demux_plugin_t *this_gen,
void *data, int data_type) {
-
- demux_ogg_t *this = (demux_ogg_t *) this_gen;
+
+ demux_ogg_t *this = (demux_ogg_t *) this_gen;
char *str=(char *) data;
int channel = *((int *)data);
@@ -1997,7 +1997,7 @@ static int detect_anx_content (int detection_method, demux_class_t *class_gen,
}
static demux_plugin_t *anx_open_plugin (demux_class_t *class_gen,
- xine_stream_t *stream,
+ xine_stream_t *stream,
input_plugin_t *input) {
demux_ogg_t *this;
@@ -2026,13 +2026,13 @@ static demux_plugin_t *anx_open_plugin (demux_class_t *class_gen,
this->demux_plugin.get_capabilities = demux_ogg_get_capabilities;
this->demux_plugin.get_optional_data = demux_ogg_get_optional_data;
this->demux_plugin.demux_class = class_gen;
-
+
this->status = DEMUX_FINISHED;
#ifdef HAVE_THEORA
theora_info_init (&this->t_info);
theora_comment_init (&this->t_comment);
-#endif
+#endif
this->chapter_info = 0;
this->title = 0;
@@ -2042,7 +2042,7 @@ static demux_plugin_t *anx_open_plugin (demux_class_t *class_gen,
}
static demux_plugin_t *ogg_open_plugin (demux_class_t *class_gen,
- xine_stream_t *stream,
+ xine_stream_t *stream,
input_plugin_t *input) {
demux_ogg_t *this;
@@ -2067,13 +2067,13 @@ static demux_plugin_t *ogg_open_plugin (demux_class_t *class_gen,
this->demux_plugin.get_capabilities = demux_ogg_get_capabilities;
this->demux_plugin.get_optional_data = demux_ogg_get_optional_data;
this->demux_plugin.demux_class = class_gen;
-
+
this->status = DEMUX_FINISHED;
#ifdef HAVE_THEORA
theora_info_init (&this->t_info);
theora_comment_init (&this->t_comment);
-#endif
+#endif
this->chapter_info = 0;
this->title = 0;
@@ -2093,7 +2093,7 @@ static void *anx_init_class (xine_t *xine, void *data) {
this->demux_class.open_plugin = anx_open_plugin;
this->demux_class.description = N_("Annodex demux plugin");
this->demux_class.identifier = "Annodex";
- this->demux_class.mimetypes =
+ this->demux_class.mimetypes =
"application/annodex: anx: Annodex media;"
"application/x-annodex: anx: Annodex media;"
"audio/annodex: axa: Annodex audio;"
@@ -2152,7 +2152,7 @@ extern const demuxer_info_t dec_info_theora;
void *theora_init_plugin (xine_t *xine, void *data);
const plugin_info_t xine_plugin_info[] EXPORTED = {
- /* type, API, "name", version, special_info, init_function */
+ /* type, API, "name", version, special_info, init_function */
{ PLUGIN_DEMUX, 27, "ogg", XINE_VERSION_CODE, &demux_info_ogg, ogg_init_class },
{ PLUGIN_DEMUX, 27, "anx", XINE_VERSION_CODE, &demux_info_anx, anx_init_class },
#ifdef HAVE_VORBIS
diff --git a/src/combined/xine_speex_decoder.c b/src/combined/xine_speex_decoder.c
index 386010929..acdf5e394 100644
--- a/src/combined/xine_speex_decoder.c
+++ b/src/combined/xine_speex_decoder.c
@@ -1,18 +1,18 @@
-/*
+/*
* Copyright (C) 2000-2003 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -174,10 +174,10 @@ void read_metadata (speex_decoder_t *this, char * comments, int length)
if ( !strncasecmp (speex_comment_keys[i].key, c,
keylen) ) {
char meta_info[(len - keylen) + 1];
-
+
lprintf ("known metadata %d %d\n",
i, speex_comment_keys[i].xine_metainfo_index);
-
+
strncpy(meta_info, &c[keylen], len-keylen);
_x_meta_info_set_utf8(this->stream, speex_comment_keys[i].xine_metainfo_index, meta_info);
}
@@ -221,7 +221,7 @@ static void speex_decode_data (audio_decoder_t *this_gen, buf_element_t *buf) {
xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG, LOG_MODULE ": invalid mode ID %u\n", modeID);
return;
}
-
+
spx_mode = (SpeexMode *) speex_mode_list[modeID];
if (spx_mode->bitstream_version != spx_header->mode_bitstream_version) {
@@ -243,7 +243,7 @@ static void speex_decode_data (audio_decoder_t *this_gen, buf_element_t *buf) {
this->channels = spx_header->nb_channels;
if (this->channels == 2) {
SpeexCallback callback;
-
+
callback.callback_id = SPEEX_INBAND_STEREO;
callback.func = speex_std_stereo_request_handler;
callback.data = &this->stereo;
@@ -252,7 +252,7 @@ static void speex_decode_data (audio_decoder_t *this_gen, buf_element_t *buf) {
this->nframes = spx_header->frames_per_packet;
if (!this->nframes) this->nframes = 1;
-
+
speex_decoder_ctl (this->st, SPEEX_GET_FRAME_SIZE, &this->frame_size);
speex_decoder_ctl (this->st, SPEEX_GET_BITRATE, &bitrate);
@@ -271,10 +271,10 @@ static void speex_decode_data (audio_decoder_t *this_gen, buf_element_t *buf) {
if (!this->header_count) {
int mode = _x_ao_channels2mode(this->channels);
-
+
if (!this->output_open) {
this->output_open =
- (this->stream->audio_out->open) (this->stream->audio_out,
+ (this->stream->audio_out->open) (this->stream->audio_out,
this->stream,
16,
this->rate,
@@ -283,7 +283,7 @@ static void speex_decode_data (audio_decoder_t *this_gen, buf_element_t *buf) {
}
}
}
-
+
} else if (this->output_open) {
int j;
@@ -322,9 +322,9 @@ static void speex_decode_data (audio_decoder_t *this_gen, buf_element_t *buf) {
audio_buffer->vpts = this->pts;
this->pts=0;
audio_buffer->num_frames = this->frame_size;
-
+
this->stream->audio_out->put_buffer (this->stream->audio_out, audio_buffer, this->stream);
-
+
buf->pts=0;
}
@@ -336,20 +336,20 @@ static void speex_decode_data (audio_decoder_t *this_gen, buf_element_t *buf) {
static void speex_dispose (audio_decoder_t *this_gen) {
- speex_decoder_t *this = (speex_decoder_t *) this_gen;
-
+ speex_decoder_t *this = (speex_decoder_t *) this_gen;
+
if (this->st) {
speex_decoder_destroy (this->st);
}
speex_bits_destroy (&this->bits);
- if (this->output_open)
+ if (this->output_open)
this->stream->audio_out->close (this->stream->audio_out, this->stream);
free (this_gen);
}
-static audio_decoder_t *open_plugin (audio_decoder_class_t *class_gen,
+static audio_decoder_t *open_plugin (audio_decoder_class_t *class_gen,
xine_stream_t *stream) {
speex_decoder_t *this ;
@@ -383,7 +383,7 @@ static audio_decoder_t *open_plugin (audio_decoder_class_t *class_gen,
void *speex_init_plugin (xine_t *xine, void *data) {
speex_class_t *this;
-
+
this = (speex_class_t *) calloc(1, sizeof(speex_class_t));
this->decoder_class.open_plugin = open_plugin;
@@ -394,7 +394,7 @@ void *speex_init_plugin (xine_t *xine, void *data) {
return this;
}
-static const uint32_t audio_types[] = {
+static const uint32_t audio_types[] = {
BUF_AUDIO_SPEEX, 0
};
diff --git a/src/combined/xine_theora_decoder.c b/src/combined/xine_theora_decoder.c
index 84cf8fb58..fbea502ca 100644
--- a/src/combined/xine_theora_decoder.c
+++ b/src/combined/xine_theora_decoder.c
@@ -1,18 +1,18 @@
/*
* Copyright (C) 2001-2003 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -101,17 +101,17 @@ static void yuv2frame(yuv_buffer *yuv, vo_frame_t *frame, int offset_x, int offs
crop_offset=offset_x+yuv->y_stride*offset_y;
for(i=0;i<frame->height;i++)
- xine_fast_memcpy(frame->base[0]+frame->pitches[0]*i,
- yuv->y+crop_offset+yuv->y_stride*i,
+ xine_fast_memcpy(frame->base[0]+frame->pitches[0]*i,
+ yuv->y+crop_offset+yuv->y_stride*i,
frame->width);
crop_offset=(offset_x/2)+(yuv->uv_stride)*(offset_y/2);
for(i=0;i<frame->height/2;i++){
- xine_fast_memcpy(frame->base[1]+frame->pitches[1]*i,
- yuv->u+crop_offset+yuv->uv_stride*i,
+ xine_fast_memcpy(frame->base[1]+frame->pitches[1]*i,
+ yuv->u+crop_offset+yuv->uv_stride*i,
frame->width/2);
- xine_fast_memcpy(frame->base[2]+frame->pitches[2]*i,
- yuv->v+crop_offset+yuv->uv_stride*i,
+ xine_fast_memcpy(frame->base[2]+frame->pitches[2]*i,
+ yuv->v+crop_offset+yuv->uv_stride*i,
frame->width/2);
}
@@ -123,7 +123,7 @@ static int collect_data (theora_decoder_t *this, buf_element_t *buf ) {
if (buf->decoder_flags & BUF_FLAG_FRAME_START) {
this->done=0; /*start from the beginnig*/
- this->reject=0;/*new packet - new try*/
+ this->reject=0;/*new packet - new try*/
/*copy the ogg_packet struct and the sum, correct the adress of the packet*/
xine_fast_memcpy (&this->op, buf->content, sizeof(ogg_packet));
@@ -142,7 +142,7 @@ static int collect_data (theora_decoder_t *this, buf_element_t *buf ) {
}
readin_op (this, buf->content, buf->size );
}
-
+
if ((buf->decoder_flags & BUF_FLAG_FRAME_END) && !this->reject) {
if ( this->done != this->op.bytes ) {
printf ("libtheora: A packet changed its size during transfer - rejected\n");
@@ -156,8 +156,8 @@ static int collect_data (theora_decoder_t *this, buf_element_t *buf ) {
static void theora_decode_data (video_decoder_t *this_gen, buf_element_t *buf) {
/*
- * decode data from buf and feed decoded frames to
- * video output
+ * decode data from buf and feed decoded frames to
+ * video output
*/
theora_decoder_t *this = (theora_decoder_t *) this_gen;
vo_frame_t *frame;
@@ -195,7 +195,7 @@ static void theora_decode_data (video_decoder_t *this_gen, buf_element_t *buf) {
}
/*headers are now decoded. initialize the decoder*/
theora_decode_init (&this->t_state, &this->t_info);
-
+
lprintf("theora stream is Theora %dx%d %.02f fps video.\n"
" frame content is %dx%d with offset (%d,%d).\n"
" pixel aspect is %d:%d.\n",
@@ -346,7 +346,7 @@ static video_decoder_t *theora_open_plugin (video_decoder_class_t *class_gen, xi
void *theora_init_plugin (xine_t *xine, void *data) {
/*initialize our plugin*/
theora_class_t *this;
-
+
this = (theora_class_t *) calloc(1, sizeof(theora_class_t));
this->decoder_class.open_plugin = theora_open_plugin;
diff --git a/src/combined/xine_vorbis_decoder.c b/src/combined/xine_vorbis_decoder.c
index cc157eb3f..9864177d6 100644
--- a/src/combined/xine_vorbis_decoder.c
+++ b/src/combined/xine_vorbis_decoder.c
@@ -1,18 +1,18 @@
-/*
+/*
* Copyright (C) 2000-2003 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -88,7 +88,7 @@ static void vorbis_reset (audio_decoder_t *this_gen) {
/* clear block first, as it might contain allocated data */
vorbis_block_clear(&this->vb);
- vorbis_block_init(&this->vd,&this->vb);
+ vorbis_block_init(&this->vd,&this->vb);
}
static void vorbis_discontinuity (audio_decoder_t *this_gen) {
@@ -146,8 +146,8 @@ static void get_metadata (vorbis_decoder_t *this) {
static void vorbis_check_bufsize (vorbis_decoder_t *this, int size) {
if (size > this->bufsize) {
this->bufsize = size + size / 2;
- xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
- _("vorbis: increasing buffer to %d to avoid overflow.\n"),
+ xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
+ _("vorbis: increasing buffer to %d to avoid overflow.\n"),
this->bufsize);
this->buf = realloc(this->buf, this->bufsize);
}
@@ -170,87 +170,87 @@ static void vorbis_decode_data (audio_decoder_t *this_gen, buf_element_t *buf) {
/* reset accumultaion buffer */
this->size = 0;
-
+
if ( (buf->decoder_flags & BUF_FLAG_HEADER) &&
!(buf->decoder_flags & BUF_FLAG_STDHEADER) ) {
-
+
lprintf ("%d headers to go\n", this->header_count);
-
+
if (this->header_count) {
int res = 0;
-
+
if (this->header_count == 3)
this->op.b_o_s = 1;
-
+
if ( (res = vorbis_synthesis_headerin(&this->vi,&this->vc,&this->op)) < 0 ) {
/* error case; not a vorbis header */
xine_log(this->stream->xine, XINE_LOG_MSG, "libvorbis: this bitstream does not contain vorbis audio data. Following first 64 bytes (return: %d).\n", res);
xine_hexdump((char *)this->op.packet, this->op.bytes < 64 ? this->op.bytes : 64);
return;
}
-
+
this->header_count--;
-
+
if (!this->header_count) {
-
+
int mode = AO_CAP_MODE_MONO;
-
+
get_metadata (this);
-
+
mode = _x_ao_channels2mode(this->vi.channels);
-
+
this->convsize=MAX_NUM_SAMPLES/this->vi.channels;
-
+
if (!this->output_open) {
- this->output_open = (this->stream->audio_out->open) (this->stream->audio_out,
+ this->output_open = (this->stream->audio_out->open) (this->stream->audio_out,
this->stream,
16,
this->vi.rate,
mode) ;
-
- _x_stream_info_set(this->stream, XINE_STREAM_INFO_AUDIO_BITRATE,
+
+ _x_stream_info_set(this->stream, XINE_STREAM_INFO_AUDIO_BITRATE,
this->vi.bitrate_nominal);
-
+
}
-
+
/* OK, got and parsed all three headers. Initialize the Vorbis
* packet->PCM decoder. */
lprintf("all three headers parsed. initializing decoder.\n");
- /* initialize central decode state */
- vorbis_synthesis_init(&this->vd,&this->vi);
+ /* initialize central decode state */
+ vorbis_synthesis_init(&this->vd,&this->vi);
/* initialize local state for most of the decode so multiple
- * block decodes can proceed in parallel. We could init
+ * block decodes can proceed in parallel. We could init
* multiple vorbis_block structures for vd here */
- vorbis_block_init(&this->vd,&this->vb);
+ vorbis_block_init(&this->vd,&this->vb);
}
}
-
+
} else if (this->output_open) {
-
+
float **pcm;
int samples;
-
- if(vorbis_synthesis(&this->vb,&this->op)==0)
+
+ if(vorbis_synthesis(&this->vb,&this->op)==0)
vorbis_synthesis_blockin(&this->vd,&this->vb);
-
+
if (buf->pts!=0)
this->pts=buf->pts;
-
+
while ((samples=vorbis_synthesis_pcmout(&this->vd,&pcm))>0){
-
+
/* **pcm is a multichannel float vector. In stereo, for
* example, pcm[0][...] is left, and pcm[1][...] is right.
* samples is the size of each channel. Convert the float
* values (-1.<=range<=1.) to whatever PCM format and write
* it out
*/
-
+
int i,j;
int bout=(samples<this->convsize?samples:this->convsize);
audio_buffer_t *audio_buffer;
-
+
audio_buffer = this->stream->audio_out->get_buffer (this->stream->audio_out);
-
+
/* convert floats to 16 bit signed ints (host order) and
interleave */
for(i=0;i<this->vi.channels;i++){
@@ -269,15 +269,15 @@ static void vorbis_decode_data (audio_decoder_t *this_gen, buf_element_t *buf) {
ptr+=this->vi.channels;
}
}
-
+
audio_buffer->vpts = this->pts;
this->pts=0;
audio_buffer->num_frames = bout;
-
+
this->stream->audio_out->put_buffer (this->stream->audio_out, audio_buffer, this->stream);
-
+
buf->pts=0;
-
+
/* tell libvorbis how many samples we actually consumed */
vorbis_synthesis_read(&this->vd,bout);
}
@@ -289,7 +289,7 @@ static void vorbis_decode_data (audio_decoder_t *this_gen, buf_element_t *buf) {
static void vorbis_dispose (audio_decoder_t *this_gen) {
- vorbis_decoder_t *this = (vorbis_decoder_t *) this_gen;
+ vorbis_decoder_t *this = (vorbis_decoder_t *) this_gen;
if( !this->header_count ) {
lprintf("deinitializing decoder\n");
@@ -302,7 +302,7 @@ static void vorbis_dispose (audio_decoder_t *this_gen) {
vorbis_info_clear(&this->vi); /* must be called last */
- if (this->output_open)
+ if (this->output_open)
this->stream->audio_out->close (this->stream->audio_out, this->stream);
lprintf("libvorbis instance destroyed\n");
@@ -310,7 +310,7 @@ static void vorbis_dispose (audio_decoder_t *this_gen) {
free (this_gen);
}
-static audio_decoder_t *open_plugin (audio_decoder_class_t *class_gen,
+static audio_decoder_t *open_plugin (audio_decoder_class_t *class_gen,
xine_stream_t *stream) {
vorbis_decoder_t *this ;
@@ -345,7 +345,7 @@ static audio_decoder_t *open_plugin (audio_decoder_class_t *class_gen,
void *vorbis_init_plugin (xine_t *xine, void *data) {
vorbis_class_t *this;
-
+
this = (vorbis_class_t *) calloc(1, sizeof(vorbis_class_t));
this->decoder_class.open_plugin = open_plugin;
@@ -356,7 +356,7 @@ void *vorbis_init_plugin (xine_t *xine, void *data) {
return this;
}
-static const uint32_t audio_types[] = {
+static const uint32_t audio_types[] = {
BUF_AUDIO_VORBIS, 0
};
diff --git a/src/demuxers/Makefile.am b/src/demuxers/Makefile.am
index d143266ae..2b60c88a3 100644
--- a/src/demuxers/Makefile.am
+++ b/src/demuxers/Makefile.am
@@ -12,7 +12,7 @@ AM_LDFLAGS = $(xineplug_ldflags)
noinst_HEADERS = asfheader.h qtpalette.h group_games.h group_audio.h id3.h ebml.h matroska.h demux_matroska.h iff.h flacutils.h real_common.h
if ENABLE_ASF
-asf_module = xineplug_dmx_asf.la
+asf_module = xineplug_dmx_asf.la
endif
if ENABLE_MNG
@@ -63,7 +63,7 @@ xineplug_dmx_mpeg_block_la_CFLAGS = $(AM_CFLAGS) $(AVUTIL_CFLAGS)
xineplug_dmx_mpeg_block_la_LIBADD = $(XINE_LIB) $(LTLIBINTL) $(AVUTIL_LIBS)
xineplug_dmx_mpeg_la_SOURCES = demux_mpeg.c
-xineplug_dmx_mpeg_la_LIBADD = $(XINE_LIB)
+xineplug_dmx_mpeg_la_LIBADD = $(XINE_LIB) $(LTLIBINTL)
xineplug_dmx_mpeg_elem_la_SOURCES = demux_elem.c
xineplug_dmx_mpeg_elem_la_LIBADD = $(XINE_LIB)
diff --git a/src/demuxers/demux_4xm.c b/src/demuxers/demux_4xm.c
index 7f4407733..5f941e570 100644
--- a/src/demuxers/demux_4xm.c
+++ b/src/demuxers/demux_4xm.c
@@ -256,7 +256,7 @@ static int demux_fourxm_send_chunk(demux_plugin_t *this_gen) {
buf = this->video_fifo->buffer_pool_alloc (this->video_fifo);
buf->type = BUF_VIDEO_4XM;
if( this->filesize )
- buf->extra_info->input_normpos = (int)( (double) this->input->get_current_pos (this->input) *
+ buf->extra_info->input_normpos = (int)( (double) this->input->get_current_pos (this->input) *
65535 / this->filesize );
buf->extra_info->input_time = this->video_pts / 90;
buf->pts = this->video_pts;
@@ -271,7 +271,7 @@ static int demux_fourxm_send_chunk(demux_plugin_t *this_gen) {
buf = this->video_fifo->buffer_pool_alloc (this->video_fifo);
buf->type = BUF_VIDEO_4XM;
if( this->filesize )
- buf->extra_info->input_normpos = (int)( (double) this->input->get_current_pos (this->input) *
+ buf->extra_info->input_normpos = (int)( (double) this->input->get_current_pos (this->input) *
65535 / this->filesize );
buf->extra_info->input_time = this->video_pts / 90;
buf->pts = this->video_pts;
@@ -320,7 +320,7 @@ static int demux_fourxm_send_chunk(demux_plugin_t *this_gen) {
buf = this->audio_fifo->buffer_pool_alloc (this->audio_fifo);
buf->type = this->tracks[current_track].audio_type;
if( this->filesize )
- buf->extra_info->input_normpos = (int)( (double) this->input->get_current_pos (this->input) *
+ buf->extra_info->input_normpos = (int)( (double) this->input->get_current_pos (this->input) *
65535 / this->filesize );
/* let the engine sort it out */
buf->extra_info->input_time = 0;
@@ -354,7 +354,7 @@ static int demux_fourxm_send_chunk(demux_plugin_t *this_gen) {
break;
default:
- lprintf("bad chunk: %c%c%c%c (%02X%02X%02X%02X)\n",
+ lprintf("bad chunk: %c%c%c%c (%02X%02X%02X%02X)\n",
header[0], header[1], header[2], header[3],
header[0], header[1], header[2], header[3]);
this->status = DEMUX_FINISHED;
diff --git a/src/demuxers/demux_aac.c b/src/demuxers/demux_aac.c
index 18dbda6c2..905d4c507 100644
--- a/src/demuxers/demux_aac.c
+++ b/src/demuxers/demux_aac.c
@@ -103,7 +103,7 @@ static int open_aac_file(demux_aac_t *this) {
if ( this->input->read(this->input, peak, MAX_PREVIEW_SIZE) != MAX_PREVIEW_SIZE )
return 0;
this->input->seek(this->input, 0, SEEK_SET);
- } else if (_x_demux_read_header(this->input, peak, MAX_PREVIEW_SIZE) !=
+ } else if (_x_demux_read_header(this->input, peak, MAX_PREVIEW_SIZE) !=
MAX_PREVIEW_SIZE)
return 0;
@@ -172,7 +172,7 @@ static int demux_aac_send_chunk(demux_plugin_t *this_gen) {
buf->free_buffer(buf);
this->status = DEMUX_FINISHED;
return this->status;
- } else
+ } else
buf->size = bytes_read;
/* each buffer stands on its own */
diff --git a/src/demuxers/demux_ac3.c b/src/demuxers/demux_ac3.c
index be6f02806..105603293 100644
--- a/src/demuxers/demux_ac3.c
+++ b/src/demuxers/demux_ac3.c
@@ -307,7 +307,7 @@ static int demux_ac3_send_chunk (demux_plugin_t *this_gen) {
}
} else {
buf = this->audio_fifo->buffer_pool_alloc (this->audio_fifo);
- buf->size = this->input->read(this->input, buf->content,
+ buf->size = this->input->read(this->input, buf->content,
this->frame_size);
}
@@ -319,7 +319,7 @@ static int demux_ac3_send_chunk (demux_plugin_t *this_gen) {
buf->type = this->buf_type;
if( this->input->get_length (this->input) )
- buf->extra_info->input_normpos = (int)( (double) current_stream_pos *
+ buf->extra_info->input_normpos = (int)( (double) current_stream_pos *
65535 / this->input->get_length (this->input) );
buf->extra_info->input_time = audio_pts / 90;
buf->pts = audio_pts;
diff --git a/src/demuxers/demux_aiff.c b/src/demuxers/demux_aiff.c
index fb60ee294..5f7d5cec5 100644
--- a/src/demuxers/demux_aiff.c
+++ b/src/demuxers/demux_aiff.c
@@ -139,7 +139,7 @@ static int open_aiff_file(demux_aiff_t *this) {
}
chunk_type = _X_BE_32(&preamble[0]);
chunk_size = _X_BE_32(&preamble[4]);
-
+
if (chunk_type == COMM_TAG) {
unsigned char buffer[100];
@@ -174,7 +174,7 @@ static int open_aiff_file(demux_aiff_t *this) {
(this->audio_bits / 8);
this->running_time = (this->audio_frames / this->audio_sample_rate) * 1000;
- /* we should send only complete frames to decoder, as it
+ /* we should send only complete frames to decoder, as it
* doesn't handle underconsumption yet */
this->audio_block_align = PCM_BLOCK_ALIGN - PCM_BLOCK_ALIGN % (this->audio_bits / 8 * this->audio_channels);
@@ -210,7 +210,7 @@ static int demux_aiff_send_chunk (demux_plugin_t *this_gen) {
/* just load data chunks from wherever the stream happens to be
* pointing; issue a DEMUX_FINISHED status if EOF is reached */
remaining_sample_bytes = this->audio_block_align;
- current_file_pos =
+ current_file_pos =
this->input->get_current_pos(this->input) - this->data_start;
current_pts = current_file_pos;
@@ -258,7 +258,7 @@ static int demux_aiff_send_chunk (demux_plugin_t *this_gen) {
this->audio_fifo->put (this->audio_fifo, buf);
}
-
+
return this->status;
}
@@ -408,7 +408,7 @@ void *demux_aiff_init_plugin (xine_t *xine, void *data) {
this->demux_class.open_plugin = open_plugin;
this->demux_class.description = N_("AIFF file demux plugin");
this->demux_class.identifier = "AIFF";
- this->demux_class.mimetypes =
+ this->demux_class.mimetypes =
"audio/x-aiff: aif, aiff: AIFF audio;"
"audio/aiff: aif, aiff: AIFF audio;"
"audio/x-pn-aiff: aif, aiff: AIFF audio;";
diff --git a/src/demuxers/demux_asf.c b/src/demuxers/demux_asf.c
index 757e7ffd8..f125e9973 100644
--- a/src/demuxers/demux_asf.c
+++ b/src/demuxers/demux_asf.c
@@ -88,13 +88,13 @@ typedef struct {
int skip;
int resync;
int first_seq;
-
+
int payload_size;
/* palette handling */
int palette_count;
palette_entry_t palette[256];
-
+
} asf_demux_stream_t;
typedef struct demux_asf_s {
@@ -109,13 +109,13 @@ typedef struct demux_asf_s {
int64_t keyframe_ts;
int keyframe_found;
-
+
int seqno;
uint32_t packet_size;
uint8_t packet_len_flags;
uint32_t data_size;
uint64_t packet_count;
-
+
asf_demux_stream_t streams[MAX_NUM_STREAMS];
int video_stream;
int audio_stream;
@@ -145,7 +145,7 @@ typedef struct demux_asf_s {
int reorder_b;
int buf_flag_seek;
-
+
/* first packet position */
int64_t first_packet_pos;
@@ -267,7 +267,7 @@ static int get_guid (demux_asf_t *this) {
for(i = 0; i < 8; i++) {
g.Data4[i] = get_byte(this);
}
-
+
return get_guid_id(this, &g);
}
@@ -306,7 +306,7 @@ static void asf_send_audio_header (demux_asf_t *this, int stream) {
this->status = DEMUX_FINISHED;
return;
}
-
+
memcpy (buf->content, wavex, asf_stream->private_data_length);
_x_stream_info_set(this->stream, XINE_STREAM_INFO_AUDIO_FOURCC, wavex->wFormatTag);
@@ -347,10 +347,10 @@ static void asf_send_video_header (demux_asf_t *this, int stream) {
this->status = DEMUX_FINISHED;
return;
}
-
+
buf->decoder_flags = BUF_FLAG_HEADER|BUF_FLAG_STDHEADER|BUF_FLAG_FRAMERATE|
BUF_FLAG_FRAME_END;
-
+
buf->decoder_info[0] = 0;
if (this->asf_header->aspect_ratios[stream].x && this->asf_header->aspect_ratios[stream].y)
@@ -369,7 +369,7 @@ static void asf_send_video_header (demux_asf_t *this, int stream) {
/* send off the palette, if there is one */
if (demux_stream->palette_count) {
- xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
"demux_asf: stream %d, palette : %d entries\n", stream, demux_stream->palette_count);
buf = this->video_fifo->buffer_pool_alloc (this->video_fifo);
buf->decoder_flags = BUF_FLAG_SPECIAL|BUF_FLAG_HEADER;
@@ -390,7 +390,7 @@ static int asf_read_header (demux_asf_t *this) {
asf_header_len = get_le64(this);
if (asf_header_len > 4 * 1024 * 1024)
{
- xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"demux_asf: asf_read_header: overly-large header? (%"PRIu64" bytes)\n",
asf_header_len);
return 0;
@@ -425,13 +425,13 @@ static int asf_read_header (demux_asf_t *this) {
this->packet_size = this->asf_header->file->packet_size;
this->packet_count = this->asf_header->file->data_packet_count;
-
+
/* compute stream duration */
- this->length = (this->asf_header->file->send_duration -
+ this->length = (this->asf_header->file->send_duration -
this->asf_header->file->preroll) / 10000;
if (this->length < 0)
this->length = 0;
-
+
/* compute average byterate (needed for seeking) */
if (this->asf_header->file->max_bitrate)
this->rate = this->asf_header->file->max_bitrate >> 3;
@@ -473,14 +473,14 @@ static int asf_read_header (demux_asf_t *this) {
this->reorder_w = (asf_stream->error_correction_data[2]<<8)|asf_stream->error_correction_data[1];
this->reorder_b = (asf_stream->error_correction_data[4]<<8)|asf_stream->error_correction_data[3];
this->reorder_w /= this->reorder_b;
- xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"demux_asf: audio conceal interleave detected (%d x %d x %d)\n",
this->reorder_w, this->reorder_h, this->reorder_b );
} else {
this->reorder_b = this->reorder_h = this->reorder_w = 1;
}
-
-
+
+
demux_stream->buf_type = _x_formattag_to_buf_audio
( ((xine_waveformatex *)asf_stream->private_data)->wFormatTag );
if ( !demux_stream->buf_type ) {
@@ -488,9 +488,9 @@ static int asf_read_header (demux_asf_t *this) {
_x_report_audio_format_tag (this->stream->xine, LOG_MODULE,
((xine_waveformatex *)asf_stream->private_data)->wFormatTag);
}
-
+
_x_meta_info_set(this->stream, XINE_META_INFO_AUDIOCODEC, _x_buf_audio_name(demux_stream->buf_type));
-
+
this->streams[i].fifo = this->audio_fifo;
this->streams[i].frag_offset = 0;
this->streams[i].seq = 0;
@@ -500,12 +500,12 @@ static int asf_read_header (demux_asf_t *this) {
this->streams[i].defrag = 1;
} else
this->streams[i].defrag = 0;
-
+
lprintf ("found an audio stream id=%d \n", asf_stream->stream_number);
break;
-
+
case GUID_ASF_VIDEO_MEDIA:
- {
+ {
/* video private data
* 11 bytes : header
* 40 bytes : bmiheader
@@ -514,17 +514,17 @@ static int asf_read_header (demux_asf_t *this) {
uint32_t width, height;
uint16_t bmiheader_size;
xine_bmiheader *bmiheader;
-
+
width = _X_LE_32(asf_stream->private_data);
height = _X_LE_32(asf_stream->private_data + 4);
/* there is one unknown byte between height and the bmiheader size */
bmiheader_size = _X_LE_16(asf_stream->private_data + 9);
-
+
/* FIXME: bmiheader_size must be >= sizeof(xine_bmiheader) */
-
+
bmiheader = (xine_bmiheader *) (asf_stream->private_data + 11);
_x_bmiheader_le2me(bmiheader);
-
+
/* FIXME: check if (bmi_header_size == bmiheader->biSize) ? */
demux_stream->buf_type = _x_fourcc_to_buf_video(bmiheader->biCompression);
@@ -532,18 +532,18 @@ static int asf_read_header (demux_asf_t *this) {
demux_stream->buf_type = BUF_VIDEO_UNKNOWN;
_x_report_video_fourcc (this->stream->xine, LOG_MODULE, bmiheader->biCompression);
}
-
+
_x_meta_info_set(this->stream, XINE_META_INFO_VIDEOCODEC, _x_buf_video_name(demux_stream->buf_type));
_x_stream_info_set(this->stream, XINE_STREAM_INFO_VIDEO_WIDTH, width);
_x_stream_info_set(this->stream, XINE_STREAM_INFO_VIDEO_HEIGHT, height);
-
+
this->streams[i].fifo = this->video_fifo;
this->streams[i].frag_offset = 0;
this->streams[i].defrag = 0;
-
+
/* load the palette, if there is one */
demux_stream->palette_count = bmiheader->biClrUsed;
-
+
lprintf ("palette_count: %d\n", demux_stream->palette_count);
if (demux_stream->palette_count > 256) {
lprintf ("number of colours exceeded 256 (%d)", demux_stream->palette_count);
@@ -552,10 +552,10 @@ static int asf_read_header (demux_asf_t *this) {
if ((asf_stream->private_data_length - sizeof(xine_bmiheader) - 11) >= (demux_stream->palette_count * 4)) {
int j;
uint8_t *palette;
-
+
/* according to msdn the palette is located here : */
palette = (uint8_t *)bmiheader + bmiheader->biSize;
-
+
/* load the palette */
for (j = 0; j < demux_stream->palette_count; j++) {
demux_stream->palette[j].b = *(palette + j * 4 + 0);
@@ -564,7 +564,7 @@ static int asf_read_header (demux_asf_t *this) {
}
} else {
int j;
-
+
/* generate a greyscale palette */
demux_stream->palette_count = 256;
for (j = 0; j < demux_stream->palette_count; j++) {
@@ -573,7 +573,7 @@ static int asf_read_header (demux_asf_t *this) {
demux_stream->palette[j].b = j;
}
}
-
+
lprintf ("found a video stream id=%d, buf_type=%08x \n",
this->asf_header->streams[i]->stream_number, this->streams[i].buf_type);
}
@@ -742,7 +742,7 @@ static void asf_send_buffer_nodefrag (demux_asf_t *this, asf_demux_stream_t *str
lprintf ("data: %d %d %d %d\n", buf->content[0], buf->content[1], buf->content[2], buf->content[3]);
if( this->input->get_length (this->input) )
- buf->extra_info->input_normpos = (int)( (double) this->input->get_current_pos (this->input) *
+ buf->extra_info->input_normpos = (int)( (double) this->input->get_current_pos (this->input) *
65535 / this->input->get_length (this->input) );
buf->extra_info->input_time = timestamp;
@@ -828,46 +828,46 @@ static void asf_send_buffer_defrag (demux_asf_t *this, asf_demux_stream_t *strea
if (package_done) {
int bufsize;
uint8_t *p;
-
+
lprintf("packet done: offset=%d, payload=%d\n", stream->frag_offset, stream->payload_size);
if (stream->fifo == this->audio_fifo &&
this->reorder_h > 1 && this->reorder_w > 1 ) {
asf_reorder(this,stream->buffer,stream->frag_offset);
}
-
+
p = stream->buffer;
while( stream->frag_offset ) {
if ( stream->frag_offset < stream->fifo->buffer_pool_buf_size )
bufsize = stream->frag_offset;
else
bufsize = stream->fifo->buffer_pool_buf_size;
-
+
buf = stream->fifo->buffer_pool_alloc (stream->fifo);
xine_fast_memcpy (buf->content, p, bufsize);
-
+
if( this->input->get_length (this->input) )
- buf->extra_info->input_normpos = (int)( (double) this->input->get_current_pos (this->input) *
+ buf->extra_info->input_normpos = (int)( (double) this->input->get_current_pos (this->input) *
65535 / this->input->get_length (this->input) );
buf->extra_info->input_time = stream->timestamp;
-
+
/* send the same pts for the entire frame */
buf->pts = stream->timestamp * 90;
-
+
buf->type = stream->buf_type;
buf->size = bufsize;
-
+
lprintf ("buffer type %08x %8d bytes, %8lld pts\n",
buf->type, buf->size, buf->pts);
-
+
stream->frag_offset -= bufsize;
p+=bufsize;
-
+
if ((buf->type & BUF_MAJOR_MASK) == BUF_VIDEO_BASE)
check_newpts (this, buf->pts, PTS_VIDEO, !stream->frag_offset);
else
check_newpts (this, buf->pts, PTS_AUDIO, !stream->frag_offset);
-
+
/* test if whole packet read */
if ( !stream->frag_offset )
buf->decoder_flags |= BUF_FLAG_FRAME_END;
@@ -884,9 +884,9 @@ static int asf_parse_packet_align(demux_asf_t *this) {
uint32_t mod;
uint64_t packet_num;
-
+
current_pos = this->input->get_current_pos (this->input);
-
+
/* seek to the beginning of the next packet */
mod = (current_pos - this->first_packet_pos) % this->packet_size;
this->packet_size_left = mod ? this->packet_size - mod : 0;
@@ -900,7 +900,7 @@ static int asf_parse_packet_align(demux_asf_t *this) {
}
}
this->packet_size_left = 0;
-
+
/* check packet_count */
packet_num = (packet_pos - this->first_packet_pos) / this->packet_size;
lprintf("packet_num=%"PRId64", packet_count=%"PRId64"\n", packet_num, this->packet_count);
@@ -921,7 +921,7 @@ static int asf_parse_packet_align(demux_asf_t *this) {
}
}
}
-
+
return 0;
}
@@ -947,7 +947,7 @@ static int asf_parse_packet_ecd(demux_asf_t *this, uint32_t *p_hdr_size) {
ecd_opaque = (ecd_flags >> 4) & 0x1;
ecd_len_type = (ecd_flags >> 5) & 0x3;
ecd_present = (ecd_flags >> 7) & 0x1;
-
+
/* skip ecd */
if (ecd_present && !ecd_opaque && !ecd_len_type) {
int read_size;
@@ -961,7 +961,7 @@ static int asf_parse_packet_ecd(demux_asf_t *this, uint32_t *p_hdr_size) {
} else {
GUID *guid = (GUID *)buf;
-
+
/* check if it's a new stream */
buf[0] = ecd_flags;
if (this->input->read (this->input, buf + 1, 15) != 15) {
@@ -978,7 +978,7 @@ static int asf_parse_packet_ecd(demux_asf_t *this, uint32_t *p_hdr_size) {
if (demux_asf_send_headers_common(this))
return 1;
} else {
-
+
/* skip invalid packet */
xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG, "demux_asf: skip invalid packet: %2X\n", ecd_flags);
this->input->seek (this->input, this->packet_size - *p_hdr_size, SEEK_CUR);
@@ -987,7 +987,7 @@ static int asf_parse_packet_ecd(demux_asf_t *this, uint32_t *p_hdr_size) {
}
}
} while (invalid_packet);
-
+
return 0;
}
@@ -1056,7 +1056,7 @@ static int asf_parse_packet_payload_header(demux_asf_t *this, uint32_t p_hdr_siz
xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG, "demux_asf: invalid padsize: %d\n", this->packet_padsize);
return 1;
}
-
+
/* Multiple frames */
if (this->packet_len_flags & 0x01) {
this->frame_flag = get_byte(this); p_hdr_size += 1;
@@ -1093,7 +1093,7 @@ static int asf_parse_packet_payload_common(demux_asf_t *this,
*stream = NULL;
lprintf ("got raw_id=%d, stream_id=%d\n", raw_id, stream_id);
-
+
for (i = 0; i < this->asf_header->stream_count; i++) {
lprintf ("stream_number = %d\n", this->asf_header->streams[i]->stream_number);
if ((this->asf_header->streams[i]->stream_number == stream_id) &&
@@ -1103,7 +1103,7 @@ static int asf_parse_packet_payload_common(demux_asf_t *this,
break;
}
}
-
+
switch ((this->packet_prop_flags >> 4) & 3){
case 1:
seq = get_byte(this); s_hdr_size += 1;
@@ -1260,10 +1260,10 @@ static int asf_parse_packet_compressed_payload(demux_asf_t *this,
stream->resync = 0;
stream->skip = 0;
}
-
+
if (!stream->skip) {
lprintf ("sending buffer of type %08x\n", stream->buf_type);
-
+
if (stream->defrag)
asf_send_buffer_defrag (this, stream, 0, *timestamp, object_length);
else
@@ -1435,15 +1435,15 @@ static int demux_asf_parse_http_references( demux_asf_t *this) {
if (!end) goto failure;
*end = '\0';
}
-
+
/* replace http by mmsh */
if (!strncmp(href, "http", 4)) {
memcpy(href, "mmsh", 4);
}
-
+
xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG, "demux_asf: http ref: %s\n", href);
_x_demux_send_mrl_reference (this->stream, 0, href, NULL, 0, 0);
-
+
if (free_href)
free(href);
}
@@ -1627,13 +1627,13 @@ static int demux_asf_parse_asx_references( demux_asf_t *this) {
else if (!strcasecmp (asx_ref->name, "STARTTIME"))
{
- if (start_time == (uint32_t)-1)
+ if (start_time == (uint32_t)-1)
start_time = asx_get_time_value (asx_ref);
}
else if (!strcasecmp (asx_ref->name, "DURATION"))
{
- if (duration == (uint32_t)-1)
+ if (duration == (uint32_t)-1)
duration = asx_get_time_value (asx_ref);
}
@@ -1686,7 +1686,7 @@ static int demux_asf_send_chunk (demux_plugin_t *this_gen) {
uint32_t rlen = 0;
uint8_t raw_id = 0;
int64_t ts = 0;
-
+
switch (this->mode) {
case ASF_MODE_ASX_REF:
return demux_asf_parse_asx_references(this);
@@ -1703,9 +1703,9 @@ static int demux_asf_send_chunk (demux_plugin_t *this_gen) {
return this->status;
default:
- {
+ {
uint32_t header_size = 0;
-
+
if (asf_parse_packet_align(this)) {
xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG, "demux_asf: asf_parse_packet_align failed\n");
this->status = DEMUX_FINISHED;
@@ -1721,7 +1721,7 @@ static int demux_asf_send_chunk (demux_plugin_t *this_gen) {
this->status = DEMUX_FINISHED;
return this->status;
}
-
+
for (this->frame = 0; this->frame < (this->nb_frames & 0x3f); this->frame++) {
raw_id = get_byte(this); this->packet_size_left -= 1;
@@ -1746,7 +1746,7 @@ static void demux_asf_dispose (demux_plugin_t *this_gen) {
if (this->asf_header) {
int i;
-
+
for (i=0; i<this->asf_header->stream_count; i++) {
asf_demux_stream_t *asf_stream;
@@ -1759,7 +1759,7 @@ static void demux_asf_dispose (demux_plugin_t *this_gen) {
asf_header_delete (this->asf_header);
}
-
+
free (this);
}
@@ -1819,11 +1819,11 @@ static int demux_asf_seek (demux_plugin_t *this_gen,
start_pos, start_time);
this->status = DEMUX_OK;
-
+
if (this->mode != ASF_MODE_NORMAL) {
return this->status;
}
-
+
/*
* seek to start position
*/
@@ -1837,7 +1837,7 @@ static int demux_asf_seek (demux_plugin_t *this_gen,
this->last_pts[PTS_AUDIO] = 0;
this->keyframe_ts = 0;
this->keyframe_found = 0;
-
+
/* engine sync stuff */
this->send_newpts = 1;
this->buf_flag_seek = 1;
@@ -1845,11 +1845,11 @@ static int demux_asf_seek (demux_plugin_t *this_gen,
if (this->input->get_capabilities(this->input) & INPUT_CAP_SEEKABLE) {
_x_demux_flush_engine(this->stream);
-
+
start_time /= 1000;
start_pos = (off_t) ( (double) start_pos / 65535 *
this->input->get_length (this->input) );
-
+
if ( (!start_pos) && (start_time))
start_pos = start_time * this->rate;
@@ -1910,7 +1910,7 @@ static int demux_asf_seek (demux_plugin_t *this_gen,
this->status = DEMUX_FINISHED;
return this->status;
}
-
+
for (this->frame = 0; this->frame < (this->nb_frames & 0x3f); this->frame++) {
raw_id = get_byte(this); this->packet_size_left -= 1;
@@ -1919,7 +1919,7 @@ static int demux_asf_seek (demux_plugin_t *this_gen,
stream_id = raw_id & 0x7f;
if (asf_parse_packet_payload_common(this, raw_id, &stream, &frag_offset, &rlen))
break;
-
+
if (rlen == 1) {
if (asf_parse_packet_compressed_payload(this, stream, raw_id, frag_offset, &ts))
break;
@@ -1927,7 +1927,7 @@ static int demux_asf_seek (demux_plugin_t *this_gen,
if (asf_parse_packet_payload(this, stream, raw_id, frag_offset, rlen, &ts))
break;
}
-
+
if (state == 0) {
if (this->keyframe_found) {
if (this->audio_stream == -1) {
@@ -1977,12 +1977,12 @@ static int demux_asf_seek (demux_plugin_t *this_gen,
this->streams[this->audio_stream].resync = 1;
this->streams[this->audio_stream].skip = 1;
}
- } else if (!playing && this->input->seek_time != NULL) {
+ } else if (!playing && this->input->seek_time != NULL) {
if (start_pos && !start_time)
start_time = this->length * start_pos / 65535;
-
+
this->input->seek_time (this->input, start_time, SEEK_SET);
-
+
this->keyframe_ts = 0;
this->keyframe_found = 0; /* means next keyframe */
if (this->video_stream >= 0) {
@@ -2007,7 +2007,7 @@ static int demux_asf_seek (demux_plugin_t *this_gen,
}
}
return this->status;
-
+
error:
this->status = DEMUX_FINISHED;
return this->status;
@@ -2118,7 +2118,7 @@ static demux_plugin_t *open_plugin (demux_class_t *class_gen,
this->demux_plugin.demux_class = class_gen;
this->status = DEMUX_FINISHED;
-
+
return &this->demux_plugin;
}
@@ -2133,7 +2133,7 @@ static void *init_class (xine_t *xine, void *data) {
this->demux_class.open_plugin = open_plugin;
this->demux_class.description = N_("ASF demux plugin");
this->demux_class.identifier = "ASF";
- this->demux_class.mimetypes =
+ this->demux_class.mimetypes =
"video/x-ms-asf: asf: ASF stream;"
"video/x-ms-wmv: wmv: Windows Media Video;"
"audio/x-ms-wma: wma: Windows Media Audio;"
@@ -2156,7 +2156,7 @@ static void *init_class (xine_t *xine, void *data) {
static const demuxer_info_t demux_info_asf = {
10 /* priority */
};
-
+
const plugin_info_t xine_plugin_info[] EXPORTED = {
/* type, API, "name", version, special_info, init_function */
{ PLUGIN_DEMUX, 27, "asf", XINE_VERSION_CODE, &demux_info_asf, init_class },
diff --git a/src/demuxers/demux_aud.c b/src/demuxers/demux_aud.c
index afb1e44ef..258494ffd 100644
--- a/src/demuxers/demux_aud.c
+++ b/src/demuxers/demux_aud.c
@@ -105,7 +105,7 @@ remove this case for the time being since this audio type is not supported
anyway.
if (header[11] == 1)
this->audio_type = BUF_AUDIO_WESTWOOD;
- else
+ else
#endif
if (header[11] == 99)
this->audio_type = BUF_AUDIO_VQA_IMA;
diff --git a/src/demuxers/demux_avi.c b/src/demuxers/demux_avi.c
index 3c1c8491a..af1c0aa7f 100644
--- a/src/demuxers/demux_avi.c
+++ b/src/demuxers/demux_avi.c
@@ -7,12 +7,12 @@
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -134,7 +134,7 @@ typedef struct _avistdindex_chunk {
uint32_t dwReserved3; /* must be 0 */
avistdindex_entry *aIndex;
} avistdindex_chunk;
-
+
/* Base Index Form 'indx' */
typedef struct _avisuperindex_chunk {
@@ -150,7 +150,7 @@ typedef struct _avisuperindex_chunk {
avisuperindex_entry *aIndex; /* where are the ix## chunks */
avistdindex_chunk **stdindex; /* the ix## chunks itself (array) */
} avisuperindex_chunk;
-
+
/* These next three are the video and audio structures that can grow
* during the playback of a streaming file. */
@@ -473,7 +473,7 @@ static int start_pos_stopper(demux_avi_t *this, void *data) {
maxframe--;
}
return -1;
-}
+}
/* Use this one to ensure that a video frame with the given timestamp
* is in the index. */
@@ -600,11 +600,11 @@ static int idx_grow(demux_avi_t *this, int (*stopper)(demux_avi_t *, void *),
}
} else {
int i;
-
+
/* Audio chunk */
for(i = 0; i < this->avi->n_audio; ++i) {
avi_audio_t *audio = this->avi->audio[i];
-
+
if ((data[0] == audio->audio_tag[0]) &&
(data[1] == audio->audio_tag[1])) {
off_t pos = chunk_pos + AVI_HEADER_SIZE;
@@ -617,7 +617,7 @@ static int idx_grow(demux_avi_t *this, int (*stopper)(demux_avi_t *, void *),
} else {
audio->block_no += 1;
}
-
+
if (audio_index_append(this->avi, i, pos, chunk_len, audio->audio_tot,
audio->block_no) == -1) {
/* As above. */
@@ -711,10 +711,10 @@ do { \
static void reset_idx(demux_avi_t *this, avi_t *AVI) {
int n;
-
+
this->idx_grow.nexttagoffset = AVI->movi_start;
this->has_index = 0;
-
+
AVI->video_idx.video_frames = 0;
for(n = 0; n < AVI->n_audio; n++) {
AVI->audio[n]->audio_idx.audio_chunks = 0;
@@ -778,14 +778,14 @@ static avi_t *XINE_MALLOC AVI_init(demux_avi_t *this) {
n = _X_LE_32(data + 4);
n = PAD_EVEN(n);
next_chunk = this->idx_grow.nexttagoffset + 8 + n;
-
+
lprintf("chunk: %c%c%c%c, size: %" PRId64 "\n",
data[0], data[1], data[2], data[3], (int64_t)n);
-
+
if (n >= 4 && strncasecmp(data,"LIST",4) == 0) {
if( this->input->read(this->input, data,4) != 4 ) ERR_EXIT(AVI_ERR_READ);
n -= 4;
-
+
lprintf(" chunk: %c%c%c%c\n",
data[0], data[1], data[2], data[3]);
@@ -799,7 +799,7 @@ static avi_t *XINE_MALLOC AVI_init(demux_avi_t *this) {
ERR_EXIT(AVI_ERR_READ);
} else if(strncasecmp(data,"movi",4) == 0) {
-
+
AVI->movi_start = this->input->get_current_pos(this->input);
AVI->movi_end = AVI->movi_start + n - 1;
@@ -877,7 +877,7 @@ static avi_t *XINE_MALLOC AVI_init(demux_avi_t *this) {
lasttag = 1; /* vids */
lprintf("dwScale=%d, dwRate=%d, dwInitialFrames=%d, dwStart=%d, num_stream=%d\n",
AVI->dwScale, AVI->dwRate, AVI->dwInitialFrames, AVI->dwStart, num_stream);
-
+
} else if (strncasecmp (hdrl_data+i,"auds",4) ==0 /* && ! auds_strh_seen*/) {
if(AVI->n_audio < MAX_AUDIO_STREAMS) {
avi_audio_t *a = (avi_audio_t *) calloc(1, sizeof(avi_audio_t));
@@ -892,10 +892,10 @@ static avi_t *XINE_MALLOC AVI_init(demux_avi_t *this) {
a->dwScale = _X_LE_32(hdrl_data + i + 20);
a->dwRate = _X_LE_32(hdrl_data + i + 24);
a->dwStart = _X_LE_32(hdrl_data + i + 28);
-
+
lprintf("dwScale=%d, dwRate=%d, dwInitialFrames=%d, dwStart=%d, num_stream=%d\n",
a->dwScale, a->dwRate, a->dwInitialFrames, a->dwStart, num_stream);
-
+
a->dwSampleSize = _X_LE_32(hdrl_data + i + 44);
a->audio_tot = 0;
auds_strh_seen = 1;
@@ -909,14 +909,14 @@ static avi_t *XINE_MALLOC AVI_init(demux_avi_t *this) {
lasttag = 0;
}
num_stream++;
-
+
} else if(strncasecmp(hdrl_data+i,"dmlh",4) == 0) {
AVI->total_frames = _X_LE_32(hdrl_data+i+8);
#ifdef DEBUG_ODML
lprintf( "AVI: real number of frames %d\n", AVI->total_frames);
#endif
i += 8;
-
+
} else if(strncasecmp(hdrl_data + i, "strf", 4) == 0) {
i += 4;
strf_size = _X_LE_32(hdrl_data + i);
@@ -973,7 +973,7 @@ static avi_t *XINE_MALLOC AVI_init(demux_avi_t *this) {
} else if(lasttag == 2) {
xine_waveformatex *wavex;
-
+
wavex = (xine_waveformatex *)malloc(n);
if (!wavex) {
this->AVI_errno = AVI_ERR_NO_MEM;
@@ -1175,7 +1175,7 @@ static avi_t *XINE_MALLOC AVI_init(demux_avi_t *this) {
}
lprintf("idx_type=%d, AVI->n_idx=%d\n", idx_type, AVI->n_idx);
-
+
if (idx_type != 0 && !AVI->is_opendml) {
/* Now generate the video index and audio index arrays from the
* idx1 record. */
@@ -1232,7 +1232,7 @@ static avi_t *XINE_MALLOC AVI_init(demux_avi_t *this) {
xprintf (this->stream->xine, XINE_VERBOSITY_LOG,
"demux_avi: This is an OpenDML stream\n");
nvi = 0;
- for(audtr=0; audtr<AVI->n_audio; ++audtr) nai[audtr] = 0;
+ for(audtr=0; audtr<AVI->n_audio; ++audtr) nai[audtr] = 0;
/* ************************ */
/* VIDEO */
@@ -1300,7 +1300,7 @@ static avi_t *XINE_MALLOC AVI_init(demux_avi_t *this) {
"demux_avi: Warning: the video super index is NULL\n");
}
-
+
/* ************************ */
/* AUDIO */
/* ************************ */
@@ -1344,7 +1344,7 @@ static avi_t *XINE_MALLOC AVI_init(demux_avi_t *this) {
/* skip header */
en += hdrl_len;
nai[audtr] += nrEntries;
-
+
while (k < nai[audtr]) {
off_t pos;
@@ -1352,7 +1352,7 @@ static avi_t *XINE_MALLOC AVI_init(demux_avi_t *this) {
pos = offset + _X_LE_32(en); en += 4;
len = odml_len(en); en += 4;
-
+
/* VBR streams (hack from mplayer) */
if (audio->wavex && audio->wavex->nBlockAlign) {
audio->block_no += (len + audio->wavex->nBlockAlign - 1) /
@@ -1394,7 +1394,7 @@ static avi_t *XINE_MALLOC AVI_init(demux_avi_t *this) {
this->idx_grow.nexttagoffset = AVI->movi_start;
this->has_index = 0;
}
-
+
/* Reposition the file */
if (!this->streaming)
this->input->seek(this->input, AVI->movi_start, SEEK_SET);
@@ -1480,7 +1480,7 @@ static int AVI_read_video(demux_avi_t *this, avi_t *AVI, char *vidbuf,
nr = 0; /* total number of bytes read */
left = vie->len - AVI->video_posb;
-
+
while ((bytes > 0) && (left > 0)) {
if (bytes < left)
todo = bytes;
@@ -1522,7 +1522,7 @@ static int demux_avi_next (demux_avi_t *this, int decoder_flags) {
int audio_sent = 0;
lprintf("begin\n");
-
+
/* Try to grow the index, in case more of the avi file has shown up
* since we last checked. If it's still too small, well then we're at
* the end of the stream. */
@@ -1531,7 +1531,7 @@ static int demux_avi_next (demux_avi_t *this, int decoder_flags) {
lprintf("end of stream\n");
}
}
-
+
for (i = 0; i < this->avi->n_audio; i++) {
avi_audio_t *audio = this->avi->audio[i];
@@ -1542,7 +1542,7 @@ static int demux_avi_next (demux_avi_t *this, int decoder_flags) {
}
}
}
-
+
video_pts = get_video_pts (this, this->avi->video_posf);
for (i=0; i < this->avi->n_audio; i++) {
@@ -1568,7 +1568,7 @@ static int demux_avi_next (demux_avi_t *this, int decoder_flags) {
/* read audio */
buf->pts = audio_pts;
-
+
buf->size = AVI_read_audio (this, audio, buf->mem, buf->max_size, &buf->decoder_flags);
buf->decoder_flags |= decoder_flags;
@@ -1580,12 +1580,12 @@ static int demux_avi_next (demux_avi_t *this, int decoder_flags) {
buf->type = audio->audio_type | i;
buf->extra_info->input_time = audio_pts / 90;
if( this->input->get_length (this->input) )
- buf->extra_info->input_normpos = (int)( (double) this->input->get_current_pos (this->input) *
+ buf->extra_info->input_normpos = (int)( (double) this->input->get_current_pos (this->input) *
65535 / this->input->get_length (this->input) );
-
+
check_newpts (this, buf->pts, PTS_AUDIO);
this->audio_fifo->put (this->audio_fifo, buf);
-
+
audio_sent++;
}
} else
@@ -1595,7 +1595,7 @@ static int demux_avi_next (demux_avi_t *this, int decoder_flags) {
if (audio_sent == 0) {
do_read_video = 1;
}
-
+
if (do_read_video) {
buf = this->video_fifo->buffer_pool_alloc (this->video_fifo);
@@ -1611,12 +1611,12 @@ static int demux_avi_next (demux_avi_t *this, int decoder_flags) {
if (this->has_index && this->avi->video_idx.video_frames > 2) {
/* use video_frames-2 instead of video_frames-1 to fix problems with weird
non-interleaved streams */
- buf->extra_info->input_normpos = (int)( (double) this->input->get_current_pos (this->input) *
+ buf->extra_info->input_normpos = (int)( (double) this->input->get_current_pos (this->input) *
65535 /
this->avi->video_idx.vindex[this->avi->video_idx.video_frames - 2].pos);
} else {
if( this->input->get_length (this->input) )
- buf->extra_info->input_normpos = (int)( (double) this->input->get_current_pos (this->input) *
+ buf->extra_info->input_normpos = (int)( (double) this->input->get_current_pos (this->input) *
65535 / this->input->get_length (this->input) );
}
buf->extra_info->frame_number = this->avi->video_posf;
@@ -1631,7 +1631,7 @@ static int demux_avi_next (demux_avi_t *this, int decoder_flags) {
lprintf ("adding buf %d to video fifo, decoder_info[0]: %d\n",
buf, buf->decoder_info[0]);
*/
-
+
check_newpts (this, buf->pts, PTS_VIDEO);
this->video_fifo->put (this->video_fifo, buf);
video_sent++;
@@ -1752,7 +1752,7 @@ static int demux_avi_next_streaming (demux_avi_t *this, int decoder_flags) {
}
buf->extra_info->input_time = audio_pts / 90;
if( this->input->get_length (this->input) )
- buf->extra_info->input_normpos = (int)( (double) this->input->get_current_pos (this->input) *
+ buf->extra_info->input_normpos = (int)( (double) this->input->get_current_pos (this->input) *
65535 / this->input->get_length (this->input) );
buf->type = audio->audio_type | audio_stream;
@@ -1783,7 +1783,7 @@ static int demux_avi_next_streaming (demux_avi_t *this, int decoder_flags) {
/* read video */
buf->pts = video_pts;
lprintf("video pts: %" PRId64 "\n", video_pts);
-
+
if (left > this->video_fifo->buffer_pool_buf_size) {
buf->size = this->video_fifo->buffer_pool_buf_size;
buf->decoder_flags = 0;
@@ -1838,7 +1838,7 @@ static int demux_avi_send_chunk (demux_plugin_t *this_gen) {
this->seek_request = 0;
demux_avi_seek_internal(this);
}
-
+
if (!demux_avi_next (this, 0)) {
this->status = DEMUX_FINISHED;
}
@@ -1923,7 +1923,7 @@ static void demux_avi_send_headers (demux_plugin_t *this_gen) {
this->avi->bih->biCompression = this->avi->compressor;
this->avi->video_type = BUF_VIDEO_XVID;
}
-
+
_x_stream_info_set(this->stream, XINE_STREAM_INFO_HAS_VIDEO, 1);
_x_stream_info_set(this->stream, XINE_STREAM_INFO_HAS_AUDIO, !this->no_audio);
_x_meta_info_set(this->stream, XINE_META_INFO_VIDEOCODEC, _x_buf_video_name(this->avi->video_type));
@@ -1941,7 +1941,7 @@ static void demux_avi_send_headers (demux_plugin_t *this_gen) {
_x_demux_control_start (this->stream);
buf = this->video_fifo->buffer_pool_alloc (this->video_fifo);
-
+
if (this->avi->bih->biSize > buf->max_size) {
xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
"demux_avi: private video decoder data length (%d) is greater than fifo buffer length (%d)\n",
@@ -1950,9 +1950,9 @@ static void demux_avi_send_headers (demux_plugin_t *this_gen) {
this->status = DEMUX_FINISHED;
return;
}
-
+
/* wait, before sending out the video header, one more special case hack:
- * if the video type is RGB, indicate that it is upside down with a
+ * if the video type is RGB, indicate that it is upside down with a
* negative height */
if (this->avi->video_type == BUF_VIDEO_RGB) {
this->avi->bih->biHeight = -this->avi->bih->biHeight;
@@ -1963,7 +1963,7 @@ static void demux_avi_send_headers (demux_plugin_t *this_gen) {
buf->decoder_info[0] = this->video_step;
memcpy (buf->content, this->avi->bih, this->avi->bih->biSize);
buf->size = this->avi->bih->biSize;
-
+
if (this->avi->video_type) {
this->avi->compressor = this->avi->bih->biCompression;
} else {
@@ -2013,7 +2013,7 @@ static void demux_avi_send_headers (demux_plugin_t *this_gen) {
buf->size = todo;
}
todo -= buf->size;
-
+
buf->decoder_flags = BUF_FLAG_HEADER|BUF_FLAG_STDHEADER;
if (todo == 0)
buf->decoder_flags |= BUF_FLAG_FRAME_END;
@@ -2030,7 +2030,7 @@ static void demux_avi_send_headers (demux_plugin_t *this_gen) {
}
if(this->avi->n_audio == 1)
- _x_stream_info_set(this->stream, XINE_STREAM_INFO_AUDIO_FOURCC,
+ _x_stream_info_set(this->stream, XINE_STREAM_INFO_AUDIO_FOURCC,
this->avi->audio[0]->wavex->wFormatTag);
}
@@ -2080,7 +2080,7 @@ static int demux_avi_seek_internal (demux_avi_t *this) {
int64_t audio_pts;
off_t start_pos = this->seek_start_pos;
int start_time = this->seek_start_time;
-
+
start_pos = (off_t) ( (double) start_pos / 65535 *
this->input->get_length (this->input) );
@@ -2115,12 +2115,12 @@ static int demux_avi_seek_internal (demux_avi_t *this) {
video_pts = start_time * 90;
idx_grow(this, start_time_stopper, &video_pts);
}
-
+
if (start_pos || start_time)
max_pos = this->avi->video_idx.video_frames - 1;
else
max_pos=0;
-
+
cur_pos = this->avi->video_posf;
if (max_pos < 0) {
this->status = DEMUX_FINISHED;
@@ -2148,7 +2148,7 @@ static int demux_avi_seek_internal (demux_avi_t *this) {
}
}
}
-
+
while (vie && !(vie->flags & AVIIF_KEYFRAME) && cur_pos) {
this->avi->video_posf = --cur_pos;
vie = video_cur_index_entry(this);
@@ -2171,7 +2171,7 @@ static int demux_avi_seek_internal (demux_avi_t *this) {
if (!this->no_audio && this->status == DEMUX_OK) {
audio_index_entry_t *aie;
int i;
-
+
for(i = 0; i < this->avi->n_audio; i++) {
max_pos = this->avi->audio[i]->audio_idx.audio_chunks - 1;
min_pos = 0;
@@ -2329,7 +2329,7 @@ static void *init_class (xine_t *xine, void *data) {
this->demux_class.open_plugin = open_plugin;
this->demux_class.description = N_("AVI/RIFF demux plugin");
this->demux_class.identifier = "AVI";
- this->demux_class.mimetypes =
+ this->demux_class.mimetypes =
"video/msvideo: avi: AVI video;"
"video/x-msvideo: avi: AVI video;";
this->demux_class.extensions = "avi";
diff --git a/src/demuxers/demux_cdda.c b/src/demuxers/demux_cdda.c
index c6e8114fd..f936ff4f2 100644
--- a/src/demuxers/demux_cdda.c
+++ b/src/demuxers/demux_cdda.c
@@ -84,7 +84,7 @@ static int demux_cdda_send_chunk (demux_plugin_t *this_gen) {
buf->type = BUF_AUDIO_LPCM_LE;
if( this->input->get_length (this->input) )
- buf->extra_info->input_normpos = (int)( (double) this->input->get_current_pos (this->input) *
+ buf->extra_info->input_normpos = (int)( (double) this->input->get_current_pos (this->input) *
65535 / this->input->get_length (this->input) );
buf->pts = this->input->get_current_pos(this->input);
buf->pts *= 90000;
diff --git a/src/demuxers/demux_dts.c b/src/demuxers/demux_dts.c
index 6943ed660..3c624a8c9 100644
--- a/src/demuxers/demux_dts.c
+++ b/src/demuxers/demux_dts.c
@@ -160,7 +160,7 @@ static int open_dts_file(demux_dts_t *this) {
break;
}
/* 14 bits and little endian bitstream */
- else if ((syncword == 0xff1f00e8) &&
+ else if ((syncword == 0xff1f00e8) &&
((peak[i] & 0xf0) == 0xf0) && (peak[i+1] == 0x07)) {
dts_version = 3;
break;
@@ -218,8 +218,8 @@ static int open_dts_file(demux_dts_t *this) {
{
case 0: /* BE16 */
case 1: /* LE16 */
- this->frame_size = fsize * 8 / 16 * 2;
- break;
+ this->frame_size = fsize * 8 / 16 * 2;
+ break;
case 2: /* BE14 */
case 3: /* LE14 */
this->frame_size = fsize * 8 / 14 * 2;
@@ -250,7 +250,7 @@ static int demux_dts_send_chunk (demux_plugin_t *this_gen) {
int frame_number;
uint32_t blocksize;
- current_stream_pos = this->input->get_current_pos(this->input) -
+ current_stream_pos = this->input->get_current_pos(this->input) -
this->data_start;
frame_number = current_stream_pos / this->frame_size;
@@ -274,7 +274,7 @@ static int demux_dts_send_chunk (demux_plugin_t *this_gen) {
}
} else {
buf = this->audio_fifo->buffer_pool_alloc (this->audio_fifo);
- buf->size = this->input->read(this->input, buf->content,
+ buf->size = this->input->read(this->input, buf->content,
this->frame_size);
}
@@ -286,7 +286,7 @@ static int demux_dts_send_chunk (demux_plugin_t *this_gen) {
buf->type = BUF_AUDIO_DTS;
if( this->input->get_length (this->input) )
- buf->extra_info->input_normpos = (int)( (double) current_stream_pos *
+ buf->extra_info->input_normpos = (int)( (double) current_stream_pos *
65535 / (this->input->get_length(this->input) - this->data_start) );
buf->extra_info->input_time = audio_pts / 90;
buf->pts = audio_pts;
@@ -360,7 +360,7 @@ static int demux_dts_seek (demux_plugin_t *this_gen,
if (start_time) {
int length = demux_dts_get_stream_length (this_gen);
if (length != 0) {
- start_pos = start_time *
+ start_pos = start_time *
(this->input->get_length(this->input) - this->data_start) / length;
}
}
diff --git a/src/demuxers/demux_eawve.c b/src/demuxers/demux_eawve.c
index ea3348e61..735735548 100644
--- a/src/demuxers/demux_eawve.c
+++ b/src/demuxers/demux_eawve.c
@@ -213,7 +213,7 @@ static int demux_eawve_send_chunk(demux_eawve_t *this){
buf = this->audio_fifo->buffer_pool_alloc(this->audio_fifo);
buf->type = BUF_AUDIO_EA_ADPCM;
if( this->input->get_length (this->input) )
- buf->extra_info->input_normpos = (int)( (double) this->input->get_current_pos (this->input) *
+ buf->extra_info->input_normpos = (int)( (double) this->input->get_current_pos (this->input) *
65535 / this->input->get_length (this->input) );
buf->extra_info->input_time = (int)((int64_t)this->sample_counter * 1000 / 22050);
buf->pts = this->sample_counter;
diff --git a/src/demuxers/demux_elem.c b/src/demuxers/demux_elem.c
index 098c7738e..ddd067eb0 100644
--- a/src/demuxers/demux_elem.c
+++ b/src/demuxers/demux_elem.c
@@ -1,18 +1,18 @@
/*
* Copyright (C) 2000-2003 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -46,7 +46,7 @@
#define NUM_PREVIEW_BUFFERS 50
#define SCRATCH_SIZE 256
-typedef struct {
+typedef struct {
demux_plugin_t demux_plugin;
xine_stream_t *stream;
@@ -83,7 +83,7 @@ static int demux_mpeg_elem_next (demux_mpeg_elem_t *this, int preview_mode) {
buf->content = buf->mem;
buf->pts = 0;
if( this->input->get_length (this->input) )
- buf->extra_info->input_normpos = (int)( (double) this->input->get_current_pos (this->input) *
+ buf->extra_info->input_normpos = (int)( (double) this->input->get_current_pos (this->input) *
65535 / this->input->get_length (this->input) );
buf->type = BUF_VIDEO_MPEG;
@@ -91,7 +91,7 @@ static int demux_mpeg_elem_next (demux_mpeg_elem_t *this, int preview_mode) {
buf->decoder_flags = BUF_FLAG_PREVIEW;
this->video_fifo->put(this->video_fifo, buf);
-
+
return 1;
}
@@ -269,7 +269,7 @@ static const demuxer_info_t demux_info_elem = {
};
const plugin_info_t xine_plugin_info[] EXPORTED = {
- /* type, API, "name", version, special_info, init_function */
+ /* type, API, "name", version, special_info, init_function */
{ PLUGIN_DEMUX, 27, "elem", XINE_VERSION_CODE, &demux_info_elem, init_plugin },
{ PLUGIN_NONE, 0, "", 0, NULL, NULL }
};
diff --git a/src/demuxers/demux_film.c b/src/demuxers/demux_film.c
index 5699dbe12..c2cd271ea 100644
--- a/src/demuxers/demux_film.c
+++ b/src/demuxers/demux_film.c
@@ -163,7 +163,7 @@ static int open_film_file(demux_film_t *film) {
film->version[3]);
/* load the rest of the FILM header */
- if (film->input->read(film->input, film_header, film_header_size) !=
+ if (film->input->read(film->input, film_header, film_header_size) !=
film_header_size) {
free (film->interleave_buffer);
free (film->sample_table);
@@ -206,7 +206,7 @@ static int open_film_file(demux_film_t *film) {
_x_report_video_fourcc (film->stream->xine, LOG_MODULE,
*(uint32_t *)&film_header[i + 8]);
}
-
+
/* fetch the audio information if the chunk size checks out */
if (chunk_size == 32) {
film->audio_channels = film_header[21];
@@ -391,7 +391,7 @@ static int demux_film_send_chunk(demux_plugin_t *this_gen) {
}
/* check if we're only sending audio samples until the next keyframe */
- if ((this->waiting_for_keyframe) &&
+ if ((this->waiting_for_keyframe) &&
(!this->sample_table[i].audio)) {
if (this->sample_table[i].keyframe) {
this->waiting_for_keyframe = 0;
@@ -431,7 +431,7 @@ static int demux_film_send_chunk(demux_plugin_t *this_gen) {
/* set the frame duration */
buf->decoder_flags |= BUF_FLAG_FRAMERATE;
buf->decoder_info[0] = this->sample_table[i].duration;
-
+
if (remaining_sample_bytes > buf->max_size)
buf->size = buf->max_size;
else
@@ -446,11 +446,11 @@ static int demux_film_send_chunk(demux_plugin_t *this_gen) {
}
/* skip over the extra non-spec CVID bytes */
- this->input->seek(this->input,
+ this->input->seek(this->input,
this->sample_table[i].sample_size - cvid_chunk_size, SEEK_CUR);
/* load the rest of the chunk */
- if (this->input->read(this->input, buf->content + 10,
+ if (this->input->read(this->input, buf->content + 10,
buf->size - 10) != buf->size - 10) {
buf->free_buffer(buf);
this->status = DEMUX_FINISHED;
@@ -502,7 +502,7 @@ static int demux_film_send_chunk(demux_plugin_t *this_gen) {
/* set the frame duration */
buf->decoder_flags |= BUF_FLAG_FRAMERATE;
buf->decoder_info[0] = this->sample_table[i].duration;
-
+
if (remaining_sample_bytes > buf->max_size)
buf->size = buf->max_size;
else
@@ -630,8 +630,8 @@ static int demux_film_send_chunk(demux_plugin_t *this_gen) {
buf->content[j] = this->interleave_buffer[k];
buf->content[j + 1] = this->interleave_buffer[k + 1];
}
- for (j = 2,
- k = interleave_index + this->sample_table[i].sample_size / 2;
+ for (j = 2,
+ k = interleave_index + this->sample_table[i].sample_size / 2;
j < buf->size; j += 4, k += 2) {
buf->content[j] = this->interleave_buffer[k];
buf->content[j + 1] = this->interleave_buffer[k + 1];
@@ -641,8 +641,8 @@ static int demux_film_send_chunk(demux_plugin_t *this_gen) {
for (j = 0, k = interleave_index; j < buf->size; j += 2, k += 1) {
buf->content[j] = this->interleave_buffer[k] += 0x80;
}
- for (j = 1,
- k = interleave_index + this->sample_table[i].sample_size / 2;
+ for (j = 1,
+ k = interleave_index + this->sample_table[i].sample_size / 2;
j < buf->size; j += 2, k += 1) {
buf->content[j] = this->interleave_buffer[k] += 0x80;
}
@@ -657,7 +657,7 @@ static int demux_film_send_chunk(demux_plugin_t *this_gen) {
this->audio_fifo->put(this->audio_fifo, buf);
}
}
-
+
return this->status;
}
@@ -740,13 +740,13 @@ static int demux_film_seek (demux_plugin_t *this_gen, off_t start_pos, int start
this->waiting_for_keyframe = 0;
this->last_sample = 0;
}
-
+
/* if input is non-seekable, do not proceed with the rest of this
* seek function */
if (!INPUT_IS_SEEKABLE(this->input))
return this->status;
- /* perform a binary search on the sample table, testing the offset
+ /* perform a binary search on the sample table, testing the offset
* boundaries first */
if (start_pos) {
if (start_pos <= 0)
@@ -763,7 +763,7 @@ static int demux_film_seek (demux_plugin_t *this_gen, off_t start_pos, int start
while (!found) {
middle = (left + right) / 2;
if ((start_pos >= this->sample_table[middle].sample_offset) &&
- (start_pos <= this->sample_table[middle].sample_offset +
+ (start_pos <= this->sample_table[middle].sample_offset +
this->sample_table[middle].sample_size)) {
found = 1;
} else if (start_pos < this->sample_table[middle].sample_offset) {
@@ -820,7 +820,7 @@ static int demux_film_seek (demux_plugin_t *this_gen, off_t start_pos, int start
}
this->current_sample = best_index;
-
+
return this->status;
}
diff --git a/src/demuxers/demux_flac.c b/src/demuxers/demux_flac.c
index 8acddb3c6..0c2545441 100644
--- a/src/demuxers/demux_flac.c
+++ b/src/demuxers/demux_flac.c
@@ -119,7 +119,7 @@ static int open_flac_file(demux_flac_t *flac) {
* will always be 1 metadata block */
do {
- if (flac->input->read(flac->input, preamble, FLAC_SIGNATURE_SIZE) !=
+ if (flac->input->read(flac->input, preamble, FLAC_SIGNATURE_SIZE) !=
FLAC_SIGNATURE_SIZE)
return 0;
@@ -133,11 +133,11 @@ static int open_flac_file(demux_flac_t *flac) {
case 0:
lprintf ("STREAMINFO metadata\n");
if (block_length != FLAC_STREAMINFO_SIZE) {
- lprintf ("expected STREAMINFO chunk of %d bytes\n",
+ lprintf ("expected STREAMINFO chunk of %d bytes\n",
FLAC_STREAMINFO_SIZE);
return 0;
}
- if (flac->input->read(flac->input,
+ if (flac->input->read(flac->input,
flac->streaminfo + sizeof(xine_waveformatex),
FLAC_STREAMINFO_SIZE) != FLAC_STREAMINFO_SIZE)
return 0;
@@ -146,8 +146,8 @@ static int open_flac_file(demux_flac_t *flac) {
flac->bits_per_sample = ((flac->sample_rate >> 4) & 0x1F) + 1;
flac->sample_rate >>= 12;
flac->total_samples = _X_BE_64(&streaminfo[10]) & UINT64_C(0x0FFFFFFFFF); /* 36 bits */
- lprintf ("%d Hz, %d bits, %d channels, %"PRId64" total samples\n",
- flac->sample_rate, flac->bits_per_sample,
+ lprintf ("%d Hz, %d bits, %d channels, %"PRId64" total samples\n",
+ flac->sample_rate, flac->bits_per_sample,
flac->channels, flac->total_samples);
break;
@@ -178,7 +178,7 @@ static int open_flac_file(demux_flac_t *flac) {
lprintf (" %d: sample %"PRId64", ", i, flac->seekpoints[i].sample_number);
flac->seekpoints[i].offset = _X_BE_64(&buffer[8]);
flac->seekpoints[i].size = _X_BE_16(&buffer[16]);
- lprintf ("@ 0x%"PRIX64", size = %d bytes, ",
+ lprintf ("@ 0x%"PRIX64", size = %d bytes, ",
flac->seekpoints[i].offset, flac->seekpoints[i].size);
flac->seekpoints[i].pts = flac->seekpoints[i].sample_number;
flac->seekpoints[i].pts *= 90000;
@@ -187,7 +187,7 @@ static int open_flac_file(demux_flac_t *flac) {
}
break;
- /* VORBIS_COMMENT
+ /* VORBIS_COMMENT
*
* For a description of the format please have a look at
* http://www.xiph.org/vorbis/doc/v-comment.html */
@@ -228,7 +228,7 @@ static int open_flac_file(demux_flac_t *flac) {
lprintf ("comment[%02d] = %s\n", cn, comment);
- if ((strncasecmp ("TITLE=", comment, 6) == 0)
+ if ((strncasecmp ("TITLE=", comment, 6) == 0)
&& (length - 6 > 0)) {
_x_meta_info_set_utf8 (flac->stream, XINE_META_INFO_TITLE, comment + 6);
} else if ((strncasecmp ("ARTIST=", comment, 7) == 0)
@@ -396,7 +396,7 @@ static int demux_flac_seek (demux_plugin_t *this_gen,
int seekpoint_index = 0;
int64_t start_pts;
unsigned char buf[4];
-
+
start_pos = (off_t) ( (double) start_pos / 65535 *
this->data_size );
@@ -457,15 +457,22 @@ static int demux_flac_seek (demux_plugin_t *this_gen,
}
_x_demux_flush_engine(this->stream);
- this->input->seek(this->input, this->seekpoints[seekpoint_index].offset,
+ this->input->seek(this->input, this->seekpoints[seekpoint_index].offset,
SEEK_SET);
- _x_demux_control_newpts(this->stream,
+ _x_demux_control_newpts(this->stream,
this->seekpoints[seekpoint_index].pts, BUF_FLAG_SEEK);
}
return this->status;
}
+static void demux_flac_dispose (demux_plugin_t *this_gen) {
+ demux_flac_t *this = (demux_flac_t *) this_gen;
+
+ free(this->seekpoints);
+ free(this);
+}
+
static int demux_flac_get_status (demux_plugin_t *this_gen) {
demux_flac_t *this = (demux_flac_t *) this_gen;
@@ -509,7 +516,7 @@ static demux_plugin_t *open_plugin (demux_class_t *class_gen, xine_stream_t *str
this->demux_plugin.send_headers = demux_flac_send_headers;
this->demux_plugin.send_chunk = demux_flac_send_chunk;
this->demux_plugin.seek = demux_flac_seek;
- this->demux_plugin.dispose = default_demux_plugin_dispose;
+ this->demux_plugin.dispose = demux_flac_dispose;
this->demux_plugin.get_status = demux_flac_get_status;
this->demux_plugin.get_stream_length = demux_flac_get_stream_length;
this->demux_plugin.get_capabilities = demux_flac_get_capabilities;
diff --git a/src/demuxers/demux_fli.c b/src/demuxers/demux_fli.c
index 18c475cff..498f7f0db 100644
--- a/src/demuxers/demux_fli.c
+++ b/src/demuxers/demux_fli.c
@@ -112,7 +112,7 @@ static int open_fli_file(demux_fli_t *this) {
this->speed = _X_LE_32(&this->fli_header[16]);
if (this->magic_number == FLI_FILE_MAGIC_1) {
- /*
+ /*
* in this case, the speed (n) is number of 1/70s ticks between frames:
*
* xine pts n * frame #
@@ -123,7 +123,7 @@ static int open_fli_file(demux_fli_t *this) {
*/
this->frame_pts_inc = this->speed * 1285.7;
} else if (this->magic_number == FLI_FILE_MAGIC_2) {
- /*
+ /*
* in this case, the speed (n) is number of milliseconds between frames:
*
* xine pts n * frame #
diff --git a/src/demuxers/demux_flv.c b/src/demuxers/demux_flv.c
index 035f06a52..80ea02de7 100644
--- a/src/demuxers/demux_flv.c
+++ b/src/demuxers/demux_flv.c
@@ -20,7 +20,7 @@
/*
* Flash Video (.flv) File Demuxer
- * by Mike Melanson (melanson@pcisys.net) and
+ * by Mike Melanson (melanson@pcisys.net) and
* Claudio Ciccani (klan@users.sf.net)
*
* For more information on the FLV file format, visit:
@@ -67,28 +67,28 @@ typedef struct {
unsigned char flags;
off_t start; /* in bytes */
off_t size; /* in bytes */
-
+
unsigned char got_video_header;
unsigned char got_audio_header;
-
+
unsigned int length; /* in ms */
int width;
int height;
int duration;
int videocodec;
-
+
int samplerate;
int samplesize;
int stereo;
int audiocodec;
-
+
off_t filesize;
-
+
flv_index_entry_t *index;
unsigned int num_indices;
-
+
unsigned int cur_pts;
-
+
int64_t last_pts[2];
int send_newpts;
int buf_flag_seek;
@@ -178,7 +178,7 @@ static int open_flv_file(demux_flv_t *this) {
if ((buffer[0] != 'F') || (buffer[1] != 'L') || (buffer[2] != 'V'))
return 0;
-
+
if (buffer[3] != 0x01) {
xprintf(this->xine, XINE_VERBOSITY_LOG,
_("unsupported FLV version (%d).\n"), buffer[3]);
@@ -194,10 +194,10 @@ static int open_flv_file(demux_flv_t *this) {
this->start = _X_BE_32(&buffer[5]);
this->size = this->input->get_length(this->input);
-
+
this->input->seek(this->input, this->start, SEEK_SET);
-
- lprintf(" qualified FLV file, repositioned @ offset 0x%" PRIxMAX "\n",
+
+ lprintf(" qualified FLV file, repositioned @ offset 0x%" PRIxMAX "\n",
(intmax_t)this->start);
return 1;
@@ -209,19 +209,19 @@ static int open_flv_file(demux_flv_t *this) {
_tmp.d;\
})\
-static int parse_flv_var(demux_flv_t *this,
+static int parse_flv_var(demux_flv_t *this,
unsigned char *buf, int size, char *key, int keylen) {
unsigned char *tmp = buf;
unsigned char *end = buf + size;
char *str;
unsigned char type;
unsigned int len, num;
-
+
if (size < 1)
return 0;
-
+
type = *tmp++;
-
+
switch (type) {
case FLV_DATA_TYPE_NUMBER:
lprintf(" got number (%f)\n", BE_F64(tmp));
@@ -366,7 +366,7 @@ static int parse_flv_var(demux_flv_t *this,
lprintf(" got type %d\n", type);
break;
}
-
+
return (tmp - buf);
}
@@ -375,7 +375,7 @@ static void parse_flv_script(demux_flv_t *this, int size) {
unsigned char *tmp = buf;
unsigned char *end = buf + size;
int len;
-
+
if (!buf || this->input->read(this->input, buf, size ) != size) {
this->status = DEMUX_FINISHED;
free(buf);
@@ -388,7 +388,7 @@ static void parse_flv_script(demux_flv_t *this, int size) {
break;
tmp += len;
}
-
+
free(buf);
}
@@ -401,7 +401,7 @@ static int read_flv_packet(demux_flv_t *this, int preview) {
unsigned int buf_type = 0;
unsigned int buf_flags = 0;
unsigned int pts;
-
+
while (1) {
lprintf (" reading FLV tag...\n");
this->input->seek(this->input, 4, SEEK_CUR);
@@ -413,7 +413,7 @@ static int read_flv_packet(demux_flv_t *this, int preview) {
tag_type = buffer[0];
remaining_bytes = _X_BE_24(&buffer[1]);
pts = _X_BE_24(&buffer[4]) | (buffer[7] << 24);
-
+
lprintf(" tag_type = 0x%02X, 0x%X bytes, pts %u\n",
tag_type, remaining_bytes, pts/90);
@@ -422,10 +422,10 @@ static int read_flv_packet(demux_flv_t *this, int preview) {
lprintf(" got audio tag..\n");
if (this->input->read(this->input, buffer, 1) != 1) {
this->status = DEMUX_FINISHED;
- return this->status;
+ return this->status;
}
remaining_bytes--;
-
+
this->audiocodec = buffer[0] >> 4; /* override */
switch (this->audiocodec) {
case FLV_SOUND_FORMAT_PCM_BE:
@@ -458,7 +458,7 @@ static int read_flv_packet(demux_flv_t *this, int preview) {
buf_type = BUF_AUDIO_UNKNOWN;
break;
}
-
+
fifo = this->audio_fifo;
if (preview && !this->got_audio_header) {
/* send init info to audio decoder */
@@ -474,7 +474,7 @@ static int read_flv_packet(demux_flv_t *this, int preview) {
this->got_audio_header = 1;
}
break;
-
+
case FLV_TAG_TYPE_VIDEO:
lprintf(" got video tag..\n");
if (this->input->read(this->input, buffer, 1) != 1) {
@@ -482,7 +482,7 @@ static int read_flv_packet(demux_flv_t *this, int preview) {
return this->status;
}
remaining_bytes--;
-
+
switch ((buffer[0] >> 4)) {
case 0x01:
buf_flags = BUF_FLAG_KEYFRAME;
@@ -494,7 +494,7 @@ static int read_flv_packet(demux_flv_t *this, int preview) {
default:
break;
}
-
+
this->videocodec = buffer[0] & 0x0F; /* override */
switch (this->videocodec) {
case FLV_VIDEO_FORMAT_FLV1:
@@ -523,12 +523,12 @@ static int read_flv_packet(demux_flv_t *this, int preview) {
buf_type = BUF_VIDEO_UNKNOWN;
break;
}
-
+
fifo = this->video_fifo;
if (preview && !this->got_video_header) {
xine_bmiheader *bih;
/* send init info to video decoder; send the bitmapinfo header to the decoder
- * primarily as a formality since there is no real data inside */
+ * primarily as a formality since there is no real data inside */
buf = fifo->buffer_pool_alloc(fifo);
buf->decoder_flags = BUF_FLAG_HEADER | BUF_FLAG_STDHEADER |
BUF_FLAG_FRAMERATE | BUF_FLAG_FRAME_END;
@@ -566,7 +566,7 @@ static int read_flv_packet(demux_flv_t *this, int preview) {
this->got_video_header = 1;
}
break;
-
+
case FLV_TAG_TYPE_SCRIPT:
lprintf(" got script tag...\n");
if (preview) {
@@ -612,7 +612,7 @@ static int read_flv_packet(demux_flv_t *this, int preview) {
this->got_audio_header = 1;
lprintf(" got audio header from metadata...\n");
}
-
+
if (!this->got_video_header && this->videocodec && this->videocodec != FLV_VIDEO_FORMAT_H264) {
xine_bmiheader *bih;
buf = this->video_fifo->buffer_pool_alloc(this->video_fifo);
@@ -647,34 +647,34 @@ static int read_flv_packet(demux_flv_t *this, int preview) {
this->got_video_header = 1;
lprintf(" got video header from metadata...\n");
}
-
+
return this->status;
}
/* no preview */
- this->input->seek(this->input, remaining_bytes, SEEK_CUR);
+ this->input->seek(this->input, remaining_bytes, SEEK_CUR);
continue;
-
+
default:
lprintf(" skipping packet...\n");
this->input->seek(this->input, remaining_bytes, SEEK_CUR);
continue;
}
-
+
while (remaining_bytes) {
buf = fifo->buffer_pool_alloc(fifo);
buf->type = buf_type;
-
+
buf->extra_info->input_time = pts;
if (this->input->get_length(this->input)) {
- buf->extra_info->input_normpos =
+ buf->extra_info->input_normpos =
(int)((double)this->input->get_current_pos(this->input) * 65535.0 / this->size);
}
-
+
if ((buf_type == BUF_VIDEO_H264 || buf_type == BUF_AUDIO_AAC) && buffer[0] == 0) {
/* AVC/AAC sequence header */
buf->pts = 0;
buf->size = 0;
-
+
buf->decoder_flags = BUF_FLAG_SPECIAL | BUF_FLAG_HEADER;
if (preview)
buf->decoder_flags |= BUF_FLAG_PREVIEW;
@@ -682,13 +682,13 @@ static int read_flv_packet(demux_flv_t *this, int preview) {
buf->decoder_info[1] = BUF_SPECIAL_DECODER_CONFIG;
buf->decoder_info[2] = MIN(remaining_bytes, buf->max_size);
buf->decoder_info_ptr[2] = buf->mem;
-
+
if (this->input->read(this->input, buf->mem, buf->decoder_info[2]) != buf->decoder_info[2]) {
buf->free_buffer(buf);
this->status = DEMUX_FINISHED;
break;
}
-
+
if (remaining_bytes > buf->max_size) {
xprintf(this->xine, XINE_VERBOSITY_LOG,
_("sequence header too big (%u bytes)!\n"), remaining_bytes);
@@ -722,11 +722,11 @@ static int read_flv_packet(demux_flv_t *this, int preview) {
fifo->put(fifo, buf);
}
-
+
this->cur_pts = pts;
break;
}
-
+
return this->status;
}
@@ -737,32 +737,32 @@ static void seek_flv_file(demux_flv_t *this, off_t seek_pos, int seek_pts) {
int next_tag = 0;
int do_rewind = (seek_pts < this->cur_pts);
int i;
-
- lprintf(" seeking %s to %d...\n",
+
+ lprintf(" seeking %s to %d...\n",
do_rewind ? "backward" : "forward", seek_pts);
-
+
if (seek_pos == 0 && seek_pts == 0) {
this->input->seek(this->input, this->start, SEEK_SET);
this->cur_pts = 0;
return;
}
-
+
if (this->index) {
if (do_rewind) {
for (i = this->num_indices-1; i > 0; i--) {
if (this->index[i-1].pts < seek_pts)
break;
}
- }
+ }
else {
for (i = 0; i < (this->num_indices-1); i++) {
if (this->index[i+1].pts > seek_pts)
break;
}
}
-
+
if (this->index[i].offset >= this->start+4) {
- lprintf(" seeking to index entry %d (pts:%u, offset:%u).\n",
+ lprintf(" seeking to index entry %d (pts:%u, offset:%u).\n",
i, this->index[i].pts, this->index[i].offset);
this->input->seek(this->input, this->index[i].offset-4, SEEK_SET);
@@ -771,16 +771,16 @@ static void seek_flv_file(demux_flv_t *this, off_t seek_pos, int seek_pts) {
}
else if (seek_pos && this->videocodec && abs(seek_pts-this->cur_pts) > 300000) {
off_t pos, size;
-
+
pos = this->input->get_current_pos(this->input);
size = this->filesize ? : this->input->get_length(this->input);
this->input->seek(this->input, (uint64_t)size * seek_pos / 65535, SEEK_SET);
lprintf(" resyncing...\n");
-
+
/* resync */
for (i = 0; i < 200000; i++) {
uint8_t buf[4];
-
+
if (this->input->read(this->input, buf, 1) < 1) {
this->status = DEMUX_FINISHED;
return;
@@ -800,30 +800,30 @@ static void seek_flv_file(demux_flv_t *this, off_t seek_pos, int seek_pts) {
this->input->seek(this->input, -11, SEEK_CUR);
}
}
-
+
lprintf(" ...resync failed!\n");
this->input->seek(this->input, pos, SEEK_SET);
- }
- else if (seek_pts) {
+ }
+ else if (seek_pts) {
while (do_rewind ? (seek_pts < this->cur_pts) : (seek_pts > this->cur_pts)) {
unsigned char tag_type;
int data_size;
int ptag_size;
-
+
if (next_tag)
this->input->seek(this->input, next_tag, SEEK_CUR);
-
+
len = this->input->read(this->input, buffer, 16);
if (len != 16) {
len = (len < 0) ? 0 : len;
break;
}
-
+
ptag_size = _X_BE_32(&buffer[0]);
tag_type = buffer[4];
data_size = _X_BE_24(&buffer[5]);
pts = _X_BE_24(&buffer[8]) | (buffer[11] << 24);
-
+
if (do_rewind) {
if (!ptag_size)
break; /* beginning of movie */
@@ -832,7 +832,7 @@ static void seek_flv_file(demux_flv_t *this, off_t seek_pos, int seek_pts) {
else {
next_tag = data_size - 1;
}
-
+
if (this->flags & FLV_FLAG_HAS_VIDEO) {
/* sync to video key frame */
if (tag_type != FLV_TAG_TYPE_VIDEO || (buffer[15] >> 4) != 0x01)
@@ -841,10 +841,10 @@ static void seek_flv_file(demux_flv_t *this, off_t seek_pos, int seek_pts) {
}
this->cur_pts = pts;
}
-
+
/* seek back to the beginning of the tag */
this->input->seek(this->input, -len, SEEK_CUR);
-
+
lprintf( " seeked to %d.\n", pts);
}
}
@@ -852,7 +852,7 @@ static void seek_flv_file(demux_flv_t *this, off_t seek_pos, int seek_pts) {
static int demux_flv_send_chunk(demux_plugin_t *this_gen) {
demux_flv_t *this = (demux_flv_t *) this_gen;
-
+
return read_flv_packet(this, 0);
}
@@ -864,11 +864,11 @@ static void demux_flv_send_headers(demux_plugin_t *this_gen) {
this->audio_fifo = this->stream->audio_fifo;
this->status = DEMUX_OK;
-
+
this->buf_flag_seek = 1;
/* load stream information */
- _x_stream_info_set(this->stream, XINE_STREAM_INFO_HAS_VIDEO,
+ _x_stream_info_set(this->stream, XINE_STREAM_INFO_HAS_VIDEO,
(this->flags & FLV_FLAG_HAS_VIDEO) ? 1 : 0);
_x_stream_info_set(this->stream, XINE_STREAM_INFO_HAS_AUDIO,
(this->flags & FLV_FLAG_HAS_AUDIO) ? 1 : 0);
@@ -897,7 +897,7 @@ static int demux_flv_seek (demux_plugin_t *this_gen,
if (INPUT_IS_SEEKABLE(this->input)) {
if (start_pos && !start_time) {
- if (this->length)
+ if (this->length)
start_time = (int64_t) this->length * start_pos / 65535;
else if (this->index)
start_time = this->index[(int)(start_pos * (this->num_indices-1) / 65535)].pts;
@@ -905,13 +905,13 @@ static int demux_flv_seek (demux_plugin_t *this_gen,
if (!this->length || start_time < this->length) {
seek_flv_file(this, start_pos, start_time);
-
+
if (playing) {
this->buf_flag_seek = 1;
_x_demux_flush_engine(this->stream);
}
}
- }
+ }
return this->status;
}
diff --git a/src/demuxers/demux_idcin.c b/src/demuxers/demux_idcin.c
index 3d6ecca51..34dc1ee4d 100644
--- a/src/demuxers/demux_idcin.c
+++ b/src/demuxers/demux_idcin.c
@@ -328,7 +328,7 @@ static int open_idcin_file(demux_idcin_t *this) {
this->input->seek(this->input, IDCIN_HEADER_SIZE, SEEK_SET);
/* read the Huffman table */
- if (this->input->read(this->input, huffman_table, HUFFMAN_TABLE_SIZE) !=
+ if (this->input->read(this->input, huffman_table, HUFFMAN_TABLE_SIZE) !=
HUFFMAN_TABLE_SIZE)
return 0;
@@ -347,7 +347,7 @@ static int open_idcin_file(demux_idcin_t *this) {
_x_stream_info_set(this->stream, XINE_STREAM_INFO_AUDIO_BITS,
this->wave.wBitsPerSample);
- this->filesize = this->input->get_length(this->input) -
+ this->filesize = this->input->get_length(this->input) -
IDCIN_HEADER_SIZE - HUFFMAN_TABLE_SIZE;
return 1;
@@ -434,7 +434,7 @@ static int demux_idcin_seek (demux_plugin_t *this_gen, off_t start_pos, int star
this->status = DEMUX_OK;
/* reposition stream past the Huffman tables */
- this->input->seek(this->input, IDCIN_HEADER_SIZE + HUFFMAN_TABLE_SIZE,
+ this->input->seek(this->input, IDCIN_HEADER_SIZE + HUFFMAN_TABLE_SIZE,
SEEK_SET);
this->pts_counter = 0;
diff --git a/src/demuxers/demux_image.c b/src/demuxers/demux_image.c
index 234ee3e07..af3983ea6 100644
--- a/src/demuxers/demux_image.c
+++ b/src/demuxers/demux_image.c
@@ -1,18 +1,18 @@
/*
* Copyright (C) 2003-2005 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -82,7 +82,7 @@ static int demux_image_next (demux_plugin_t *this_gen, int preview) {
} else {
this->status = DEMUX_OK;
}
-
+
if (preview)
buf->decoder_flags = BUF_FLAG_PREVIEW;
@@ -193,7 +193,7 @@ static demux_plugin_t *open_plugin (demux_class_t *class_gen,
this->demux_plugin.get_capabilities = demux_image_get_capabilities;
this->demux_plugin.get_optional_data = demux_image_get_optional_data;
this->demux_plugin.demux_class = class_gen;
-
+
this->status = DEMUX_FINISHED;
this->buf_type = buf_type;
diff --git a/src/demuxers/demux_ipmovie.c b/src/demuxers/demux_ipmovie.c
index 18982336c..a8930b8fa 100644
--- a/src/demuxers/demux_ipmovie.c
+++ b/src/demuxers/demux_ipmovie.c
@@ -183,7 +183,7 @@ static int process_ipmovie_chunk(demux_ipmovie_t *this) {
while ((chunk_size > 0) && (chunk_type != CHUNK_BAD)) {
/* read the next chunk, wherever the file happens to be pointing */
- if (this->input->read(this->input, opcode_preamble,
+ if (this->input->read(this->input, opcode_preamble,
OPCODE_PREAMBLE_SIZE) != OPCODE_PREAMBLE_SIZE) {
chunk_type = CHUNK_BAD;
break;
@@ -221,7 +221,7 @@ static int process_ipmovie_chunk(demux_ipmovie_t *this) {
chunk_type = CHUNK_BAD;
break;
}
- if (this->input->read(this->input, scratch, opcode_size) !=
+ if (this->input->read(this->input, scratch, opcode_size) !=
opcode_size) {
chunk_type = CHUNK_BAD;
break;
@@ -239,7 +239,7 @@ static int process_ipmovie_chunk(demux_ipmovie_t *this) {
chunk_type = CHUNK_BAD;
break;
}
- if (this->input->read(this->input, scratch, opcode_size) !=
+ if (this->input->read(this->input, scratch, opcode_size) !=
opcode_size) {
chunk_type = CHUNK_BAD;
break;
@@ -275,7 +275,7 @@ static int process_ipmovie_chunk(demux_ipmovie_t *this) {
chunk_type = CHUNK_BAD;
break;
}
- if (this->input->read(this->input, scratch, opcode_size) !=
+ if (this->input->read(this->input, scratch, opcode_size) !=
opcode_size) {
chunk_type = CHUNK_BAD;
break;
@@ -336,23 +336,23 @@ static int process_ipmovie_chunk(demux_ipmovie_t *this) {
buf->extra_info->input_normpos = (int)( (double) current_file_pos * 65535 / this->data_size);
buf->extra_info->input_time = audio_pts / 90;
buf->pts = audio_pts;
-
+
if (opcode_size > buf->max_size)
buf->size = buf->max_size;
else
buf->size = opcode_size;
opcode_size -= buf->size;
-
+
if (this->input->read(this->input, buf->content, buf->size) !=
buf->size) {
buf->free_buffer(buf);
chunk_type = CHUNK_BAD;
break;
}
-
+
if (!opcode_size)
buf->decoder_flags |= BUF_FLAG_FRAME_END;
-
+
this->audio_fifo->put (this->audio_fifo, buf);
}
}else{
@@ -377,7 +377,7 @@ static int process_ipmovie_chunk(demux_ipmovie_t *this) {
case OPCODE_SET_PALETTE:
lprintf("set palette\n");
- /* check for the logical maximum palette size
+ /* check for the logical maximum palette size
* (3 * 256 + 4 bytes) */
if (opcode_size > 0x304) {
lprintf("set_palette opcode too large\n");
diff --git a/src/demuxers/demux_matroska-chapters.c b/src/demuxers/demux_matroska-chapters.c
index 7176467fe..93e6d4cd6 100644
--- a/src/demuxers/demux_matroska-chapters.c
+++ b/src/demuxers/demux_matroska-chapters.c
@@ -1,18 +1,18 @@
/*
* Copyright (C) 2009 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
diff --git a/src/demuxers/demux_matroska.c b/src/demuxers/demux_matroska.c
index 6106bf83d..eddbf67b1 100644
--- a/src/demuxers/demux_matroska.c
+++ b/src/demuxers/demux_matroska.c
@@ -1,18 +1,18 @@
/*
* Copyright (C) 2000-2008 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -59,7 +59,7 @@ static void check_newpts (demux_matroska_t *this, int64_t pts,
if ((track->track_type == MATROSKA_TRACK_VIDEO) ||
(track->track_type == MATROSKA_TRACK_AUDIO)) {
-
+
diff = pts - track->last_pts;
if (pts && (this->send_newpts || (track->last_pts && abs(diff)>WRAP_THRESHOLD)) ) {
@@ -410,9 +410,9 @@ static int parse_content_encodings (demux_matroska_t *this, matroska_track_t *tr
static void init_codec_video(demux_matroska_t *this, matroska_track_t *track) {
buf_element_t *buf;
-
+
buf = track->fifo->buffer_pool_alloc (track->fifo);
-
+
if (track->codec_private_len > buf->max_size) {
xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
"demux_matroska: private decoder data length (%d) is greater than fifo buffer length (%" PRId32 ")\n",
@@ -429,20 +429,20 @@ static void init_codec_video(demux_matroska_t *this, matroska_track_t *track) {
xine_fast_memcpy (buf->content, track->codec_private, buf->size);
else
buf->content = NULL;
-
+
if(track->default_duration) {
buf->decoder_flags |= BUF_FLAG_FRAMERATE;
- buf->decoder_info[0] = (int64_t)track->default_duration *
+ buf->decoder_info[0] = (int64_t)track->default_duration *
(int64_t)90 / (int64_t)1000000;
}
-
- if(track->video_track && track->video_track->display_width &&
+
+ if(track->video_track && track->video_track->display_width &&
track->video_track->display_height) {
buf->decoder_flags |= BUF_FLAG_ASPECT;
buf->decoder_info[1] = track->video_track->display_width;
buf->decoder_info[2] = track->video_track->display_height;
}
-
+
track->fifo->put (track->fifo, buf);
}
@@ -460,7 +460,7 @@ static void init_codec_audio(demux_matroska_t *this, matroska_track_t *track) {
return;
}
buf->size = track->codec_private_len;
-
+
/* default param */
buf->decoder_info[0] = 0;
buf->decoder_info[1] = 44100;
@@ -492,9 +492,9 @@ static void init_codec_audio(demux_matroska_t *this, matroska_track_t *track) {
static void init_codec_real(demux_matroska_t *this, matroska_track_t * track) {
buf_element_t *buf;
-
+
buf = track->fifo->buffer_pool_alloc (track->fifo);
-
+
if (track->codec_private_len > buf->max_size) {
xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
"demux_matroska: private decoder data length (%d) is greater than fifo buffer length (%" PRId32 ")\n",
@@ -502,30 +502,30 @@ static void init_codec_real(demux_matroska_t *this, matroska_track_t * track) {
buf->free_buffer(buf);
return;
}
-
+
buf->size = track->codec_private_len;
buf->decoder_flags = BUF_FLAG_HEADER | BUF_FLAG_FRAME_END;
buf->type = track->buf_type;
buf->pts = 0;
-
+
if (buf->size)
xine_fast_memcpy (buf->content, track->codec_private, buf->size);
else
buf->content = NULL;
-
+
if(track->default_duration) {
buf->decoder_flags |= BUF_FLAG_FRAMERATE;
- buf->decoder_info[0] = (int64_t)track->default_duration *
+ buf->decoder_info[0] = (int64_t)track->default_duration *
(int64_t)90 / (int64_t)1000000;
}
-
- if(track->video_track && track->video_track->display_width &&
+
+ if(track->video_track && track->video_track->display_width &&
track->video_track->display_height) {
buf->decoder_flags |= BUF_FLAG_ASPECT;
buf->decoder_info[1] = track->video_track->display_width;
buf->decoder_info[2] = track->video_track->display_height;
}
-
+
track->fifo->put (track->fifo, buf);
}
@@ -551,7 +551,7 @@ static void init_codec_xiph(demux_matroska_t *this, matroska_track_t *track) {
data = track->codec_private + 3;
for (i = 0; i < 3; i++) {
buf = track->fifo->buffer_pool_alloc (track->fifo);
-
+
if (frame[i] > buf->max_size) {
xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
"demux_matroska: private decoder data length (%d) is greater than fifo buffer length (%" PRId32 ")\n",
@@ -560,7 +560,7 @@ static void init_codec_xiph(demux_matroska_t *this, matroska_track_t *track) {
return;
}
buf->size = frame[i];
-
+
buf->decoder_flags = BUF_FLAG_HEADER | BUF_FLAG_FRAME_START | BUF_FLAG_FRAME_END;
buf->type = track->buf_type;
buf->pts = 0;
@@ -849,7 +849,7 @@ static void handle_realvideo (demux_plugin_t *this_gen, matroska_track_t *track,
buf->decoder_info[1] = BUF_SPECIAL_RV_CHUNK_TABLE;
buf->decoder_info[2] = chunks;
buf->decoder_info_ptr[2] = buf->content;
-
+
buf->size = 0;
buf->type = track->buf_type;
@@ -916,7 +916,7 @@ static void handle_sub_ssa (demux_plugin_t *this_gen, matroska_track_t *track,
}
}
}
-
+
last_char = *data;
data++; data_len--;
}
@@ -927,11 +927,11 @@ static void handle_sub_ssa (demux_plugin_t *this_gen, matroska_track_t *track,
buf->size = dest - (char *)buf->content;
buf->extra_info->input_normpos = input_normpos;
buf->extra_info->input_time = input_time;
-
+
track->fifo->put(track->fifo, buf);
} else {
buf->free_buffer(buf);
- }
+ }
}
static void handle_sub_utf8 (demux_plugin_t *this_gen, matroska_track_t *track,
@@ -946,7 +946,7 @@ static void handle_sub_utf8 (demux_plugin_t *this_gen, matroska_track_t *track,
buf = track->fifo->buffer_pool_alloc(track->fifo);
buf->size = data_len + 9; /* 2 uint32_t + '\0' */
-
+
if (buf->max_size >= buf->size) {
buf->decoder_flags = decoder_flags;
@@ -955,7 +955,7 @@ static void handle_sub_utf8 (demux_plugin_t *this_gen, matroska_track_t *track,
buf->decoder_info[1] = BUF_SPECIAL_CHARSET_ENCODING;
buf->decoder_info_ptr[2] = "utf-8";
buf->decoder_info[2] = strlen(buf->decoder_info_ptr[2]);
-
+
val = (uint32_t *)buf->content;
*val++ = data_pts / 90; /* start time */
*val++ = (data_pts + data_duration) / 90; /* end time */
@@ -1020,7 +1020,7 @@ static void handle_vobsub (demux_plugin_t *this_gen, matroska_track_t *track,
(int)track->track_num, result);
free(dest);
inflateEnd(&zstream);
-
+
if (result == Z_DATA_ERROR && track->compress_algo == MATROSKA_COMPRESS_UNKNOWN) {
track->compress_algo = MATROSKA_COMPRESS_NONE;
data_len = old_data_len;
@@ -1033,11 +1033,11 @@ static void handle_vobsub (demux_plugin_t *this_gen, matroska_track_t *track,
zstream.avail_out += 4000;
} while ((zstream.avail_out == 4000) &&
(zstream.avail_in != 0) && (result != Z_STREAM_END));
-
+
if (track->compress_algo != MATROSKA_COMPRESS_NONE) {
data_len = zstream.total_out;
inflateEnd(&zstream);
-
+
data = dest;
track->compress_algo = MATROSKA_COMPRESS_ZLIB;
lprintf("VobSub: decompression for track %d from %d to %d\n",
@@ -1098,7 +1098,7 @@ static int parse_track_entry(demux_matroska_t *this, matroska_track_t *track) {
}
break;
- case MATROSKA_ID_TR_TYPE:
+ case MATROSKA_ID_TR_TYPE:
{
uint64_t num;
lprintf("TrackType\n");
@@ -1200,7 +1200,7 @@ static int parse_track_entry(demux_matroska_t *this, matroska_track_t *track) {
}
break;
- case MATROSKA_ID_TR_UID:
+ case MATROSKA_ID_TR_UID:
{
uint64_t val;
@@ -1474,10 +1474,10 @@ static int parse_track_entry(demux_matroska_t *this, matroska_track_t *track) {
static int parse_tracks(demux_matroska_t *this) {
ebml_parser_t *ebml = this->ebml;
int next_level = 2;
-
+
while (next_level == 2) {
ebml_elem_t elem;
-
+
if (!ebml_read_elem_head(ebml, &elem))
return 0;
@@ -1519,10 +1519,10 @@ static int parse_cue_trackposition(demux_matroska_t *this, int *track_num,
int64_t *pos) {
ebml_parser_t *ebml = this->ebml;
int next_level = 4;
-
+
while (next_level == 4) {
ebml_elem_t elem;
-
+
if (!ebml_read_elem_head(ebml, &elem))
return 0;
@@ -1559,10 +1559,10 @@ static int parse_cue_point(demux_matroska_t *this) {
int next_level = 3;
int64_t timecode = -1, pos = -1;
int track_num = -1;
-
+
while (next_level == 3) {
ebml_elem_t elem;
-
+
if (!ebml_read_elem_head(ebml, &elem))
return 0;
@@ -1627,10 +1627,10 @@ static int parse_cue_point(demux_matroska_t *this) {
static int parse_cues(demux_matroska_t *this) {
ebml_parser_t *ebml = this->ebml;
int next_level = 2;
-
+
while (next_level == 2) {
ebml_elem_t elem;
-
+
if (!ebml_read_elem_head(ebml, &elem))
return 0;
@@ -1656,10 +1656,10 @@ static int parse_cues(demux_matroska_t *this) {
static int parse_attachments(demux_matroska_t *this) {
ebml_parser_t *ebml = this->ebml;
int next_level = 2;
-
+
while (next_level == 2) {
ebml_elem_t elem;
-
+
if (!ebml_read_elem_head(ebml, &elem))
return 0;
@@ -1678,10 +1678,10 @@ static int parse_attachments(demux_matroska_t *this) {
static int parse_tags(demux_matroska_t *this) {
ebml_parser_t *ebml = this->ebml;
int next_level = 2;
-
+
while (next_level == 2) {
ebml_elem_t elem;
-
+
if (!ebml_read_elem_head(ebml, &elem))
return 0;
@@ -1717,7 +1717,7 @@ static int parse_ebml_uint(demux_matroska_t *this, uint8_t *data, uint64_t *num)
}
if (size > 8) {
off_t pos = this->input->get_current_pos(this->input);
- xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
"demux_matroska: Invalid Track Number at position %" PRIdMAX "\n",
(intmax_t)pos);
return 0;
@@ -1746,7 +1746,7 @@ static int parse_ebml_sint(demux_matroska_t *this, uint8_t *data, int64_t *num)
*num = -1;
else
*num = unum - ((1 << ((7 * size) - 1)) - 1);
-
+
return size;
}
@@ -1816,7 +1816,7 @@ static int parse_block (demux_matroska_t *this, size_t block_size,
flags = *data;
data += 1;
-
+
lprintf("track_num: %" PRIu64 ", timecode_diff: %d, flags: 0x%x\n", track_num, timecode_diff, flags);
gap = flags & 1;
@@ -1923,7 +1923,7 @@ static int parse_block (demux_matroska_t *this, size_t block_size,
int frame_size;
lprintf("fixed size lacing\n");
-
+
frame_size = block_size_left / (lace_num + 1);
for (i = 0; i < lace_num; i++) {
frame[i] = frame_size;
@@ -2025,10 +2025,10 @@ static int parse_simpleblock(demux_matroska_t *this, size_t block_len, uint64_t
file_len = this->input->get_length(this->input);
if( file_len )
normpos = (int) ( (double) block_pos * 65535 / file_len );
-
+
if (!read_block_data(this, block_len))
return 0;
-
+
has_block = 1;
/* we have the duration, we can parse the block now */
if (!parse_block(this, block_len, cluster_timecode, block_duration,
@@ -2259,10 +2259,10 @@ static int parse_seek_entry(demux_matroska_t *this) {
int has_position = 0;
uint64_t id = 0;
uint64_t pos;
-
+
while (next_level == 3) {
ebml_elem_t elem;
-
+
if (!ebml_read_elem_head(ebml, &elem))
return 0;
@@ -2286,26 +2286,26 @@ static int parse_seek_entry(demux_matroska_t *this) {
}
next_level = ebml_get_next_level(ebml, &elem);
}
-
+
/* do not parse clusters */
if (id == MATROSKA_ID_CLUSTER) {
lprintf("skip cluster\n");
return 1;
}
-
- /* parse the referenced element */
+
+ /* parse the referenced element */
if (has_id && has_position) {
off_t current_pos, seek_pos;
-
+
seek_pos = this->segment.start + pos;
-
+
if ((seek_pos > 0) && (seek_pos < this->input->get_length(this->input))) {
ebml_parser_t ebml_bak;
/* backup current state */
current_pos = this->input->get_current_pos(this->input);
memcpy(&ebml_bak, this->ebml, sizeof(ebml_parser_t)); /* FIXME */
-
+
/* seek and parse the top_level element */
this->ebml->level = 1;
if (this->input->seek(this->input, seek_pos, SEEK_SET) < 0) {
@@ -2344,7 +2344,7 @@ static int parse_seekhead(demux_matroska_t *this) {
while (next_level == 2) {
ebml_elem_t elem;
-
+
if (!ebml_read_elem_head(ebml, &elem))
return 0;
@@ -2382,18 +2382,18 @@ static int parse_top_level_head(demux_matroska_t *this, int *next_level) {
int ret_value = 1;
off_t current_pos;
-
+
current_pos = this->input->get_current_pos(this->input);
lprintf("current_pos: %" PRIdMAX "\n", (intmax_t)current_pos);
-
+
if (!ebml_read_elem_head(ebml, &elem))
return 0;
-
+
if (!find_top_level_entry(this, current_pos)) {
if (!add_top_level_entry(this, current_pos))
return 0;
-
+
switch (elem.id) {
case MATROSKA_ID_SEEKHEAD:
lprintf("SeekHead\n");
@@ -2460,7 +2460,7 @@ static int parse_top_level_head(demux_matroska_t *this, int *next_level) {
if (!ebml_skip(ebml, &elem))
return 0;
}
-
+
if (next_level)
*next_level = ebml_get_next_level(ebml, &elem);
@@ -2547,12 +2547,12 @@ static int parse_segment(demux_matroska_t *this) {
if (this->segment.id == MATROSKA_ID_SEGMENT) {
int res;
int next_level;
-
+
lprintf("Segment detected\n");
if (!ebml_read_master (ebml, &this->segment))
return 0;
-
+
res = 1;
next_level = 1;
/* stop the loop on the first cluster */
@@ -2604,14 +2604,14 @@ static void demux_matroska_send_headers (demux_plugin_t *this_gen) {
_x_stream_info_set(this->stream, XINE_STREAM_INFO_HAS_VIDEO, (this->num_video_tracks != 0));
_x_stream_info_set(this->stream, XINE_STREAM_INFO_HAS_AUDIO, (this->num_audio_tracks != 0));
-
+
/*
* send preview buffers
*/
/* enter in the segment */
ebml_read_master (this->ebml, &this->segment);
-
+
/* seek back to the beginning of the segment */
next_level = 1;
if (this->input->seek(this->input, this->segment.start, SEEK_SET) < 0) {
@@ -2621,7 +2621,7 @@ static void demux_matroska_send_headers (demux_plugin_t *this_gen) {
this->status = DEMUX_FINISHED;
return;
}
-
+
this->preview_sent = 0;
this->preview_mode = 1;
@@ -2707,7 +2707,7 @@ static int demux_matroska_seek (demux_plugin_t *this_gen,
matroska_index_t *index;
matroska_track_t *track;
int i, entry;
-
+
start_pos = (off_t) ( (double) start_pos / 65535 *
this->input->get_length (this->input) );
@@ -2763,10 +2763,10 @@ static int demux_matroska_seek (demux_plugin_t *this_gen,
index->track_num, start_pos ? "pos" : "time",
start_pos ? (intmax_t)start_pos : (intmax_t)start_time,
index->track_num, index->timecode[entry], (intmax_t)index->pos[entry]);
-
+
if (this->input->seek(this->input, index->pos[entry], SEEK_SET) < 0)
this->status = DEMUX_FINISHED;
-
+
/* we always seek to the ebml level 1 */
this->ebml->level = 1;
@@ -2780,7 +2780,7 @@ static int demux_matroska_seek (demux_plugin_t *this_gen,
static void demux_matroska_dispose (demux_plugin_t *this_gen) {
-
+
demux_matroska_t *this = (demux_matroska_t *) this_gen;
int i;
@@ -2796,7 +2796,7 @@ static void demux_matroska_dispose (demux_plugin_t *this_gen) {
free (track->video_track);
free (track->audio_track);
free (track->sub_track);
-
+
free (track);
}
/* Free the cues. */
@@ -2805,8 +2805,8 @@ static void demux_matroska_dispose (demux_plugin_t *this_gen) {
free(this->indexes[i].timecode);
}
free(this->indexes);
-
- /* Free the top_level elem list */
+
+ /* Free the top_level elem list */
free(this->top_level_list);
free(this->title);
@@ -2851,7 +2851,7 @@ static int demux_matroska_get_optional_data (demux_plugin_t *this_gen,
if ((channel >= 0) && (channel < this->num_sub_tracks)) {
for (track_num = 0; track_num < this->num_tracks; track_num++) {
matroska_track_t *track = this->tracks[track_num];
-
+
if ((track->buf_type & 0xFF00001F) == (BUF_SPU_BASE + channel)) {
if (track->language) {
strncpy (str, track->language, XINE_LANG_MAX);
@@ -2867,13 +2867,13 @@ static int demux_matroska_get_optional_data (demux_plugin_t *this_gen,
}
}
return DEMUX_OPTIONAL_UNSUPPORTED;
-
+
case DEMUX_OPTIONAL_DATA_AUDIOLANG:
lprintf ("DEMUX_OPTIONAL_DATA_AUDIOLANG channel = %d\n",channel);
if ((channel >= 0) && (channel < this->num_audio_tracks)) {
for (track_num = 0; track_num < this->num_tracks; track_num++) {
matroska_track_t *track = this->tracks[track_num];
-
+
if ((track->buf_type & 0xFF00001F) == (BUF_AUDIO_BASE + channel)) {
if (track->language) {
strncpy (str, track->language, XINE_LANG_MAX);
diff --git a/src/demuxers/demux_matroska.h b/src/demuxers/demux_matroska.h
index d8c3840b1..fe1b7f6cf 100644
--- a/src/demuxers/demux_matroska.h
+++ b/src/demuxers/demux_matroska.h
@@ -1,18 +1,18 @@
/*
* Copyright (C) 2000-2008 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -55,7 +55,7 @@ typedef struct {
off_t *pos;
uint64_t *timecode;
int num_entries;
-
+
} matroska_index_t;
typedef struct {
@@ -110,10 +110,10 @@ typedef struct {
matroska_track_t *audio_track; /* to remove */
matroska_track_t *sub_track; /* to remove */
uint64_t last_timecode;
-
+
int send_newpts;
int buf_flag_seek;
-
+
/* seekhead parsing */
int top_level_list_size;
int top_level_list_max_size;
diff --git a/src/demuxers/demux_mng.c b/src/demuxers/demux_mng.c
index 0dbdf21a5..c20d3d051 100644
--- a/src/demuxers/demux_mng.c
+++ b/src/demuxers/demux_mng.c
@@ -181,7 +181,7 @@ static int demux_mng_send_chunk(demux_mng_t *this){
buf->decoder_flags = BUF_FLAG_FRAMERATE;
buf->decoder_info[0] = 90 * this->timer_count;
if( this->input->get_length (this->input) )
- buf->extra_info->input_normpos = (int)( (double) this->input->get_current_pos (this->input) *
+ buf->extra_info->input_normpos = (int)( (double) this->input->get_current_pos (this->input) *
65535 / this->input->get_length (this->input) );
buf->extra_info->input_time = this->tick_count;
buf->pts = 90 * this->tick_count;
diff --git a/src/demuxers/demux_mod.c b/src/demuxers/demux_mod.c
index 64d5b3856..7e717fc61 100644
--- a/src/demuxers/demux_mod.c
+++ b/src/demuxers/demux_mod.c
@@ -71,16 +71,16 @@ typedef struct {
char *artist;
char *copyright;
size_t filesize;
-
+
char *buffer;
int64_t current_pts;
-
+
ModPlug_Settings settings;
ModPlugFile *mpfile;
int mod_length;
int seek_flag; /* this is set when a seek just occurred */
-
+
} demux_mod_t;
typedef struct {
@@ -128,7 +128,7 @@ static int probe_mod_file(demux_mod_t *this) {
static int open_mod_file(demux_mod_t *this) {
int total_read;
off_t input_length;
-
+
/* Get size and create buffer */
input_length = this->input->get_length(this->input);
/* Avoid potential issues with signed variables and e.g. read() returning -1 */
@@ -136,7 +136,7 @@ static int open_mod_file(demux_mod_t *this) {
xine_log(this->stream->xine, XINE_LOG_PLUGIN, "modplug - size overflow\n");
return 0;
}
- this->filesize = input_length;
+ this->filesize = input_length;
this->buffer = (char *)malloc(this->filesize);
if(!this->buffer) {
xine_log(this->stream->xine, XINE_LOG_PLUGIN, "modplug - allocation failure\n");
@@ -145,23 +145,23 @@ static int open_mod_file(demux_mod_t *this) {
/* Seek to beginning */
this->input->seek(this->input, 0, SEEK_SET);
-
+
/* Read data */
total_read = this->input->read(this->input, this->buffer, this->filesize);
-
+
if(total_read != this->filesize) {
xine_log(this->stream->xine, XINE_LOG_PLUGIN, "modplug - filesize error\n");
free(this->buffer);
return 0;
}
-
+
this->mpfile = ModPlug_Load(this->buffer, this->filesize);
if (this->mpfile==NULL) {
xine_log(this->stream->xine, XINE_LOG_PLUGIN, "modplug - load error\n");
free(this->buffer);
return 0;
}
-
+
/* Set up modplug engine */
ModPlug_GetSettings(&this->settings);
this->settings.mResamplingMode = MODPLUG_RESAMPLE_FIR; /* RESAMP */
@@ -169,15 +169,15 @@ static int open_mod_file(demux_mod_t *this) {
this->settings.mBits = MOD_BITS;
this->settings.mFrequency = MOD_SAMPLERATE;
ModPlug_SetSettings(&this->settings);
-
+
this->title = strdup(ModPlug_GetName(this->mpfile));
this->artist = strdup("");
this->copyright = strdup("");
-
+
this->mod_length = ModPlug_GetLength(this->mpfile);
if (this->mod_length < 1)
this->mod_length = 1; /* avoids -ve & div-by-0 */
-
+
return 1;
}
@@ -198,20 +198,20 @@ static int demux_mod_send_chunk(demux_plugin_t *this_gen) {
buf->size = mlen;
buf->pts = this->current_pts;
buf->extra_info->input_time = buf->pts / 90;
-
+
buf->extra_info->input_normpos = buf->extra_info->input_time * 65535 / this->mod_length;
buf->decoder_flags = BUF_FLAG_FRAME_END;
-
+
if (this->seek_flag) {
_x_demux_control_newpts(this->stream, buf->pts, BUF_FLAG_SEEK);
this->seek_flag = 0;
}
this->audio_fifo->put (this->audio_fifo, buf);
-
+
this->current_pts += 90000 * mlen / OUT_BYTES_PER_SECOND;
}
-
+
return this->status;
}
@@ -257,9 +257,9 @@ static int demux_mod_seek (demux_plugin_t *this_gen,
demux_mod_t *this = (demux_mod_t *) this_gen;
int64_t seek_millis;
-
+
if (start_pos) {
- seek_millis = this->mod_length;
+ seek_millis = this->mod_length;
seek_millis *= start_pos;
seek_millis /= 65535;
} else {
@@ -269,14 +269,14 @@ static int demux_mod_seek (demux_plugin_t *this_gen,
_x_demux_flush_engine(this->stream);
ModPlug_Seek(this->mpfile, seek_millis);
this->current_pts = seek_millis * 90;
-
+
this->seek_flag = 1;
return this->status;
}
static void demux_mod_dispose (demux_plugin_t *this_gen) {
demux_mod_t *this = (demux_mod_t *) this_gen;
-
+
ModPlug_Unload(this->mpfile);
free(this->buffer);
free(this->title);
@@ -332,7 +332,7 @@ static demux_plugin_t *open_plugin (demux_class_t *class_gen, xine_stream_t *str
this->status = DEMUX_FINISHED;
xprintf(stream->xine, XINE_VERBOSITY_DEBUG, "TEST mod decode\n");
-
+
switch (stream->content_detection_method) {
case METHOD_EXPLICIT:
diff --git a/src/demuxers/demux_mpc.c b/src/demuxers/demux_mpc.c
index 428ed884c..2988c9c19 100644
--- a/src/demuxers/demux_mpc.c
+++ b/src/demuxers/demux_mpc.c
@@ -24,7 +24,7 @@
* APE tag reading
* Seeking??
*/
-
+
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
@@ -66,7 +66,7 @@ typedef struct {
unsigned int frames;
double samplerate;
unsigned int length;
-
+
unsigned int current_frame;
unsigned int next_frame_bits;
} demux_mpc_t;
@@ -82,7 +82,7 @@ typedef struct {
static int open_mpc_file(demux_mpc_t *this) {
unsigned int first_frame_size;
unsigned int id3v2_size = 0;
-
+
/* Read the file header */
if (_x_demux_read_header(this->input, this->header, HEADER_SIZE) != HEADER_SIZE)
return 0;
@@ -91,39 +91,39 @@ static int open_mpc_file(demux_mpc_t *this) {
if (INPUT_IS_SEEKABLE(this->input)) {
/* Check for id3v2 tag */
if (id3v2_istag(this->header)) {
-
+
lprintf("found id3v2 header\n");
-
+
/* Read tag size */
-
+
id3v2_size = _X_BE_32_synchsafe(&this->header[6]) + 10;
-
+
/* Add footer size if one is present */
if (this->header[5] & 0x10)
id3v2_size += 10;
-
+
lprintf("id3v2 size: %u\n", id3v2_size);
-
+
/* Seek past tag */
if (this->input->seek(this->input, id3v2_size, SEEK_SET) < 0)
return 0;
-
+
/* Read musepack header */
if (this->input->read(this->input, this->header, HEADER_SIZE) != HEADER_SIZE)
return 0;
}
}
-
+
/* Validate signature - We only support SV 7.x at the moment */
if ( memcmp(this->header, "MP+", 3) != 0 ||
((this->header[3]&0x0f) != 0x07))
return 0;
-
+
/* Get frame count */
this->current_frame = 0;
this->frames = _X_LE_32(&this->header[4]);
lprintf("number of frames: %u\n", this->frames);
-
+
/* Get sample rate */
switch ((_X_LE_32(&this->header[8]) >> 16) & 0x3) {
case 0:
@@ -142,7 +142,7 @@ static int open_mpc_file(demux_mpc_t *this) {
break;
}
lprintf("samplerate: %f kHz\n", this->samplerate);
-
+
/* Calculate stream length */
this->length = (int) ((double) this->frames * 1152 / this->samplerate);
lprintf("stream length: %d ms\n", this->length);
@@ -151,14 +151,14 @@ static int open_mpc_file(demux_mpc_t *this) {
first_frame_size = (_X_LE_32(&this->header[24]) >> 4) & 0xFFFFF;
this->next_frame_bits = first_frame_size - 4;
lprintf("first frame size: %u\n", first_frame_size);
-
+
/* Move input to start of data (to nearest multiple of 4) */
this->input->seek(this->input, 28+id3v2_size, SEEK_SET);
-
+
/* Set stream info */
_x_stream_info_set(this->stream, XINE_STREAM_INFO_HAS_AUDIO, 1);
_x_stream_info_set(this->stream, XINE_STREAM_INFO_AUDIO_FOURCC, _X_ME_32(this->header));
-
+
return 1;
}
@@ -168,30 +168,30 @@ static int demux_mpc_send_chunk(demux_plugin_t *this_gen) {
off_t bytes_read;
buf_element_t *buf = NULL;
-
+
/* Check if we've finished */
if (this->current_frame++ == this->frames) {
lprintf("all frames read\n");
this->status = DEMUX_FINISHED;
- return this->status;
+ return this->status;
}
lprintf("current frame: %u\n", this->current_frame);
-
- /* Get a buffer */
+
+ /* Get a buffer */
buf = this->audio_fifo->buffer_pool_alloc (this->audio_fifo);
buf->type = BUF_AUDIO_MPC;
buf->pts = 0;
buf->extra_info->total_time = this->length;
-
+
/* Set normalised position */
- buf->extra_info->input_normpos =
- (int) ((double) this->input->get_current_pos(this->input) * 65535 /
+ buf->extra_info->input_normpos =
+ (int) ((double) this->input->get_current_pos(this->input) * 65535 /
this->input->get_length(this->input));
-
+
/* Set time based on there being 1152 audio frames per frame */
- buf->extra_info->input_time =
+ buf->extra_info->input_time =
(int) ((double) this->current_frame * 1152 / this->samplerate);
-
+
/* Calculate the number of bits that need to be read to finish reading
* the current frame and read the size of the next frame. This number
* has to be rounded up to the nearest 4 bytes on account of the
@@ -204,35 +204,35 @@ static int demux_mpc_send_chunk(demux_plugin_t *this_gen) {
xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
_("demux_mpc: frame too big for buffer"));
this->status = DEMUX_FINISHED;
- return this->status;
+ return this->status;
}
-
+
/* Read data */
bytes_read = this->input->read(this->input, buf->content, bytes_to_read);
if(bytes_read <= 0) {
buf->free_buffer(buf);
this->status = DEMUX_FINISHED;
return this->status;
- } else
+ } else
buf->size = bytes_read;
-
+
/* Read the size of the next frame */
if (this->current_frame < this->frames) {
- /* The number of bits of the next frame we've read */
+ /* The number of bits of the next frame we've read */
extra_bits_read = bits_to_read - (this->next_frame_bits+20);
-
+
if(extra_bits_read <= 12)
next_frame_size = (_X_LE_32(&buf->content[bytes_to_read-4]) >> extra_bits_read) & 0xFFFFF;
else
next_frame_size = ((_X_LE_32(&buf->content[bytes_to_read-8]) << (32-extra_bits_read)) |
(_X_LE_32(&buf->content[bytes_to_read-4]) >> extra_bits_read)) & 0xFFFFF;
-
+
lprintf("next frame size: %u\n", next_frame_size);
-
+
/* The number of bits of the next frame still to read */
- this->next_frame_bits = next_frame_size - extra_bits_read;
+ this->next_frame_bits = next_frame_size - extra_bits_read;
}
-
+
/* Each buffer contains at least one frame */
buf->decoder_flags |= BUF_FLAG_FRAME_END;
@@ -255,14 +255,14 @@ static void demux_mpc_send_headers(demux_plugin_t *this_gen) {
/* Send header to decoder */
if (this->audio_fifo) {
buf = this->audio_fifo->buffer_pool_alloc (this->audio_fifo);
-
+
buf->type = BUF_AUDIO_MPC;
buf->decoder_flags = BUF_FLAG_HEADER|BUF_FLAG_FRAME_END;
buf->decoder_info[0] = this->input->get_length(this->input);
buf->decoder_info[1] = 0;
buf->decoder_info[2] = 0;
buf->decoder_info[3] = 0;
-
+
/* Copy the header */
buf->size = HEADER_SIZE;
memcpy(buf->content, this->header, buf->size);
@@ -333,12 +333,12 @@ static demux_plugin_t *open_plugin (demux_class_t *class_gen, xine_stream_t *str
case METHOD_BY_MRL:
case METHOD_BY_CONTENT:
case METHOD_EXPLICIT:
-
+
if (!open_mpc_file(this)) {
free (this);
return NULL;
}
-
+
break;
default:
diff --git a/src/demuxers/demux_mpeg.c b/src/demuxers/demux_mpeg.c
index c2f36a0e4..a0d813db6 100644
--- a/src/demuxers/demux_mpeg.c
+++ b/src/demuxers/demux_mpeg.c
@@ -170,7 +170,7 @@ static void find_mdat_atom(input_plugin_t *input, off_t *mdat_offset,
} else
atom_size -= ATOM_PREAMBLE_SIZE;
-
+
input->seek(input, atom_size, SEEK_CUR);
}
}
@@ -312,13 +312,13 @@ static void parse_mpeg2_packet (demux_mpeg_t *this, int stream_id, int64_t scr)
buf->type = BUF_SPU_SVCD + spu_id;
buf->pts = pts;
- /* There is a bug in WinSubMux doesn't redo PACK headers in
+ /* There is a bug in WinSubMux doesn't redo PACK headers in
the private stream 1. This might cause the below to mess up.
if( !preview_mode )
check_newpts( this, this->pts, PTS_VIDEO );
*/
this->video_fifo->put (this->video_fifo, buf);
- lprintf ("SPU SVCD PACK (pts: %"PRId64", spu id: %d) put on FIFO\n",
+ lprintf ("SPU SVCD PACK (pts: %"PRId64", spu id: %d) put on FIFO\n",
buf->pts, spu_id);
return;
@@ -370,10 +370,10 @@ static void parse_mpeg2_packet (demux_mpeg_t *this, int stream_id, int64_t scr)
buf->decoder_flags = BUF_FLAG_PREVIEW;
if( this->input->get_length (this->input) )
- buf->extra_info->input_normpos =
- (int)( ((int64_t)this->input->get_current_pos (this->input) *
+ buf->extra_info->input_normpos =
+ (int)( ((int64_t)this->input->get_current_pos (this->input) *
65535) / this->input->get_length (this->input) );
-
+
if (this->rate)
buf->extra_info->input_time = (int)((int64_t)this->input->get_current_pos (this->input)
* 1000 / (this->rate * 50));
@@ -407,8 +407,8 @@ static void parse_mpeg2_packet (demux_mpeg_t *this, int stream_id, int64_t scr)
buf->decoder_flags |= BUF_FLAG_PREVIEW;
if( this->input->get_length (this->input) )
- buf->extra_info->input_normpos =
- (int)( ((int64_t)this->input->get_current_pos (this->input) *
+ buf->extra_info->input_normpos =
+ (int)( ((int64_t)this->input->get_current_pos (this->input) *
65535) / this->input->get_length (this->input) );
if (this->rate)
buf->extra_info->input_time = (int)((int64_t)this->input->get_current_pos (this->input)
@@ -451,7 +451,7 @@ static void parse_mpeg2_packet (demux_mpeg_t *this, int stream_id, int64_t scr)
this->input->read (this->input, this->dummy_space, header_len);
- for (i = len; i > 0; i -= (this->audio_fifo)
+ for (i = len; i > 0; i -= (this->audio_fifo)
? this->audio_fifo->buffer_pool_buf_size : this->video_fifo->buffer_pool_buf_size) {
if(this->audio_fifo) {
buf = this->input->read_block (this->input, this->audio_fifo,
@@ -471,8 +471,8 @@ static void parse_mpeg2_packet (demux_mpeg_t *this, int stream_id, int64_t scr)
buf->decoder_flags = BUF_FLAG_PREVIEW;
if( this->input->get_length (this->input) )
- buf->extra_info->input_normpos =
- (int)( ((int64_t)this->input->get_current_pos (this->input) *
+ buf->extra_info->input_normpos =
+ (int)( ((int64_t)this->input->get_current_pos (this->input) *
65535) / this->input->get_length (this->input) );
if (this->rate)
buf->extra_info->input_time = (int)((int64_t)this->input->get_current_pos (this->input)
@@ -507,18 +507,18 @@ static void parse_mpeg2_packet (demux_mpeg_t *this, int stream_id, int64_t scr)
header_len -= 5 ;
}
-
+
if ((flags & 0x40) == 0x40) {
-
+
w = read_bytes(this, 1);
dts = (int64_t)(w & 0x0e) << 29 ;
w = read_bytes(this, 2);
dts |= (w & 0xFFFE) << 14;
w = read_bytes(this, 2);
dts |= (w & 0xFFFE) >> 1;
-
+
header_len -= 5 ;
- }
+ }
/* read rest of header */
this->input->read (this->input, this->dummy_space, header_len);
@@ -544,8 +544,8 @@ static void parse_mpeg2_packet (demux_mpeg_t *this, int stream_id, int64_t scr)
buf->decoder_flags = BUF_FLAG_PREVIEW;
if( this->input->get_length (this->input) )
- buf->extra_info->input_normpos =
- (int)( ((int64_t)this->input->get_current_pos (this->input) *
+ buf->extra_info->input_normpos =
+ (int)( ((int64_t)this->input->get_current_pos (this->input) *
65535) / this->input->get_length (this->input) );
if (this->rate)
buf->extra_info->input_time = (int)((int64_t)this->input->get_current_pos (this->input)
@@ -556,7 +556,7 @@ static void parse_mpeg2_packet (demux_mpeg_t *this, int stream_id, int64_t scr)
} else {
- for (i = len; i > 0; i -= 10000)
+ for (i = len; i > 0; i -= 10000)
this->input->read (this->input, this->dummy_space, (i > 10000) ? 10000 : i);
}
@@ -624,7 +624,7 @@ static void parse_mpeg1_packet (demux_mpeg_t *this, int stream_id, int64_t scr)
pts |= (w & 0xFFFE) << 14;
w = read_bytes(this, 2); len -= 2;
-
+
pts |= (w & 0xFFFE) >> 1;
w = read_bytes(this, 1); len -= 1;
@@ -651,11 +651,11 @@ static void parse_mpeg1_packet (demux_mpeg_t *this, int stream_id, int64_t scr)
lprintf("use scr\n");
pts = scr;
}
-
+
if ((stream_id & 0xe0) == 0xc0) {
int track = stream_id & 0x1f;
- for (i = len; i > 0; i -= (this->audio_fifo)
+ for (i = len; i > 0; i -= (this->audio_fifo)
? this->audio_fifo->buffer_pool_buf_size : this->video_fifo->buffer_pool_buf_size) {
if(this->audio_fifo) {
buf = this->input->read_block (this->input, this->audio_fifo,
@@ -675,8 +675,8 @@ static void parse_mpeg1_packet (demux_mpeg_t *this, int stream_id, int64_t scr)
buf->decoder_flags = BUF_FLAG_PREVIEW;
if( this->input->get_length (this->input) )
- buf->extra_info->input_normpos =
- (int)( ((int64_t)this->input->get_current_pos (this->input) *
+ buf->extra_info->input_normpos =
+ (int)( ((int64_t)this->input->get_current_pos (this->input) *
65535) / this->input->get_length (this->input) );
if (this->rate)
buf->extra_info->input_time = (int)((int64_t)this->input->get_current_pos (this->input)
@@ -710,8 +710,8 @@ static void parse_mpeg1_packet (demux_mpeg_t *this, int stream_id, int64_t scr)
buf->decoder_flags = BUF_FLAG_PREVIEW;
if( this->input->get_length (this->input) )
- buf->extra_info->input_normpos =
- (int)( ((int64_t)this->input->get_current_pos (this->input) *
+ buf->extra_info->input_normpos =
+ (int)( ((int64_t)this->input->get_current_pos (this->input) *
65535) / this->input->get_length (this->input) );
if (this->rate)
buf->extra_info->input_time = (int)((int64_t)this->input->get_current_pos (this->input)
@@ -722,12 +722,12 @@ static void parse_mpeg1_packet (demux_mpeg_t *this, int stream_id, int64_t scr)
} else if (stream_id == 0xbd) {
- for (i = len; i > 0; i -= 10000)
+ for (i = len; i > 0; i -= 10000)
this->input->read (this->input, this->dummy_space, (i > 10000) ? 10000 : i);
} else {
- for (i = len; i > 0; i -= 10000)
+ for (i = len; i > 0; i -= 10000)
this->input->read (this->input, this->dummy_space, (i > 10000) ? 10000 : i);
}
}
@@ -980,40 +980,40 @@ static void demux_mpeg_send_headers (demux_plugin_t *this_gen) {
demux_mpeg_t *this = (demux_mpeg_t *) this_gen;
uint32_t w;
int num_buffers = NUM_PREVIEW_BUFFERS;
-
+
this->video_fifo = this->stream->video_fifo;
this->audio_fifo = this->stream->audio_fifo;
this->rate = 0; /* fixme */
this->last_pts[0] = 0;
this->last_pts[1] = 0;
-
+
_x_demux_control_start(this->stream);
/*
* send preview buffers for stream/meta_info
*/
-
+
_x_stream_info_set(this->stream, XINE_STREAM_INFO_HAS_VIDEO, 1);
_x_stream_info_set(this->stream, XINE_STREAM_INFO_HAS_AUDIO, 1);
this->preview_mode = 1;
-
+
this->input->seek (this->input, 4, SEEK_SET);
-
+
this->status = DEMUX_OK ;
-
+
do {
w = parse_pack_preview (this, &num_buffers);
-
+
if (w != 0x000001ba)
demux_mpeg_resync (this, w);
-
+
num_buffers --;
-
+
} while ( (this->status == DEMUX_OK) && (num_buffers > 0));
-
+
this->status = DEMUX_OK ;
_x_stream_info_set(this->stream, XINE_STREAM_INFO_BITRATE, this->rate * 50 * 8);
@@ -1152,7 +1152,7 @@ static demux_plugin_t *open_plugin (demux_class_t *class_gen, xine_stream_t *str
/* go through the same MPEG detection song and dance */
if (input->read(input, buf, 4) == 4) {
- if (!buf[0] && !buf[1] && (buf[2] == 0x01)
+ if (!buf[0] && !buf[1] && (buf[2] == 0x01)
&& (buf[3] == 0xba)) /* if so, take it */
break;
}
@@ -1160,7 +1160,7 @@ static demux_plugin_t *open_plugin (demux_class_t *class_gen, xine_stream_t *str
free (this);
return NULL;
}
-
+
/* reset position for next check */
if (input->seek(input, 0, SEEK_SET) != 0) {
free (this);
@@ -1171,7 +1171,7 @@ static demux_plugin_t *open_plugin (demux_class_t *class_gen, xine_stream_t *str
fourcc_tag = _X_BE_32(&buf[0]);
if (fourcc_tag == RIFF_TAG) {
uint8_t large_buf[1024];
-
+
if (input->read(input, large_buf, 12) != 12) {
free(this);
return NULL;
@@ -1190,7 +1190,7 @@ static demux_plugin_t *open_plugin (demux_class_t *class_gen, xine_stream_t *str
* MPEG video marker. No, it's not a very efficient approach, but
* if execution has reached this special case, this is currently
* the best chance for detecting the file automatically. Also,
- * be extra lazy and do not bother skipping over the data
+ * be extra lazy and do not bother skipping over the data
* header. */
for (i = 0; i < RIFF_CHECK_KILOBYTES && !ok; i++) {
if (input->read(input, large_buf, 1024) != 1024)
@@ -1246,7 +1246,7 @@ static const demuxer_info_t demux_info_mpeg = {
};
const plugin_info_t xine_plugin_info[] EXPORTED = {
- /* type, API, "name", version, special_info, init_function */
+ /* type, API, "name", version, special_info, init_function */
{ PLUGIN_DEMUX, 27, "mpeg", XINE_VERSION_CODE, &demux_info_mpeg, init_plugin },
{ PLUGIN_NONE, 0, "", 0, NULL, NULL }
};
diff --git a/src/demuxers/demux_mpeg_block.c b/src/demuxers/demux_mpeg_block.c
index 4b7f77f18..5d00742e5 100644
--- a/src/demuxers/demux_mpeg_block.c
+++ b/src/demuxers/demux_mpeg_block.c
@@ -1,18 +1,18 @@
/*
* Copyright (C) 2000-2006 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -20,7 +20,7 @@
* demultiplexer for mpeg 1/2 program streams
* used with fixed blocksize devices (like dvd/vcd)
*/
-
+
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
@@ -50,7 +50,7 @@
#define NUM_PREVIEW_BUFFERS 250
#define DISC_TRESHOLD 90000
-#define WRAP_THRESHOLD 120000
+#define WRAP_THRESHOLD 120000
#define PTS_AUDIO 0
#define PTS_VIDEO 1
@@ -62,14 +62,14 @@
typedef struct demux_mpeg_block_s {
demux_plugin_t demux_plugin;
- xine_stream_t *stream;
+ xine_stream_t *stream;
fifo_buffer_t *audio_fifo;
fifo_buffer_t *video_fifo;
input_plugin_t *input;
int status;
-
+
int blocksize;
int rate;
@@ -129,30 +129,30 @@ static int32_t parse_program_stream_pack_header(demux_mpeg_block_t *this, uint8_
/* OK, i think demux_mpeg_block discontinuity handling demands some
explanation:
-
+
- The preferred discontinuity handling/detection for DVD is based on
NAV packets information. Most of the time it will provide us very
accurate and reliable information.
-
+
- Has been shown that sometimes a DVD discontinuity may happen before
a new NAV packet arrives (seeking?). To avoid sending wrong PTS to
decoders we _used_ to check for SCR discontinuities. Unfortunately
some VCDs have very broken SCR values causing false triggering.
-
+
- To fix the above problem (also note that VCDs don't have NAV
packets) we fallback to the same PTS-based wrap detection as used
in demux_mpeg. The only trick is to not send discontinuity information
if NAV packets have already done the job.
-
+
[Miguel 02-05-2002]
*/
static void check_newpts( demux_mpeg_block_t *this, int64_t pts, int video )
{
int64_t diff;
-
+
diff = pts - this->last_pts[video];
-
+
if( pts && (this->send_newpts || (this->last_pts[video] && abs(diff)>WRAP_THRESHOLD) ) ) {
/* check if pts is outside nav pts range. any stream without nav must enter here. */
@@ -170,10 +170,10 @@ static void check_newpts( demux_mpeg_block_t *this, int64_t pts, int video )
} else {
lprintf("no wrap detected\n" );
}
-
+
this->last_pts[1-video] = 0;
}
-
+
if( pts )
this->last_pts[video] = pts;
}
@@ -226,9 +226,9 @@ static void demux_mpeg_block_parse_pack (demux_mpeg_block_t *this, int preview_m
buf->decoder_flags = BUF_FLAG_PREVIEW;
else
buf->decoder_flags = 0;
-
+
if( this->input->get_length (this->input) )
- buf->extra_info->input_normpos = (int)( (double) this->input->get_current_pos (this->input) *
+ buf->extra_info->input_normpos = (int)( (double) this->input->get_current_pos (this->input) *
65535 / this->input->get_length (this->input) );
while(p < (buf->content + this->blocksize)) {
@@ -441,7 +441,7 @@ static int32_t parse_program_stream_pack_header(demux_mpeg_block_t *this, uint8_
return 12;
} else { /* mpeg2 */
-
+
int num_stuffing_bytes;
/* system_clock_reference */
@@ -505,7 +505,7 @@ static int32_t parse_private_stream_2(demux_mpeg_block_t *this, uint8_t *p, buf_
* the NAV packet for a much more accurate timing */
if (buf->extra_info->input_time) {
int64_t cell_time, frames;
-
+
cell_time = (p[7+0x18] >> 4 ) * 10 * 60 * 60 * 1000;
cell_time += (p[7+0x18] & 0x0f) * 60 * 60 * 1000;
cell_time += (p[7+0x19] >> 4 ) * 10 * 60 * 1000;
@@ -514,7 +514,7 @@ static int32_t parse_private_stream_2(demux_mpeg_block_t *this, uint8_t *p, buf_
cell_time += (p[7+0x1a] & 0x0f) * 1000;
frames = ((p[7+0x1b] & 0x30) >> 4) * 10;
frames += ((p[7+0x1b] & 0x0f) ) ;
-
+
if (p[7+0x1b] & 0x80)
cell_time += (frames * 1000)/25;
else
@@ -524,7 +524,7 @@ static int32_t parse_private_stream_2(demux_mpeg_block_t *this, uint8_t *p, buf_
this->last_cell_pos = this->input->get_current_pos (this->input);
this->last_begin_time = buf->extra_info->input_time;
}
-
+
lprintf ("NAV packet, start pts = %"PRId64", end_pts = %"PRId64"\n",
start_pts, end_pts);
@@ -575,14 +575,14 @@ static int32_t parse_pes_for_pts(demux_mpeg_block_t *this, uint8_t *p, buf_eleme
}
if (this->rate && !buf->extra_info->input_time)
- buf->extra_info->input_time = (int)((int64_t)this->input->get_current_pos (this->input)
+ buf->extra_info->input_time = (int)((int64_t)this->input->get_current_pos (this->input)
* 1000 / (this->rate * 50));
if (this->mpeg1) {
header_len = 6;
p += 6; /* packet_len -= 6; */
while ((p[0] & 0x80) == 0x80) {
- p++;
+ p++;
header_len++;
this->packet_len--;
/* printf ("stuffing\n");*/
@@ -595,9 +595,9 @@ static int32_t parse_pes_for_pts(demux_mpeg_block_t *this, uint8_t *p, buf_eleme
this->packet_len -= 2;
}
- this->pts = 0;
+ this->pts = 0;
this->dts = 0;
-
+
if ((p[0] & 0xf0) == 0x20) {
this->pts = (int64_t)(p[ 0] & 0x0E) << 29 ;
this->pts |= p[ 1] << 22 ;
@@ -614,19 +614,19 @@ static int32_t parse_pes_for_pts(demux_mpeg_block_t *this, uint8_t *p, buf_eleme
this->pts |= (p[ 2] & 0xFE) << 14 ;
this->pts |= p[ 3] << 7 ;
this->pts |= (p[ 4] & 0xFE) >> 1 ;
-
+
this->dts = (int64_t)(p[ 5] & 0x0E) << 29 ;
this->dts |= p[ 6] << 22 ;
this->dts |= (p[ 7] & 0xFE) << 14 ;
this->dts |= p[ 8] << 7 ;
this->dts |= (p[ 9] & 0xFE) >> 1 ;
-
+
p += 10;
header_len += 10;
this->packet_len -= 10;
return header_len;
} else {
- p++;
+ p++;
header_len++;
this->packet_len--;
return header_len;
@@ -670,13 +670,13 @@ static int32_t parse_pes_for_pts(demux_mpeg_block_t *this, uint8_t *p, buf_eleme
this->pts = 0;
if (p[7] & 0x40) { /* dts avail */
-
+
this->dts = (int64_t)(p[14] & 0x0E) << 29 ;
this->dts |= p[15] << 22 ;
this->dts |= (p[16] & 0xFE) << 14 ;
this->dts |= p[17] << 7 ;
this->dts |= (p[18] & 0xFE) >> 1 ;
-
+
} else
this->dts = 0;
@@ -705,16 +705,16 @@ static int32_t parse_private_stream_1(demux_mpeg_block_t *this, uint8_t *p, buf_
buf->content = p+1;
buf->size = this->packet_len-1;
-
+
buf->type = BUF_SPU_DVD + spu_id;
buf->decoder_flags |= BUF_FLAG_SPECIAL;
buf->decoder_info[1] = BUF_SPECIAL_SPU_DVD_SUBTYPE;
buf->decoder_info[2] = SPU_DVD_SUBTYPE_PACKAGE;
buf->pts = this->pts;
-
- this->video_fifo->put (this->video_fifo, buf);
+
+ this->video_fifo->put (this->video_fifo, buf);
lprintf ("SPU PACK put on fifo\n");
-
+
return -1;
}
@@ -730,9 +730,9 @@ static int32_t parse_private_stream_1(demux_mpeg_block_t *this, uint8_t *p, buf_
if( !preview_mode )
check_newpts( this, this->pts, PTS_VIDEO );
*/
- this->video_fifo->put (this->video_fifo, buf);
+ this->video_fifo->put (this->video_fifo, buf);
lprintf ("SPU SVCD PACK (%"PRId64", %d) put on fifo\n", this->pts, spu_id);
-
+
return -1;
}
@@ -747,29 +747,29 @@ static int32_t parse_private_stream_1(demux_mpeg_block_t *this, uint8_t *p, buf_
/* this is probably wrong:
if( !preview_mode )
check_newpts( this, this->pts, PTS_VIDEO );
- */
- this->video_fifo->put (this->video_fifo, buf);
+ */
+ this->video_fifo->put (this->video_fifo, buf);
lprintf ("SPU CVD PACK (%"PRId64", %d) put on fifo\n", this->pts, spu_id);
-
+
return -1;
}
if ((p[0]&0xF0) == 0x80) {
-
+
track = p[0] & 0x0F; /* hack : ac3 track */
- /* Number of frame headers
+ /* Number of frame headers
*
* Describes the number of a52 frame headers that start in this pack (One pack per DVD sector).
*
* Likely values: 1 or 2.
*/
buf->decoder_info[1] = p[1];
- /* First access unit pointer.
+ /* First access unit pointer.
*
* Describes the byte offset within this pack to the beginning of the first A52 frame header.
* The PTS from this pack applies to the beginning of the first A52 frame that starts in this pack.
- * Any bytes before this offset should be considered to belong to the previous A52 frame.
+ * Any bytes before this offset should be considered to belong to the previous A52 frame.
* and therefore be tagged with a PTS value derived from the previous pack.
*
* Likely values: Anything from 1 to the size of an A52 frame.
@@ -870,7 +870,7 @@ static int32_t parse_private_stream_1(demux_mpeg_block_t *this, uint8_t *p, buf_
buf->free_buffer(buf);
return -1;
}
-
+
} else if ((p[0]&0xf0) == 0xa0) {
int pcm_offset;
@@ -917,7 +917,7 @@ static int32_t parse_private_stream_1(demux_mpeg_block_t *this, uint8_t *p, buf_
buf->decoder_flags |= BUF_FLAG_SPECIAL;
buf->decoder_info[1] = BUF_SPECIAL_LPCM_CONFIG;
buf->decoder_info[2] = p[5];
-
+
pcm_offset = 7;
buf->content = p+pcm_offset;
@@ -936,7 +936,7 @@ static int32_t parse_private_stream_1(demux_mpeg_block_t *this, uint8_t *p, buf_
buf->free_buffer(buf);
return -1;
}
-
+
}
/* Some new streams have been encountered.
1) DVD+RW disc recorded with a Philips DVD recorder: - new unknown sub-stream id of 0xff
@@ -1009,10 +1009,10 @@ static int demux_mpeg_block_send_chunk (demux_plugin_t *this_gen) {
}
#ifdef ESTIMATE_RATE_FIXED
-/*!
- Estimate bitrate by looking inside the MPEG file for presentation
- time stamps (PTS) and computing how far apart these are
- in bytes and in time.
+/*!
+ Estimate bitrate by looking inside the MPEG file for presentation
+ time stamps (PTS) and computing how far apart these are
+ in bytes and in time.
On failure return 0.
@@ -1043,23 +1043,23 @@ static int demux_mpeg_block_estimate_rate (demux_mpeg_block_t *this) {
int rate=0; /* The return rate value */
int stream_id;
- /* We can't estimate by sampling if we don't thave the ability to
+ /* We can't estimate by sampling if we don't thave the ability to
randomly access the and more importantly reset after accessessing. */
if (!(this->input->get_capabilities(this->input) & INPUT_CAP_SEEKABLE))
return 0;
mpeg_length= this->input->get_length (this->input);
- step = TRUNC((mpeg_length/MAX_SAMPLES), blocksize);
+ step = TRUNC((mpeg_length/MAX_SAMPLES), blocksize);
if (step <= 0) step = blocksize; /* avoid endless loop for tiny files */
pos = step;
/* At this point "pos", and "step" are a multiple of blocksize and
they should continue to be so throughout.
*/
-
+
this->input->seek (this->input, pos, SEEK_SET);
- while ( (buf = this->input->read_block (this->input, this->video_fifo, blocksize))
+ while ( (buf = this->input->read_block (this->input, this->video_fifo, blocksize))
&& count < MAX_SAMPLES && reads++ < MAX_READS ) {
p = buf->content; /* len = this->mnBlocksize; */
@@ -1068,9 +1068,9 @@ static int demux_mpeg_block_estimate_rate (demux_mpeg_block_t *this) {
is_mpeg1 = (p[4] & 0x40) == 0;
- if (is_mpeg1)
+ if (is_mpeg1)
p += 12;
- else
+ else
p += 14 + (p[0xD] & 0x07);
}
@@ -1087,7 +1087,7 @@ static int demux_mpeg_block_estimate_rate (demux_mpeg_block_t *this) {
}
stream_id = p[3];
- pts = 0;
+ pts = 0;
if ((stream_id < 0xbc) || ((stream_id & 0xf0) != 0xe0)) {
pos += (off_t) blocksize;
@@ -1117,18 +1117,18 @@ static int demux_mpeg_block_estimate_rate (demux_mpeg_block_t *this) {
pts |= (p[ 2] & 0xFE) << 14 ;
pts |= p[ 3] << 7 ;
pts |= (p[ 4] & 0xFE) >> 1 ;
- }
+ }
}
} else { /* mpeg 2 */
-
+
if (p[7] & 0x80) { /* pts avail */
-
+
pts = (int64_t)(p[ 9] & 0x0E) << 29 ;
pts |= p[10] << 22 ;
pts |= (p[11] & 0xFE) << 14 ;
pts |= p[12] << 7 ;
pts |= (p[13] & 0xFE) >> 1 ;
-
+
} else
pts = 0;
}
@@ -1138,16 +1138,16 @@ static int demux_mpeg_block_estimate_rate (demux_mpeg_block_t *this) {
if ( (pos>last_pos) && (pts>last_pts) ) {
int cur_rate;
-
+
cur_rate = ((pos - last_pos)*90000) / ((pts - last_pts) * 50);
-
+
rate = (count * rate + cur_rate) / (count+1);
count ++;
-
+
/*
- printf ("demux_mpeg_block: stream_id %02x, pos: %"PRId64", pts: %d, cur_rate = %d, overall rate : %d\n",
- stream_id, pos, pts, cur_rate, rate);
+ printf ("demux_mpeg_block: stream_id %02x, pos: %"PRId64", pts: %d, cur_rate = %d, overall rate : %d\n",
+ stream_id, pos, pts, cur_rate, rate);
*/
}
@@ -1171,14 +1171,14 @@ static int demux_mpeg_block_estimate_rate (demux_mpeg_block_t *this) {
lprintf("est_rate=%d\n",rate);
return rate;
-
+
}
#endif /*ESTIMATE_RATE_FIXED*/
static void demux_mpeg_block_dispose (demux_plugin_t *this_gen) {
demux_mpeg_block_t *this = (demux_mpeg_block_t *) this_gen;
-
+
free (this);
}
@@ -1188,7 +1188,7 @@ static int demux_mpeg_block_get_status (demux_plugin_t *this_gen) {
return this->status;
}
-static int demux_mpeg_detect_blocksize(demux_mpeg_block_t *this,
+static int demux_mpeg_detect_blocksize(demux_mpeg_block_t *this,
input_plugin_t *input)
{
uint8_t scratch[4];
@@ -1202,10 +1202,10 @@ static int demux_mpeg_detect_blocksize(demux_mpeg_block_t *this,
input->seek(input, 2324, SEEK_SET);
if (input->read(input, scratch, 4) != 4)
return 0;
- if (scratch[0] || scratch[1]
- || (scratch[2] != 0x01) || (scratch[3] != 0xba))
+ if (scratch[0] || scratch[1]
+ || (scratch[2] != 0x01) || (scratch[3] != 0xba))
return 0;
-
+
return 2324;
} else
return 2048;
@@ -1225,34 +1225,34 @@ static void demux_mpeg_block_send_headers (demux_plugin_t *this_gen) {
if (!this->blocksize)
return;
}
-
- /*
+
+ /*
* send start buffer
*/
-
+
_x_demux_control_start(this->stream);
-
+
#ifdef USE_ILL_ADVISED_ESTIMATE_RATE_INITIALLY
- if (!this->rate)
+ if (!this->rate)
this->rate = demux_mpeg_block_estimate_rate (this);
-#else
+#else
/* Set to Use rate given in by stream initially. */
- this->rate = 0;
+ this->rate = 0;
#endif
-
+
if((this->input->get_capabilities(this->input) & INPUT_CAP_SEEKABLE) != 0) {
-
+
int num_buffers = NUM_PREVIEW_BUFFERS;
-
+
this->input->seek (this->input, 0, SEEK_SET);
-
+
this->status = DEMUX_OK ;
while ( (num_buffers>0) && (this->status == DEMUX_OK) ) {
-
+
demux_mpeg_block_parse_pack(this, 1);
num_buffers --;
}
- }
+ }
/* else FIXME: implement preview generation from PREVIEW data */
this->status = DEMUX_OK;
@@ -1271,19 +1271,19 @@ static int demux_mpeg_block_seek (demux_plugin_t *this_gen,
this->input->get_length (this->input) );
if((this->input->get_capabilities(this->input) & INPUT_CAP_SEEKABLE) != 0) {
-
+
if (start_pos) {
start_pos /= (off_t) this->blocksize;
start_pos *= (off_t) this->blocksize;
-
+
this->input->seek (this->input, start_pos, SEEK_SET);
} else if (start_time) {
-
+
if( this->input->seek_time ) {
this->input->seek_time (this->input, start_time, SEEK_SET);
} else {
start_time /= 1000;
-
+
if (this->last_cell_time) {
start_pos = start_time - (this->last_cell_time + this->last_begin_time)/1000;
start_pos *= this->rate;
@@ -1296,20 +1296,20 @@ static int demux_mpeg_block_seek (demux_plugin_t *this_gen,
}
start_pos /= (off_t) this->blocksize;
start_pos *= (off_t) this->blocksize;
-
+
this->input->seek (this->input, start_pos, SEEK_SET);
}
} else
this->input->seek (this->input, 0, SEEK_SET);
}
-
+
/*
* now start demuxing
*/
this->last_cell_time = 0;
this->send_newpts = 1;
if( !playing ) {
-
+
this->buf_flag_seek = 0;
this->nav_last_end_pts = this->nav_last_start_pts = 0;
this->status = DEMUX_OK ;
@@ -1320,7 +1320,7 @@ static int demux_mpeg_block_seek (demux_plugin_t *this_gen,
this->nav_last_end_pts = this->nav_last_start_pts = 0;
_x_demux_flush_engine(this->stream);
}
-
+
return this->status;
}
@@ -1338,7 +1338,7 @@ static void demux_mpeg_block_accept_input (demux_mpeg_block_t *this,
lprintf ("mrl %s is new\n", this->cur_mrl);
- }
+ }
else {
lprintf ("mrl %s is known, bitrate: %d\n",
this->cur_mrl, this->rate * 50 * 8);
@@ -1352,7 +1352,7 @@ static int demux_mpeg_block_get_stream_length (demux_plugin_t *this_gen) {
* find input plugin
*/
- if (this->rate)
+ if (this->rate)
return (int)((int64_t) 1000 * this->input->get_length (this->input) /
(this->rate * 50));
else
@@ -1377,7 +1377,7 @@ static demux_plugin_t *open_plugin (demux_class_t *class_gen, xine_stream_t *str
this = calloc(1, sizeof(demux_mpeg_block_t));
this->stream = stream;
this->input = input;
-
+
this->demux_plugin.send_headers = demux_mpeg_block_send_headers;
this->demux_plugin.send_chunk = demux_mpeg_block_send_chunk;
this->demux_plugin.seek = demux_mpeg_block_seek;
@@ -1392,9 +1392,9 @@ static demux_plugin_t *open_plugin (demux_class_t *class_gen, xine_stream_t *str
lprintf ("open_plugin:detection_method=%d\n",
stream->content_detection_method);
-
+
switch (stream->content_detection_method) {
-
+
case METHOD_BY_CONTENT: {
/* use demux_mpeg for non-block devices */
@@ -1504,7 +1504,7 @@ static const demuxer_info_t demux_info_mpeg_block = {
};
const plugin_info_t xine_plugin_info[] EXPORTED = {
- /* type, API, "name", version, special_info, init_function */
+ /* type, API, "name", version, special_info, init_function */
{ PLUGIN_DEMUX, 27, "mpeg_block", XINE_VERSION_CODE, &demux_info_mpeg_block, init_plugin },
{ PLUGIN_NONE, 0, "", 0, NULL, NULL }
};
diff --git a/src/demuxers/demux_mpeg_pes.c b/src/demuxers/demux_mpeg_pes.c
index 9157976f6..3b2489a43 100644
--- a/src/demuxers/demux_mpeg_pes.c
+++ b/src/demuxers/demux_mpeg_pes.c
@@ -1,18 +1,18 @@
/*
* Copyright (C) 2000-2008 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -24,7 +24,7 @@
* (c) 2003 James Courtier-Dutton James@superbug.demon.co.uk
* This code might also decode normal MPG files.
*/
-
+
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
@@ -54,7 +54,7 @@
#define NUM_PREVIEW_BUFFERS 250
#define DISC_TRESHOLD 90000
-#define WRAP_THRESHOLD 270000
+#define WRAP_THRESHOLD 270000
#define PTS_AUDIO 0
#define PTS_VIDEO 1
@@ -66,14 +66,14 @@
typedef struct demux_mpeg_pes_s {
demux_plugin_t demux_plugin;
- xine_stream_t *stream;
+ xine_stream_t *stream;
fifo_buffer_t *audio_fifo;
fifo_buffer_t *video_fifo;
input_plugin_t *input;
int status;
-
+
int rate;
char cur_mrl[256];
@@ -96,7 +96,7 @@ typedef struct demux_mpeg_pes_s {
uint8_t mpeg1:1;
uint8_t wait_for_program_stream_pack_header:1;
uint8_t mpeg12_h264_detected:2;
-
+
int last_begin_time;
int64_t last_cell_time;
off_t last_cell_pos;
@@ -207,7 +207,7 @@ static int detect_pts_discontinuity( demux_mpeg_pes_t *this, int64_t pts, int vi
/* no discontinuity detected */
return 0;
}
-
+
static void check_newpts( demux_mpeg_pes_t *this, int64_t pts, int video )
{
if( pts && (this->send_newpts || detect_pts_discontinuity(this, pts, video) ) ) {
@@ -231,7 +231,7 @@ static void check_newpts( demux_mpeg_pes_t *this, int64_t pts, int video )
/* clear pts on the other track to avoid detecting the same discontinuity again */
this->last_pts[1-video] = 0;
}
-
+
if( pts )
this->last_pts[video] = pts;
}
@@ -263,7 +263,7 @@ static void demux_mpeg_pes_parse_pack (demux_mpeg_pes_t *this, int preview_mode)
int32_t result;
off_t i;
uint8_t buf6[ 6 ];
-
+
this->scr = 0;
this->preview_mode = preview_mode;
@@ -285,9 +285,9 @@ static void demux_mpeg_pes_parse_pack (demux_mpeg_pes_t *this, int preview_mode)
return;
}
}
-
+
/* FIXME: buf must be allocated from somewhere before calling here. */
-
+
/* these streams should be allocated on the audio_fifo, if available. */
if ((0xC0 <= p[ 3 ] && p[ 3 ] <= 0xDF) /* audio_stream */
|| 0xBD == p[ 3 ]) /* private_sream_1 */
@@ -306,19 +306,19 @@ static void demux_mpeg_pes_parse_pack (demux_mpeg_pes_t *this, int preview_mode)
return;
}
}
-
+
p = buf->mem;
/* copy local buffer to fifo element. */
memcpy(p, buf6, sizeof(buf6));
-
+
if (preview_mode)
buf->decoder_flags = BUF_FLAG_PREVIEW;
else
buf->decoder_flags = 0;
-
+
if( this->input->get_length (this->input) )
- buf->extra_info->input_normpos = (int)( (double) this->input->get_current_pos (this->input) *
+ buf->extra_info->input_normpos = (int)( (double) this->input->get_current_pos (this->input) *
65535 / this->input->get_length (this->input) );
this->stream_id = p[3];
@@ -417,7 +417,7 @@ static void demux_mpeg_pes_parse_pack (demux_mpeg_pes_t *this, int preview_mode)
xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
_("xine-lib:demux_mpeg_pes: Unrecognised stream_id 0x%02x. "
"Please report this to xine developers.\n"), this->stream_id);
- xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"xine-lib:demux_mpeg_pes: packet_len=%d\n", this->packet_len);
buf->free_buffer (buf);
return;
@@ -440,11 +440,11 @@ static int32_t parse_padding_stream(demux_mpeg_pes_t *this, uint8_t *p, buf_elem
{
/* Handle Jumbo frames from VDR. */
int i;
-
+
int size = buf->max_size;
if ((todo - done) < size)
size = todo - done;
-
+
i = read_data(this, buf->mem, (off_t)size);
if (i != size)
break;
@@ -461,98 +461,98 @@ static int32_t parse_padding_stream(demux_mpeg_pes_t *this, uint8_t *p, buf_elem
static int32_t parse_program_stream_map(demux_mpeg_pes_t *this, uint8_t *p, buf_element_t *buf) {
/* FIXME: Implement */
- xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"xine-lib:demux_mpeg_pes: Unhandled stream_id 0x%02x.\n", this->stream_id);
buf->free_buffer (buf);
return -1;
}
static int32_t parse_ecm_stream(demux_mpeg_pes_t *this, uint8_t *p, buf_element_t *buf) {
/* FIXME: Implement */
- xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"xine-lib:demux_mpeg_pes: Unhandled stream_id 0x%02x\n", this->stream_id);
buf->free_buffer (buf);
return -1;
}
static int32_t parse_emm_stream(demux_mpeg_pes_t *this, uint8_t *p, buf_element_t *buf) {
/* FIXME: Implement */
- xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"xine-lib:demux_mpeg_pes: Unhandled stream_id 0x%02x\n", this->stream_id);
buf->free_buffer (buf);
return -1;
}
static int32_t parse_dsmcc_stream(demux_mpeg_pes_t *this, uint8_t *p, buf_element_t *buf) {
/* FIXME: Implement */
- xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"xine-lib:demux_mpeg_pes: Unhandled stream_id 0x%02x\n", this->stream_id);
buf->free_buffer (buf);
return -1;
}
static int32_t parse_iec_13522_stream(demux_mpeg_pes_t *this, uint8_t *p, buf_element_t *buf) {
/* FIXME: Implement */
- xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"xine-lib:demux_mpeg_pes: Unhandled stream_id 0x%02x\n", this->stream_id);
buf->free_buffer (buf);
return -1;
}
static int32_t parse_h222_typeA_stream(demux_mpeg_pes_t *this, uint8_t *p, buf_element_t *buf) {
/* FIXME: Implement */
- xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"xine-lib:demux_mpeg_pes: Unhandled stream_id 0x%02x\n", this->stream_id);
buf->free_buffer (buf);
return -1;
}
static int32_t parse_h222_typeB_stream(demux_mpeg_pes_t *this, uint8_t *p, buf_element_t *buf) {
/* FIXME: Implement */
- xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"xine-lib:demux_mpeg_pes: Unhandled stream_id 0x%02x\n", this->stream_id);
buf->free_buffer (buf);
return -1;
}
static int32_t parse_h222_typeC_stream(demux_mpeg_pes_t *this, uint8_t *p, buf_element_t *buf) {
/* FIXME: Implement */
- xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"xine-lib:demux_mpeg_pes: Unhandled stream_id 0x%02x\n", this->stream_id);
buf->free_buffer (buf);
return -1;
}
static int32_t parse_h222_typeD_stream(demux_mpeg_pes_t *this, uint8_t *p, buf_element_t *buf) {
/* FIXME: Implement */
- xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"xine-lib:demux_mpeg_pes: Unhandled stream_id 0x%02x\n", this->stream_id);
buf->free_buffer (buf);
return -1;
}
static int32_t parse_h222_typeE_stream(demux_mpeg_pes_t *this, uint8_t *p, buf_element_t *buf) {
/* FIXME: Implement */
- xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"xine-lib:demux_mpeg_pes: Unhandled stream_id 0x%02x\n", this->stream_id);
buf->free_buffer (buf);
return -1;
}
static int32_t parse_IEC14496_SL_packetized_stream(demux_mpeg_pes_t *this, uint8_t *p, buf_element_t *buf) {
/* FIXME: Implement */
- xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"xine-lib:demux_mpeg_pes: Unhandled stream_id 0x%02x\n", this->stream_id);
buf->free_buffer (buf);
return -1;
}
static int32_t parse_IEC14496_FlexMux_stream(demux_mpeg_pes_t *this, uint8_t *p, buf_element_t *buf) {
/* FIXME: Implement */
- xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"xine-lib:demux_mpeg_pes: Unhandled stream_id 0x%02x\n", this->stream_id);
buf->free_buffer (buf);
return -1;
}
static int32_t parse_program_stream_directory(demux_mpeg_pes_t *this, uint8_t *p, buf_element_t *buf) {
/* FIXME: Implement */
- xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"xine-lib:demux_mpeg_pes: Unhandled stream_id 0x%02x\n", this->stream_id);
buf->free_buffer (buf);
return -1;
}
static int32_t parse_ancillary_stream(demux_mpeg_pes_t *this, uint8_t *p, buf_element_t *buf) {
/* FIXME: Implement */
- xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"xine-lib:demux_mpeg_pes: Unhandled stream_id 0x%02x\n", this->stream_id);
buf->free_buffer (buf);
return -1;
@@ -593,7 +593,7 @@ static int32_t parse_program_stream_pack_header(demux_mpeg_pes_t *this, uint8_t
return 12;
} else { /* mpeg2 */
-
+
int num_stuffing_bytes;
/* system_clock_reference */
@@ -667,7 +667,7 @@ static int32_t parse_private_stream_2(demux_mpeg_pes_t *this, uint8_t *p, buf_el
* the NAV packet for a much more accurate timing */
if (buf->extra_info->input_time) {
int64_t cell_time, frames;
-
+
cell_time = (p[7+0x18] >> 4 ) * 10 * 60 * 60 * 1000;
cell_time += (p[7+0x18] & 0x0f) * 60 * 60 * 1000;
cell_time += (p[7+0x19] >> 4 ) * 10 * 60 * 1000;
@@ -676,7 +676,7 @@ static int32_t parse_private_stream_2(demux_mpeg_pes_t *this, uint8_t *p, buf_el
cell_time += (p[7+0x1a] & 0x0f) * 1000;
frames = ((p[7+0x1b] & 0x30) >> 4) * 10;
frames += ((p[7+0x1b] & 0x0f) ) ;
-
+
if (p[7+0x1b] & 0x80)
cell_time += (frames * 1000)/25;
else
@@ -686,7 +686,7 @@ static int32_t parse_private_stream_2(demux_mpeg_pes_t *this, uint8_t *p, buf_el
this->last_cell_pos = this->input->get_current_pos (this->input);
this->last_begin_time = buf->extra_info->input_time;
}
-
+
lprintf ("NAV packet, start pts = %"PRId64", end_pts = %"PRId64"\n",
start_pts, end_pts);
@@ -736,7 +736,7 @@ static int32_t parse_pes_for_pts(demux_mpeg_pes_t *this, uint8_t *p, buf_element
}
if (this->rate && !buf->extra_info->input_time)
- buf->extra_info->input_time = (int)((int64_t)this->input->get_current_pos (this->input)
+ buf->extra_info->input_time = (int)((int64_t)this->input->get_current_pos (this->input)
* 1000 / (this->rate * 50));
/* FIXME: This was determined by comparing a single MPEG1 and a single MPEG2 stream */
@@ -751,7 +751,7 @@ static int32_t parse_pes_for_pts(demux_mpeg_pes_t *this, uint8_t *p, buf_element
p += 6; /* packet_len -= 6; */
while ((p[0] & 0x80) == 0x80) {
- p++;
+ p++;
header_len++;
this->packet_len--;
/* printf ("stuffing\n");*/
@@ -764,9 +764,9 @@ static int32_t parse_pes_for_pts(demux_mpeg_pes_t *this, uint8_t *p, buf_element
this->packet_len -= 2;
}
- this->pts = 0;
+ this->pts = 0;
this->dts = 0;
-
+
if ((p[0] & 0xf0) == 0x20) {
this->pts = (int64_t) (p[ 0] & 0x0E) << 29 ;
this->pts |= (int64_t) p[ 1] << 22 ;
@@ -783,19 +783,19 @@ static int32_t parse_pes_for_pts(demux_mpeg_pes_t *this, uint8_t *p, buf_element
this->pts |= (int64_t) (p[ 2] & 0xFE) << 14 ;
this->pts |= (int64_t) p[ 3] << 7 ;
this->pts |= (int64_t) (p[ 4] & 0xFE) >> 1 ;
-
+
this->dts = (int64_t) (p[ 5] & 0x0E) << 29 ;
this->dts |= (int64_t) p[ 6] << 22 ;
this->dts |= (int64_t) (p[ 7] & 0xFE) << 14 ;
this->dts |= (int64_t) p[ 8] << 7 ;
this->dts |= (int64_t) (p[ 9] & 0xFE) >> 1 ;
-
+
p += 10;
header_len += 10;
this->packet_len -= 10;
return header_len;
} else {
- p++;
+ p++;
header_len++;
this->packet_len--;
return header_len;
@@ -839,13 +839,13 @@ static int32_t parse_pes_for_pts(demux_mpeg_pes_t *this, uint8_t *p, buf_element
this->pts = 0;
if (p[7] & 0x40) { /* dts avail */
-
+
this->dts = (int64_t) (p[14] & 0x0E) << 29 ;
this->dts |= (int64_t) p[15] << 22 ;
this->dts |= (int64_t) (p[16] & 0xFE) << 14 ;
this->dts |= (int64_t) p[17] << 7 ;
this->dts |= (int64_t) (p[18] & 0xFE) >> 1 ;
-
+
} else
this->dts = 0;
@@ -874,16 +874,16 @@ static int32_t parse_private_stream_1(demux_mpeg_pes_t *this, uint8_t *p, buf_el
buf->content = p+1;
buf->size = this->packet_len-1;
-
+
buf->type = BUF_SPU_DVD + spu_id;
buf->decoder_flags |= BUF_FLAG_SPECIAL;
buf->decoder_info[1] = BUF_SPECIAL_SPU_DVD_SUBTYPE;
buf->decoder_info[2] = SPU_DVD_SUBTYPE_PACKAGE;
buf->pts = this->pts;
-
- this->video_fifo->put (this->video_fifo, buf);
+
+ this->video_fifo->put (this->video_fifo, buf);
lprintf ("SPU PACK put on fifo\n");
-
+
return this->packet_len + result;
}
@@ -899,9 +899,9 @@ static int32_t parse_private_stream_1(demux_mpeg_pes_t *this, uint8_t *p, buf_el
if( !preview_mode )
check_newpts( this, this->pts, PTS_VIDEO );
*/
- this->video_fifo->put (this->video_fifo, buf);
+ this->video_fifo->put (this->video_fifo, buf);
lprintf ("SPU SVCD PACK (%"PRId64", %d) put on fifo\n", this->pts, spu_id);
-
+
return this->packet_len + result;
}
@@ -916,15 +916,15 @@ static int32_t parse_private_stream_1(demux_mpeg_pes_t *this, uint8_t *p, buf_el
/* this is probably wrong:
if( !preview_mode )
check_newpts( this, this->pts, PTS_VIDEO );
- */
- this->video_fifo->put (this->video_fifo, buf);
+ */
+ this->video_fifo->put (this->video_fifo, buf);
lprintf ("SPU CVD PACK (%"PRId64", %d) put on fifo\n", this->pts, spu_id);
-
+
return this->packet_len + result;
}
if ((p[0]&0xF0) == 0x80) {
-
+
track = p[0] & 0x0F; /* hack : ac3 track */
buf->decoder_info[1] = p[1]; /* Number of frame headers */
buf->decoder_info[2] = p[2] << 8 | p[3]; /* First access unit pointer */
@@ -948,7 +948,7 @@ static int32_t parse_private_stream_1(demux_mpeg_pes_t *this, uint8_t *p, buf_el
buf->free_buffer(buf);
}
return this->packet_len + result;
-
+
} else if ((p[0]&0xf0) == 0xa0) {
int pcm_offset;
@@ -988,7 +988,7 @@ static int32_t parse_private_stream_1(demux_mpeg_pes_t *this, uint8_t *p, buf_el
switch ((p[5]>>6) & 3) {
case 3: /* illegal, use 16-bits? */
default:
- xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
"illegal lpcm sample format (%d), assume 16-bit samples\n",
(p[5]>>6) & 3 );
case 0: bits_per_sample = 16; break;
@@ -1001,7 +1001,7 @@ static int32_t parse_private_stream_1(demux_mpeg_pes_t *this, uint8_t *p, buf_el
buf->decoder_flags |= BUF_FLAG_SPECIAL;
buf->decoder_info[1] = BUF_SPECIAL_LPCM_CONFIG;
buf->decoder_info[2] = p[5];
-
+
pcm_offset = 7;
buf->content = p+pcm_offset;
@@ -1025,7 +1025,7 @@ static int32_t parse_private_stream_1(demux_mpeg_pes_t *this, uint8_t *p, buf_el
int size;
/*
- * A52/AC3 streams in some DVB-S recordings made with VDR.
+ * A52/AC3 streams in some DVB-S recordings made with VDR.
* It is broadcast by a german tv-station called PRO7.
* PRO7 uses dolby 5.1 (A52 5.1) in some of the movies they broadcast,
* (and they would switch it to stereo-sound(A52 2.0) during commercials.)
@@ -1078,18 +1078,18 @@ static int32_t parse_private_stream_1(demux_mpeg_pes_t *this, uint8_t *p, buf_el
lprintf ("A52 PACK put on fifo\n");
} else {
buf->free_buffer(buf);
- }
+ }
}
return this->packet_len + result;
}
-
+
/* Some new streams have been encountered.
1) DVD+RW disc recorded with a Philips DVD recorder: - new unknown sub-stream id of 0xff
*/
- xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
_("demux_mpeg_pes:Unrecognised private stream 1 0x%02x. Please report this to xine developers.\n"), p[0]);
buf->free_buffer(buf);
return this->packet_len + result;
@@ -1171,7 +1171,7 @@ static int32_t parse_video_stream(demux_mpeg_pes_t *this, uint8_t *p, buf_elemen
if (this->mpeg12_h264_detected > 2) {
int nal_type_code = -1;
if (payload_size >= 4 && p[2] == 0x01 && p[1] == 0x00 && p[0] == 0x00)
- nal_type_code = p[3] & 0x1f;
+ nal_type_code = p[3] & 0x1f;
if (nal_type_code == 9) { /* access unit delimiter */
buf_element_t *b = this->video_fifo->buffer_pool_alloc (this->video_fifo);
b->content = b->mem;
@@ -1280,10 +1280,10 @@ static int demux_mpeg_pes_send_chunk (demux_plugin_t *this_gen) {
}
#ifdef ESTIMATE_RATE_FIXED
-/*!
- Estimate bitrate by looking inside the MPEG file for presentation
- time stamps (PTS) and computing how far apart these are
- in bytes and in time.
+/*!
+ Estimate bitrate by looking inside the MPEG file for presentation
+ time stamps (PTS) and computing how far apart these are
+ in bytes and in time.
On failure return 0.
@@ -1313,23 +1313,23 @@ static int demux_mpeg_pes_estimate_rate (demux_mpeg_pes_t *this) {
int rate=0; /* The return rate value */
int stream_id;
- /* We can't estimate by sampling if we don't thave the ability to
+ /* We can't estimate by sampling if we don't thave the ability to
randomly access the and more importantly reset after accessessing. */
if (!(this->input->get_capabilities(this->input) & INPUT_CAP_SEEKABLE))
return 0;
mpeg_length= this->input->get_length (this->input);
- step = TRUNC((mpeg_length/MAX_SAMPLES), 2048);
+ step = TRUNC((mpeg_length/MAX_SAMPLES), 2048);
if (step <= 0) step = 2048; /* avoid endless loop for tiny files */
pos = step;
/* At this point "pos", and "step" are a multiple of blocksize and
they should continue to be so throughout.
*/
-
+
this->input->seek (this->input, pos, SEEK_SET);
- while ( (buf = this->input->read_block (this->input, this->video_fifo, 2048))
+ while ( (buf = this->input->read_block (this->input, this->video_fifo, 2048))
&& count < MAX_SAMPLES && reads++ < MAX_READS ) {
p = buf->content; /* len = this->mnBlocksize; */
@@ -1338,9 +1338,9 @@ static int demux_mpeg_pes_estimate_rate (demux_mpeg_pes_t *this) {
is_mpeg1 = (p[4] & 0x40) == 0;
- if (is_mpeg1)
+ if (is_mpeg1)
p += 12;
- else
+ else
p += 14 + (p[0xD] & 0x07);
}
@@ -1350,14 +1350,14 @@ static int demux_mpeg_pes_estimate_rate (demux_mpeg_pes_t *this) {
/* we should now have a PES packet here */
if (p[0] || p[1] || (p[2] != 1)) {
- xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
"demux_mpeg_pes: error %02x %02x %02x (should be 0x000001) \n", p[0], p[1], p[2]);
buf->free_buffer (buf);
return rate;
}
stream_id = p[3];
- pts = 0;
+ pts = 0;
if ((stream_id < 0xbc) || ((stream_id & 0xf0) != 0xe0)) {
pos += (off_t) 2048;
@@ -1386,18 +1386,18 @@ static int demux_mpeg_pes_estimate_rate (demux_mpeg_pes_t *this) {
pts |= (p[ 2] & 0xFE) << 14 ;
pts |= p[ 3] << 7 ;
pts |= (p[ 4] & 0xFE) >> 1 ;
- }
+ }
}
} else { /* mpeg 2 */
-
+
if (p[7] & 0x80) { /* pts avail */
-
+
pts = (int64_t)(p[ 9] & 0x0E) << 29 ;
pts |= p[10] << 22 ;
pts |= (p[11] & 0xFE) << 14 ;
pts |= p[12] << 7 ;
pts |= (p[13] & 0xFE) >> 1 ;
-
+
} else
pts = 0;
}
@@ -1407,16 +1407,16 @@ static int demux_mpeg_pes_estimate_rate (demux_mpeg_pes_t *this) {
if ( (pos>last_pos) && (pts>last_pts) ) {
int cur_rate;
-
+
cur_rate = ((pos - last_pos)*90000) / ((pts - last_pts) * 50);
-
+
rate = (count * rate + cur_rate) / (count+1);
count ++;
-
+
/*
- printf ("demux_mpeg_pes: stream_id %02x, pos: %"PRId64", pts: %d, cur_rate = %d, overall rate : %d\n",
- stream_id, pos, pts, cur_rate, rate);
+ printf ("demux_mpeg_pes: stream_id %02x, pos: %"PRId64", pts: %d, cur_rate = %d, overall rate : %d\n",
+ stream_id, pos, pts, cur_rate, rate);
*/
}
@@ -1436,14 +1436,14 @@ static int demux_mpeg_pes_estimate_rate (demux_mpeg_pes_t *this) {
lprintf("est_rate=%d\n",rate);
return rate;
-
+
}
#endif /*ESTIMATE_RATE_FIXED*/
static void demux_mpeg_pes_dispose (demux_plugin_t *this_gen) {
demux_mpeg_pes_t *this = (demux_mpeg_pes_t *) this_gen;
-
+
av_free (this->scratch);
free (this);
}
@@ -1461,35 +1461,35 @@ static void demux_mpeg_pes_send_headers (demux_plugin_t *this_gen) {
this->video_fifo = this->stream->video_fifo;
this->audio_fifo = this->stream->audio_fifo;
- /*
+ /*
* send start buffer
*/
-
+
_x_demux_control_start(this->stream);
-
+
#ifdef USE_ILL_ADVISED_ESTIMATE_RATE_INITIALLY
- if (!this->rate)
+ if (!this->rate)
this->rate = demux_mpeg_pes_estimate_rate (this);
-#else
+#else
/* Set to Use rate given in by stream initially. */
- this->rate = 0;
+ this->rate = 0;
#endif
-
+
if((this->input->get_capabilities(this->input) & INPUT_CAP_SEEKABLE) != 0) {
-
+
int num_buffers = NUM_PREVIEW_BUFFERS;
-
+
this->input->seek (this->input, 0, SEEK_SET);
-
+
this->status = DEMUX_OK ;
while ( (num_buffers>0) && (this->status == DEMUX_OK) ) {
-
+
demux_mpeg_pes_parse_pack(this, 1);
num_buffers --;
}
- }
+ }
else if((this->input->get_capabilities(this->input) & INPUT_CAP_PREVIEW) != 0) {
-
+
this->preview_size = this->input->get_optional_data(this->input, &this->preview_data, INPUT_OPTIONAL_DATA_PREVIEW);
this->preview_done = 0;
@@ -1517,14 +1517,14 @@ static int demux_mpeg_pes_seek (demux_plugin_t *this_gen,
this->input->get_length (this->input) );
if((this->input->get_capabilities(this->input) & INPUT_CAP_SEEKABLE) != 0) {
-
+
if (start_pos) {
start_pos /= (off_t) 2048;
start_pos *= (off_t) 2048;
-
+
this->input->seek (this->input, start_pos, SEEK_SET);
} else if (start_time) {
-
+
if (this->last_cell_time) {
start_pos = start_time - (this->last_cell_time + this->last_begin_time)/1000;
start_pos *= this->rate;
@@ -1537,19 +1537,19 @@ static int demux_mpeg_pes_seek (demux_plugin_t *this_gen,
}
start_pos /= (off_t) 2048;
start_pos *= (off_t) 2048;
-
+
this->input->seek (this->input, start_pos, SEEK_SET);
} else
this->input->seek (this->input, 0, SEEK_SET);
}
-
+
/*
* now start demuxing
*/
this->last_cell_time = 0;
this->send_newpts = 1;
if( !playing ) {
-
+
this->buf_flag_seek = 0;
this->nav_last_end_pts = this->nav_last_start_pts = 0;
this->status = DEMUX_OK ;
@@ -1562,7 +1562,7 @@ static int demux_mpeg_pes_seek (demux_plugin_t *this_gen,
this->mpeg12_h264_detected = 0;
_x_demux_flush_engine(this->stream);
}
-
+
return this->status;
}
@@ -1580,7 +1580,7 @@ static void demux_mpeg_pes_accept_input (demux_mpeg_pes_t *this,
lprintf ("mrl %s is new\n", this->cur_mrl);
- }
+ }
else {
lprintf ("mrl %s is known, bitrate: %d\n",
this->cur_mrl, this->rate * 50 * 8);
@@ -1594,7 +1594,7 @@ static int demux_mpeg_pes_get_stream_length (demux_plugin_t *this_gen) {
* find input plugin
*/
- if (this->rate)
+ if (this->rate)
return (int)((int64_t) 1000 * this->input->get_length (this->input) /
(this->rate * 50));
else
@@ -1619,7 +1619,7 @@ static demux_plugin_t *open_plugin (demux_class_t *class_gen, xine_stream_t *str
this = calloc(1, sizeof(demux_mpeg_pes_t));
this->stream = stream;
this->input = input;
-
+
this->demux_plugin.send_headers = demux_mpeg_pes_send_headers;
this->demux_plugin.send_chunk = demux_mpeg_pes_send_chunk;
this->demux_plugin.seek = demux_mpeg_pes_seek;
@@ -1642,9 +1642,9 @@ static demux_plugin_t *open_plugin (demux_class_t *class_gen, xine_stream_t *str
lprintf ("open_plugin:detection_method=%d\n",
stream->content_detection_method);
-
+
switch (stream->content_detection_method) {
-
+
case METHOD_BY_CONTENT: {
/* use demux_mpeg_block for block devices */
@@ -1771,7 +1771,7 @@ static const demuxer_info_t demux_info_mpeg_pes = {
};
const plugin_info_t xine_plugin_info[] EXPORTED = {
- /* type, API, "name", version, special_info, init_function */
+ /* type, API, "name", version, special_info, init_function */
{ PLUGIN_DEMUX, 27, "mpeg_pes", XINE_VERSION_CODE, &demux_info_mpeg_pes, init_plugin },
{ PLUGIN_NONE, 0, "", 0, NULL, NULL }
};
diff --git a/src/demuxers/demux_mpgaudio.c b/src/demuxers/demux_mpgaudio.c
index 018f08eb9..8bcb7b760 100644
--- a/src/demuxers/demux_mpgaudio.c
+++ b/src/demuxers/demux_mpgaudio.c
@@ -1,18 +1,18 @@
/*
* Copyright (C) 2000-2007 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -98,7 +98,7 @@ typedef struct {
uint32_t stream_size;
uint8_t toc[XING_TOC_LENGTH];
uint32_t vbr_scale;
-
+
/* Lame extension */
uint16_t start_delay;
uint16_t end_delay;
@@ -289,7 +289,7 @@ static int parse_frame_header(mpg_audio_frame_t *const frame, const uint8_t *con
return 0;
}
#endif
-
+
{
const uint16_t samples = mp3_samples[frame->version_idx][frame->layer - 1];
frame->bitrate = mp3_bitrates[frame->version_idx][frame->layer - 1][frame_header.bitrate_idx] * 1000;
@@ -339,21 +339,21 @@ static xing_header_t *XINE_MALLOC parse_xing_header(mpg_audio_frame_t *frame,
else
ptr += (9 + 4);
}
-
+
if (ptr >= (buf + bufsize - 4)) goto exit_error;
lprintf("checking %08X\n", *ptr);
-
+
if (_X_BE_32(ptr) == XING_TAG) {
int has_frames_flag = 0;
int has_bytes_flag = 0;
-
+
xing = calloc(1, sizeof(xing_header_t));
if (!xing)
goto exit_error;
-
+
lprintf("found Xing header\n");
ptr += 4;
-
+
if (ptr >= (buf + bufsize - 4)) goto exit_error;
xing->flags = _X_BE_32(ptr); ptr += 4;
@@ -369,7 +369,7 @@ static xing_header_t *XINE_MALLOC parse_xing_header(mpg_audio_frame_t *frame,
lprintf("stream size: %d\n", xing->stream_size);
has_bytes_flag = 1;
}
-
+
/* check if it's a useful Xing header */
if (!has_frames_flag || !has_bytes_flag) {
lprintf("Stupid Xing tag, cannot do anything with it !\n");
@@ -427,7 +427,7 @@ static xing_header_t *XINE_MALLOC parse_xing_header(mpg_audio_frame_t *frame,
lprintf("Xing header not found\n");
}
return xing;
-
+
exit_error:
lprintf("Xing header parse error\n");
free(xing);
@@ -450,13 +450,13 @@ static vbri_header_t *XINE_MALLOC parse_vbri_header(mpg_audio_frame_t *frame,
return NULL;
ptr += (32 + 4);
-
+
if ((ptr + 4) >= (buf + bufsize)) return 0;
lprintf("Checking %08X\n", *ptr);
if (_X_BE_32(ptr) == VBRI_TAG) {
lprintf("found Vbri header\n");
ptr += 4;
-
+
if ((ptr + 22) >= (buf + bufsize)) return 0;
vbri->version = _X_BE_16(ptr); ptr += 2;
vbri->delai = _X_BE_16(ptr); ptr += 2;
@@ -699,7 +699,7 @@ static int sniff_buffer_looks_like_mp3 (uint8_t *buf, int buflen, int *version,
static int read_frame_header(demux_mpgaudio_t *this, uint8_t *header_buf, int bytes) {
off_t len;
int i;
-
+
for (i = 0; i < (4 - bytes); i++) {
header_buf[i] = header_buf[i + bytes];
}
@@ -955,7 +955,7 @@ static void demux_mpgaudio_send_headers (demux_plugin_t *this_gen) {
this->br = ((uint64_t)vbri->stream_size * 8 * 1000) / this->stream_length;
}
}
-
+
/* Set to default if Vbr header is incomplete or not present */
if (!this->br) {
/* assume CBR */
@@ -1144,7 +1144,7 @@ static uint32_t demux_mpgaudio_get_capabilities(demux_plugin_t *this_gen) {
static int demux_mpgaudio_get_optional_data(demux_plugin_t *this_gen,
void *data, int data_type) {
return DEMUX_OPTIONAL_UNSUPPORTED;
-}
+}
static demux_plugin_t *open_plugin (demux_class_t *class_gen, xine_stream_t *stream,
input_plugin_t *input) {
@@ -1166,7 +1166,7 @@ static demux_plugin_t *open_plugin (demux_class_t *class_gen, xine_stream_t *str
case METHOD_BY_MRL:
case METHOD_EXPLICIT:
break;
-
+
default:
return NULL;
}
@@ -1200,9 +1200,9 @@ static demux_plugin_t *open_plugin (demux_class_t *class_gen, xine_stream_t *str
* demux mpegaudio class
*/
void *demux_mpgaudio_init_class (xine_t *xine, void *data) {
-
+
demux_mpgaudio_class_t *this;
-
+
this = calloc(1, sizeof(demux_mpgaudio_class_t));
this->xine = xine;
@@ -1210,7 +1210,7 @@ void *demux_mpgaudio_init_class (xine_t *xine, void *data) {
this->demux_class.description = N_("MPEG audio demux plugin");
this->demux_class.identifier = "MPEGAUDIO";
if( _x_decoder_available(this->xine, BUF_AUDIO_MPEG) ) {
- this->demux_class.mimetypes =
+ this->demux_class.mimetypes =
"audio/mpeg2: mp2: MPEG audio;"
"audio/x-mpeg2: mp2: MPEG audio;"
"audio/mpeg3: mp3: MPEG audio;"
diff --git a/src/demuxers/demux_nsv.c b/src/demuxers/demux_nsv.c
index 3c67cbf78..89b6de6d6 100644
--- a/src/demuxers/demux_nsv.c
+++ b/src/demuxers/demux_nsv.c
@@ -106,17 +106,17 @@ static void nsv_parse_framerate(demux_nsv_t *this, uint8_t framerate)
/* 29.97 fps */
this->frame_pts_inc = 3003;
break;
-
+
case 3:
/* 23.976 fps */
this->frame_pts_inc = 3753;
break;
-
+
case 5:
/* 14.98 fps */
this->frame_pts_inc = 6006;
break;
-
+
default:
lprintf("unknown framerate: 0x%02X\n", this->fps);
this->frame_pts_inc = 90000;
@@ -124,7 +124,7 @@ static void nsv_parse_framerate(demux_nsv_t *this, uint8_t framerate)
}
} else
this->frame_pts_inc = 90000 / this->fps;
-
+
lprintf("frame_pts_inc=%d\n", this->frame_pts_inc);
}
@@ -138,7 +138,7 @@ static off_t nsv_read(demux_nsv_t *this, uint8_t *buffer, off_t len) {
int ultravox_rest;
int buffer_pos = 0;
-
+
/* ultravox stuff */
while (len) {
ultravox_rest = this->ultravox_size - this->ultravox_pos;
@@ -194,7 +194,7 @@ static off_t nsv_seek(demux_nsv_t *this, off_t offset, int origin) {
/* ultravox stuff */
if (origin == SEEK_CUR) {
uint8_t buffer[1024];
-
+
while (offset) {
if (offset > sizeof(buffer)) {
if (nsv_read(this, buffer, sizeof(buffer)) != sizeof(buffer))
@@ -221,7 +221,7 @@ static int nsv_resync(demux_nsv_t *this) {
for (i = 0; i < NSV_MAX_RESYNC; i++) {
uint8_t byte;
-
+
if (nsv_read(this, &byte, 1) != 1)
return NSV_RESYNC_ERROR;
@@ -267,11 +267,11 @@ static int open_nsv_file(demux_nsv_t *this) {
while (!NSVs_found) {
switch (nsv_resync(this)) {
-
+
case NSV_RESYNC_NSVf:
{
uint32_t chunk_size;
-
+
/* if there is a NSVs tag, load 24 more header bytes; load starting at
* offset 4 in buffer to keep header data in line with document */
if (nsv_read(this, &preview[4], 24) != 24)
@@ -280,20 +280,20 @@ static int open_nsv_file(demux_nsv_t *this) {
lprintf("found NSVf chunk\n");
/* this->data_size = _X_LE_32(&preview[8]);*/
/*lprintf("data_size: %lld\n", this->data_size);*/
-
+
/* skip the rest of the data */
chunk_size = _X_LE_32(&preview[4]);
nsv_seek(this, chunk_size - 28, SEEK_CUR);
}
break;
-
+
case NSV_RESYNC_NSVs:
-
- /* fetch the remaining 15 header bytes of the first chunk to get the
+
+ /* fetch the remaining 15 header bytes of the first chunk to get the
* relevant information */
if (nsv_read(this, &preview[4], 15) != 15)
return 0;
-
+
this->video_fourcc = _X_ME_32(&preview[4]);
if (_x_is_fourcc(&preview[4], "NONE"))
this->video_type = 0;
@@ -303,7 +303,7 @@ static int open_nsv_file(demux_nsv_t *this) {
if (!this->video_type)
_x_report_video_fourcc (this->stream->xine, LOG_MODULE, this->video_fourcc);
}
-
+
this->audio_fourcc = _X_ME_32(&preview[8]);
if (_x_is_fourcc(&preview[8], "NONE"))
this->audio_type = 0;
@@ -313,16 +313,16 @@ static int open_nsv_file(demux_nsv_t *this) {
if (!this->audio_type)
_x_report_audio_format_tag (this->stream->xine, LOG_MODULE, this->audio_fourcc);
}
-
+
this->bih.biSize = sizeof(this->bih);
this->bih.biWidth = _X_LE_16(&preview[12]);
this->bih.biHeight = _X_LE_16(&preview[14]);
this->bih.biCompression = this->video_fourcc;
this->video_pts = 0;
-
+
/* may not be true, but set it for the time being */
this->frame_pts_inc = 3003;
-
+
lprintf("video: %c%c%c%c, buffer type %08X, %dx%d\n",
preview[4],
preview[5],
@@ -341,10 +341,10 @@ static int open_nsv_file(demux_nsv_t *this) {
nsv_parse_framerate(this, preview[16]);
NSVs_found = 1;
break;
-
+
case NSV_RESYNC_ERROR:
return 0;
-
+
}
}
@@ -466,27 +466,27 @@ static int demux_nsv_send_chunk(demux_plugin_t *this_gen) {
current_file_pos = this->input->get_current_pos(this->input);
lprintf("dispatching video & audio chunks...\n");
-
+
if (this->is_first_chunk) {
chunk_type = NSV_RESYNC_BEEF;
this->is_first_chunk = 0;
} else {
chunk_type = nsv_resync(this);
}
-
+
switch (chunk_type) {
case NSV_RESYNC_NSVf:
/* do nothing */
break;
-
+
case NSV_RESYNC_NSVs:
/* skip header */
if (nsv_read(this, buffer, 15) != 15)
return 0;
nsv_parse_framerate(this, buffer[12]);
-
+
/* fall thru */
-
+
case NSV_RESYNC_BEEF:
if (nsv_read(this, buffer, 5) != 5) {
this->status = DEMUX_FINISHED;
@@ -496,15 +496,15 @@ static int demux_nsv_send_chunk(demux_plugin_t *this_gen) {
video_size >>= 4;
video_size &= 0xFFFFF;
audio_size = _X_LE_16(&buffer[3]);
-
+
nsv_parse_payload(this, video_size, audio_size);
break;
-
+
case NSV_RESYNC_ERROR:
this->status = DEMUX_FINISHED;
break;
}
-
+
return this->status;
}
diff --git a/src/demuxers/demux_playlist.c b/src/demuxers/demux_playlist.c
index 3dd689657..a273f0242 100644
--- a/src/demuxers/demux_playlist.c
+++ b/src/demuxers/demux_playlist.c
@@ -1,18 +1,18 @@
/*
* Copyright (C) 2007 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
@@ -22,7 +22,7 @@
* Claudio Ciccani (klan@users.sourceforge.net)
*
*/
-
+
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
@@ -60,13 +60,13 @@ typedef enum {
typedef struct {
demux_plugin_t demux_plugin;
-
+
xine_t *xine;
xine_stream_t *stream;
input_plugin_t *input;
-
+
playlist_t playlist;
-
+
int status;
} demux_playlist_t;
@@ -76,12 +76,12 @@ typedef struct {
static playlist_t detect_by_extension (input_plugin_t *input) {
- char *ext;
-
+ char *ext;
+
ext = strrchr (input->get_mrl (input), '.');
if (!ext)
- return XINE_PLT_NONE;
-
+ return XINE_PLT_NONE;
+
if (!strcasecmp (ext, ".m3u"))
return XINE_PLT_M3U;
if (!strcasecmp (ext, ".ram"))
@@ -108,24 +108,24 @@ static playlist_t detect_by_extension (input_plugin_t *input) {
static playlist_t detect_by_content (input_plugin_t *input) {
char buf[256], *tmp;
int len;
-
+
len = _x_demux_read_header (input, buf, sizeof(buf)-1);
if (len <= 0)
return XINE_PLT_NONE;
buf[len] = '\0';
-
+
tmp = buf;
while (*tmp && isspace(*tmp))
tmp++;
-
+
if (!strncmp (tmp, "[Reference]", 11) ||
!strncmp (tmp, "Ref1=", 5))
return XINE_PLT_REF;
if (!strncmp (tmp, "#EXTM3U", 7))
return XINE_PLT_M3U;
if (!strncmp (tmp, "file://", 7) ||
- !strncmp (tmp, "http://", 7) ||
- !strncmp (tmp, "rtsp://", 7) ||
+ !strncmp (tmp, "http://", 7) ||
+ !strncmp (tmp, "rtsp://", 7) ||
!strncmp (tmp, "pnm://", 6))
return XINE_PLT_RAM;
if (!strncmp (tmp, "[Playlist]", 10 ))
@@ -140,7 +140,7 @@ static playlist_t detect_by_content (input_plugin_t *input) {
return XINE_PLT_XSPF;
if (!strncmp (tmp, "<rss", 4))
return XINE_PLT_RSS;
-
+
if (!strncmp (tmp, "<?xml", 5)) {
tmp += 5;
while ((tmp = strchr (tmp, '<'))) {
@@ -157,27 +157,27 @@ static playlist_t detect_by_content (input_plugin_t *input) {
tmp++;
}
}
-
+
return XINE_PLT_NONE;
}
static char* trim (char *s) {
char *e;
-
+
while (*s && isspace(*s))
s++;
-
+
e = s + strlen(s) - 1;
while (e > s && isspace(*e))
*e-- = '\0';
-
+
return s;
}
static int parse_time (const char *s) {
int t = 0;
int i;
-
+
if (!s)
return 0;
@@ -185,7 +185,7 @@ static int parse_time (const char *s) {
s += 4;
else if (!strncmp (s, "smpte=", 6))
s += 6;
-
+
for (i = 0; i < 3; i++) {
t *= 60;
t += atoi(s);
@@ -202,12 +202,12 @@ static void parse_ref (demux_playlist_t *this, char *data, int length) {
char *src = data;
char *end;
int alt = 0;
-
+
while (src && *src) {
end = strchr (src, '\n');
if (end)
*end = '\0';
-
+
src = trim (src);
if (!strncmp (src, "Ref", 3)) {
src = strchr (src, '=');
@@ -216,7 +216,7 @@ static void parse_ref (demux_playlist_t *this, char *data, int length) {
_x_demux_send_mrl_reference (this->stream, alt++, src+1, NULL, 0, 0);
}
}
-
+
src = end;
if (src)
src++;
@@ -227,12 +227,12 @@ static void parse_m3u (demux_playlist_t *this, char *data, int length) {
char *src = data;
char *end;
char *title = NULL;
-
+
while (src && *src) {
end = strchr (src, '\n');
if (end)
*end = '\0';
-
+
src = trim (src);
if (*src == '#') {
if (!strncmp (src+1, "EXTINF:", 7)) {
@@ -245,7 +245,7 @@ static void parse_m3u (demux_playlist_t *this, char *data, int length) {
lprintf ("mrl:'%s'\n", src);
_x_demux_send_mrl_reference (this->stream, 0, src, title, 0, 0);
}
-
+
src = end;
if (src)
src++;
@@ -255,19 +255,19 @@ static void parse_m3u (demux_playlist_t *this, char *data, int length) {
static void parse_ram (demux_playlist_t *this, char *data, int length) {
char *src = data;
char *end;
-
+
while (src && *src) {
end = strchr (src, '\n');
if (end)
*end = '\0';
-
- src = trim (src);
+
+ src = trim (src);
if (!strcmp (src, "--stop--"))
break;
-
+
if (*src && *src != '#') {
char *title = NULL;
-
+
if (!strncmp (src, "rtsp://", 7) || !strncmp (src, "pnm://", 7)) {
char *tmp = strrchr (src, '?');
if (tmp) {
@@ -281,11 +281,11 @@ static void parse_ram (demux_playlist_t *this, char *data, int length) {
}
}
}
-
+
lprintf ("mrl:'%s'\n", src);
_x_demux_send_mrl_reference (this->stream, 0, src, title, 0, 0);
}
-
+
src = end;
if (src)
src++;
@@ -295,12 +295,12 @@ static void parse_ram (demux_playlist_t *this, char *data, int length) {
static void parse_pls (demux_playlist_t *this, char *data, int length) {
char *src = data;
char *end;
-
+
while (src && *src) {
end = strchr (src, '\n');
if (end)
*end = '\0';
-
+
src = trim (src);
if (!strncmp (src, "File", 4)) {
src = strchr (src+4, '=');
@@ -309,7 +309,7 @@ static void parse_pls (demux_playlist_t *this, char *data, int length) {
_x_demux_send_mrl_reference (this->stream, 0, src+1, NULL, 0, 0);
}
}
-
+
src = end;
if (src)
src++;
@@ -319,20 +319,20 @@ static void parse_pls (demux_playlist_t *this, char *data, int length) {
static void parse_asx (demux_playlist_t *this, char *data, int length) {
xml_node_t *root, *node, *tmp;
int is_asx = 0;
-
+
xml_parser_init (data, length, XML_PARSER_CASE_INSENSITIVE);
-
+
if (xml_parser_build_tree (&root) >= 0) {
if (!strcasecmp (root->name, "asx")) {
is_asx = 1;
-
+
for (node = root->child; node; node = node->next) {
if (!strcasecmp (node->name, "entry")) {
const char *title = NULL;
const char *src = NULL;
const char *start = NULL;
const char *duration = NULL;
-
+
for (tmp = node->child; tmp; tmp = tmp->next) {
if (!strcasecmp (tmp->name, "title")) {
title = tmp->data;
@@ -347,7 +347,7 @@ static void parse_asx (demux_playlist_t *this, char *data, int length) {
duration = xml_parser_get_property (tmp, "value");
}
}
-
+
if (src) {
lprintf ("mrl:'%s'\n", src);
_x_demux_send_mrl_reference (this->stream, 0, src, title,
@@ -359,45 +359,45 @@ static void parse_asx (demux_playlist_t *this, char *data, int length) {
xml_parser_free_tree (root);
}
-
+
if (!is_asx) {
/* No tags found? Might be a references list. */
parse_ref (this, data, length);
- }
+ }
}
static void parse_smi (demux_playlist_t *this, char *data, int length) {
xml_node_t *root, *node, *tmp;
int is_smi = 0;
-
+
xml_parser_init (data, length, XML_PARSER_CASE_SENSITIVE);
-
+
if (xml_parser_build_tree (&root) >= 0) {
for (node = root; node; node = node->next) {
if (!strcmp (node->name, "smil"))
break;
}
-
+
if (node) {
is_smi = 1;
-
+
for (node = node->child; node; node = node->next) {
if (!strcmp (node->name, "body")) {
for (tmp = node->child; tmp; tmp = tmp->next) {
if (!strcmp (tmp->name, "audio") || !strcmp (tmp->name, "video")) {
const char *src, *title;
int start, end;
-
+
src = xml_parser_get_property (tmp, "src");
title = xml_parser_get_property (tmp, "title");
start = parse_time (xml_parser_get_property (tmp, "clipBegin") ? :
xml_parser_get_property (tmp, "clip-begin"));
end = parse_time (xml_parser_get_property (tmp, "clipEnd") ? :
xml_parser_get_property (tmp, "clip-end"));
-
+
if (src) {
lprintf ("mrl:'%s'\n", src);
- _x_demux_send_mrl_reference (this->stream, 0, src, title,
+ _x_demux_send_mrl_reference (this->stream, 0, src, title,
start, end ? (end-start) : 0);
}
}
@@ -405,10 +405,10 @@ static void parse_smi (demux_playlist_t *this, char *data, int length) {
}
}
}
-
+
xml_parser_free_tree (root);
}
-
+
if (!is_smi) {
/* No tags found? Might be a RAM playlist. */
parse_ram (this, data, length);
@@ -417,14 +417,14 @@ static void parse_smi (demux_playlist_t *this, char *data, int length) {
static void parse_qtl (demux_playlist_t *this, char *data, int length) {
xml_node_t *root, *node;
-
+
xml_parser_init (data, length, XML_PARSER_CASE_SENSITIVE);
-
+
if (xml_parser_build_tree (&root) >= 0) {
for (node = root; node; node = node->next) {
if (!strcmp (node->name, "embed")) {
const char *src;
-
+
src = xml_parser_get_property (node, "src");
if (src) {
lprintf ("mrl:'%s'\n", src);
@@ -432,7 +432,7 @@ static void parse_qtl (demux_playlist_t *this, char *data, int length) {
}
}
}
-
+
xml_parser_free_tree (root);
}
}
@@ -441,7 +441,7 @@ static void parse_xspf (demux_playlist_t *this, char *data, int length) {
xml_node_t *root, *node, *tmp;
xml_parser_init (data, length, XML_PARSER_CASE_SENSITIVE);
-
+
if (xml_parser_build_tree (&root) >= 0) {
for (node = root; node; node = node->next) {
if (!strcmp (node->name, "playlist"))
@@ -453,12 +453,12 @@ static void parse_xspf (demux_playlist_t *this, char *data, int length) {
break;
}
}
- if (node) {
+ if (node) {
for (node = node->child; node; node = node->next) {
if (!strcmp (node->name, "track")) {
char *src = NULL;
char *title = NULL;
-
+
for (tmp = node->child; tmp; tmp = tmp->next) {
if (!strcmp (tmp->name, "location")) {
src = trim((char*)tmp->data);
@@ -467,7 +467,7 @@ static void parse_xspf (demux_playlist_t *this, char *data, int length) {
title = trim((char*)tmp->data);
}
}
-
+
if (src) {
lprintf ("mrl:'%s'\n", src);
_x_demux_send_mrl_reference (this->stream, 0, src, title, 0, 0);
@@ -475,7 +475,7 @@ static void parse_xspf (demux_playlist_t *this, char *data, int length) {
}
}
}
-
+
xml_parser_free_tree (root);
}
}
@@ -484,7 +484,7 @@ static void parse_rss (demux_playlist_t *this, char *data, int length) {
xml_node_t *root, *node, *item, *tmp;
xml_parser_init (data, length, XML_PARSER_CASE_SENSITIVE);
-
+
if (xml_parser_build_tree (&root) >= 0) {
for (node = root; node; node = node->next) {
if (!strcmp (node->name, "rss"))
@@ -509,7 +509,7 @@ static void parse_rss (demux_playlist_t *this, char *data, int length) {
src = xml_parser_get_property (tmp, "url");
}
}
-
+
if (src) {
lprintf ("mrl:'%s'\n", src);
_x_demux_send_mrl_reference (this->stream, 0, src, title, 0, 0);
@@ -518,7 +518,7 @@ static void parse_rss (demux_playlist_t *this, char *data, int length) {
}
}
}
-
+
xml_parser_free_tree (root);
}
}
@@ -526,20 +526,20 @@ static void parse_rss (demux_playlist_t *this, char *data, int length) {
static void demux_playlist_send_headers (demux_plugin_t *this_gen) {
demux_playlist_t *this = (demux_playlist_t *) this_gen;
-
+
this->status = DEMUX_OK;
-
+
_x_demux_control_start (this->stream);
-
+
this->input->seek (this->input, 0, SEEK_SET);
}
-
+
static int demux_playlist_send_chunk (demux_plugin_t *this_gen) {
demux_playlist_t *this = (demux_playlist_t *) this_gen;
char *data = NULL;
int length;
-
+
length = this->input->get_length (this->input);
if (length > 0) {
data = xine_xmalloc (length+1);
@@ -549,21 +549,21 @@ static int demux_playlist_send_chunk (demux_plugin_t *this_gen) {
else {
char buf[1024];
int len;
-
+
length = 0;
while ((len = this->input->read (this->input, buf, sizeof(buf))) > 0) {
data = realloc (data, length+len+1);
if (!data)
break;
-
+
memcpy (data+length, buf, len);
length += len;
data[length] = '\0';
}
}
-
+
lprintf ("data:%p length:%d\n", data, length);
-
+
if (data) {
switch (this->playlist) {
case XINE_PLT_REF:
@@ -597,12 +597,12 @@ static int demux_playlist_send_chunk (demux_plugin_t *this_gen) {
lprintf ("unexpected playlist type 0x%08x\n", this->playlist);
break;
}
-
+
free (data);
}
this->status = DEMUX_FINISHED;
-
+
return DEMUX_FINISHED;
}
@@ -613,7 +613,7 @@ static int demux_playlist_seek (demux_plugin_t *this_gen,
static int demux_playlist_get_status (demux_plugin_t *this_gen) {
demux_playlist_t *this = (demux_playlist_t *) this_gen;
-
+
return this->status;
}
@@ -631,7 +631,7 @@ static int demux_playlist_get_optional_data (demux_plugin_t *this_gen,
}
-static demux_plugin_t *open_plugin (demux_class_t *class_gen,
+static demux_plugin_t *open_plugin (demux_class_t *class_gen,
xine_stream_t *stream, input_plugin_t *input) {
demux_playlist_t *this;
@@ -649,7 +649,7 @@ static demux_plugin_t *open_plugin (demux_class_t *class_gen,
this->demux_plugin.get_capabilities = demux_playlist_get_capabilities;
this->demux_plugin.get_optional_data = demux_playlist_get_optional_data;
this->demux_plugin.demux_class = class_gen;
-
+
switch (stream->content_detection_method) {
case METHOD_BY_MRL:
lprintf ("detect by extension\n");
@@ -659,7 +659,7 @@ static demux_plugin_t *open_plugin (demux_class_t *class_gen,
return NULL;
}
break;
-
+
case METHOD_BY_CONTENT:
case METHOD_EXPLICIT:
lprintf ("detect by content\n");
@@ -674,9 +674,9 @@ static demux_plugin_t *open_plugin (demux_class_t *class_gen,
free (this);
return NULL;
}
-
+
lprintf ("playlist:0x%08x (%s)\n", this->playlist, (char*)&this->playlist);
-
+
return &this->demux_plugin;
}
@@ -688,7 +688,7 @@ static void *init_plugin (xine_t *xine, void *data) {
this->demux_class.open_plugin = open_plugin;
this->demux_class.description = N_("Playlist demux plugin");
this->demux_class.identifier = "playlist";
- this->demux_class.mimetypes =
+ this->demux_class.mimetypes =
"audio/mpegurl: m3u: M3U playlist;"
"audio/x-mpegurl: m3u: M3U playlist;"
//"audio/x-pn-realaudio: ram: RAM playlist;"
diff --git a/src/demuxers/demux_pva.c b/src/demuxers/demux_pva.c
index 64ba078db..532a11fdc 100644
--- a/src/demuxers/demux_pva.c
+++ b/src/demuxers/demux_pva.c
@@ -148,7 +148,7 @@ static int demux_pva_send_chunk(demux_plugin_t *this_gen) {
current_file_pos = this->input->get_current_pos(this->input);
if (preamble[2] == 1) {
-
+
/* video */
/* load the pts if it is the first thing in the chunk */
@@ -253,7 +253,7 @@ static int demux_pva_send_chunk(demux_plugin_t *this_gen) {
buf->pts = pts;
if( this->data_size )
- buf->extra_info->input_normpos = (int) ((double) this->input->get_current_pos(this->input) *
+ buf->extra_info->input_normpos = (int) ((double) this->input->get_current_pos(this->input) *
65535 / this->data_size);
this->audio_fifo->put (this->audio_fifo, buf);
@@ -302,7 +302,7 @@ static void demux_pva_send_headers(demux_plugin_t *this_gen) {
buf->pts = 0;
if( this->data_size )
- buf->extra_info->input_normpos = (int) ((double) this->input->get_current_pos(this->input) *
+ buf->extra_info->input_normpos = (int) ((double) this->input->get_current_pos(this->input) *
65535 / this->data_size);
buf->type = BUF_VIDEO_MPEG;
@@ -329,7 +329,7 @@ static void demux_pva_send_headers(demux_plugin_t *this_gen) {
buf->pts = 0;
if( this->data_size )
- buf->extra_info->input_normpos = (int) ((double) this->input->get_current_pos(this->input) *
+ buf->extra_info->input_normpos = (int) ((double) this->input->get_current_pos(this->input) *
65535 / this->data_size);
buf->type = BUF_AUDIO_MPEG;
@@ -347,7 +347,7 @@ static int demux_pva_seek (demux_plugin_t *this_gen,
unsigned char seek_buffer[SEEK_BUFFER_SIZE];
int found = 0;
int i;
-
+
start_pos = (off_t) ( (double) start_pos / 65535 *
this->data_size );
diff --git a/src/demuxers/demux_qt.c b/src/demuxers/demux_qt.c
index ce4ccba7d..958122bf1 100644
--- a/src/demuxers/demux_qt.c
+++ b/src/demuxers/demux_qt.c
@@ -266,10 +266,10 @@ typedef struct {
/* flags that indicate how a trak is supposed to be used */
unsigned int flags;
-
+
/* formattag-like field that specifies codec in mp4 files */
unsigned int object_type_id;
-
+
/* decoder data pass information to the decoder */
void *decoder_config;
int decoder_config_len;
@@ -311,7 +311,7 @@ typedef struct {
unsigned int modification_time;
unsigned int timescale; /* base clock frequency is Hz */
unsigned int duration;
-
+
int64_t moov_first_offset;
int trak_count;
@@ -385,7 +385,7 @@ typedef struct {
* lazyqt special debugging functions
**********************************************************************/
-/* define DEBUG_ATOM_LOAD as 1 to get a verbose parsing of the relevant
+/* define DEBUG_ATOM_LOAD as 1 to get a verbose parsing of the relevant
* atoms */
#define DEBUG_ATOM_LOAD 0
@@ -411,7 +411,7 @@ typedef struct {
/* Define DEBUG_DUMP_MOOV as 1 to dump the raw moov atom to disk. This is
* particularly useful in debugging a file with a compressed moov (cmov)
- * atom. The atom will be dumped to the filename specified as
+ * atom. The atom will be dumped to the filename specified as
* RAW_MOOV_FILENAME. */
#define DEBUG_DUMP_MOOV 0
#define RAW_MOOV_FILENAME "moovatom.raw"
@@ -512,7 +512,7 @@ static void find_moov_atom(input_plugin_t *input, off_t *moov_offset,
atom = _X_BE_32(&atom_preamble[4]);
/* Special case alert: 'free' atoms sometimes masquerade as 'moov'
- * atoms. If this is a free atom, check for 'cmov' or 'mvhd' immediately
+ * atoms. If this is a free atom, check for 'cmov' or 'mvhd' immediately
* following. QT Player can handle it, so xine should too. */
if (atom == FREE_ATOM) {
@@ -543,7 +543,7 @@ static void find_moov_atom(input_plugin_t *input, off_t *moov_offset,
/* if this atom is not the moov atom, make sure that it is at least one
* of the other top-level QT atom.
- * However, allow a configurable amount ( currently 1 ) atom be a
+ * However, allow a configurable amount ( currently 1 ) atom be a
* non known atom, in hopes a known atom will be found */
if ((atom != FREE_ATOM) &&
(atom != JUNK_ATOM) &&
@@ -716,7 +716,7 @@ static int is_qt_file(input_plugin_t *qt_file) {
} else {
unsigned char atom_preamble[ATOM_PREAMBLE_SIZE];
/* check that the next atom in the chunk contains alphanumeric
- * characters in the atom type field; if not, disqualify the file
+ * characters in the atom type field; if not, disqualify the file
* as a QT file */
qt_file->seek(qt_file, moov_atom_offset + ATOM_PREAMBLE_SIZE, SEEK_SET);
if (qt_file->read(qt_file, atom_preamble, ATOM_PREAMBLE_SIZE) !=
@@ -732,7 +732,7 @@ static int is_qt_file(input_plugin_t *qt_file) {
static char *parse_data_atom(const uint8_t *data_atom, uint32_t max_size) {
uint32_t data_atom_size = _X_BE_32(&data_atom[0]);
-
+
static const int data_atom_max_version = 0;
const int data_atom_version = data_atom[8];
@@ -785,7 +785,7 @@ static void parse_meta_atom(qt_info *info, unsigned char *meta_atom) {
const qt_atom current_atom_code = _X_BE_32(&current_atom[4]);
const uint32_t current_atom_size = _X_BE_32(&current_atom[0]);
uint32_t handler_type = 0;
-
+
switch (current_atom_code) {
case HDLR_ATOM: {
static const int hdlr_atom_max_version = 0;
@@ -869,7 +869,7 @@ static void parse_mvhd_atom(qt_info *info, unsigned char *mvhd_atom) {
static int mp4_read_descr_len(unsigned char *s, uint32_t *length) {
uint8_t b;
uint8_t numBytes = 0;
-
+
*length = 0;
do {
@@ -935,14 +935,14 @@ static qt_error parse_trak_atom (qt_trak *trak,
break;
}
}
-
+
debug_atom_load(" qt: parsing %s trak atom\n",
(trak->type == MEDIA_VIDEO) ? "video" :
(trak->type == MEDIA_AUDIO) ? "audio" : "other");
/* search for the useful atoms */
for (i = ATOM_PREAMBLE_SIZE; i < trak_atom_size - 4; i++) {
- const uint32_t current_atom_size = _X_BE_32(&trak_atom[i - 4]);
+ const uint32_t current_atom_size = _X_BE_32(&trak_atom[i - 4]);
const qt_atom current_atom = _X_BE_32(&trak_atom[i]);
switch(current_atom) {
@@ -1014,7 +1014,7 @@ static qt_error parse_trak_atom (qt_trak *trak,
properties_offset = 0x0C;
for (k = 0; k < trak->stsd_atoms_count; k++) {
- const uint32_t current_stsd_atom_size = _X_BE_32(&trak_atom[atom_pos - 4]);
+ const uint32_t current_stsd_atom_size = _X_BE_32(&trak_atom[atom_pos - 4]);
if (current_stsd_atom_size < 4) {
last_error = QT_HEADER_TROUBLE;
goto free_trak;
@@ -1037,7 +1037,7 @@ static qt_error parse_trak_atom (qt_trak *trak,
/* copy the properties atom */
trak->stsd_atoms[k].video.properties_atom_size = current_stsd_atom_size - 4;
- trak->stsd_atoms[k].video.properties_atom =
+ trak->stsd_atoms[k].video.properties_atom =
xine_xmalloc(trak->stsd_atoms[k].video.properties_atom_size);
if (!trak->stsd_atoms[k].video.properties_atom) {
last_error = QT_NO_MEMORY;
@@ -1055,7 +1055,7 @@ static qt_error parse_trak_atom (qt_trak *trak,
trak->stsd_atoms[k].video.palette_count = 0;
/* fetch video parameters */
- if( _X_BE_16(&trak_atom[atom_pos + 0x1C]) &&
+ if( _X_BE_16(&trak_atom[atom_pos + 0x1C]) &&
_X_BE_16(&trak_atom[atom_pos + 0x1E]) ) {
trak->stsd_atoms[k].video.width =
_X_BE_16(&trak_atom[atom_pos + 0x1C]);
@@ -1083,9 +1083,9 @@ static qt_error parse_trak_atom (qt_trak *trak,
/* compute the greyscale palette */
color_index = 255;
- color_dec = 256 /
+ color_dec = 256 /
(trak->stsd_atoms[k].video.palette_count - 1);
- for (j = 0;
+ for (j = 0;
j < trak->stsd_atoms[k].video.palette_count;
j++) {
@@ -1110,7 +1110,7 @@ static qt_error parse_trak_atom (qt_trak *trak,
else
color_table = qt_default_palette_256;
- for (j = 0;
+ for (j = 0;
j < trak->stsd_atoms[k].video.palette_count;
j++) {
@@ -1137,7 +1137,7 @@ static qt_error parse_trak_atom (qt_trak *trak,
color_index = _X_BE_16(&trak_atom[atom_pos + 0x5A + j * 8]);
if (color_count & 0x8000)
color_index = j;
- if (color_index <
+ if (color_index <
trak->stsd_atoms[k].video.palette_count) {
trak->stsd_atoms[k].video.palette[color_index].r =
trak_atom[atom_pos + 0x5A + j * 8 + 2];
@@ -1180,7 +1180,7 @@ static qt_error parse_trak_atom (qt_trak *trak,
/* copy the properties atom */
trak->stsd_atoms[k].audio.properties_atom_size = current_stsd_atom_size - 4;
- trak->stsd_atoms[k].audio.properties_atom =
+ trak->stsd_atoms[k].audio.properties_atom =
xine_xmalloc(trak->stsd_atoms[k].audio.properties_atom_size);
if (!trak->stsd_atoms[k].audio.properties_atom) {
last_error = QT_NO_MEMORY;
@@ -1202,12 +1202,12 @@ static qt_error parse_trak_atom (qt_trak *trak,
trak->stsd_atoms[k].audio.bits / 8;
trak->stsd_atoms[k].audio.samples_per_frame =
trak->stsd_atoms[k].audio.channels;
- trak->stsd_atoms[k].audio.bytes_per_frame =
- trak->stsd_atoms[k].audio.bytes_per_sample *
+ trak->stsd_atoms[k].audio.bytes_per_frame =
+ trak->stsd_atoms[k].audio.bytes_per_sample *
trak->stsd_atoms[k].audio.samples_per_frame;
- trak->stsd_atoms[k].audio.samples_per_packet =
+ trak->stsd_atoms[k].audio.samples_per_packet =
trak->stsd_atoms[k].audio.samples_per_frame;
- trak->stsd_atoms[k].audio.bytes_per_packet =
+ trak->stsd_atoms[k].audio.bytes_per_packet =
trak->stsd_atoms[k].audio.bytes_per_sample;
/* special case time: A lot of CBR audio codecs stored in the
@@ -1215,7 +1215,7 @@ static qt_error parse_trak_atom (qt_trak *trak,
if (trak->stsd_atoms[k].audio.codec_fourcc == IMA4_FOURCC) {
trak->stsd_atoms[k].audio.samples_per_packet = 64;
trak->stsd_atoms[k].audio.bytes_per_packet = 34;
- trak->stsd_atoms[k].audio.bytes_per_frame = 34 *
+ trak->stsd_atoms[k].audio.bytes_per_frame = 34 *
trak->stsd_atoms[k].audio.channels;
trak->stsd_atoms[k].audio.bytes_per_sample = 2;
trak->stsd_atoms[k].audio.samples_per_frame = 64 *
@@ -1231,7 +1231,7 @@ static qt_error parse_trak_atom (qt_trak *trak,
} else if (trak->stsd_atoms[k].audio.codec_fourcc == MAC6_FOURCC) {
trak->stsd_atoms[k].audio.samples_per_packet = 6;
trak->stsd_atoms[k].audio.bytes_per_packet = 1;
- trak->stsd_atoms[k].audio.bytes_per_frame = 1 *
+ trak->stsd_atoms[k].audio.bytes_per_frame = 1 *
trak->stsd_atoms[k].audio.channels;
trak->stsd_atoms[k].audio.bytes_per_sample = 1;
trak->stsd_atoms[k].audio.samples_per_frame = 6 *
@@ -1239,7 +1239,7 @@ static qt_error parse_trak_atom (qt_trak *trak,
} else if (trak->stsd_atoms[k].audio.codec_fourcc == ALAW_FOURCC) {
trak->stsd_atoms[k].audio.samples_per_packet = 1;
trak->stsd_atoms[k].audio.bytes_per_packet = 1;
- trak->stsd_atoms[k].audio.bytes_per_frame = 1 *
+ trak->stsd_atoms[k].audio.bytes_per_frame = 1 *
trak->stsd_atoms[k].audio.channels;
trak->stsd_atoms[k].audio.bytes_per_sample = 2;
trak->stsd_atoms[k].audio.samples_per_frame = 2 *
@@ -1247,7 +1247,7 @@ static qt_error parse_trak_atom (qt_trak *trak,
} else if (trak->stsd_atoms[k].audio.codec_fourcc == ULAW_FOURCC) {
trak->stsd_atoms[k].audio.samples_per_packet = 1;
trak->stsd_atoms[k].audio.bytes_per_packet = 1;
- trak->stsd_atoms[k].audio.bytes_per_frame = 1 *
+ trak->stsd_atoms[k].audio.bytes_per_frame = 1 *
trak->stsd_atoms[k].audio.channels;
trak->stsd_atoms[k].audio.bytes_per_sample = 2;
trak->stsd_atoms[k].audio.samples_per_frame = 2 *
@@ -1266,20 +1266,20 @@ static qt_error parse_trak_atom (qt_trak *trak,
(trak->stsd_atoms[k].audio.codec_fourcc != RAW_FOURCC)) {
if (_X_BE_32(&trak_atom[atom_pos + 0x20]))
- trak->stsd_atoms[k].audio.samples_per_packet =
+ trak->stsd_atoms[k].audio.samples_per_packet =
_X_BE_32(&trak_atom[atom_pos + 0x20]);
if (_X_BE_32(&trak_atom[atom_pos + 0x24]))
- trak->stsd_atoms[k].audio.bytes_per_packet =
+ trak->stsd_atoms[k].audio.bytes_per_packet =
_X_BE_32(&trak_atom[atom_pos + 0x24]);
if (_X_BE_32(&trak_atom[atom_pos + 0x28]))
- trak->stsd_atoms[k].audio.bytes_per_frame =
+ trak->stsd_atoms[k].audio.bytes_per_frame =
_X_BE_32(&trak_atom[atom_pos + 0x28]);
if (_X_BE_32(&trak_atom[atom_pos + 0x2C]))
- trak->stsd_atoms[k].audio.bytes_per_sample =
+ trak->stsd_atoms[k].audio.bytes_per_sample =
_X_BE_32(&trak_atom[atom_pos + 0x2C]);
if (trak->stsd_atoms[k].audio.bytes_per_packet)
trak->stsd_atoms[k].audio.samples_per_frame =
- (trak->stsd_atoms[k].audio.bytes_per_frame /
+ (trak->stsd_atoms[k].audio.bytes_per_frame /
trak->stsd_atoms[k].audio.bytes_per_packet) *
trak->stsd_atoms[k].audio.samples_per_packet;
}
@@ -1301,13 +1301,13 @@ static qt_error parse_trak_atom (qt_trak *trak,
trak->stsd_atoms[k].audio.vbr = 1;
/* further, FFmpeg's ALAC decoder requires 36 out-of-band bytes */
trak->stsd_atoms[k].audio.properties_atom_size = 36;
- trak->stsd_atoms[k].audio.properties_atom =
+ trak->stsd_atoms[k].audio.properties_atom =
xine_xmalloc(trak->stsd_atoms[k].audio.properties_atom_size);
if (!trak->stsd_atoms[k].audio.properties_atom) {
last_error = QT_NO_MEMORY;
goto free_trak;
}
- memcpy(trak->stsd_atoms[k].audio.properties_atom,
+ memcpy(trak->stsd_atoms[k].audio.properties_atom,
&trak_atom[atom_pos + 0x20],
trak->stsd_atoms[k].audio.properties_atom_size);
}
@@ -1323,7 +1323,7 @@ static qt_error parse_trak_atom (qt_trak *trak,
(_X_BE_32(&trak_atom[atom_pos + 0x3C]) == FRMA_ATOM) &&
(_X_ME_32(&trak_atom[atom_pos + 0x48]) == trak->stsd_atoms[k].audio.codec_fourcc)) {
const int wave_size = _X_BE_32(&trak_atom[atom_pos + 0x44]) - 8;
-
+
if ((wave_size >= sizeof(xine_waveformatex)) &&
(current_atom_size >= (0x4C + wave_size))) {
trak->stsd_atoms[k].audio.wave_size = wave_size;
@@ -1377,15 +1377,15 @@ static qt_error parse_trak_atom (qt_trak *trak,
properties_offset += current_stsd_atom_size;
}
break;
-
+
case ESDS_ATOM:
-
+
debug_atom_load(" qt/mpeg-4 esds atom\n");
- if ((trak->type == MEDIA_VIDEO) ||
+ if ((trak->type == MEDIA_VIDEO) ||
(trak->type == MEDIA_AUDIO)) {
uint32_t len;
-
+
j = i + 8;
if( trak_atom[j++] == 0x03 ) {
j += mp4_read_descr_len( &trak_atom[j], &len );
@@ -1419,12 +1419,12 @@ static qt_error parse_trak_atom (qt_trak *trak,
case AVCC_ATOM:
debug_atom_load(" avcC atom\n");
-
+
trak->decoder_config_len = current_atom_size - 8;
trak->decoder_config = realloc(trak->decoder_config, trak->decoder_config_len);
memcpy(trak->decoder_config, &trak_atom[i + 4], trak->decoder_config_len);
break;
-
+
case STSZ_ATOM:
/* there should only be one of these atoms */
if (trak->sample_size_table) {
@@ -1726,9 +1726,9 @@ static qt_error parse_reference_atom (reference_t *ref,
/* This is a little support function used to process the edit list when
* building a frame table. */
#define MAX_DURATION 0x7FFFFFFFFFFFFFFFLL
-static void get_next_edit_list_entry(qt_trak *trak,
+static void get_next_edit_list_entry(qt_trak *trak,
unsigned int *edit_list_index,
- unsigned int *edit_list_media_time,
+ unsigned int *edit_list_media_time,
int64_t *edit_list_duration,
unsigned int global_timescale) {
@@ -1745,9 +1745,9 @@ static void get_next_edit_list_entry(qt_trak *trak,
/* otherwise, find an edit list entries whose media time != -1 */
if (trak->edit_list_table[*edit_list_index].media_time != -1) {
- *edit_list_media_time =
+ *edit_list_media_time =
trak->edit_list_table[*edit_list_index].media_time;
- *edit_list_duration =
+ *edit_list_duration =
trak->edit_list_table[*edit_list_index].track_duration;
/* duration is in global timescale units; convert to trak timescale */
@@ -1761,8 +1761,8 @@ static void get_next_edit_list_entry(qt_trak *trak,
*edit_list_index = *edit_list_index + 1;
}
- /* on the way out, check if this is the last edit list entry; if so,
- * don't let the duration expire (so set it to an absurdly large value)
+ /* on the way out, check if this is the last edit list entry; if so,
+ * don't let the duration expire (so set it to an absurdly large value)
*/
if (*edit_list_index == trak->edit_list_count)
*edit_list_duration = MAX_DURATION;
@@ -1797,7 +1797,7 @@ static qt_error build_frame_table(qt_trak *trak,
/* AUDIO and OTHER frame types follow the same rules; VIDEO and vbr audio
* frame types follow a different set */
- if ((trak->type == MEDIA_VIDEO) ||
+ if ((trak->type == MEDIA_VIDEO) ||
(trak->properties->audio.vbr)) {
/* in this case, the total number of frames is equal to the number of
@@ -1847,7 +1847,7 @@ static qt_error build_frame_table(qt_trak *trak,
trak->stsd_atoms_count);
trak->frames[frame_counter].media_id = 0;
} else {
- trak->frames[frame_counter].media_id =
+ trak->frames[frame_counter].media_id =
trak->sample_to_chunk_table[i].media_id;
media_id_counts[trak->sample_to_chunk_table[i].media_id - 1]++;
}
@@ -1907,11 +1907,11 @@ static qt_error build_frame_table(qt_trak *trak,
debug_edit_list(" %d: (before) pts = %"PRId64"...", i, trak->frames[i].pts);
- if (trak->frames[i].pts < edit_list_media_time)
+ if (trak->frames[i].pts < edit_list_media_time)
trak->frames[i].pts = edit_list_pts_counter;
else {
if (i < trak->frame_count - 1)
- frame_duration =
+ frame_duration =
(trak->frames[i + 1].pts - trak->frames[i].pts);
debug_edit_list("duration = %"PRId64"...", frame_duration);
@@ -1990,7 +1990,7 @@ static qt_error build_frame_table(qt_trak *trak,
trak->stsd_atoms_count);
trak->frames[j].media_id = 0;
} else {
- trak->frames[j].media_id =
+ trak->frames[j].media_id =
trak->sample_to_chunk_table[i].media_id;
}
@@ -2056,17 +2056,17 @@ static void parse_moov_atom(qt_info *info, unsigned char *moov_atom,
case TRAK_ATOM:
/* create a new trak structure */
info->trak_count++;
- info->traks = (qt_trak *)realloc(info->traks,
+ info->traks = (qt_trak *)realloc(info->traks,
info->trak_count * sizeof(qt_trak));
- info->last_error = parse_trak_atom (&info->traks[info->trak_count - 1],
+ info->last_error = parse_trak_atom (&info->traks[info->trak_count - 1],
&moov_atom[i - 4]);
if (info->last_error != QT_OK) {
info->trak_count--;
return;
}
break;
-
+
case UDTA_ATOM:
parse_meta_atom(info, &moov_atom[i + 4]);
if (info->last_error != QT_OK)
@@ -2175,11 +2175,11 @@ static void parse_moov_atom(qt_info *info, unsigned char *moov_atom,
/* iterate through 1..n-1 reference entries and decide on the right one */
for (i = 1; i < info->reference_count; i++) {
- if (info->references[i].qtim_version >
+ if (info->references[i].qtim_version >
info->references[info->chosen_reference].qtim_version)
info->chosen_reference = i;
else if ((info->references[i].data_rate <= bandwidth) &&
- (info->references[i].data_rate >
+ (info->references[i].data_rate >
info->references[info->chosen_reference].data_rate))
info->chosen_reference = i;
}
@@ -2262,7 +2262,7 @@ static qt_error open_qt_file(qt_info *info, input_plugin_t *input,
info->last_error = QT_FILE_READ_ERROR;
return info->last_error;
}
- if (input->read(input, moov_atom, moov_atom_size) !=
+ if (input->read(input, moov_atom, moov_atom_size) !=
moov_atom_size) {
free(moov_atom);
info->last_error = QT_FILE_READ_ERROR;
@@ -2393,12 +2393,12 @@ static int demux_qt_send_chunk(demux_plugin_t *this_gen) {
/* if audio is present, send pts of current audio frame, otherwise
* send current video frame pts */
if (audio_trak)
- _x_demux_control_newpts(this->stream,
- audio_trak->frames[audio_trak->current_frame].pts,
+ _x_demux_control_newpts(this->stream,
+ audio_trak->frames[audio_trak->current_frame].pts,
BUF_FLAG_SEEK);
else
- _x_demux_control_newpts(this->stream,
- video_trak->frames[video_trak->current_frame].pts,
+ _x_demux_control_newpts(this->stream,
+ video_trak->frames[video_trak->current_frame].pts,
BUF_FLAG_SEEK);
}
@@ -2505,7 +2505,7 @@ static int demux_qt_send_chunk(demux_plugin_t *this_gen) {
frame_duration);
debug_video_demux(" qt: sending off video frame %d from offset 0x%"PRIX64", %d bytes, media id %d, %"PRId64" pts\n",
- i,
+ i,
video_trak->frames[i].offset,
video_trak->frames[i].size,
video_trak->frames[i].media_id,
@@ -2563,7 +2563,7 @@ static int demux_qt_send_chunk(demux_plugin_t *this_gen) {
SEEK_SET);
debug_audio_demux(" qt: sending off audio frame %d from offset 0x%"PRIX64", %d bytes, media id %d, %"PRId64" pts\n",
- i,
+ i,
audio_trak->frames[i].offset,
audio_trak->frames[i].size,
audio_trak->frames[i].media_id,
@@ -2582,8 +2582,8 @@ static int demux_qt_send_chunk(demux_plugin_t *this_gen) {
* turns around and sends out audio buffers as soon as they are
* received. If 2 or more consecutive audio buffers are dispatched to
* the audio out unit, the engine will compensate with pops. */
- if ((buf->type == BUF_AUDIO_LPCM_BE) ||
- (buf->type == BUF_AUDIO_LPCM_LE)) {
+ if ((buf->type == BUF_AUDIO_LPCM_BE) ||
+ (buf->type == BUF_AUDIO_LPCM_LE)) {
if (first_buf) {
buf->extra_info->input_time = audio_trak->frames[i].pts / 90;
buf->pts = audio_trak->frames[i].pts;
@@ -2612,7 +2612,7 @@ static int demux_qt_send_chunk(demux_plugin_t *this_gen) {
/* Special case alert: If this is signed, 8-bit data, transform
* the data to unsigned. */
- if ((audio_trak->properties->audio.bits == 8) &&
+ if ((audio_trak->properties->audio.bits == 8) &&
((audio_trak->properties->audio.codec_fourcc == TWOS_FOURCC) ||
(audio_trak->properties->audio.codec_fourcc == SOWT_FOURCC)))
for (j = 0; j < buf->size; j++)
@@ -2681,7 +2681,7 @@ static void demux_qt_send_headers(demux_plugin_t *this_gen) {
this->bih.biBitCount = video_trak->properties->video.depth;
this->bih.biCompression = video_trak->properties->video.codec_fourcc;
- video_trak->properties->video.codec_buftype =
+ video_trak->properties->video.codec_buftype =
_x_fourcc_to_buf_video(this->bih.biCompression);
/* hack: workaround a fourcc clash! 'mpg4' is used by MS and Sorenson
@@ -2689,8 +2689,8 @@ static void demux_qt_send_headers(demux_plugin_t *this_gen) {
*/
if( video_trak->properties->video.codec_buftype == BUF_VIDEO_MSMPEG4_V1 )
video_trak->properties->video.codec_buftype = BUF_VIDEO_MPEG4;
-
- if( !video_trak->properties->video.codec_buftype &&
+
+ if( !video_trak->properties->video.codec_buftype &&
video_trak->properties->video.codec_fourcc )
{
video_trak->properties->video.codec_buftype = BUF_VIDEO_UNKNOWN;
@@ -2699,7 +2699,7 @@ static void demux_qt_send_headers(demux_plugin_t *this_gen) {
}
_x_stream_info_set(this->stream, XINE_STREAM_INFO_HAS_VIDEO, 1);
- _x_stream_info_set(this->stream, XINE_STREAM_INFO_VIDEO_WIDTH,
+ _x_stream_info_set(this->stream, XINE_STREAM_INFO_VIDEO_WIDTH,
this->bih.biWidth);
_x_stream_info_set(this->stream, XINE_STREAM_INFO_VIDEO_HEIGHT,
this->bih.biHeight);
@@ -2732,7 +2732,7 @@ static void demux_qt_send_headers(demux_plugin_t *this_gen) {
break;
}
} else {
- audio_trak->properties->audio.codec_buftype =
+ audio_trak->properties->audio.codec_buftype =
_x_formattag_to_buf_audio(audio_trak->properties->audio.codec_fourcc);
}
@@ -2751,7 +2751,7 @@ static void demux_qt_send_headers(demux_plugin_t *this_gen) {
audio_trak->properties->audio.sample_rate);
_x_stream_info_set(this->stream, XINE_STREAM_INFO_AUDIO_BITS,
audio_trak->properties->audio.bits);
- _x_stream_info_set(this->stream, XINE_STREAM_INFO_AUDIO_FOURCC,
+ _x_stream_info_set(this->stream, XINE_STREAM_INFO_AUDIO_FOURCC,
audio_trak->properties->audio.codec_fourcc);
} else {
@@ -2792,17 +2792,17 @@ static void demux_qt_send_headers(demux_plugin_t *this_gen) {
(video_trak->properties->video.codec_buftype)) {
buf = this->video_fifo->buffer_pool_alloc (this->video_fifo);
buf->decoder_flags = BUF_FLAG_HEADER|BUF_FLAG_STDHEADER|BUF_FLAG_FRAME_END;
-
+
memcpy(buf->content, &this->bih, sizeof(this->bih));
buf->size = sizeof(this->bih);
buf->type = video_trak->properties->video.codec_buftype;
this->video_fifo->put (this->video_fifo, buf);
-
+
/* send header info to decoder. some mpeg4 streams need this */
if( video_trak->decoder_config ) {
buf = this->video_fifo->buffer_pool_alloc (this->video_fifo);
buf->type = video_trak->properties->video.codec_buftype;
-
+
if (video_trak->properties->video.codec_fourcc == AVC1_FOURCC) {
buf->size = 0;
buf->decoder_flags = BUF_FLAG_SPECIAL|BUF_FLAG_HEADER;
@@ -2846,9 +2846,9 @@ static void demux_qt_send_headers(demux_plugin_t *this_gen) {
/* set the audio bitrate field (only for CBR audio) */
if (!audio_trak->properties->audio.vbr) {
- audio_bitrate =
+ audio_bitrate =
audio_trak->properties->audio.sample_rate /
- audio_trak->properties->audio.samples_per_frame *
+ audio_trak->properties->audio.samples_per_frame *
audio_trak->properties->audio.bytes_per_frame *
audio_trak->properties->audio.channels *
8;
@@ -2863,7 +2863,7 @@ static void demux_qt_send_headers(demux_plugin_t *this_gen) {
buf->decoder_info[1] = audio_trak->properties->audio.sample_rate;
buf->decoder_info[2] = audio_trak->properties->audio.bits;
buf->decoder_info[3] = audio_trak->properties->audio.channels;
-
+
if( audio_trak->properties->audio.wave_size ) {
if( audio_trak->properties->audio.wave_size > buf->max_size )
buf->size = buf->max_size;
@@ -2874,9 +2874,9 @@ static void demux_qt_send_headers(demux_plugin_t *this_gen) {
buf->size = 0;
buf->content = NULL;
}
-
+
this->audio_fifo->put (this->audio_fifo, buf);
-
+
if( audio_trak->decoder_config ) {
buf = this->audio_fifo->buffer_pool_alloc (this->audio_fifo);
buf->type = audio_trak->properties->audio.codec_buftype;
@@ -2969,7 +2969,7 @@ static int demux_qt_seek (demux_plugin_t *this_gen,
qt_trak *video_trak = NULL;
qt_trak *audio_trak = NULL;
int64_t keyframe_pts;
-
+
start_pos = (off_t) ( (double) start_pos / 65535 *
this->data_size );
@@ -3191,7 +3191,7 @@ static const demuxer_info_t demux_info_qt = {
};
const plugin_info_t xine_plugin_info[] EXPORTED = {
- /* type, API, "name", version, special_info, init_function */
+ /* type, API, "name", version, special_info, init_function */
{ PLUGIN_DEMUX, 27, "quicktime", XINE_VERSION_CODE, &demux_info_qt, init_plugin },
{ PLUGIN_NONE, 0, "", 0, NULL, NULL }
};
diff --git a/src/demuxers/demux_rawdv.c b/src/demuxers/demux_rawdv.c
index aed2b7c75..199100a89 100644
--- a/src/demuxers/demux_rawdv.c
+++ b/src/demuxers/demux_rawdv.c
@@ -1,18 +1,18 @@
/*
* Copyright (C) 2000-2003 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -89,17 +89,17 @@ static int demux_raw_dv_next (demux_raw_dv_t *this) {
/* TODO: duplicate data and send to audio fifo.
* however we don't have dvaudio decoder yet.
*/
-
+
buf->pts = this->pts;
buf->extra_info->input_time = this->pts/90;
if( this->input->get_length (this->input) )
- buf->extra_info->input_normpos = (int)( (double) this->input->get_current_pos (this->input) *
+ buf->extra_info->input_normpos = (int)( (double) this->input->get_current_pos (this->input) *
65535 / this->input->get_length (this->input) );
buf->extra_info->frame_number = this->cur_frame;
buf->type = BUF_VIDEO_DV;
-
+
this->video_fifo->put(this->video_fifo, buf);
-
+
if (this->audio_fifo) {
abuf = this->audio_fifo->buffer_pool_alloc (this->audio_fifo);
abuf->content = abuf->mem;
@@ -213,11 +213,11 @@ static void demux_raw_dv_send_headers (demux_plugin_t *this_gen) {
bih->biSizeImage = bih->biWidth*bih->biHeight;
this->video_fifo->put(this->video_fifo, buf);
-
+
this->pts = 0;
this->cur_frame = 0;
this->bytes_left = this->frame_size;
-
+
this->status = DEMUX_OK;
_x_stream_info_set(this->stream, XINE_STREAM_INFO_HAS_VIDEO, 1);
@@ -305,18 +305,18 @@ static int demux_raw_dv_seek (demux_plugin_t *this_gen,
/* Upcast start_time in case sizeof(off_t) > sizeof(int) */
start_pos = ((off_t) start_time * 90 / this->duration) * this->frame_size;
}
-
- start_pos = start_pos - (start_pos % this->frame_size);
+
+ start_pos = start_pos - (start_pos % this->frame_size);
this->input->seek(this->input, start_pos, SEEK_SET);
this->cur_frame = start_pos / this->frame_size;
this->pts = this->cur_frame * this->duration;
this->bytes_left = this->frame_size;
-
+
_x_demux_flush_engine (this->stream);
_x_demux_control_newpts (this->stream, this->pts, BUF_FLAG_SEEK);
-
+
this->status = DEMUX_OK;
return this->status;
}
@@ -362,7 +362,7 @@ static demux_plugin_t *open_plugin (demux_class_t *class_gen, xine_stream_t *str
case METHOD_BY_CONTENT: {
uint8_t buf[8];
-
+
if (_x_demux_read_header(input, buf, 8) != 8) {
free (this);
return NULL;
diff --git a/src/demuxers/demux_real.c b/src/demuxers/demux_real.c
index eecaef915..d645215b0 100644
--- a/src/demuxers/demux_real.c
+++ b/src/demuxers/demux_real.c
@@ -26,9 +26,9 @@
*
* video packet sub-demuxer ported from mplayer code (www.mplayerhq.hu):
* Real parser & demuxer
- *
+ *
* (C) Alex Beregszaszi <alex@naxine.org>
- *
+ *
* Based on FFmpeg's libav/rm.c.
*/
@@ -111,10 +111,10 @@ typedef struct {
uint32_t fourcc;
uint32_t buf_type;
uint32_t format;
-
+
real_index_entry_t *index;
int index_entries;
-
+
mdpr_t *mdpr;
int sps, cfs, w, h;
int block_align;
@@ -159,7 +159,7 @@ typedef struct {
int64_t last_pts[2];
int send_newpts;
int buf_flag_seek;
-
+
uint32_t last_ts;
uint32_t next_ts;
int last_seq;
@@ -184,7 +184,7 @@ static void real_parse_index(demux_real_t *this) {
unsigned char index_chunk_header[INDEX_CHUNK_HEADER_SIZE];
unsigned char index_record[INDEX_RECORD_SIZE];
int i;
-
+
while(next_index_chunk) {
lprintf("reading index chunk at %"PRIX64"\n", next_index_chunk);
@@ -242,7 +242,7 @@ static void real_parse_index(demux_real_t *this) {
if(index && entries)
/* Allocate memory for index */
*index = calloc(entries, sizeof(real_index_entry_t));
-
+
if(index && entries && *index) {
/* Read index */
for(i = 0; i < entries; i++) {
@@ -351,7 +351,7 @@ static void real_parse_audio_specific_data (demux_real_t *this,
const uint16_t codec_data_length = _X_BE_16 (data+40);
const uint16_t coded_frame_size2 = _X_BE_16 (data+42);
const uint16_t subpacket_size = _X_BE_16 (data+44);
-
+
stream->sps = subpacket_size;
stream->w = coded_frame_size2;
stream->h = codec_data_length;
@@ -376,7 +376,7 @@ static void real_parse_audio_specific_data (demux_real_t *this,
break;
default:
- xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
"demux_real: error, i don't handle buf type 0x%08x\n", stream->buf_type);
}
@@ -419,12 +419,12 @@ static void real_parse_headers (demux_real_t *this) {
uint8_t signature[REAL_SIGNATURE_SIZE];
if (this->input->read(this->input, signature, REAL_SIGNATURE_SIZE) !=
REAL_SIGNATURE_SIZE) {
-
+
lprintf ("signature not read\n");
this->status = DEMUX_FINISHED;
return;
}
-
+
if ( !_x_is_fourcc(signature, ".RMF") ) {
this->status = DEMUX_FINISHED;
lprintf ("signature not found '%.4s'\n", signature);
@@ -474,11 +474,11 @@ static void real_parse_headers (demux_real_t *this) {
this->status = DEMUX_FINISHED;
return;
}
-
+
uint16_t version = _X_BE_16(&chunk_buffer[0]);
if (chunk_type == PROP_TAG) {
-
+
if(version != 0) {
xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"demuxe_real: unknown object version in PROP: 0x%04x\n", version);
@@ -510,7 +510,7 @@ static void real_parse_headers (demux_real_t *this) {
free(chunk_buffer);
continue;
}
-
+
mdpr_t *const mdpr = real_parse_mdpr (chunk_buffer, chunk_size);
lprintf ("parsing type specific data...\n");
@@ -535,7 +535,7 @@ static void real_parse_headers (demux_real_t *this) {
"demux_real: maximum number of audio stream exceeded\n");
goto unknown;
}
-
+
const uint16_t version = _X_BE_16(mdpr->type_specific_data + 4);
lprintf("audio version %d detected\n", version);
@@ -543,7 +543,7 @@ static void real_parse_headers (demux_real_t *this) {
char *fourcc_ptr = "\0\0\0";
switch(version) {
case 3:
- /* Version 3 header stores fourcc after meta info - cheat by reading backwards from the
+ /* Version 3 header stores fourcc after meta info - cheat by reading backwards from the
* end of the header instead of having to parse it all */
if (mdpr->type_specific_len >= 5)
fourcc_ptr = mdpr->type_specific_data + mdpr->type_specific_len - 5;
@@ -588,7 +588,7 @@ static void real_parse_headers (demux_real_t *this) {
"demux_real: maximum number of video stream exceeded\n");
goto unknown;
}
-
+
lprintf ("video detected\n");
const uint32_t fourcc = _X_ME_32(mdpr->type_specific_data + 8);
lprintf("fourcc = %.4s\n", (char *) &fourcc);
@@ -632,7 +632,7 @@ static void real_parse_headers (demux_real_t *this) {
/* load the title string */
SET_METADATA_STRING(XINE_META_INFO_TITLE);
-
+
/* load the author string */
SET_METADATA_STRING(XINE_META_INFO_ARTIST);
@@ -650,12 +650,12 @@ static void real_parse_headers (demux_real_t *this) {
case DATA_TAG: {
uint8_t data_chunk_header[DATA_CHUNK_HEADER_SIZE];
- if (this->input->read(this->input, data_chunk_header,
+ if (this->input->read(this->input, data_chunk_header,
DATA_CHUNK_HEADER_SIZE) != DATA_CHUNK_HEADER_SIZE) {
this->status = DEMUX_FINISHED;
return ;
}
-
+
/* check version */
const uint16_t version = _X_BE_16(&data_chunk_header[0]);
if(version != 0) {
@@ -683,11 +683,11 @@ static void real_parse_headers (demux_real_t *this) {
/* Read index tables */
if(INPUT_IS_SEEKABLE(this->input))
real_parse_index(this);
-
+
/* Simple stream selection case - 0/1 audio/video streams */
this->video_stream = (this->num_video_streams == 1) ? &this->video_streams[0] : NULL;
this->audio_stream = (this->num_audio_streams == 1) ? &this->audio_streams[0] : NULL;
-
+
/* In the case of multiple audio/video streams select the first
streams found in the file */
if((this->num_video_streams > 1) || (this->num_audio_streams > 1)) {
@@ -698,23 +698,23 @@ static void real_parse_headers (demux_real_t *this) {
/* Get data to search through for stream chunks */
if(INPUT_IS_SEEKABLE(this->input)) {
original_pos = this->input->get_current_pos(this->input);
-
+
if((len = this->input->read(this->input, search_buffer, MAX_PREVIEW_SIZE)) <= 0) {
- xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"demux_real: failed to read header\n");
this->status = DEMUX_FINISHED;
return;
}
-
+
offset = 0;
} else if((this->input->get_capabilities(this->input) & INPUT_CAP_PREVIEW) != 0) {
if((len = this->input->get_optional_data(this->input, search_buffer, INPUT_OPTIONAL_DATA_PREVIEW)) <= 0) {
- xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"demux_real: failed to read header\n");
this->status = DEMUX_FINISHED;
return;
}
-
+
/* Preview data starts at the beginning of the file */
offset = this->data_start + 18;
} else {
@@ -723,16 +723,16 @@ static void real_parse_headers (demux_real_t *this) {
this->status = DEMUX_FINISHED;
return;
}
-
+
while((offset < len) &&
((!this->video_stream && (this->num_video_streams > 0)) ||
(!this->audio_stream && (this->num_audio_streams > 0)))) {
int i;
-
+
/* Check for end of the data chunk */
if (_x_is_fourcc(&search_buffer[offset], "INDX") || _x_is_fourcc(&search_buffer[offset], "DATA"))
break;
-
+
const int stream = _X_BE_16(&search_buffer[offset + 4]);
for(i = 0; !this->video_stream && (i < this->num_video_streams); i++) {
@@ -741,7 +741,7 @@ static void real_parse_headers (demux_real_t *this) {
lprintf("selecting video stream: %d\n", stream);
}
}
-
+
for(i = 0; !this->audio_stream && (i < this->num_audio_streams); i++) {
if(stream == this->audio_streams[i].mdpr->stream_number) {
this->audio_stream = &this->audio_streams[i];
@@ -751,11 +751,11 @@ static void real_parse_headers (demux_real_t *this) {
offset += _X_BE_16(&search_buffer[offset + 2]);
}
-
+
if(INPUT_IS_SEEKABLE(this->input))
this->input->seek(this->input, original_pos, SEEK_SET);
}
-
+
/* Let the user know if we haven't managed to detect what streams to play */
if((!this->video_stream && this->num_video_streams) ||
(!this->audio_stream && this->num_audio_streams)) {
@@ -764,17 +764,17 @@ static void real_parse_headers (demux_real_t *this) {
this->status = DEMUX_FINISHED;
return;
}
-
+
/* Send headers and set meta info */
if(this->video_stream) {
/* Check for recognised codec*/
if(!this->video_stream->buf_type)
this->video_stream->buf_type = BUF_VIDEO_UNKNOWN;
-
+
/* Send header */
buf_element_t *const buf = this->video_fifo->buffer_pool_alloc(this->video_fifo);
buf->content = buf->mem;
-
+
memcpy(buf->content, this->video_stream->mdpr->type_specific_data,
this->video_stream->mdpr->type_specific_len);
@@ -792,7 +792,7 @@ static void real_parse_headers (demux_real_t *this) {
this->video_stream->fourcc);
_x_stream_info_set(this->stream, XINE_STREAM_INFO_VIDEO_BITRATE,
this->video_stream->mdpr->avg_bit_rate);
-
+
/* Allocate fragment offset table */
this->fragment_tab = calloc(FRAGMENT_TAB_SIZE, sizeof(uint32_t));
this->fragment_tab_max = FRAGMENT_TAB_SIZE;
@@ -802,7 +802,7 @@ static void real_parse_headers (demux_real_t *this) {
/* Check for recognised codec */
if(!this->audio_stream->buf_type)
this->audio_stream->buf_type = BUF_AUDIO_UNKNOWN;
-
+
/* Send headers */
if(this->audio_fifo) {
mdpr_t *const mdpr = this->audio_stream->mdpr;
@@ -811,21 +811,21 @@ static void real_parse_headers (demux_real_t *this) {
buf->type = this->audio_stream->buf_type;
buf->decoder_flags = BUF_FLAG_HEADER|BUF_FLAG_FRAME_END;
-
+
/* For AAC we send two header buffers, the first is a standard audio
* header giving bits per sample, sample rate and number of channels.
* The second is the codec initialisation data found at the end of
* the type specific data for the audio stream */
if(buf->type == BUF_AUDIO_AAC) {
const uint16_t version = _X_BE_16(mdpr->type_specific_data + 4);
-
+
if(version != 5) {
xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"demux_real: unsupported audio header version for AAC: %d\n", version);
buf->free_buffer(buf);
goto unsupported;
}
-
+
buf->decoder_info[1] = _X_BE_16(mdpr->type_specific_data + 54);
buf->decoder_info[2] = _X_BE_16(mdpr->type_specific_data + 58);
buf->decoder_info[3] = _X_BE_16(mdpr->type_specific_data + 60);
@@ -833,18 +833,18 @@ static void real_parse_headers (demux_real_t *this) {
buf->decoder_flags |= BUF_FLAG_STDHEADER;
buf->content = NULL;
buf->size = 0;
-
+
this->audio_fifo->put (this->audio_fifo, buf);
-
+
buf = this->audio_fifo->buffer_pool_alloc (this->audio_fifo);
-
+
buf->type = this->audio_stream->buf_type;
buf->decoder_flags = BUF_FLAG_HEADER|BUF_FLAG_FRAME_END|BUF_FLAG_SPECIAL;
buf->decoder_info[1] = BUF_SPECIAL_DECODER_CONFIG;
buf->decoder_info[2] = _X_BE_32(mdpr->type_specific_data + 74) - 1;
buf->decoder_info_ptr[2] = buf->content;
buf->size = 0;
-
+
memcpy(buf->content, mdpr->type_specific_data + 79,
buf->decoder_info[2]);
@@ -892,7 +892,7 @@ static int demux_real_parse_references( demux_real_t *this) {
lprintf("parsing references\n");
-
+
/* read file to memory.
* warning: dumb code, but hopefuly ok since reference file is small */
do {
@@ -911,7 +911,7 @@ static int demux_real_parse_references( demux_real_t *this) {
if(buf_used)
buf[buf_used] = '\0';
-
+
lprintf("received %d bytes [%s]\n", buf_used, buf);
if (!strncmp(buf,"http://",7))
@@ -945,10 +945,10 @@ static int demux_real_parse_references( demux_real_t *this) {
/* rpm files can contain comments which should be skipped */
if( !strncmp(&buf[i],"<!--",4) )
comment = 1;
-
+
if( !strncmp(&buf[i],"-->",3) )
comment = 0;
-
+
if( (!strncmp(&buf[i],"pnm://",6) || !strncmp(&buf[i],"rtsp://",7)) &&
!comment ) {
for(j=i; buf[j] && buf[j] != '"' && !isspace(buf[j]); j++ )
@@ -961,14 +961,14 @@ static int demux_real_parse_references( demux_real_t *this) {
i = j;
}
- }
-
+ }
+
free(buf);
-
+
this->status = DEMUX_FINISHED;
return this->status;
}
-
+
/* redefine abs as macro to handle 64-bit diffs.
i guess llabs may not be available everywhere */
#define abs(x) ( ((x)<0) ? -(x) : (x) )
@@ -1004,7 +1004,7 @@ static uint32_t real_fix_timestamp (demux_real_t *this, uint8_t *hdr, uint32_t t
int pict_type;
int seq;
uint32_t ts_out;
-
+
switch(this->video_stream->buf_type) {
case BUF_VIDEO_RV20:
pict_type = (hdr[0] & 0xC0) >> 6;
@@ -1019,35 +1019,35 @@ static uint32_t real_fix_timestamp (demux_real_t *this, uint8_t *hdr, uint32_t t
seq = ((hdr[1] & 0x07) << 10) + (hdr[2] << 2) + ((hdr[3] & 0xC0) >> 6);
break;
default:
- xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
- "demux_real: can't fix timestamp for buf type 0x%08x\n",
+ xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
+ "demux_real: can't fix timestamp for buf type 0x%08x\n",
this->video_stream->buf_type);
return ts_in;
break;
}
-
+
switch (pict_type) {
case 0:
- case 1:
+ case 1:
/* I frame */
ts_out = this->next_ts;
-
+
this->last_ts = this->next_ts;
this->next_ts = ts_in;
-
+
this->last_seq = this->next_seq;
this->next_seq = seq;
break;
case 2:
/* P frame */
ts_out = this->next_ts;
-
+
this->last_ts = this->next_ts;
if (seq < this->next_seq)
this->next_ts += seq + 8192 - this->next_seq;
else
this->next_ts += seq - this->next_seq;
-
+
this->last_seq = this->next_seq;
this->next_seq = seq;
break;
@@ -1064,8 +1064,8 @@ static uint32_t real_fix_timestamp (demux_real_t *this, uint8_t *hdr, uint32_t t
ts_out = 0;
break;
}
-
- return ts_out;
+
+ return ts_out;
}
static int stream_read_char (demux_real_t *this) {
@@ -1089,7 +1089,7 @@ static int demux_real_send_chunk(demux_plugin_t *this_gen) {
if(this->reference_mode)
return demux_real_parse_references(this);
-
+
/* load a header from wherever the stream happens to be pointing */
if ( this->input->read(this->input, header, DATA_PACKET_HEADER_SIZE) !=
DATA_PACKET_HEADER_SIZE) {
@@ -1116,14 +1116,14 @@ static int demux_real_send_chunk(demux_plugin_t *this_gen) {
this->status = DEMUX_FINISHED;
return this->status;
}
-
+
/* read the packet information */
const uint16_t stream = _X_BE_16(&header[4]);
const off_t offset __attr_unused = this->input->get_current_pos(this->input);
uint16_t size = _X_BE_16(&header[2]) - DATA_PACKET_HEADER_SIZE;
const uint32_t timestamp= _X_BE_32(&header[6]);
int64_t pts = (int64_t) timestamp * 90;
-
+
/* Data packet header with version 1 contains 1 extra byte */
if(version == 0)
keyframe = header[11] & PN_KEYFRAME_FLAG;
@@ -1225,22 +1225,22 @@ static int demux_real_send_chunk(demux_plugin_t *this_gen) {
if(this->video_stream->index)
input_time = timestamp;
else
- input_time = (int)((int64_t) this->input->get_current_pos(this->input)
+ input_time = (int)((int64_t) this->input->get_current_pos(this->input)
* 8 * 1000 / this->avg_bitrate);
const off_t input_length = this->data_start + 18 + this->data_chunk_size;
if( input_length > 18 )
normpos = (int)((double) this->input->get_current_pos(this->input) * 65535 / input_length);
-
+
check_newpts (this, pts, PTS_VIDEO, 0);
if (this->fragment_size == 0) {
lprintf ("new packet starting\n");
-
+
/* send fragment offset table */
if(this->fragment_count) {
lprintf("sending fragment offset table\n");
-
+
buf = this->video_fifo->buffer_pool_alloc(this->video_fifo);
buf->decoder_flags = BUF_FLAG_SPECIAL | BUF_FLAG_FRAME_END;
@@ -1253,18 +1253,18 @@ static int demux_real_send_chunk(demux_plugin_t *this_gen) {
xine_fast_memcpy(buf->decoder_info_ptr[2], this->fragment_tab,
this->fragment_count*8);
-
+
this->video_fifo->put(this->video_fifo, buf);
-
+
this->fragment_count = 0;
}
-
+
decoder_flags = BUF_FLAG_FRAME_START;
} else {
lprintf ("continuing packet \n");
decoder_flags = 0;
}
-
+
/* add entry to fragment offset table */
this->fragment_tab[2*this->fragment_count] = 1;
this->fragment_tab[2*this->fragment_count+1] = this->fragment_size;
@@ -1291,30 +1291,30 @@ static int demux_real_send_chunk(demux_plugin_t *this_gen) {
/*
* read fragment_size bytes of data
*/
-
+
int n = fragment_size;
while(n) {
buf = this->video_fifo->buffer_pool_alloc(this->video_fifo);
-
+
buf->size = MIN(n, buf->max_size);
buf->decoder_flags = decoder_flags;
decoder_flags &= ~BUF_FLAG_FRAME_START;
-
+
buf->type = this->video_stream->buf_type;
-
+
if(this->input->read(this->input, buf->content, buf->size) < buf->size) {
- xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"demux_real: failed to read video fragment");
buf->free_buffer(buf);
this->status = DEMUX_FINISHED;
return this->status;
}
-
- /* RV30 and RV40 streams contain some fragments that shouldn't be passed
- * to the decoder. The purpose of these fragments is unknown, but
- * realplayer doesn't appear to pass them to the decoder either */
- if((n == fragment_size) &&
+
+ /* RV30 and RV40 streams contain some fragments that shouldn't be passed
+ * to the decoder. The purpose of these fragments is unknown, but
+ * realplayer doesn't appear to pass them to the decoder either */
+ if((n == fragment_size) &&
(((buf->type == BUF_VIDEO_RV30) && (buf->content[0] & 0x20)) ||
((buf->type == BUF_VIDEO_RV40) && (buf->content[0] & 0x80)))) {
lprintf("ignoring fragment\n");
@@ -1326,12 +1326,12 @@ static int demux_real_send_chunk(demux_plugin_t *this_gen) {
break;
}
-
+
/* if the video stream has b-frames fix the timestamps */
if((this->video_stream->format >= 0x20200002) &&
(buf->decoder_flags & BUF_FLAG_FRAME_START))
pts = (int64_t) real_fix_timestamp(this, buf->content, timestamp) * 90;
-
+
/* this test was moved from ffmpeg video decoder.
* fixme: is pts only valid on frame start? */
if( buf->decoder_flags & BUF_FLAG_FRAME_START )
@@ -1339,13 +1339,13 @@ static int demux_real_send_chunk(demux_plugin_t *this_gen) {
else
buf->pts = 0;
pts = 0;
-
+
buf->extra_info->input_normpos = normpos;
buf->extra_info->input_time = input_time;
buf->extra_info->total_time = this->duration;
-
+
this->video_fifo->put(this->video_fifo, buf);
-
+
n -= buf->size;
}
@@ -1370,49 +1370,49 @@ static int demux_real_send_chunk(demux_plugin_t *this_gen) {
goto discard;
else
this->audio_need_keyframe = 0;
-
+
/* if we have a seekable stream then use the timestamp for the data
* packet for more accurate seeking - if not then estimate time using
* average bitrate */
if(this->audio_stream->index)
input_time = timestamp;
else
- input_time = (int)((int64_t) this->input->get_current_pos(this->input)
- * 8 * 1000 / this->avg_bitrate);
-
+ input_time = (int)((int64_t) this->input->get_current_pos(this->input)
+ * 8 * 1000 / this->avg_bitrate);
+
const off_t input_length = this->data_start + 18 + this->data_chunk_size;
-
+
if( input_length > 18 )
normpos = (int)((double) this->input->get_current_pos(this->input) * 65535 / input_length);
-
+
check_newpts (this, pts, PTS_AUDIO, 0);
-
+
/* Each packet of AAC is made up of several AAC frames preceded by a
* header defining the size of the frames */
if(this->audio_stream->buf_type == BUF_AUDIO_AAC) {
int i;
-
+
/* Upper 4 bits of second byte is frame count */
const int frames = (stream_read_word(this) & 0xf0) >> 4;
-
+
/* 2 bytes per frame size */
int sizes[frames];
for(i = 0; i < frames; i++)
sizes[i] = stream_read_word(this);
-
+
for(i = 0; i < frames; i++) {
- if(_x_demux_read_send_data(this->audio_fifo, this->input, sizes[i], pts,
- this->audio_stream->buf_type, 0, normpos,
+ if(_x_demux_read_send_data(this->audio_fifo, this->input, sizes[i], pts,
+ this->audio_stream->buf_type, 0, normpos,
input_time, this->duration, 0) < 0) {
- xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"demux_real: failed to read AAC frame\n");
this->status = DEMUX_FINISHED;
return this->status;
}
-
+
pts = 0; /* Only set pts on first frame */
}
} else if (this->audio_stream->buf_type == BUF_AUDIO_COOK ||
@@ -1440,11 +1440,11 @@ static int demux_real_send_chunk(demux_plugin_t *this_gen) {
for (x = 0; x < sph / 2; x++) {
pos = x * 2 * w + spc * cfs;
if(pos + cfs > fs || this->input->read(this->input, buffer + pos, cfs) < cfs) {
- xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"demux_real: failed to read audio chunk\n");
-
+
this->status = DEMUX_FINISHED;
- return this->status;
+ return this->status;
}
}
break;
@@ -1453,22 +1453,22 @@ static int demux_real_send_chunk(demux_plugin_t *this_gen) {
for (x = 0; x < w / sps; x++) {
pos = sps * (sph * x + ((sph + 1) / 2) * (spc & 1) + (spc >> 1));
if(pos + sps > fs || this->input->read(this->input, buffer + pos, sps) < sps) {
- xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"demux_real: failed to read audio chunk\n");
-
+
this->status = DEMUX_FINISHED;
- return this->status;
+ return this->status;
}
}
break;
case BUF_AUDIO_SIPRO:
pos = spc * w;
if(pos + w > fs || this->input->read(this->input, buffer + pos, w) < w) {
- xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"demux_real: failed to read audio chunk\n");
-
+
this->status = DEMUX_FINISHED;
- return this->status;
+ return this->status;
}
if (spc == sph - 1)
demux_real_sipro_swap (buffer, sph * w * 2 / 96);
@@ -1481,20 +1481,20 @@ static int demux_real_send_chunk(demux_plugin_t *this_gen) {
this->duration, 0);
}
} else {
- if(_x_demux_read_send_data(this->audio_fifo, this->input, size, pts,
+ if(_x_demux_read_send_data(this->audio_fifo, this->input, size, pts,
this->audio_stream->buf_type, 0, normpos,
input_time, this->duration, 0) < 0) {
- xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"demux_real: failed to read audio chunk\n");
this->status = DEMUX_FINISHED;
return this->status;
}
-
+
/* FIXME: dp->flags = (flags & 0x2) ? 0x10 : 0; */
}
-
+
} else {
/* discard */
@@ -1577,14 +1577,14 @@ static int demux_real_seek (demux_plugin_t *this_gen,
demux_real_t *this = (demux_real_t *) this_gen;
real_index_entry_t *index, *other_index = NULL;
int i = 0, entries;
-
+
lprintf("seek start_pos=%d, start_time=%d, playing=%d\n",
(int)start_pos, start_time, playing);
if((this->input->get_capabilities(this->input) & INPUT_CAP_SEEKABLE) &&
((this->audio_stream && this->audio_stream->index) ||
(this->video_stream && this->video_stream->index))) {
-
+
start_pos = (off_t) ( (double) start_pos / 65535 *
this->input->get_length (this->input) );
@@ -1632,14 +1632,14 @@ static int demux_real_seek (demux_plugin_t *this_gen,
/* RTSP supports only time based seek */
if (start_pos && !start_time)
start_time = (int64_t) this->duration * start_pos / 65535;
-
+
this->input->seek_time(this->input, start_time, SEEK_SET);
}
this->send_newpts = 1;
this->old_seqnum = -1;
this->fragment_size = 0;
-
+
this->next_ts = 0;
this->next_seq = 0;
@@ -1656,13 +1656,13 @@ static void demux_real_dispose (demux_plugin_t *this_gen) {
real_free_mdpr(this->video_streams[i].mdpr);
free(this->video_streams[i].index);
}
-
+
for(i = 0; i < this->num_audio_streams; i++) {
real_free_mdpr(this->audio_streams[i].mdpr);
free(this->audio_streams[i].index);
free(this->audio_streams[i].frame_buffer);
}
-
+
free(this->fragment_tab);
free(this);
}
@@ -1702,7 +1702,7 @@ static int real_check_stream_type(input_plugin_t *input)
if ( len < 4 )
return -1;
-
+
if ( memcmp(buf, "\x2eRMF", 4) == 0 )
return 1;
@@ -1730,7 +1730,7 @@ static demux_plugin_t *open_plugin (demux_class_t *class_gen, xine_stream_t *str
case METHOD_BY_CONTENT:
if ( stream_type < 1 )
return NULL;
-
+
lprintf ("by content accepted.\n");
break;
@@ -1777,7 +1777,7 @@ static void *init_class (xine_t *xine, void *data) {
"audio/x-pn-realaudio: ra, rm, ram: Real Media file;"
"audio/x-pn-realaudio-plugin: rpm: Real Media plugin file;"
"audio/x-real-audio: ra, rm, ram: Real Media file;"
- "application/vnd.rn-realmedia: ra, rm, ram: Real Media file;";
+ "application/vnd.rn-realmedia: ra, rm, ram: Real Media file;";
this->demux_class.extensions = "rm rmvb ram";
this->demux_class.dispose = default_demux_class_dispose;
diff --git a/src/demuxers/demux_realaudio.c b/src/demuxers/demux_realaudio.c
index 4d04f0b90..6f29e46d6 100644
--- a/src/demuxers/demux_realaudio.c
+++ b/src/demuxers/demux_realaudio.c
@@ -63,7 +63,7 @@ typedef struct {
off_t data_start;
off_t data_size;
-
+
uint32_t cfs;
uint16_t w, h;
int frame_len;
@@ -95,7 +95,7 @@ static int open_ra_file(demux_ra_t *this) {
/* read version */
const uint16_t version = _X_BE_16(&file_header[0x04]);
-
+
/* read header size according to version */
if (version == 3)
this->header_size = _X_BE_16(&file_header[0x06]) + 8;
@@ -105,45 +105,45 @@ static int open_ra_file(demux_ra_t *this) {
xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG, "demux_realaudio: unknown version number %d\n", version);
return 0;
}
-
+
/* allocate for and read header data */
this->header = malloc(this->header_size);
-
+
if (!this->header || _x_demux_read_header(this->input, this->header, this->header_size) != this->header_size) {
xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG, "demux_realaudio: unable to read header\n");
free(this->header);
return 0;
}
-
+
off_t offset;
/* read header data according to version */
if((version == 3) && (this->header_size >= 32)) {
this->data_size = _X_BE_32(&this->header[0x12]);
-
+
this->block_align = 240;
-
+
offset = 0x16;
} else if(this->header_size >= 72) {
- this->data_size = _X_BE_32(&this->header[0x1C]);
-
+ this->data_size = _X_BE_32(&this->header[0x1C]);
+
this->block_align = _X_BE_16(&this->header[0x2A]);
-
+
if(this->header[0x3D] == 4)
this->fourcc = _X_ME_32(&this->header[0x3E]);
else {
- xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"demux_realaudio: invalid fourcc size %d\n", this->header[0x3D]);
free(this->header);
return 0;
}
-
+
offset = 0x45;
} else {
xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG, "demux_realaudio: header too small\n");
free(this->header);
return 0;
}
-
+
/* Read title */
{
const uint8_t len = this->header[offset];
@@ -154,7 +154,7 @@ static int open_ra_file(demux_ra_t *this) {
} else
offset++;
}
-
+
/* Author */
{
const uint8_t len = this->header[offset];
@@ -165,7 +165,7 @@ static int open_ra_file(demux_ra_t *this) {
} else
offset++;
}
-
+
/* Copyright/Date */
{
const uint8_t len = this->header[offset];
@@ -176,23 +176,23 @@ static int open_ra_file(demux_ra_t *this) {
} else
offset++;
}
-
+
/* Fourcc for version 3 comes after meta info */
if(version == 3) {
if (((offset+7) <= this->header_size)) {
if(this->header[offset+2] == 4)
this->fourcc = _X_ME_32(&this->header[offset+3]);
else {
- xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"demux_realaudio: invalid fourcc size %d\n", this->header[offset+2]);
free(this->header);
return 0;
}
} else {
- this->fourcc = ME_FOURCC('l', 'p', 'c', 'J');
+ this->fourcc = ME_FOURCC('l', 'p', 'c', 'J');
}
}
-
+
_x_stream_info_set(this->stream, XINE_STREAM_INFO_AUDIO_FOURCC, this->fourcc);
this->audio_type = _x_formattag_to_buf_audio(this->fourcc);
@@ -219,7 +219,7 @@ static int open_ra_file(demux_ra_t *this) {
if (this->audio_type == BUF_AUDIO_28_8 || this->audio_type == BUF_AUDIO_SIPRO)
this->block_align = this->cfs;
}
-
+
/* seek to start of data */
this->data_start = this->header_size;
if (this->input->seek(this->input, this->data_start, SEEK_SET) !=
@@ -242,7 +242,7 @@ static int demux_ra_send_chunk(demux_plugin_t *this_gen) {
/* just load data chunks from wherever the stream happens to be
* pointing; issue a DEMUX_FINISHED status if EOF is reached */
if( this->input->get_length (this->input) )
- current_normpos = (int)( (double) (this->input->get_current_pos (this->input) - this->data_start) *
+ current_normpos = (int)( (double) (this->input->get_current_pos (this->input) - this->data_start) *
65535 / this->data_size );
const int64_t current_pts = 0; /* let the engine sort out the pts for now */
@@ -255,11 +255,11 @@ static int demux_ra_send_chunk(demux_plugin_t *this_gen) {
if (this->audio_type == BUF_AUDIO_28_8 || this->audio_type == BUF_AUDIO_SIPRO) {
if (this->audio_type == BUF_AUDIO_SIPRO) {
if(this->input->read(this->input, this->frame_buffer, this->frame_len) < this->frame_len) {
- xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"demux_realaudio: failed to read audio chunk\n");
-
+
this->status = DEMUX_FINISHED;
- return this->status;
+ return this->status;
}
demux_real_sipro_swap (this->frame_buffer, this->frame_len * 2 / 96);
} else {
@@ -270,25 +270,25 @@ static int demux_ra_send_chunk(demux_plugin_t *this_gen) {
const int pos = x * 2 * this->w + y * this->cfs;
if(this->input->read(this->input, this->frame_buffer + pos,
this->cfs) < this->cfs) {
- xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"demux_realaudio: failed to read audio chunk\n");
-
+
this->status = DEMUX_FINISHED;
- return this->status;
+ return this->status;
}
}
}
_x_demux_send_data(this->audio_fifo,
- this->frame_buffer, this->frame_size,
+ this->frame_buffer, this->frame_size,
current_pts, this->audio_type, 0,
current_normpos, current_pts / 90, 0, 0);
- } else if(_x_demux_read_send_data(this->audio_fifo, this->input, this->block_align,
- current_pts, this->audio_type, 0, current_normpos,
+ } else if(_x_demux_read_send_data(this->audio_fifo, this->input, this->block_align,
+ current_pts, this->audio_type, 0, current_normpos,
current_pts / 90, 0, 0) < 0) {
- this->status = DEMUX_FINISHED;
+ this->status = DEMUX_FINISHED;
}
-
+
return this->status;
}
@@ -314,9 +314,9 @@ static void demux_ra_send_headers(demux_plugin_t *this_gen) {
buf = this->audio_fifo->buffer_pool_alloc (this->audio_fifo);
buf->type = this->audio_type;
buf->decoder_flags = BUF_FLAG_HEADER|BUF_FLAG_FRAME_END;
-
+
buf->size = MIN(this->header_size, buf->max_size);
-
+
memcpy(buf->content, this->header, buf->size);
this->audio_fifo->put (this->audio_fifo, buf);
@@ -364,7 +364,7 @@ static int demux_ra_seek (demux_plugin_t *this_gen,
static void demux_ra_dispose (demux_plugin_t *this_gen) {
demux_ra_t *this = (demux_ra_t *) this_gen;
-
+
free(this->header);
free(this->frame_buffer);
free(this);
@@ -424,7 +424,7 @@ static demux_plugin_t *open_plugin (demux_class_t *class_gen, xine_stream_t *str
}
break;
-
+
default:
free (this);
return NULL;
diff --git a/src/demuxers/demux_roq.c b/src/demuxers/demux_roq.c
index c98650eb2..9bc0f4e99 100644
--- a/src/demuxers/demux_roq.c
+++ b/src/demuxers/demux_roq.c
@@ -92,11 +92,11 @@ static int open_roq_file(demux_roq_t *this) {
return 0;
/* check for the RoQ magic numbers */
- static const uint8_t RoQ_MAGIC_STRING[] =
+ static const uint8_t RoQ_MAGIC_STRING[] =
{ 0x10, 0x84, 0xFF, 0xFF, 0xFF, 0xFF };
if( memcmp(preamble, RoQ_MAGIC_STRING, sizeof(RoQ_MAGIC_STRING)) != 0 )
return 0;
-
+
this->bih.biSize = sizeof(xine_bmiheader);
this->bih.biWidth = this->bih.biHeight = 0;
this->wave.nChannels = 0; /* assume no audio at first */
@@ -119,7 +119,7 @@ static int open_roq_file(demux_roq_t *this) {
while (i-- > 0) {
/* if this read fails, then maybe it's just a really small RoQ file
* (even less than 2 seconds) */
- if (this->input->read(this->input, preamble, RoQ_CHUNK_PREAMBLE_SIZE) !=
+ if (this->input->read(this->input, preamble, RoQ_CHUNK_PREAMBLE_SIZE) !=
RoQ_CHUNK_PREAMBLE_SIZE)
break;
chunk_type = _X_LE_16(&preamble[0]);
@@ -181,7 +181,7 @@ static int demux_roq_send_chunk(demux_plugin_t *this_gen) {
off_t current_file_pos;
/* fetch the next preamble */
- if (this->input->read(this->input, preamble, RoQ_CHUNK_PREAMBLE_SIZE) !=
+ if (this->input->read(this->input, preamble, RoQ_CHUNK_PREAMBLE_SIZE) !=
RoQ_CHUNK_PREAMBLE_SIZE) {
this->status = DEMUX_FINISHED;
return this->status;
@@ -193,21 +193,21 @@ static int demux_roq_send_chunk(demux_plugin_t *this_gen) {
if ((chunk_type == RoQ_SOUND_MONO) || (chunk_type == RoQ_SOUND_STEREO)) {
if( this->audio_fifo ) {
-
+
/* do this calculation carefully because I can't trust the
* 64-bit numerical manipulation */
audio_pts = this->audio_byte_count;
audio_pts *= 90000;
audio_pts /= (RoQ_AUDIO_SAMPLE_RATE * this->wave.nChannels);
this->audio_byte_count += chunk_size - 8; /* do not count the preamble */
-
+
current_file_pos = this->input->get_current_pos(this->input);
/* send out the preamble */
buf = this->audio_fifo->buffer_pool_alloc (this->audio_fifo);
buf->type = BUF_AUDIO_ROQ;
if( this->input->get_length (this->input) )
- buf->extra_info->input_normpos = (int)( (double) (current_file_pos - RoQ_CHUNK_PREAMBLE_SIZE) *
+ buf->extra_info->input_normpos = (int)( (double) (current_file_pos - RoQ_CHUNK_PREAMBLE_SIZE) *
65535 / this->input->get_length (this->input) );
buf->pts = 0;
buf->size = RoQ_CHUNK_PREAMBLE_SIZE;
@@ -219,7 +219,7 @@ static int demux_roq_send_chunk(demux_plugin_t *this_gen) {
buf = this->audio_fifo->buffer_pool_alloc (this->audio_fifo);
buf->type = BUF_AUDIO_ROQ;
if( this->input->get_length (this->input) )
- buf->extra_info->input_normpos = (int)( (double) current_file_pos *
+ buf->extra_info->input_normpos = (int)( (double) current_file_pos *
65535 / this->input->get_length (this->input) );
buf->pts = audio_pts;
@@ -256,7 +256,7 @@ static int demux_roq_send_chunk(demux_plugin_t *this_gen) {
buf = this->video_fifo->buffer_pool_alloc (this->video_fifo);
buf->type = BUF_VIDEO_ROQ;
if( this->input->get_length (this->input) )
- buf->extra_info->input_normpos = (int)( (double) (current_file_pos - RoQ_CHUNK_PREAMBLE_SIZE) *
+ buf->extra_info->input_normpos = (int)( (double) (current_file_pos - RoQ_CHUNK_PREAMBLE_SIZE) *
65535 / this->input->get_length (this->input) );
buf->pts = this->video_pts_counter;
buf->size = RoQ_CHUNK_PREAMBLE_SIZE;
@@ -267,7 +267,7 @@ static int demux_roq_send_chunk(demux_plugin_t *this_gen) {
buf = this->video_fifo->buffer_pool_alloc (this->audio_fifo);
buf->type = BUF_VIDEO_ROQ;
if( this->input->get_length (this->input) )
- buf->extra_info->input_normpos = (int)( (double) current_file_pos *
+ buf->extra_info->input_normpos = (int)( (double) current_file_pos *
65535 / this->input->get_length (this->input) );
buf->pts = this->video_pts_counter;
diff --git a/src/demuxers/demux_shn.c b/src/demuxers/demux_shn.c
index a874deba6..7e25a7048 100644
--- a/src/demuxers/demux_shn.c
+++ b/src/demuxers/demux_shn.c
@@ -83,7 +83,7 @@ static int demux_shn_send_chunk(demux_plugin_t *this_gen) {
buf = this->audio_fifo->buffer_pool_alloc (this->audio_fifo);
buf->type = BUF_AUDIO_SHORTEN;
if( this->input->get_length (this->input) )
- buf->extra_info->input_normpos = (int)( (double) this->input->get_current_pos (this->input) *
+ buf->extra_info->input_normpos = (int)( (double) this->input->get_current_pos (this->input) *
65535 / this->input->get_length (this->input) );
buf->pts = 0;
@@ -92,7 +92,7 @@ static int demux_shn_send_chunk(demux_plugin_t *this_gen) {
buf->free_buffer(buf);
this->status = DEMUX_FINISHED;
return this->status;
- } else
+ } else
buf->size = bytes_read;
/* each buffer stands on its own */
diff --git a/src/demuxers/demux_slave.c b/src/demuxers/demux_slave.c
index cd90cbee0..553089206 100644
--- a/src/demuxers/demux_slave.c
+++ b/src/demuxers/demux_slave.c
@@ -2,19 +2,19 @@
* Copyright (C) 2000-2003 the xine project
* May 2003 - Miguel Freitas
* This plugin was sponsored by 1Control
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -51,7 +51,7 @@
#define CHECK_VPTS_INTERVAL 2*90000
#define NETWORK_PREBUFFER 90000
-typedef struct {
+typedef struct {
demux_plugin_t demux_plugin;
xine_stream_t *stream;
@@ -86,7 +86,7 @@ static int demux_slave_next (demux_slave_t *this) {
char fifo_name[11];
uint8_t *p, *s;
int64_t curvpts;
-
+
/* fill the scratch buffer */
n = this->input->read(this->input, &this->scratch[this->scratch_used],
SCRATCH_SIZE - this->scratch_used);
@@ -402,7 +402,7 @@ static const demuxer_info_t demux_info_slave = {
};
const plugin_info_t xine_plugin_info[] EXPORTED = {
- /* type, API, "name", version, special_info, init_function */
+ /* type, API, "name", version, special_info, init_function */
{ PLUGIN_DEMUX, 27, "slave", XINE_VERSION_CODE, &demux_info_slave, init_plugin },
{ PLUGIN_NONE, 0, "", 0, NULL, NULL }
};
diff --git a/src/demuxers/demux_smjpeg.c b/src/demuxers/demux_smjpeg.c
index 04462919d..6f0cb3832 100644
--- a/src/demuxers/demux_smjpeg.c
+++ b/src/demuxers/demux_smjpeg.c
@@ -112,7 +112,7 @@ static int open_smjpeg_file(demux_smjpeg_t *this) {
if (this->input->read(this->input, header_chunk, 4) != 4)
return 0;
this->duration = _X_BE_32(&header_chunk[0]);
-
+
/* initial state: no video and no audio (until headers found) */
this->video_type = this->audio_type = 0;
this->input_length = this->input->get_length (this->input);
diff --git a/src/demuxers/demux_snd.c b/src/demuxers/demux_snd.c
index 445300f80..1b6b7803a 100644
--- a/src/demuxers/demux_snd.c
+++ b/src/demuxers/demux_snd.c
@@ -110,11 +110,11 @@ static int open_snd_file(demux_snd_t *this) {
this->audio_bytes_per_second = this->audio_channels *
this->audio_sample_rate;
break;
-
+
case 2:
this->audio_type = BUF_AUDIO_LPCM_BE;
this->audio_bits = 8;
- this->audio_frames = this->data_size /
+ this->audio_frames = this->data_size /
(this->audio_channels * this->audio_bits / 8);
this->audio_block_align = PCM_BLOCK_ALIGN;
this->audio_bytes_per_second = this->audio_channels *
@@ -124,7 +124,7 @@ static int open_snd_file(demux_snd_t *this) {
case 3:
this->audio_type = BUF_AUDIO_LPCM_BE;
this->audio_bits = 16;
- this->audio_frames = this->data_size /
+ this->audio_frames = this->data_size /
(this->audio_channels * this->audio_bits / 8);
this->audio_block_align = PCM_BLOCK_ALIGN;
this->audio_bytes_per_second = this->audio_channels *
@@ -163,7 +163,7 @@ static int demux_snd_send_chunk(demux_plugin_t *this_gen) {
/* just load data chunks from wherever the stream happens to be
* pointing; issue a DEMUX_FINISHED status if EOF is reached */
remaining_sample_bytes = this->audio_block_align;
- current_file_pos =
+ current_file_pos =
this->input->get_current_pos(this->input) - this->data_start;
current_pts = current_file_pos;
@@ -205,7 +205,7 @@ static int demux_snd_send_chunk(demux_plugin_t *this_gen) {
for (i = 0; i < buf->size; i++)
buf->content[i] += 0x80;
}
-
+
this->audio_fifo->put (this->audio_fifo, buf);
}
return this->status;
@@ -251,11 +251,11 @@ static int demux_snd_seek (demux_plugin_t *this_gen, off_t start_pos, int start_
demux_snd_t *this = (demux_snd_t *) this_gen;
start_pos = (off_t) ( (double) start_pos / 65535 *
this->data_size );
-
+
this->seek_flag = 1;
this->status = DEMUX_OK;
_x_demux_flush_engine (this->stream);
-
+
/* if input is non-seekable, do not proceed with the rest of this
* seek function */
if (!INPUT_IS_SEEKABLE(this->input))
@@ -358,7 +358,7 @@ void *demux_snd_init_plugin (xine_t *xine, void *data) {
this->demux_class.mimetypes =
"audio/basic: snd,au: ULAW (Sun) audio;"
"audio/x-basic: snd,au: ULAW (Sun) audio;"
- "audio/x-pn-au: snd,au: ULAW (Sun) audio;";
+ "audio/x-pn-au: snd,au: ULAW (Sun) audio;";
this->demux_class.extensions = "snd au";
this->demux_class.dispose = default_demux_class_dispose;
diff --git a/src/demuxers/demux_str.c b/src/demuxers/demux_str.c
index 33d2e7952..e4c439f2f 100644
--- a/src/demuxers/demux_str.c
+++ b/src/demuxers/demux_str.c
@@ -102,7 +102,7 @@
* - then follows 16-bit RLE data until the EOD
* - RLE format: bits 15-10: # of 0s preceding this value (unsigned)
* bits 9-0: this value (signed)
- * - e.g. 3 bytes (2,10)(0,20)(3,30) -> 0 0 10 20 0 0 0 30
+ * - e.g. 3 bytes (2,10)(0,20)(3,30) -> 0 0 10 20 0 0 0 30
* - 16 bits: EOD (0xFE00)
* - 16 bits: 0xFE00 end-of-data footer
*/
@@ -367,7 +367,7 @@ static int demux_str_send_chunk(demux_plugin_t *this_gen) {
*/
if( this->data_size )
- buf->extra_info->input_normpos = (int)( (double) current_pos *
+ buf->extra_info->input_normpos = (int)( (double) current_pos *
65535 / this->data_size );
buf->extra_info->input_time = (current_pos*1000)/(CD_RAW_SECTOR_SIZE*75);
@@ -405,7 +405,7 @@ static int demux_str_send_chunk(demux_plugin_t *this_gen) {
}
if( this->data_size )
- buf->extra_info->input_normpos = (int)( (double) current_pos *
+ buf->extra_info->input_normpos = (int)( (double) current_pos *
65535 / this->data_size );
buf->extra_info->input_time = (current_pos*1000)/(CD_RAW_SECTOR_SIZE*75);
@@ -524,7 +524,7 @@ static int demux_str_get_status (demux_plugin_t *this_gen) {
static int demux_str_get_stream_length (demux_plugin_t *this_gen) {
demux_str_t *this = (demux_str_t *) this_gen;
- return (int)((int64_t) this->input->get_length(this->input)
+ return (int)((int64_t) this->input->get_length(this->input)
* 1000 / (CD_RAW_SECTOR_SIZE * 75));
}
diff --git a/src/demuxers/demux_ts.c b/src/demuxers/demux_ts.c
index 79c802cc5..3e15b2907 100644
--- a/src/demuxers/demux_ts.c
+++ b/src/demuxers/demux_ts.c
@@ -40,7 +40,7 @@
* - demux HDMV/BluRay bitmap subtitles
*
* 28-Nov-2004 Mike Lampard <mlampard>
- * - Added support for PMT sections larger than 1 ts packet
+ * - Added support for PMT sections larger than 1 ts packet
*
* 28-Aug-2004 James Courtier-Dutton <jcdutton>
* - Improve PAT and PMT handling. Added some FIXME comments.
@@ -58,7 +58,7 @@
* - dynamic allocation leaks fixes
*
* 27-May-2002 Giovanni Baronetti and Mauro Borghi <mauro.borghi@tilab.com>
- * - fill buffers before putting them in fifos
+ * - fill buffers before putting them in fifos
* - force PMT reparsing when PMT PID changes
* - accept non seekable input plugins -- FIX?
* - accept dvb as input plugin
@@ -180,7 +180,7 @@
#define PKT_SIZE 188
#define BODY_SIZE (188 - 4)
/* more PIDS are needed due "auto-detection". 40 spare media entries */
-#define MAX_PIDS ((BODY_SIZE - 1 - 13) / 4) + 40
+#define MAX_PIDS ((BODY_SIZE - 1 - 13) / 4) + 40
#define MAX_PMTS ((BODY_SIZE - 1 - 13) / 4) + 10
#define SYNC_BYTE 0x47
@@ -236,6 +236,14 @@
STREAM_SPU_BITMAP_HDMV = 0x90,
STREAM_VIDEO_VC1 = 0xea, /* VC-1 Video */
+
+ HDMV_AUDIO_80_PCM = 0x80, /* BluRay PCM */
+ HDMV_AUDIO_82_DTS = 0x82, /* DTS */
+ HDMV_AUDIO_83_TRUEHD = 0x83, /* Dolby TrueHD, primary audio */
+ HDMV_AUDIO_84_EAC3 = 0x84, /* Dolby Digital plus, primary audio */
+ HDMV_AUDIO_85_DTS_HRA = 0x85, /* DTS-HRA */
+ HDMV_AUDIO_86_DTS_HD_MA = 0x86, /* DTS-HD Master audio */
+
} streamType;
#define WRAP_THRESHOLD 270000
@@ -282,7 +290,7 @@ typedef struct {
int pid;
int media_index;
} demux_ts_spu_lang;
-
+
/* Audio Channels */
#define MAX_AUDIO_TRACKS 32
@@ -347,10 +355,10 @@ typedef struct {
unsigned int pid_count;
unsigned int videoPid;
unsigned int videoMedia;
-
+
demux_ts_audio_track audio_tracks[MAX_AUDIO_TRACKS];
int audio_tracks_count;
-
+
int send_end_buffers;
int64_t last_pts[2];
int send_newpts;
@@ -378,7 +386,7 @@ typedef struct {
int32_t npkt_read;
uint8_t buf[BUF_SIZE]; /* == PKT_SIZE * NPKT_PER_READ */
-
+
int numPreview;
} demux_ts_t;
@@ -418,7 +426,7 @@ static void check_newpts( demux_ts_t *this, int64_t pts, int video )
The original code worked well when the wrap happend like this:
V7 A7 V8 V9 A9 Dv V0 V1 da A1 V2 V3 A3 V4
-
+
Legend:
Vn = video packet with timestamp n
An = audio packet with timestamp n
@@ -436,16 +444,16 @@ static void check_newpts( demux_ts_t *this, int64_t pts, int video )
a delay of almoust 26.5 hours!
The new code gives the following sequences for the above examples:
-
+
V7 A7 V8 V9 A9 Dv V0 V1 A1 V2 V3 A3 V4
V7 V8 A7 V9 Dv V0 Da A9 Dv V1 V2 A1 V3 V4 A3
After proving this code it should be cleaned up to use just a single variable "last_pts". */
-
+
/*
this->last_pts[video] = pts;
-*/
+*/
this->last_pts[video] = this->last_pts[1-video] = pts;
}
}
@@ -471,7 +479,7 @@ static void demux_send_special_spu_buf( demux_ts_t *this, uint32_t spu_type, int
static void demux_ts_update_spu_channel(demux_ts_t *this)
{
buf_element_t *buf;
-
+
this->current_spu_channel = this->stream->spu_channel;
buf = this->video_fifo->buffer_pool_alloc(this->video_fifo);
@@ -480,7 +488,7 @@ static void demux_ts_update_spu_channel(demux_ts_t *this)
buf->decoder_flags = BUF_FLAG_SPECIAL;
buf->decoder_info[1] = BUF_SPECIAL_SPU_DVB_DESCRIPTOR;
buf->size = 0;
-
+
if (this->current_spu_channel >= 0
&& this->current_spu_channel < this->spu_langs_count)
{
@@ -549,7 +557,7 @@ static void demux_ts_parse_pat (demux_ts_t*this, unsigned char *original_pkt,
* indicator set.
*/
if (!pusi) {
- xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
"demux_ts: demux error! PAT without payload unit start indicator\n");
return;
}
@@ -559,7 +567,7 @@ static void demux_ts_parse_pat (demux_ts_t*this, unsigned char *original_pkt,
*/
pkt += pkt[4];
if (pkt - original_pkt > PKT_SIZE) {
- xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
"demux_ts: demux error! PAT with invalid pointer\n");
return;
}
@@ -593,13 +601,13 @@ static void demux_ts_parse_pat (demux_ts_t*this, unsigned char *original_pkt,
}
if (pkt - original_pkt > BODY_SIZE - 1 - 3 - section_length) {
- xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
"demux_ts: FIXME: (unsupported )PAT spans multiple TS packets\n");
return;
}
if ((section_number != 0) || (last_section_number != 0)) {
- xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
"demux_ts: FIXME: (unsupported) PAT consists of multiple (%d) sections\n", last_section_number);
return;
}
@@ -607,11 +615,11 @@ static void demux_ts_parse_pat (demux_ts_t*this, unsigned char *original_pkt,
/* Check CRC. */
calc_crc32 = htonl(av_crc(this->class->av_crc, 0xffffffff, pkt+5, section_length+3-4));
if (crc32 != calc_crc32) {
- xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
"demux_ts: demux error! PAT with invalid CRC32: packet_crc32: %.8x calc_crc32: %.8x\n",
crc32,calc_crc32);
return;
- }
+ }
#ifdef TS_PAT_LOG
else {
printf ("demux_ts: PAT CRC32 ok.\n");
@@ -689,7 +697,7 @@ static int demux_ts_parse_pes_header (xine_t *xine, demux_ts_media *m,
/* we should have a PES packet here */
if (p[0] || p[1] || (p[2] != 1)) {
- xprintf (xine, XINE_VERBOSITY_DEBUG,
+ xprintf (xine, XINE_VERBOSITY_DEBUG,
"demux_ts: error %02x %02x %02x (should be 0x000001) \n", p[0], p[1], p[2]);
return 0 ;
}
@@ -740,7 +748,7 @@ static int demux_ts_parse_pes_header (xine_t *xine, demux_ts_media *m,
/* sometimes corruption on header_len causes segfault in memcpy below */
if (header_len + 9 > pkt_len) {
- xprintf (xine, XINE_VERBOSITY_DEBUG,
+ xprintf (xine, XINE_VERBOSITY_DEBUG,
"demux_ts: illegal value for PES_header_data_length (0x%x)\n", header_len);
return 0;
}
@@ -769,7 +777,7 @@ static int demux_ts_parse_pes_header (xine_t *xine, demux_ts_media *m,
if (stream_id == 0xbd || stream_id == 0xfd /* HDMV */) {
int spu_id;
-
+
lprintf ("audio buf = %02X %02X %02X %02X %02X %02X %02X %02X\n",
p[0], p[1], p[2], p[3], p[4], p[5], p[6], p[7]);
@@ -779,13 +787,26 @@ static int demux_ts_parse_pes_header (xine_t *xine, demux_ts_media *m,
* these "raw" streams may begin with a byte that looks like a stream type.
* For audio streams, m->type already contains the stream no.
*/
- if((m->descriptor_tag == STREAM_AUDIO_AC3) || /* ac3 - raw */
+ if((m->descriptor_tag == STREAM_AUDIO_AC3) || /* ac3 - raw */
(p[0] == 0x0B && p[1] == 0x77)) { /* ac3 - syncword */
m->content = p;
m->size = packet_len;
m->type |= BUF_AUDIO_A52;
return 1;
+ } else if (m->descriptor_tag == HDMV_AUDIO_83_TRUEHD) {
+ /* TODO: separate AC3 and TrueHD streams ... */
+ m->content = p;
+ m->size = packet_len;
+ m->type |= BUF_AUDIO_A52;
+ return 1;
+
+ } else if (m->descriptor_tag == HDMV_AUDIO_86_DTS_HD_MA ) {
+ m->content = p;
+ m->size = packet_len;
+ m->type |= BUF_AUDIO_DTS;
+ return 1;
+
} else if (m->descriptor_tag == ISO_13818_PES_PRIVATE
&& p[0] == 0x20 && p[1] == 0x00) {
/* DVBSUB */
@@ -858,7 +879,7 @@ static int demux_ts_parse_pes_header (xine_t *xine, demux_ts_media *m,
m->content = p;
m->size = packet_len;
switch (m->descriptor_tag) {
- case ISO_11172_AUDIO:
+ case ISO_11172_AUDIO:
case ISO_13818_AUDIO:
lprintf ("demux_ts: found MPEG audio track.\n");
m->type |= BUF_AUDIO_MPEG;
@@ -907,7 +928,7 @@ static void demux_ts_buffer_pes(demux_ts_t*this, unsigned char *ts,
case (i.e. adaptation field only) when it does not get bumped. */
if (m->counter != INVALID_CC) {
if ((m->counter & 0x0f) != cc) {
- xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"demux_ts: PID 0x%.4x: unexpected cc %d (expected %d)\n", m->pid, cc, m->counter);
}
}
@@ -937,9 +958,9 @@ static void demux_ts_buffer_pes(demux_ts_t*this, unsigned char *ts,
}
m->buf->pts = m->pts;
m->buf->decoder_info[0] = 1;
-
+
if( this->input->get_length (this->input) )
- m->buf->extra_info->input_normpos = (int)( (double) this->input->get_current_pos (this->input) *
+ m->buf->extra_info->input_normpos = (int)( (double) this->input->get_current_pos (this->input) *
65535 / this->input->get_length (this->input) );
if (this->rate)
m->buf->extra_info->input_time = (int)((int64_t)this->input->get_current_pos (this->input)
@@ -957,7 +978,7 @@ static void demux_ts_buffer_pes(demux_ts_t*this, unsigned char *ts,
if (!demux_ts_parse_pes_header(this->stream->xine, m, ts, len, this->stream)) {
m->buf->free_buffer(m->buf);
m->buf = NULL;
-
+
if (m->corrupted_pes > CORRUPT_PES_THRESHOLD && m->autodetected) {
if (this->videoPid == m->pid) {
this->videoPid = INVALID_PID;
@@ -965,7 +986,7 @@ static void demux_ts_buffer_pes(demux_ts_t*this, unsigned char *ts,
}
} else {
m->corrupted_pes++;
- xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"demux_ts: PID 0x%.4x: corrupted pes encountered\n", m->pid);
}
} else {
@@ -984,7 +1005,7 @@ static void demux_ts_buffer_pes(demux_ts_t*this, unsigned char *ts,
m->buf->pts = 0; /* m->pts */
m->buf->decoder_info[0] = 1;
if( this->input->get_length (this->input) )
- m->buf->extra_info->input_normpos = (int)( (double) this->input->get_current_pos (this->input) *
+ m->buf->extra_info->input_normpos = (int)( (double) this->input->get_current_pos (this->input) *
65535 / this->input->get_length (this->input) );
if (this->rate)
m->buf->extra_info->input_time = (int)((int64_t)this->input->get_current_pos (this->input)
@@ -1069,7 +1090,7 @@ static void demux_ts_get_reg_desc(demux_ts_t *this, uint32_t *dest,
{
*dest = (d[2] << 24) | (d[3] << 16) | (d[4] << 8) | d[5];
- xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"demux_ts: found registration format identifier: 0x%.4x\n", *dest);
return;
}
@@ -1091,7 +1112,7 @@ static inline int ts_payloadsize(unsigned char * tsp)
}
return 184;
}
-
+
/*
* NAME demux_ts_parse_pmt
@@ -1121,14 +1142,14 @@ static void demux_ts_parse_pmt (demux_ts_t *this,
uint32_t crc32;
uint32_t calc_crc32;
uint32_t coded_length;
- unsigned int pid;
+ unsigned int pid;
unsigned char *stream;
- unsigned int i;
- int count;
+ unsigned int i;
+ int count;
uint8_t *ptr = NULL;
unsigned char len;
- unsigned int offset=0;
-
+ unsigned int offset=0;
+
/*
* A new section should start with the payload unit start
* indicator set. We allocate some mem (max. allowed for a PM section)
@@ -1137,7 +1158,7 @@ static void demux_ts_parse_pmt (demux_ts_t *this,
if (pusi) {
pkt+=pkt[4]; /* pointer to start of section */
offset=1;
-
+
if (this->pmt[program_count] != NULL) free(this->pmt[program_count]);
this->pmt[program_count] = (uint8_t *) calloc(4096, sizeof(unsigned char));
this->pmt_write_ptr[program_count] = this->pmt[program_count];
@@ -1181,7 +1202,7 @@ printf("Program Number is %i, looking for %i\n",program_number,this->program_num
}
if ((section_number != 0) || (last_section_number != 0)) {
- xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
"demux_ts: FIXME (unsupported) PMT consists of multiple (%d) sections\n", last_section_number);
return;
}
@@ -1207,7 +1228,7 @@ printf("Program Number is %i, looking for %i\n",program_number,this->program_num
len = count-offset;
memcpy (this->pmt_write_ptr[program_count], ptr, len);
this->pmt_write_ptr[program_count] +=len;
-
+
#ifdef TS_PMT_LOG
printf ("ts_demux: wr_ptr: %p, will be %p when finished\n",
this->pmt_write_ptr[program_count],
@@ -1245,9 +1266,9 @@ printf("Program Number is %i, looking for %i\n",program_number,this->program_num
this->pmt[program_count], section_length+3-4));
if (crc32 != calc_crc32) {
- xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
"demux_ts: demux error! PMT with invalid CRC32: packet_crc32: %#.8x calc_crc32: %#.8x\n",
- crc32,calc_crc32);
+ crc32,calc_crc32);
return;
}
else {
@@ -1294,7 +1315,7 @@ printf("Program Number is %i, looking for %i\n",program_number,this->program_num
stream = &this->pmt[program_count][12] + program_info_length;
coded_length = 13 + program_info_length;
if (coded_length > section_length) {
- xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
"demux error! PMT with inconsistent progInfo length\n");
return;
}
@@ -1311,7 +1332,7 @@ printf("Program Number is %i, looking for %i\n",program_number,this->program_num
stream_info_length = ((stream[3] << 8) | stream[4]) & 0x0fff;
coded_length = 5 + stream_info_length;
if (coded_length > section_length) {
- xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
"demux error! PMT with inconsistent streamInfo length\n");
return;
}
@@ -1426,9 +1447,9 @@ printf("Program Number is %i, looking for %i\n",program_number,this->program_num
{
int no = this->spu_langs_count;
demux_ts_spu_lang *lang = &this->spu_langs[no];
-
+
this->spu_langs_count++;
-
+
memcpy(lang->desc.lang, &stream[pos], 3);
lang->desc.lang[3] = 0;
lang->desc.comp_page_id =
@@ -1490,7 +1511,7 @@ printf("Program Number is %i, looking for %i\n",program_number,this->program_num
* then we check the registration format identifier to see if it holds "AC-3" (0x41432d33) and
* if is does, we tag this as an audio stream.
* FIXME: This will need expanding if we ever see a DTS or other media format here.
- */
+ */
if ((this->audio_tracks_count < MAX_AUDIO_TRACKS) && (stream[0] >= 0x80) ) {
int i, found = 0;
for(i = 0; i < this->audio_tracks_count; i++) {
@@ -1591,7 +1612,7 @@ static int sync_correct(demux_ts_t*this, uint8_t *buf, int32_t npkt_read) {
n + p * this->pkt_size);
/* FIXME: when read_length is not as required... we now stop demuxing */
if (read_length != (n + p * this->pkt_size)) {
- xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
"demux_ts_tsync_correct: sync found, but read failed\n");
return 0;
}
@@ -1660,7 +1681,7 @@ static unsigned char * demux_synchronise(demux_ts_t* this) {
read_length = this->input->read(this->input, this->buf,
this->pkt_size * NPKT_PER_READ);
if (read_length < 0 || read_length % this->pkt_size) {
- xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
"demux_ts: read returned %d bytes (not a multiple of %d!)\n",
read_length, this->pkt_size);
this->status = DEMUX_FINISHED;
@@ -1699,7 +1720,7 @@ static unsigned char * demux_synchronise(demux_ts_t* this) {
}
-static int64_t demux_ts_adaptation_field_parse(uint8_t *data,
+static int64_t demux_ts_adaptation_field_parse(uint8_t *data,
uint32_t adaptation_field_length) {
uint32_t discontinuity_indicator=0;
@@ -1821,7 +1842,7 @@ static void demux_ts_parse_packet (demux_ts_t*this) {
transport_error_indicator = (originalPkt[1] >> 7) & 0x01;
payload_unit_start_indicator = (originalPkt[1] >> 6) & 0x01;
transport_priority = (originalPkt[1] >> 5) & 0x01;
- pid = ((originalPkt[1] << 8) |
+ pid = ((originalPkt[1] << 8) |
originalPkt[2]) & 0x1fff;
transport_scrambling_control = (originalPkt[3] >> 6) & 0x03;
adaptation_field_control = (originalPkt[3] >> 4) & 0x03;
@@ -1842,7 +1863,7 @@ static void demux_ts_parse_packet (demux_ts_t*this) {
* Discard packets that are obviously bad.
*/
if (sync_byte != SYNC_BYTE) {
- xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
"demux error! invalid ts sync byte %.2x\n", sync_byte);
return;
}
@@ -1857,7 +1878,7 @@ static void demux_ts_parse_packet (demux_ts_t*this) {
if (transport_scrambling_control) {
if (this->videoPid == pid) {
- xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
"demux_ts: selected videoPid is scrambled; skipping...\n");
}
for (i=0; i < this->scrambled_npids; i++) {
@@ -1882,7 +1903,7 @@ static void demux_ts_parse_packet (demux_ts_t*this) {
*/
data_offset += adaptation_field_length + 1;
}
-
+
if (! (adaptation_field_control & 0x1)) {
return;
}
@@ -1894,10 +1915,10 @@ static void demux_ts_parse_packet (demux_ts_t*this) {
*/
program_count=0;
if(this->media_num<MAX_PMTS)
- while ((this->program_number[program_count] != INVALID_PROGRAM) &&
- (program_count < MAX_PMTS)) {
+ while ((this->program_number[program_count] != INVALID_PROGRAM) &&
+ (program_count < MAX_PMTS)) {
if (pid == this->pmt_pid[program_count]) {
-
+
#ifdef TS_LOG
printf ("demux_ts: PMT prog: 0x%.4x pid: 0x%.4x\n",
this->program_number[program_count],
@@ -1910,7 +1931,7 @@ static void demux_ts_parse_packet (demux_ts_t*this) {
}
program_count++;
}
-
+
if (payload_unit_start_indicator && this->media_num < MAX_PIDS){
int pes_stream_id;
if (pid == 0) {
@@ -1924,7 +1945,7 @@ static void demux_ts_parse_packet (demux_ts_t*this) {
#ifdef TS_HEADER_LOG
printf("demux_ts:ts_pes_header:stream_id=0x%.2x\n",pes_stream_id);
#endif
-
+
if ( (pes_stream_id >= VIDEO_STREAM_S) && (pes_stream_id <= VIDEO_STREAM_E) ) {
if ( this->videoPid == INVALID_PID) {
int i, found = 0;
@@ -1934,7 +1955,7 @@ static void demux_ts_parse_packet (demux_ts_t*this) {
break;
}
}
-
+
if (found && (this->media[i].corrupted_pes == 0)) {
this->videoPid = pid;
this->videoMedia = i;
@@ -1944,11 +1965,11 @@ static void demux_ts_parse_packet (demux_ts_t*this) {
this->media[this->videoMedia].autodetected = 1;
demux_ts_pes_new(this, this->media_num++, pid, this->video_fifo, 0x100 + pes_stream_id);
}
-
+
if (this->videoPid != INVALID_PID) {
- xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
"demux_ts: auto-detected video pid 0x%.4x\n", pid);
- }
+ }
}
} else if ( (pes_stream_id >= AUDIO_STREAM_S) && (pes_stream_id <= AUDIO_STREAM_E) ) {
if (this->audio_tracks_count < MAX_AUDIO_TRACKS) {
@@ -1975,10 +1996,10 @@ static void demux_ts_parse_packet (demux_ts_t*this) {
}
}
}
-
+
if (data_len > PKT_SIZE) {
- xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
"demux_ts: demux error! invalid payload size %d\n", data_len);
} else {
@@ -2052,7 +2073,7 @@ static void demux_ts_event_handler (demux_ts_t *this) {
this->last_pmt_crc = 0;
_x_demux_control_start (this->stream);
break;
-
+
}
xine_event_free (event);
@@ -2091,7 +2112,7 @@ static void demux_ts_dispose (demux_plugin_t *this_gen) {
}
}
for (i=0; i < MAX_PIDS; i++) {
- if (this->media[i].buf != NULL) {
+ if (this->media[i].buf != NULL) {
this->media[i].buf->free_buffer(this->media[i].buf);
this->media[i].buf = NULL;
}
@@ -2128,21 +2149,21 @@ static void demux_ts_send_headers (demux_plugin_t *this_gen) {
this->last_pmt_crc = 0;
_x_demux_control_start (this->stream);
-
+
this->input->seek (this->input, 0, SEEK_SET);
this->send_newpts = 1;
-
+
this->status = DEMUX_OK ;
this->send_end_buffers = 1;
this->scrambled_npids = 0;
-
+
/* DVBSUB */
this->spu_pid = INVALID_PID;
this->spu_langs_count = 0;
this->current_spu_channel = -1;
-
+
/* FIXME ? */
_x_stream_info_set(this->stream, XINE_STREAM_INFO_HAS_VIDEO, 1);
_x_stream_info_set(this->stream, XINE_STREAM_INFO_HAS_AUDIO, 1);
@@ -2169,11 +2190,11 @@ static int demux_ts_seek (demux_plugin_t *this_gen,
}
this->send_newpts = 1;
-
+
for (i=0; i<MAX_PIDS; i++) {
demux_ts_media *m = &this->media[i];
- if (m->buf != NULL)
+ if (m->buf != NULL)
m->buf->free_buffer(m->buf);
m->buf = NULL;
m->counter = INVALID_CC;
@@ -2182,7 +2203,7 @@ static int demux_ts_seek (demux_plugin_t *this_gen,
}
if( !playing ) {
-
+
this->status = DEMUX_OK;
this->buf_flag_seek = 0;
@@ -2192,7 +2213,7 @@ static int demux_ts_seek (demux_plugin_t *this_gen,
_x_demux_flush_engine(this->stream);
}
-
+
return this->status;
}
@@ -2201,7 +2222,7 @@ static int demux_ts_get_stream_length (demux_plugin_t *this_gen) {
demux_ts_t*this = (demux_ts_t*)this_gen;
if (this->rate)
- return (int)((int64_t) this->input->get_length (this->input)
+ return (int)((int64_t) this->input->get_length (this->input)
* 1000 / (this->rate * 50));
else
return 0;
@@ -2223,7 +2244,7 @@ static int demux_ts_get_optional_data(demux_plugin_t *this_gen,
/* be a bit paranoid */
if (this == NULL || this->stream == NULL)
return DEMUX_OPTIONAL_UNSUPPORTED;
-
+
switch (data_type)
{
case DEMUX_OPTIONAL_DATA_AUDIOLANG:
@@ -2242,7 +2263,7 @@ static int demux_ts_get_optional_data(demux_plugin_t *this_gen,
if (channel>=0 && channel<this->spu_langs_count) {
memcpy(str, this->spu_langs[channel].desc.lang, 3);
str[3] = 0;}
- else
+ else
strcpy(str, "none");
return DEMUX_OPTIONAL_SUCCESS;
@@ -2278,10 +2299,10 @@ static int detect_ts(uint8_t *buf, size_t len, int ts_size)
return ts_detected;
}
-static demux_plugin_t *open_plugin (demux_class_t *class_gen,
- xine_stream_t *stream,
+static demux_plugin_t *open_plugin (demux_class_t *class_gen,
+ xine_stream_t *stream,
input_plugin_t *input) {
-
+
demux_ts_t *this;
int i;
int hdmv = -1;
@@ -2298,9 +2319,9 @@ static demux_plugin_t *open_plugin (demux_class_t *class_gen,
if (detect_ts(buf, sizeof(buf), PKT_SIZE))
hdmv = 0;
- else if (detect_ts(buf, sizeof(buf), PKT_SIZE+4))
+ else if (detect_ts(buf, sizeof(buf), PKT_SIZE+4))
hdmv = 1;
- else
+ else
return NULL;
}
break;
@@ -2332,7 +2353,7 @@ static demux_plugin_t *open_plugin (demux_class_t *class_gen,
this->demux_plugin.get_capabilities = demux_ts_get_capabilities;
this->demux_plugin.get_optional_data = demux_ts_get_optional_data;
this->demux_plugin.demux_class = class_gen;
-
+
/*
* Initialise our specialised data.
*/
@@ -2357,7 +2378,7 @@ static demux_plugin_t *open_plugin (demux_class_t *class_gen,
this->last_pmt_crc = 0;
this->rate = 16000; /* FIXME */
-
+
this->status = DEMUX_FINISHED;
/* DVBSUB */
@@ -2374,7 +2395,7 @@ static demux_plugin_t *open_plugin (demux_class_t *class_gen,
this->pkt_size = PKT_SIZE + this->pkt_offset;
this->numPreview=0;
-
+
return &this->demux_plugin;
}
@@ -2382,9 +2403,9 @@ static demux_plugin_t *open_plugin (demux_class_t *class_gen,
* ts demuxer class
*/
static void *init_class (xine_t *xine, void *data) {
-
+
demux_ts_class_t *this;
-
+
this = calloc(1, sizeof(demux_ts_class_t));
this->config = xine->config;
this->xine = xine;
@@ -2415,7 +2436,7 @@ static const demuxer_info_t demux_info_ts = {
};
const plugin_info_t xine_plugin_info[] EXPORTED = {
- /* type, API, "name", version, special_info, init_function */
+ /* type, API, "name", version, special_info, init_function */
{ PLUGIN_DEMUX, 27, "mpeg-ts", XINE_VERSION_CODE, &demux_info_ts, init_class },
{ PLUGIN_NONE, 0, "", 0, NULL, NULL }
};
diff --git a/src/demuxers/demux_tta.c b/src/demuxers/demux_tta.c
index 6537c1444..8f8f954d5 100644
--- a/src/demuxers/demux_tta.c
+++ b/src/demuxers/demux_tta.c
@@ -19,6 +19,8 @@
*
* True Audio demuxer by Diego Pettenò <flameeyes@gentoo.org>
* Inspired by tta libavformat demuxer by Alex Beregszaszi
+ *
+ * Seek + time support added by Kelvie Wong <kelvie@ieee.org>
*/
#ifdef HAVE_CONFIG_H
@@ -28,6 +30,10 @@
#define LOG_MODULE "demux_tta"
#define LOG_VERBOSE
+// This is from the TTA spec, the length (in seconds) of a frame
+// http://www.true-audio.com/TTA_Lossless_Audio_Codec_-_Format_Description
+#define FRAME_TIME 1.04489795918367346939
+
#include <xine/xine_internal.h>
#include <xine/xineutils.h>
#include <xine/demux.h>
@@ -48,6 +54,8 @@ typedef struct {
uint32_t totalframes;
uint32_t currentframe;
+ off_t datastart;
+
int status;
union {
@@ -81,7 +89,7 @@ static int open_tta_file(demux_tta_t *this) {
if ( this->input->read(this->input, this->header.buffer, sizeof(this->header)) != sizeof(this->header) )
return 0;
- framelen = 1.04489795918367346939 * le2me_32(this->header.tta.samplerate);
+ framelen = (uint32_t)(FRAME_TIME * le2me_32(this->header.tta.samplerate));
this->totalframes = le2me_32(this->header.tta.data_length) / framelen + ((le2me_32(this->header.tta.data_length) % framelen) ? 1 : 0);
this->currentframe = 0;
@@ -96,6 +104,9 @@ static int open_tta_file(demux_tta_t *this) {
/* Skip the CRC32 */
this->input->seek(this->input, 4, SEEK_CUR);
+ /* Store the offset after the header for seeking */
+ this->datastart = this->input->get_current_pos(this->input);
+
return 1;
}
@@ -126,7 +137,7 @@ static int demux_tta_send_chunk(demux_plugin_t *this_gen) {
(int) ((double) this->currentframe * 65535 / this->totalframes);
/* Set time */
- /* buf->extra_info->input_time = this->current_sample / this->samplerate; */
+ buf->extra_info->input_time = (int)(FRAME_TIME * this->currentframe)*1000;
bytes_read = this->input->read(this->input, buf->content, ( bytes_to_read > buf->max_size ) ? buf->max_size : bytes_to_read);
if (bytes_read < 0) {
@@ -140,7 +151,7 @@ static int demux_tta_send_chunk(demux_plugin_t *this_gen) {
if ( bytes_to_read <= 0 )
buf->decoder_flags |= BUF_FLAG_FRAME_END;
-
+
this->audio_fifo->put(this->audio_fifo, buf);
}
@@ -195,6 +206,9 @@ static void demux_tta_send_headers(demux_plugin_t *this_gen) {
static int demux_tta_seek (demux_plugin_t *this_gen,
off_t start_pos, int start_time, int playing) {
demux_tta_t *this = (demux_tta_t *) this_gen;
+ uint32_t start_frame;
+ uint32_t frame_index;
+ off_t start_off = this->datastart;
/* if thread is not running, initialize demuxer */
if( !playing ) {
@@ -203,11 +217,39 @@ static int demux_tta_seek (demux_plugin_t *this_gen,
_x_demux_control_newpts(this->stream, 0, 0);
this->status = DEMUX_OK;
+
+ } else {
+
+ /* Get the starting frame */
+ if( start_pos )
+ start_frame = start_pos * this->totalframes / 65535;
+ else
+ start_frame = (uint32_t)((double)start_time/ 1000.0 / FRAME_TIME);
+
+ /* Now we find the offset */
+ for( frame_index = 0; frame_index < start_frame; frame_index++ )
+ start_off += le2me_32(this->seektable[frame_index]);
+
+ /* Let's seek! We store the current frame internally, so let's update that
+ * as well */
+ _x_demux_flush_engine(this->stream);
+ this->input->seek(this->input, start_off, SEEK_SET);
+ this->currentframe = start_frame;
+ _x_demux_control_newpts(this->stream, (int)(FRAME_TIME * start_frame) * 90000, BUF_FLAG_SEEK);
+
+ this->status = DEMUX_OK;
}
return this->status;
}
+static void demux_tta_dispose (demux_plugin_t *this_gen) {
+ demux_tta_t *this = (demux_tta_t *) this_gen;
+
+ free(this->seektable);
+ free(this);
+}
+
static int demux_tta_get_status (demux_plugin_t *this_gen) {
demux_tta_t *this = (demux_tta_t *) this_gen;
@@ -215,9 +257,8 @@ static int demux_tta_get_status (demux_plugin_t *this_gen) {
}
static int demux_tta_get_stream_length (demux_plugin_t *this_gen) {
-// demux_tta_t *this = (demux_tta_t *) this_gen;
-
- return 0;
+ demux_tta_t *this = (demux_tta_t *) this_gen;
+ return (int)(FRAME_TIME * this->totalframes * 1000);
}
static uint32_t demux_tta_get_capabilities(demux_plugin_t *this_gen) {
@@ -241,7 +282,7 @@ static demux_plugin_t *open_plugin (demux_class_t *class_gen, xine_stream_t *str
this->demux_plugin.send_headers = demux_tta_send_headers;
this->demux_plugin.send_chunk = demux_tta_send_chunk;
this->demux_plugin.seek = demux_tta_seek;
- this->demux_plugin.dispose = default_demux_plugin_dispose;
+ this->demux_plugin.dispose = demux_tta_dispose;
this->demux_plugin.get_status = demux_tta_get_status;
this->demux_plugin.get_stream_length = demux_tta_get_stream_length;
this->demux_plugin.get_capabilities = demux_tta_get_capabilities;
diff --git a/src/demuxers/demux_vmd.c b/src/demuxers/demux_vmd.c
index cbd413b4a..bcea5e725 100644
--- a/src/demuxers/demux_vmd.c
+++ b/src/demuxers/demux_vmd.c
@@ -19,7 +19,7 @@
*/
/*
- * Sierra Video and Music Data (.vmd) File Demuxer
+ * Sierra Video and Music Data (.vmd) File Demuxer
* by Mike Melanson (melanson@pcisys.net)
* For more information on the VMD file format, visit:
* http://www.pcisys.net/~melanson/codecs/
@@ -109,7 +109,7 @@ static int open_vmd_file(demux_vmd_t *this) {
unsigned int total_frames;
int64_t current_video_pts = 0;
- if (_x_demux_read_header(this->input, vmd_header, VMD_HEADER_SIZE) !=
+ if (_x_demux_read_header(this->input, vmd_header, VMD_HEADER_SIZE) !=
VMD_HEADER_SIZE)
return 0;
@@ -234,7 +234,7 @@ static int demux_vmd_send_chunk(demux_plugin_t *this_gen) {
buf = this->video_fifo->buffer_pool_alloc (this->video_fifo);
buf->type = BUF_VIDEO_VMD;
if( this->data_size )
- buf->extra_info->input_normpos = (int)( (double) (frame->frame_offset - this->data_start) *
+ buf->extra_info->input_normpos = (int)( (double) (frame->frame_offset - this->data_start) *
65535 / this->data_size);
memcpy(buf->content, frame->frame_record, BYTES_PER_FRAME_RECORD);
buf->size = BYTES_PER_FRAME_RECORD;
@@ -246,7 +246,7 @@ static int demux_vmd_send_chunk(demux_plugin_t *this_gen) {
buf = this->video_fifo->buffer_pool_alloc (this->video_fifo);
buf->type = BUF_VIDEO_VMD;
if( this->data_size )
- buf->extra_info->input_normpos = (int)( (double) (frame->frame_offset - this->data_start) *
+ buf->extra_info->input_normpos = (int)( (double) (frame->frame_offset - this->data_start) *
65535 / this->data_size);
if (remaining_bytes > buf->max_size)
@@ -277,7 +277,7 @@ static int demux_vmd_send_chunk(demux_plugin_t *this_gen) {
buf = this->audio_fifo->buffer_pool_alloc (this->audio_fifo);
buf->type = BUF_AUDIO_VMD;
if( this->data_size )
- buf->extra_info->input_normpos = (int)( (double) (frame->frame_offset - this->data_start) *
+ buf->extra_info->input_normpos = (int)( (double) (frame->frame_offset - this->data_start) *
65535 / this->data_size);
memcpy(buf->content, frame->frame_record, BYTES_PER_FRAME_RECORD);
buf->size = BYTES_PER_FRAME_RECORD;
@@ -289,7 +289,7 @@ static int demux_vmd_send_chunk(demux_plugin_t *this_gen) {
buf = this->audio_fifo->buffer_pool_alloc (this->audio_fifo);
buf->type = BUF_AUDIO_VMD;
if( this->data_size )
- buf->extra_info->input_normpos = (int)( (double) (frame->frame_offset - this->data_start) *
+ buf->extra_info->input_normpos = (int)( (double) (frame->frame_offset - this->data_start) *
65535 / this->data_size);
if (remaining_bytes > buf->max_size)
diff --git a/src/demuxers/demux_voc.c b/src/demuxers/demux_voc.c
index 6a958570e..0e4b736be 100644
--- a/src/demuxers/demux_voc.c
+++ b/src/demuxers/demux_voc.c
@@ -93,7 +93,7 @@ static int open_voc_file(demux_voc_t *this) {
this->input->seek(this->input, first_block_offset, SEEK_SET);
/* load the block preamble */
- if (this->input->read(this->input, preamble, BLOCK_PREAMBLE_SIZE) !=
+ if (this->input->read(this->input, preamble, BLOCK_PREAMBLE_SIZE) !=
BLOCK_PREAMBLE_SIZE)
return 0;
@@ -142,7 +142,7 @@ static int demux_voc_send_chunk(demux_plugin_t *this_gen) {
/* just load data chunks from wherever the stream happens to be
* pointing; issue a DEMUX_FINISHED status if EOF is reached */
remaining_sample_bytes = PCM_BLOCK_ALIGN;
- current_file_pos =
+ current_file_pos =
this->input->get_current_pos(this->input) - this->data_start;
current_pts = current_file_pos;
@@ -231,7 +231,7 @@ static int demux_voc_seek (demux_plugin_t *this_gen, off_t start_pos, int start_
start_pos = (off_t) ( (double) start_pos / 65535 *
this->data_size );
-
+
this->seek_flag = 1;
this->status = DEMUX_OK;
_x_demux_flush_engine (this->stream);
diff --git a/src/demuxers/demux_vox.c b/src/demuxers/demux_vox.c
index 8fb3cb61f..2d33952b4 100644
--- a/src/demuxers/demux_vox.c
+++ b/src/demuxers/demux_vox.c
@@ -87,7 +87,7 @@ static int demux_vox_send_chunk (demux_plugin_t *this_gen) {
buf->size = buf->max_size;
if( this->input->get_length (this->input) )
- buf->extra_info->input_normpos = (int)( (double) current_file_pos *
+ buf->extra_info->input_normpos = (int)( (double) current_file_pos *
65535 / this->input->get_length (this->input) );
buf->extra_info->input_time = audio_pts / 90;
buf->pts = audio_pts;
@@ -160,7 +160,7 @@ static int demux_vox_get_status (demux_plugin_t *this_gen) {
static int demux_vox_get_stream_length (demux_plugin_t *this_gen) {
demux_vox_t *this = (demux_vox_t *) this_gen;
- return (int)((int64_t)this->input->get_length(this->input)
+ return (int)((int64_t)this->input->get_length(this->input)
* 2 * 1000 / DIALOGIC_SAMPLERATE);
}
diff --git a/src/demuxers/demux_vqa.c b/src/demuxers/demux_vqa.c
index 3f4ec3e66..9e0f1cb65 100644
--- a/src/demuxers/demux_vqa.c
+++ b/src/demuxers/demux_vqa.c
@@ -25,7 +25,7 @@
*
* Quick technical note: VQA files begin with a header that includes a
* frame index. This ought to be useful for seeking within a VQA file.
- * However, seeking is infeasible due to the audio encoding: Each audio
+ * However, seeking is infeasible due to the audio encoding: Each audio
* block needs information from the previous audio block in order to be
* decoded, thus making random seeking difficult.
*/
@@ -108,7 +108,7 @@ static int open_vqa_file(demux_vqa_t *this) {
this->filesize = 1;
/* load the VQA header */
- if (this->input->read(this->input, vqa_header, VQA_HEADER_SIZE) !=
+ if (this->input->read(this->input, vqa_header, VQA_HEADER_SIZE) !=
VQA_HEADER_SIZE)
return 0;
diff --git a/src/demuxers/demux_wc3movie.c b/src/demuxers/demux_wc3movie.c
index f9cf9b16c..fbf2a7ce0 100644
--- a/src/demuxers/demux_wc3movie.c
+++ b/src/demuxers/demux_wc3movie.c
@@ -177,7 +177,7 @@ static int demux_mve_send_chunk(demux_plugin_t *this_gen) {
}
}
this->current_shot++;
-
+
/* this is the start of a new shot; send a new palette */
if (this->input->read(this->input, preamble, 4) != 4) {
this->status = DEMUX_FINISHED;
@@ -205,7 +205,7 @@ static int demux_mve_send_chunk(demux_plugin_t *this_gen) {
} else if (chunk_tag == AUDI_TAG) {
if( this->audio_fifo ) {
audio_pts = this->video_pts - WC3_PTS_INC;
-
+
while (chunk_size) {
buf = this->audio_fifo->buffer_pool_alloc (this->audio_fifo);
buf->type = BUF_AUDIO_LPCM_LE;
@@ -213,23 +213,23 @@ static int demux_mve_send_chunk(demux_plugin_t *this_gen) {
buf->extra_info->input_normpos = (int)( (double) current_file_pos * 65535 / this->data_size);
buf->extra_info->input_time = audio_pts / 90;
buf->pts = audio_pts;
-
+
if (chunk_size > buf->max_size)
buf->size = buf->max_size;
else
buf->size = chunk_size;
chunk_size -= buf->size;
-
+
if (this->input->read(this->input, buf->content, buf->size) !=
buf->size) {
buf->free_buffer(buf);
this->status = DEMUX_FINISHED;
break;
}
-
+
if (!chunk_size)
buf->decoder_flags |= BUF_FLAG_FRAME_END;
-
+
this->audio_fifo->put (this->audio_fifo, buf);
}
}else{
@@ -293,7 +293,7 @@ static void demux_mve_send_headers(demux_plugin_t *this_gen) {
/* load stream information */
_x_stream_info_set(this->stream, XINE_STREAM_INFO_HAS_VIDEO, 1);
- /* this is not strictly correct-- some WC3 MVE files do not contain
+ /* this is not strictly correct-- some WC3 MVE files do not contain
* audio, but I'm too lazy to check if that is the case */
_x_stream_info_set(this->stream, XINE_STREAM_INFO_HAS_AUDIO, 1);
_x_stream_info_set(this->stream, XINE_STREAM_INFO_VIDEO_WIDTH,
@@ -376,7 +376,7 @@ static int open_mve_file(demux_mve_t *this) {
if (this->input->read(this->input, preamble, 4) != 4)
return 0;
this->number_of_shots = _X_LE_32(&preamble[0]);
-
+
/* allocate space for the shot offset index and set offsets to 0 */
this->shot_offsets = xine_xcalloc(this->number_of_shots, sizeof(off_t));
this->current_shot = 0;
@@ -540,13 +540,13 @@ static int demux_mve_seek (demux_plugin_t *this_gen,
start_time /= 1000;
start_pos = (off_t) ( (double) start_pos / 65535 *
this->data_size );
-
+
this->status = DEMUX_OK;
_x_demux_flush_engine(this->stream);
this->seek_flag = 1;
/* if input is non-seekable, do not proceed with the rest of this
- * seek function */
+ * seek function */
if (!INPUT_IS_SEEKABLE(this->input))
return this->status;
@@ -566,7 +566,7 @@ static int demux_mve_seek (demux_plugin_t *this_gen,
chunk_size = (_X_BE_32(&preamble[4]) + 1) & (~1);
if (chunk_tag == SHOT_TAG) {
- this->shot_offsets[0] =
+ this->shot_offsets[0] =
this->input->get_current_pos(this->input) - PREAMBLE_SIZE;
/* skip the four SHOT data bytes (palette index) */
this->input->seek(this->input, 4, SEEK_CUR);
@@ -581,7 +581,7 @@ static int demux_mve_seek (demux_plugin_t *this_gen,
start_pos += this->data_start;
for (i = 0; i < this->number_of_shots - 1; i++) {
- /* if the next shot offset has not been recorded, traverse through the
+ /* if the next shot offset has not been recorded, traverse through the
* file until it is found */
if (this->shot_offsets[i + 1] == 0) {
off_t current_pos;
@@ -607,7 +607,7 @@ static int demux_mve_seek (demux_plugin_t *this_gen,
chunk_size = (_X_BE_32(&preamble[4]) + 1) & (~1);
if (chunk_tag == SHOT_TAG) {
- this->shot_offsets[i + 1] =
+ this->shot_offsets[i + 1] =
this->input->get_current_pos(this->input) - PREAMBLE_SIZE;
/* skip the four SHOT data bytes (palette index) */
this->input->seek(this->input, 4, SEEK_CUR);
@@ -620,7 +620,7 @@ static int demux_mve_seek (demux_plugin_t *this_gen,
/* check if the seek-to offset falls in between this shot offset and
* the next one */
- if ((start_pos >= this->shot_offsets[i]) &&
+ if ((start_pos >= this->shot_offsets[i]) &&
(start_pos < this->shot_offsets[i + 1])) {
new_shot = i;
diff --git a/src/demuxers/demux_yuv4mpeg2.c b/src/demuxers/demux_yuv4mpeg2.c
index e7625f602..e8877057c 100644
--- a/src/demuxers/demux_yuv4mpeg2.c
+++ b/src/demuxers/demux_yuv4mpeg2.c
@@ -69,7 +69,7 @@ typedef struct {
int aspect_d;
int progressive;
int top_field_first;
-
+
unsigned int frame_pts_inc;
unsigned int frame_size;
@@ -86,7 +86,7 @@ static int open_yuv4mpeg2_file(demux_yuv4mpeg2_t *this) {
char *header_ptr, *header_endptr, *header_end;
this->bih.biWidth = this->bih.biHeight = this->fps_n = this->fps_d =
- this->aspect_n = this->aspect_d = this->progressive =
+ this->aspect_n = this->aspect_d = this->progressive =
this->top_field_first = this->data_start = 0;
if (_x_demux_read_header(this->input, header, Y4M_HEADER_BYTES) != Y4M_HEADER_BYTES)
@@ -98,11 +98,11 @@ static int open_yuv4mpeg2_file(demux_yuv4mpeg2_t *this) {
/* null terminate the read data */
header[Y4M_HEADER_BYTES] = '\0';
-
+
/* check for stream header terminator */
if ((header_end = strchr(header, '\n')) == NULL)
return 0;
-
+
/* read tagged fields in stream header */
header_ptr = &header[Y4M_SIGNATURE_SIZE];
while (header_ptr < header_end) {
@@ -111,7 +111,7 @@ static int open_yuv4mpeg2_file(demux_yuv4mpeg2_t *this) {
break;
else
header_ptr++;
-
+
switch (*header_ptr) {
case 'W':
/* read the width */
@@ -153,31 +153,31 @@ static int open_yuv4mpeg2_file(demux_yuv4mpeg2_t *this) {
return 0;
else
header_ptr = header_endptr;
-
+
/* denominator */
this->fps_d = strtol(header_ptr + 1, &header_endptr, 10);
if (header_endptr == header_ptr + 1)
return 0;
else
header_ptr = header_endptr;
-
+
break;
case 'A':
- /* read aspect ratio - stored as a ratio(!)
+ /* read aspect ratio - stored as a ratio(!)
* numerator */
this->aspect_n = strtol(header_ptr + 1, &header_endptr, 10);
if ((header_endptr == header_ptr + 1) || (*header_endptr != ':'))
return 0;
else
header_ptr = header_endptr;
-
+
/* denominator */
this->aspect_d = strtol(header_ptr + 1, &header_endptr, 10);
if (header_endptr == header_ptr + 1)
return 0;
else
header_ptr = header_endptr;
-
+
break;
default:
/* skip whatever this is */
@@ -185,7 +185,7 @@ static int open_yuv4mpeg2_file(demux_yuv4mpeg2_t *this) {
header_ptr++;
}
}
-
+
/* make sure all the data was found */
if (!this->bih.biWidth || !this->bih.biHeight || !this->fps_n || !this->fps_d)
return 0;
@@ -194,8 +194,8 @@ static int open_yuv4mpeg2_file(demux_yuv4mpeg2_t *this) {
this->frame_size = this->bih.biWidth * this->bih.biHeight * 3 / 2;
/* pts difference between frames */
- this->frame_pts_inc = (90000 * this->fps_d) / this->fps_n;
-
+ this->frame_pts_inc = (90000 * this->fps_d) / this->fps_n;
+
/* finally, look for the first frame */
char *data_start_ptr = memmem(header_ptr, Y4M_HEADER_BYTES, "FRAME", 5);
@@ -204,7 +204,7 @@ static int open_yuv4mpeg2_file(demux_yuv4mpeg2_t *this) {
return 0;
this->data_start = data_start_ptr - header;
-
+
/* compute size of all frames */
if (INPUT_IS_SEEKABLE(this->input)) {
this->data_size = this->input->get_length(this->input) -
@@ -271,9 +271,9 @@ static int demux_yuv4mpeg2_send_chunk(demux_plugin_t *this_gen) {
buf->decoder_flags |= BUF_FLAG_FRAME_END;
this->video_fifo->put(this->video_fifo, buf);
}
-
+
return this->status;
-}
+}
static void demux_yuv4mpeg2_send_headers(demux_plugin_t *this_gen) {
demux_yuv4mpeg2_t *this = (demux_yuv4mpeg2_t *) this_gen;
@@ -299,13 +299,13 @@ static void demux_yuv4mpeg2_send_headers(demux_plugin_t *this_gen) {
buf->decoder_flags = BUF_FLAG_HEADER|BUF_FLAG_STDHEADER|BUF_FLAG_FRAMERATE|
BUF_FLAG_FRAME_END;
buf->decoder_info[0] = this->frame_pts_inc; /* initial video step */
-
+
if(this->aspect_n && this->aspect_d) {
buf->decoder_flags |= BUF_FLAG_ASPECT;
buf->decoder_info[1] = this->bih.biWidth * this->aspect_n;
buf->decoder_info[2] = this->bih.biHeight * this->aspect_d;
}
-
+
buf->decoder_info[3] = this->progressive;
buf->decoder_info[4] = this->top_field_first;
@@ -327,7 +327,7 @@ static int demux_yuv4mpeg2_seek (demux_plugin_t *this_gen,
/* YUV4MPEG2 files are essentially constant bit-rate video. Seek along
* the calculated frame boundaries. Divide the requested seek offset
- * by the frame size integer-wise to obtain the desired frame number
+ * by the frame size integer-wise to obtain the desired frame number
* and then multiply the frame number by the frame size to get the
* starting offset. Add the data_start offset to obtain the final
* offset. */
@@ -364,7 +364,7 @@ static int demux_yuv4mpeg2_get_status (demux_plugin_t *this_gen) {
static int demux_yuv4mpeg2_get_stream_length (demux_plugin_t *this_gen) {
demux_yuv4mpeg2_t *this = (demux_yuv4mpeg2_t *) this_gen;
- return (int)(((int64_t) this->data_size * 1000 * this->fps_d) /
+ return (int)(((int64_t) this->data_size * 1000 * this->fps_d) /
((this->frame_size + Y4M_FRAME_SIGNATURE_SIZE) * this->fps_n));
}
diff --git a/src/demuxers/demux_yuv_frames.c b/src/demuxers/demux_yuv_frames.c
index 0288c00fb..e8e893874 100644
--- a/src/demuxers/demux_yuv_frames.c
+++ b/src/demuxers/demux_yuv_frames.c
@@ -1,19 +1,19 @@
/*
* Copyright (C) 2003-2004 the xine project
* Copyright (C) 2003 Jeroen Asselman <j.asselman@itsec-ps.nl>
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -120,27 +120,27 @@ static void demux_yuv_frames_send_headers (demux_plugin_t *this_gen){
this->video_fifo = this->stream->video_fifo;
this->audio_fifo = this->stream->audio_fifo;
-
+
_x_demux_control_start(this->stream);
if(_x_stream_info_get(this->stream, XINE_STREAM_INFO_HAS_AUDIO)) {
buf = this->input->read_block(this->input, this->audio_fifo, 0);
-
+
if (buf)
this->audio_fifo->put(this->audio_fifo, buf);
else
this->status = DEMUX_FINISHED;
}
-
+
if(_x_stream_info_get(this->stream, XINE_STREAM_INFO_HAS_VIDEO)) {
buf = this->input->read_block(this->input, this->video_fifo, 0);
-
+
if (buf)
this->video_fifo->put(this->video_fifo, buf);
else
this->status = DEMUX_FINISHED;
}
-
+
this->status = DEMUX_OK;
}
diff --git a/src/demuxers/ebml.c b/src/demuxers/ebml.c
index 1e9a456d2..2676156fd 100644
--- a/src/demuxers/ebml.c
+++ b/src/demuxers/ebml.c
@@ -40,7 +40,7 @@
ebml_parser_t *new_ebml_parser (xine_t *xine, input_plugin_t *input) {
ebml_parser_t *ebml;
-
+
ebml = xine_xmalloc(sizeof(ebml_parser_t));
ebml->xine = xine;
ebml->input = input;
@@ -50,7 +50,7 @@ ebml_parser_t *new_ebml_parser (xine_t *xine, input_plugin_t *input) {
void dispose_ebml_parser(ebml_parser_t *ebml) {
- free(ebml);
+ free(ebml);
}
@@ -122,7 +122,7 @@ static int ebml_read_elem_len(ebml_parser_t *ebml, uint64_t *len) {
int ff_bytes;
uint64_t value;
int i;
-
+
if (ebml->input->read(ebml->input, data, 1) != 1) {
off_t pos = ebml->input->get_current_pos(ebml->input);
xprintf(ebml->xine, XINE_VERBOSITY_LOG,
@@ -152,7 +152,7 @@ static int ebml_read_elem_len(ebml_parser_t *ebml, uint64_t *len) {
ff_bytes = 1;
else
ff_bytes = 0;
-
+
/* read the rest of the len */
if (ebml->input->read(ebml->input, data + 1, size - 1) != (size - 1)) {
off_t pos = ebml->input->get_current_pos(ebml->input);
@@ -221,7 +221,7 @@ int ebml_read_uint(ebml_parser_t *ebml, ebml_elem_t *elem, uint64_t *num) {
"ebml: Invalid integer element size %" PRIu64 "\n", size);
return 0;
}
-
+
if (!ebml_read_elem_data (ebml, data, size))
return 0;
@@ -244,7 +244,7 @@ int ebml_read_sint (ebml_parser_t *ebml, ebml_elem_t *elem, int64_t *num) {
"ebml: Invalid integer element size %" PRIu64 "\n", size);
return 0;
}
-
+
if (!ebml_read_elem_data(ebml, data, size))
return 0;
@@ -253,7 +253,7 @@ int ebml_read_sint (ebml_parser_t *ebml, ebml_elem_t *elem, int64_t *num) {
*num = -1;
else
*num = 0;
-
+
while (size > 0) {
*num = (*num << 8) | data[elem->len - size];
size--;
@@ -302,7 +302,7 @@ int ebml_read_ascii(ebml_parser_t *ebml, ebml_elem_t *elem, char *str) {
if (!ebml_read_elem_data(ebml, str, size))
return 0;
-
+
return 1;
}
@@ -347,7 +347,7 @@ int ebml_read_master (ebml_parser_t *ebml, ebml_elem_t *elem) {
top_elem->start = elem->start;
top_elem->len = elem->len;
top_elem->id = elem->id;
-
+
ebml->level++;
lprintf("id: 0x%x, len: %" PRIu64 ", level: %d\n", elem->id, elem->len, ebml->level);
if (ebml->level >= EBML_STACK_SIZE) {
@@ -371,20 +371,20 @@ int ebml_check_header(ebml_parser_t *ebml) {
"ebml: invalid master element\n");
return 0;
}
-
+
if (master.id != EBML_ID_EBML) {
xprintf(ebml->xine, XINE_VERBOSITY_LOG,
"ebml: invalid master element\n");
return 0;
}
-
+
if (!ebml_read_master (ebml, &master))
return 0;
next_level = 1;
while (next_level == 1) {
ebml_elem_t elem;
-
+
if (!ebml_read_elem_head(ebml, &elem))
return 0;
@@ -398,7 +398,7 @@ int ebml_check_header(ebml_parser_t *ebml) {
ebml->version = num;
break;
}
-
+
case EBML_ID_EBMLREADVERSION: {
uint64_t num;
diff --git a/src/demuxers/ebml.h b/src/demuxers/ebml.h
index 764f416ff..65db6c229 100644
--- a/src/demuxers/ebml.h
+++ b/src/demuxers/ebml.h
@@ -48,7 +48,7 @@ typedef struct ebml_parser_s {
/* xine stuff */
xine_t *xine;
input_plugin_t *input;
-
+
/* EBML Parser Stack Management */
ebml_elem_t elem_stack[EBML_STACK_SIZE];
int level;
@@ -61,7 +61,7 @@ typedef struct ebml_parser_s {
char *doctype;
uint64_t doctype_version;
uint64_t doctype_read_version;
-
+
} ebml_parser_t;
diff --git a/src/demuxers/group_audio.c b/src/demuxers/group_audio.c
index 250eeefb4..fe03b6418 100644
--- a/src/demuxers/group_audio.c
+++ b/src/demuxers/group_audio.c
@@ -98,7 +98,7 @@ static const demuxer_info_t demux_info_wav = {
};
const plugin_info_t xine_plugin_info[] EXPORTED = {
- /* type, API, "name", version, special_info, init_function */
+ /* type, API, "name", version, special_info, init_function */
{ PLUGIN_DEMUX, 27, "aac", XINE_VERSION_CODE, &demux_info_aac, demux_aac_init_plugin },
{ PLUGIN_DEMUX, 27, "ac3", XINE_VERSION_CODE, &demux_info_ac3, demux_ac3_init_plugin },
{ PLUGIN_DEMUX, 27, "aud", XINE_VERSION_CODE, &demux_info_aud, demux_aud_init_plugin },
diff --git a/src/demuxers/group_audio.h b/src/demuxers/group_audio.h
index 394cad2a3..6b48a5400 100644
--- a/src/demuxers/group_audio.h
+++ b/src/demuxers/group_audio.h
@@ -1,18 +1,18 @@
-/*
+/*
* Copyright (C) 2000-2005 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
diff --git a/src/demuxers/group_games.c b/src/demuxers/group_games.c
index 2d01b726e..5eacbfd8f 100644
--- a/src/demuxers/group_games.c
+++ b/src/demuxers/group_games.c
@@ -78,7 +78,7 @@ static const demuxer_info_t demux_info_vmd = {
};
const plugin_info_t xine_plugin_info[] EXPORTED = {
- /* type, API, "name", version, special_info, init_function */
+ /* type, API, "name", version, special_info, init_function */
{ PLUGIN_DEMUX, 27, "wve", XINE_VERSION_CODE, &demux_info_eawve, demux_eawve_init_plugin},
{ PLUGIN_DEMUX, 27, "idcin", XINE_VERSION_CODE, &demux_info_idcin, demux_idcin_init_plugin },
{ PLUGIN_DEMUX, 27, "ipmovie", XINE_VERSION_CODE, &demux_info_ipmovie, demux_ipmovie_init_plugin },
diff --git a/src/demuxers/group_games.h b/src/demuxers/group_games.h
index 352ec5524..34cb6e208 100644
--- a/src/demuxers/group_games.h
+++ b/src/demuxers/group_games.h
@@ -1,18 +1,18 @@
-/*
+/*
* Copyright (C) 2000-2003 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
diff --git a/src/demuxers/id3.c b/src/demuxers/id3.c
index 7cc7255e0..cdd585884 100644
--- a/src/demuxers/id3.c
+++ b/src/demuxers/id3.c
@@ -29,7 +29,7 @@
*
* ID3v2 specs: http://www.id3.org/
*/
-
+
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
@@ -84,7 +84,7 @@ static const char* const id3_encoding[] = {
"UTF-16", /* 0x01 */
"UTF-16BE", /* 0x02 */
"UTF-8"}; /* 0x03 */
-
+
int id3v1_parse_tag (input_plugin_t *input, xine_stream_t *stream) {
off_t len;
@@ -113,7 +113,7 @@ int id3v1_parse_tag (input_plugin_t *input, xine_stream_t *stream) {
if (tag.genre < ID3_GENRE_COUNT) {
_x_meta_info_set(stream, XINE_META_INFO_GENRE, id3_genre[tag.genre]);
}
-
+
}
return 1;
} else {
@@ -126,12 +126,12 @@ static int id3v2_parse_genre(char* dest, char *src, int len) {
int state = 0;
char *buf = dest;
unsigned int index = 0;
-
+
while (*src) {
lprintf("state=%d\n", state);
if ((buf - dest) >= len)
return 0;
-
+
switch (state) {
case 0:
/* initial state */
@@ -276,7 +276,7 @@ static int id3v22_interp_frame(input_plugin_t *input,
const size_t bufsize = frame_header->size + 2;
if ( bufsize < 3 ) /* frames has to be _at least_ 1 byte */
return 0;
- char buf[bufsize];
+ char buf[bufsize];
int enc;
if (input->read (input, buf, frame_header->size) == frame_header->size) {
@@ -290,7 +290,7 @@ static int id3v22_interp_frame(input_plugin_t *input,
case ( BE_FOURCC(0, 'T', 'C', 'O') ):
{
char tmp[1024];
-
+
if (id3v2_parse_genre(tmp, buf + 1, 1024)) {
_x_meta_info_set(stream, XINE_META_INFO_GENRE, tmp);
}
@@ -344,21 +344,21 @@ static int id3v22_parse_tag(input_plugin_t *input,
if (tag_header.flags & ID3V22_ZERO_FLAG) {
/* invalid flags */
- xprintf(stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(stream->xine, XINE_VERBOSITY_DEBUG,
LOG_MODULE ": invalid header flags (%02x)\n", tag_header.flags);
input->seek (input, tag_header.size - pos, SEEK_CUR);
return 0;
}
if (tag_header.flags & ID3V22_COMPRESS_FLAG) {
/* compressed tag: not supported */
- xprintf(stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(stream->xine, XINE_VERBOSITY_DEBUG,
LOG_MODULE ": compressed tags are not supported\n");
input->seek (input, tag_header.size - pos, SEEK_CUR);
return 0;
}
if (tag_header.flags & ID3V22_UNSYNCH_FLAG) {
/* unsynchronized tag: not supported */
- xprintf(stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(stream->xine, XINE_VERBOSITY_DEBUG,
LOG_MODULE ": unsynchronized tags are not supported\n");
input->seek (input, tag_header.size - pos, SEEK_CUR);
return 0;
@@ -370,11 +370,11 @@ static int id3v22_parse_tag(input_plugin_t *input,
if (tag_frame_header.id) {
if ((pos + tag_frame_header.size) <= tag_header.size) {
if (!id3v22_interp_frame(input, stream, &tag_frame_header)) {
- xprintf(stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(stream->xine, XINE_VERBOSITY_DEBUG,
LOG_MODULE ": invalid frame content\n");
}
} else {
- xprintf(stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(stream->xine, XINE_VERBOSITY_DEBUG,
LOG_MODULE ": invalid frame header\n");
input->seek (input, tag_header.size - pos, SEEK_CUR);
return 1;
@@ -386,7 +386,7 @@ static int id3v22_parse_tag(input_plugin_t *input,
return 1;
}
} else {
- xprintf(stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(stream->xine, XINE_VERBOSITY_DEBUG,
LOG_MODULE ": id3v2_parse_frame_header problem\n");
return 0;
}
@@ -425,9 +425,9 @@ static int id3v23_parse_frame_ext_header(input_plugin_t *input,
uint8_t buf[14];
if (input->read (input, buf, 4) == 4) {
-
+
frame_ext_header->size = _X_BE_32(&buf[0]);
-
+
if (frame_ext_header->size == 6) {
if (input->read (input, buf + 4, 6) == 6) {
frame_ext_header->flags = _X_BE_16(buf + 4);
@@ -435,7 +435,7 @@ static int id3v23_parse_frame_ext_header(input_plugin_t *input,
frame_ext_header->crc = 0;
} else {
return 0;
- }
+ }
} else if (frame_ext_header->size == 10) {
if (input->read (input, buf + 4, 10) == 10) {
@@ -480,7 +480,7 @@ static int id3v23_interp_frame(input_plugin_t *input,
case ( BE_FOURCC('T', 'C', 'O', 'N') ):
{
char tmp[1024];
-
+
if (id3v2_parse_genre(tmp, buf + 1, 1024)) {
_x_meta_info_set(stream, XINE_META_INFO_GENRE, tmp);
}
@@ -534,14 +534,14 @@ static int id3v23_parse_tag(input_plugin_t *input,
if (tag_header.flags & ID3V23_ZERO_FLAG) {
/* invalid flags */
- xprintf(stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(stream->xine, XINE_VERBOSITY_DEBUG,
LOG_MODULE ": invalid header flags (%02x)\n", tag_header.flags);
input->seek (input, tag_header.size - pos, SEEK_CUR);
return 0;
}
if (tag_header.flags & ID3V23_UNSYNCH_FLAG) {
/* unsynchronized tag: not supported */
- xprintf(stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(stream->xine, XINE_VERBOSITY_DEBUG,
LOG_MODULE ": unsynchronized tags are not supported\n");
input->seek (input, tag_header.size - pos, SEEK_CUR);
return 0;
@@ -560,11 +560,11 @@ static int id3v23_parse_tag(input_plugin_t *input,
if (tag_frame_header.id) {
if ((pos + tag_frame_header.size) <= tag_header.size) {
if (!id3v23_interp_frame(input, stream, &tag_frame_header)) {
- xprintf(stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(stream->xine, XINE_VERBOSITY_DEBUG,
LOG_MODULE ": invalid frame content\n");
}
} else {
- xprintf(stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(stream->xine, XINE_VERBOSITY_DEBUG,
LOG_MODULE ": invalid frame header\n");
input->seek (input, tag_header.size - pos, SEEK_CUR);
return 1;
@@ -577,7 +577,7 @@ static int id3v23_parse_tag(input_plugin_t *input,
return 1;
}
} else {
- xprintf(stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(stream->xine, XINE_VERBOSITY_DEBUG,
LOG_MODULE ": id3v2_parse_frame_header problem\n");
return 0;
}
@@ -594,7 +594,7 @@ static int id3v23_parse_tag(input_plugin_t *input,
/* id3v2 "genre" parsing code. what a ugly format ! */
static int id3v24_parse_genre(char* dest, char *src, int len) {
unsigned int index = 0;
-
+
dest[0] = '\0';
if (sscanf(src, "%u", &index) == 1) {
if (index < ID3_GENRE_COUNT) {
@@ -632,7 +632,7 @@ static int id3v24_parse_ext_header(input_plugin_t *input,
uint8_t buf[5];
if (input->read (input, buf, 4) == 4) {
-
+
frame_ext_header->size = _X_BE_32(&buf[0]);
if (input->read (input, buf, 2) == 2) {
@@ -722,14 +722,14 @@ static int id3v24_interp_frame(input_plugin_t *input,
enc = buf[0];
if( enc >= ID3_ENCODING_COUNT )
enc = 0;
-
+
lprintf("data: %s\n", buf+1);
switch (frame_header->id) {
case ( BE_FOURCC('T', 'C', 'O', 'N') ):
{
char tmp[1024];
-
+
if (id3v24_parse_genre(tmp, buf + 1, 1024)) {
_x_meta_info_set(stream, XINE_META_INFO_GENRE, tmp);
}
@@ -784,7 +784,7 @@ static int id3v24_parse_tag(input_plugin_t *input,
if (tag_header.flags & ID3V24_ZERO_FLAG) {
/* invalid flags */
- xprintf(stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(stream->xine, XINE_VERBOSITY_DEBUG,
LOG_MODULE ": invalid header flags (%02x)\n", tag_header.flags);
input->seek (input, tag_header.size - pos, SEEK_CUR);
return 0;
@@ -809,11 +809,11 @@ static int id3v24_parse_tag(input_plugin_t *input,
if (tag_frame_header.id) {
if ((pos + tag_frame_header.size) <= tag_header.size) {
if (!id3v24_interp_frame(input, stream, &tag_frame_header)) {
- xprintf(stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(stream->xine, XINE_VERBOSITY_DEBUG,
LOG_MODULE ": invalid frame content\n");
}
} else {
- xprintf(stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(stream->xine, XINE_VERBOSITY_DEBUG,
LOG_MODULE ": invalid frame header\n");
input->seek (input, tag_header.size - pos, SEEK_CUR);
return 1;
@@ -825,7 +825,7 @@ static int id3v24_parse_tag(input_plugin_t *input,
return 1;
}
} else {
- xprintf(stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(stream->xine, XINE_VERBOSITY_DEBUG,
LOG_MODULE ": id3v2_parse_frame_header problem\n");
return 0;
}
@@ -850,7 +850,7 @@ int id3v2_parse_tag(input_plugin_t *input,
case ID3V22_TAG:
xprintf(stream->xine, XINE_VERBOSITY_LOG, LOG_MODULE ": ID3V2.2 tag\n");
return id3v22_parse_tag(input, stream, id3_signature);
-
+
case ID3V23_TAG:
xprintf(stream->xine, XINE_VERBOSITY_LOG, LOG_MODULE ": ID3V2.3 tag\n");
return id3v23_parse_tag(input, stream, id3_signature);
diff --git a/src/demuxers/matroska.h b/src/demuxers/matroska.h
index 2c1e15e12..040400e0c 100644
--- a/src/demuxers/matroska.h
+++ b/src/demuxers/matroska.h
@@ -272,7 +272,7 @@ struct matroska_track_s {
uint32_t codec_private_len;
int default_flag;
uint32_t compress_algo;
-
+
uint32_t buf_type;
fifo_buffer_t *fifo;
diff --git a/src/demuxers/qtpalette.h b/src/demuxers/qtpalette.h
index a8a44e916..422b570a9 100644
--- a/src/demuxers/qtpalette.h
+++ b/src/demuxers/qtpalette.h
@@ -11,7 +11,7 @@ static const unsigned char qt_default_palette_4[4 * 4] = {
0x93, 0x65, 0x5E, 0x00,
0xFF, 0xFF, 0xFF, 0x00,
0xDF, 0xD0, 0xAB, 0x00,
- 0x00, 0x00, 0x00, 0x00
+ 0x00, 0x00, 0x00, 0x00
};
static const unsigned char qt_default_palette_16[16 * 4] = {
@@ -30,7 +30,7 @@ static const unsigned char qt_default_palette_16[16 * 4] = {
0xFF, 0xFB, 0xF9, 0x00,
0xE8, 0xCA, 0xC5, 0x00,
0x8A, 0x7C, 0x77, 0x00,
- 0x00, 0x00, 0x00, 0x00
+ 0x00, 0x00, 0x00, 0x00
};
static const unsigned char qt_default_palette_256[256 * 4] = {
diff --git a/src/dxr3/Makefile.am b/src/dxr3/Makefile.am
index ef7bd3e10..1440efd12 100644
--- a/src/dxr3/Makefile.am
+++ b/src/dxr3/Makefile.am
@@ -2,7 +2,7 @@ include $(top_builddir)/misc/Makefile.plugins
include $(top_srcdir)/misc/Makefile.common
AM_CFLAGS = $(DEFAULT_OCFLAGS) $(VISIBILITY_FLAG)
-AM_CPPFLAGS =
+AM_CPPFLAGS =
AM_LDFLAGS = $(xineplug_ldflags)
if HAVE_X11
@@ -43,7 +43,7 @@ xineplug_vo_out_dxr3_la_SOURCES = \
ffmpeg_encoder.c \
dxr3_spu_encoder.c \
dxr3_scr.c \
- video_out_dxr3.c
+ video_out_dxr3.c
xineplug_vo_out_dxr3_la_CFLAGS = $(AM_CFLAGS) $(AVUTIL_CFLAGS) $(FFMPEG_CFLAGS)
xineplug_vo_out_dxr3_la_LIBADD = $(XINE_LIB) $(link_fame) $(link_rte) $(link_x_libs) $(LTLIBINTL) $(AVUTIL_LIBS) $(FFMPEG_LIBS) -lm
diff --git a/src/dxr3/dxr3.h b/src/dxr3/dxr3.h
index 12dedf07f..be151d055 100644
--- a/src/dxr3/dxr3.h
+++ b/src/dxr3/dxr3.h
@@ -1,18 +1,18 @@
-/*
+/*
* Copyright (C) 2000-2003 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -45,7 +45,7 @@
static inline int dxr3_present(xine_stream_t *stream)
{
int present = 0;
-
+
if (stream->video_driver && stream->video_driver->node &&
stream->video_driver->node->plugin_class ) {
const video_driver_class_t *const vo_class = (video_driver_class_t *)stream->video_driver->node->plugin_class;
diff --git a/src/dxr3/dxr3_decode_spu.c b/src/dxr3/dxr3_decode_spu.c
index fdbddf8a8..f4d6f5051 100644
--- a/src/dxr3/dxr3_decode_spu.c
+++ b/src/dxr3/dxr3_decode_spu.c
@@ -1,18 +1,18 @@
-/*
+/*
* Copyright (C) 2000-2004 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -21,7 +21,7 @@
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
-
+
/* dxr3 spu decoder plugin.
* Accepts the spu data from xine and sends it directly to the
* corresponding dxr3 device. Also handles dvd menu button highlights.
@@ -76,7 +76,7 @@ static const decoder_info_t dxr3_spudec_info = {
};
const plugin_info_t xine_plugin_info[] EXPORTED = {
- /* type, API, "name", version, special_info, init_function */
+ /* type, API, "name", version, special_info, init_function */
{ PLUGIN_SPU_DECODER, 17, "dxr3-spudec", XINE_VERSION_CODE, &dxr3_spudec_info, &dxr3_spudec_init_plugin },
{ PLUGIN_NONE, 0, "", 0, NULL, NULL }
};
@@ -111,7 +111,7 @@ struct pci_node_s {
typedef struct dxr3_spudec_class_s {
spu_decoder_class_t spu_decoder_class;
-
+
int instance; /* we allow only one instance of this plugin */
} dxr3_spudec_class_t;
@@ -121,10 +121,10 @@ typedef struct dxr3_spudec_s {
xine_stream_t *stream;
dxr3_driver_t *dxr3_vo; /* we need to talk to the video out */
xine_event_queue_t *event_queue;
-
+
int devnum;
int fd_spu; /* to access the dxr3 spu device */
-
+
dxr3_spu_stream_state_t spu_stream_state[MAX_SPU_STREAMS];
uint32_t clut[16]; /* the current color lookup table */
int menu; /* are we in a menu? */
@@ -132,7 +132,7 @@ typedef struct dxr3_spudec_s {
pci_node_t pci_cur; /* a list of PCI packs, with the list head being current */
pthread_mutex_t pci_lock;
uint32_t buttonN; /* currently highlighted button */
-
+
int anamorphic; /* this is needed to detect anamorphic menus */
} dxr3_spudec_t;
@@ -160,7 +160,7 @@ static inline void dxr3_spudec_clear_nav_list(dxr3_spudec_t *this)
static inline void dxr3_spudec_update_nav(dxr3_spudec_t *this)
{
metronom_clock_t *clock = this->stream->xine->clock;
-
+
if (this->pci_cur.next && this->pci_cur.next->vpts <= clock->get_current_time(clock)) {
pci_node_t *node = this->pci_cur.next;
xine_fast_memcpy(&this->pci_cur, this->pci_cur.next, sizeof(pci_node_t));
@@ -180,17 +180,17 @@ static inline void dxr3_swab_clut(int *clut)
static void *dxr3_spudec_init_plugin(xine_t *xine, void* data)
{
dxr3_spudec_class_t *this;
-
+
this = calloc(1, sizeof(dxr3_spudec_class_t));
if (!this) return NULL;
-
+
this->spu_decoder_class.open_plugin = dxr3_spudec_open_plugin;
this->spu_decoder_class.identifier = "dxr3-spudec";
this->spu_decoder_class.description = N_("subtitle decoder plugin using the hardware decoding capabilities of a DXR3 decoder card");
this->spu_decoder_class.dispose = default_spu_decoder_class_dispose;
-
+
this->instance = 0;
-
+
return &this->spu_decoder_class;
}
@@ -200,20 +200,20 @@ static spu_decoder_t *dxr3_spudec_open_plugin(spu_decoder_class_t *class_gen, xi
dxr3_spudec_t *this;
dxr3_spudec_class_t *class = (dxr3_spudec_class_t *)class_gen;
char tmpstr[128];
-
+
if (class->instance) return NULL;
if (!dxr3_present(stream)) return NULL;
-
+
this = calloc(1, sizeof(dxr3_spudec_t));
if (!this) return NULL;
-
+
this->spu_decoder.decode_data = dxr3_spudec_decode_data;
this->spu_decoder.reset = dxr3_spudec_reset;
this->spu_decoder.discontinuity = dxr3_spudec_discontinuity;
this->spu_decoder.dispose = dxr3_spudec_dispose;
this->spu_decoder.get_interact_info = dxr3_spudec_interact_info;
this->spu_decoder.set_button = dxr3_spudec_set_button;
-
+
this->class = class;
this->stream = stream;
/* We need to talk to dxr3 video out to coordinate spus and overlays */
@@ -222,7 +222,7 @@ static spu_decoder_t *dxr3_spudec_open_plugin(spu_decoder_class_t *class_gen, xi
this->devnum = stream->xine->config->register_num(stream->xine->config,
CONF_KEY, 0, CONF_NAME, CONF_HELP, 10, NULL, NULL);
-
+
pthread_mutex_lock(&this->dxr3_vo->spu_device_lock);
if (this->dxr3_vo->fd_spu)
this->fd_spu = this->dxr3_vo->fd_spu;
@@ -230,7 +230,7 @@ static spu_decoder_t *dxr3_spudec_open_plugin(spu_decoder_class_t *class_gen, xi
/* open dxr3 spu device */
snprintf(tmpstr, sizeof(tmpstr), "/dev/em8300_sp-%d", this->devnum);
if ((this->fd_spu = open(tmpstr, O_WRONLY)) < 0) {
- xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
_("dxr3_decode_spu: Failed to open spu device %s (%s)\n"), tmpstr, strerror(errno));
pthread_mutex_unlock(&this->dxr3_vo->spu_device_lock);
free(this);
@@ -242,19 +242,19 @@ static spu_decoder_t *dxr3_spudec_open_plugin(spu_decoder_class_t *class_gen, xi
this->dxr3_vo->fd_spu = this->fd_spu;
}
pthread_mutex_unlock(&this->dxr3_vo->spu_device_lock);
-
+
this->menu = 0;
this->button_filter = 1;
this->pci_cur.pci.hli.hl_gi.hli_ss = 0;
this->pci_cur.next = NULL;
this->buttonN = 1;
-
+
this->anamorphic = 0;
-
+
pthread_mutex_init(&this->pci_lock, NULL);
-
+
class->instance = 1;
-
+
return &this->spu_decoder;
}
@@ -266,11 +266,11 @@ static void dxr3_spudec_decode_data(spu_decoder_t *this_gen, buf_element_t *buf)
dxr3_spu_stream_state_t *state = &this->spu_stream_state[stream_id];
uint32_t spu_channel = this->stream->spu_channel;
xine_event_t *event;
-
+
/* handle queued events */
while ((event = xine_event_get(this->event_queue))) {
llprintf(LOG_SPU, "event caught: SPU_FD = %i\n",this->fd_spu);
-
+
switch (event->type) {
case XINE_EVENT_FRAME_FORMAT_CHANGE:
/* we are in anamorphic mode, if the frame is 16:9, but not pan&scan'ed */
@@ -280,17 +280,17 @@ static void dxr3_spudec_decode_data(spu_decoder_t *this_gen, buf_element_t *buf)
llprintf(LOG_BTN, "anamorphic mode %s\n", this->anamorphic ? "on" : "off");
break;
}
-
+
xine_event_free(event);
}
-
+
/* check, if we need to process the next PCI from the list */
pthread_mutex_lock(&this->pci_lock);
dxr3_spudec_update_nav(this);
pthread_mutex_unlock(&this->pci_lock);
-
+
if ( (buf->type & 0xffff0000) != BUF_SPU_DVD ||
- !(buf->decoder_flags & BUF_FLAG_SPECIAL) ||
+ !(buf->decoder_flags & BUF_FLAG_SPECIAL) ||
buf->decoder_info[1] != BUF_SPECIAL_SPU_DVD_SUBTYPE )
return;
@@ -300,7 +300,7 @@ static void dxr3_spudec_decode_data(spu_decoder_t *this_gen, buf_element_t *buf)
dxr3_swab_clut((int *)buf->content);
pthread_mutex_lock(&this->dxr3_vo->spu_device_lock);
if (ioctl(this->fd_spu, EM8300_IOCTL_SPU_SETPALETTE, buf->content))
- xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"dxr3_decode_spu: failed to set CLUT (%s)\n", strerror(errno));
/* remember clut, when video out places some overlay we may need to restore it */
memcpy(this->clut, buf->content, 16 * sizeof(uint32_t));
@@ -310,20 +310,20 @@ static void dxr3_spudec_decode_data(spu_decoder_t *this_gen, buf_element_t *buf)
}
if (buf->decoder_info[2] == SPU_DVD_SUBTYPE_NAV) {
uint8_t *p = buf->content;
-
+
llprintf(LOG_BTN, "got NAV packet\n");
pthread_mutex_lock(&this->pci_lock);
-
+
/* just watch out for menus */
if (p[3] == 0xbf && p[6] == 0x00) { /* Private stream 2 */
pci_t pci;
-
+
navRead_PCI(&pci, p + 7);
llprintf(LOG_BTN, "PCI packet hli_ss is %d\n", pci.hli.hl_gi.hli_ss);
-
+
if (pci.hli.hl_gi.hli_ss == 1) {
/* menu ahead */
-
+
/* NAV packets contain start and end presentation timestamps, which tell the
* application, when the highlight information in the NAV is supposed to be valid.
* We handle these timestamps only in a very stripped-down way: We keep a list
@@ -352,7 +352,7 @@ static void dxr3_spudec_decode_data(spu_decoder_t *this_gen, buf_element_t *buf)
dxr3_spudec_process_nav(this);
}
}
-
+
if ((pci.hli.hl_gi.hli_ss == 0) && (this->pci_cur.pci.hli.hl_gi.hli_ss == 1)) {
/* this is (or: should be, I hope I got this right) a
subpicture plane, that hides all menu buttons */
@@ -376,7 +376,7 @@ static void dxr3_spudec_decode_data(spu_decoder_t *this_gen, buf_element_t *buf)
pthread_mutex_unlock(&this->pci_lock);
return;
}
-
+
/* We parse the SPUs command and end sequence here for two reasons:
* 1. Look for the display duration entry in the spu packets.
* If the spu is a menu button highlight pane, this entry must not exist,
@@ -457,7 +457,7 @@ static void dxr3_spudec_decode_data(spu_decoder_t *this_gen, buf_element_t *buf)
if (state->spu_length < 0) state->spu_length = 0;
state->bytes_passed += buf->size;
}
-
+
/* filter unwanted streams */
if (buf->decoder_flags & BUF_FLAG_PREVIEW) {
llprintf(LOG_SPU, "Dropping SPU channel %d. Preview data\n", stream_id);
@@ -475,43 +475,43 @@ static void dxr3_spudec_decode_data(spu_decoder_t *this_gen, buf_element_t *buf)
/* We used to filter for SPU forcing here as well, but this does not work
* this way with the DXR3, because we have to evaluate the SPU command sequence
* to detect, if a particular SPU is forced or not. See the parsing code above. */
-
+
pthread_mutex_lock(&this->dxr3_vo->spu_device_lock);
-
+
/* write sync timestamp to the card */
if (buf->pts) {
int64_t vpts;
uint32_t vpts32;
-
+
vpts = this->stream->metronom->got_spu_packet(this->stream->metronom, buf->pts);
llprintf(LOG_PTS, "pts = %" PRId64 " vpts = %" PRIu64 "\n", buf->pts, vpts);
vpts32 = vpts;
if (ioctl(this->fd_spu, EM8300_IOCTL_SPU_SETPTS, &vpts32))
- xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"dxr3_decode_spu: spu setpts failed (%s)\n", strerror(errno));
}
-
+
/* has video out tampered with our palette */
if (this->dxr3_vo->clut_cluttered) {
if (ioctl(this->fd_spu, EM8300_IOCTL_SPU_SETPALETTE, this->clut))
- xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"dxr3_decode_spu: failed to set CLUT (%s)\n", strerror(errno));
this->dxr3_vo->clut_cluttered = 0;
}
-
+
/* write spu data to the card */
llprintf(LOG_SPU, "write: SPU_FD = %i\n",this->fd_spu);
written = write(this->fd_spu, buf->content, buf->size);
if (written < 0) {
- xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"dxr3_decode_spu: spu device write failed (%s)\n", strerror(errno));
pthread_mutex_unlock(&this->dxr3_vo->spu_device_lock);
return;
}
if (written != buf->size)
- xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"dxr3_decode_spu: Could only write %zd of %d spu bytes.\n", written, buf->size);
-
+
pthread_mutex_unlock(&this->dxr3_vo->spu_device_lock);
}
@@ -519,7 +519,7 @@ static void dxr3_spudec_reset(spu_decoder_t *this_gen)
{
dxr3_spudec_t *this = (dxr3_spudec_t *)this_gen;
int i;
-
+
for (i = 0; i < MAX_SPU_STREAMS; i++)
this->spu_stream_state[i].spu_length = 0;
pthread_mutex_lock(&this->pci_lock);
@@ -530,7 +530,7 @@ static void dxr3_spudec_reset(spu_decoder_t *this_gen)
static void dxr3_spudec_discontinuity(spu_decoder_t *this_gen)
{
dxr3_spudec_t *this = (dxr3_spudec_t *)this_gen;
-
+
pthread_mutex_lock(&this->pci_lock);
dxr3_spudec_clear_nav_list(this);
pthread_mutex_unlock(&this->pci_lock);
@@ -545,7 +545,7 @@ static void dxr3_spudec_dispose(spu_decoder_t *this_gen)
0x00, 0x01, 0x06, 0x00, 0x04, 0x00, 0x07, 0xFF,
0x00, 0x01, 0x00, 0x20, 0x02, 0xFF };
dxr3_spudec_t *this = (dxr3_spudec_t *)this_gen;
-
+
llprintf(LOG_SPU, "close: SPU_FD = %i\n",this->fd_spu);
pthread_mutex_lock(&this->dxr3_vo->spu_device_lock);
/* clear any remaining spu */
@@ -555,7 +555,7 @@ static void dxr3_spudec_dispose(spu_decoder_t *this_gen)
this->fd_spu = 0;
this->dxr3_vo->fd_spu = 0;
pthread_mutex_unlock(&this->dxr3_vo->spu_device_lock);
-
+
dxr3_spudec_clear_nav_list(this);
xine_event_dispose_queue(this->event_queue);
pthread_mutex_destroy(&this->pci_lock);
@@ -566,7 +566,7 @@ static void dxr3_spudec_dispose(spu_decoder_t *this_gen)
static int dxr3_spudec_interact_info(spu_decoder_t *this_gen, void *data)
{
dxr3_spudec_t *this = (dxr3_spudec_t *)this_gen;
-
+
pthread_mutex_lock(&this->pci_lock);
dxr3_spudec_update_nav(this);
memcpy(data, &this->pci_cur.pci, sizeof(pci_t));
@@ -578,7 +578,7 @@ static void dxr3_spudec_set_button(spu_decoder_t *this_gen, int32_t button, int3
{
dxr3_spudec_t *this = (dxr3_spudec_t *)this_gen;
em8300_button_t btn;
-
+
llprintf(LOG_BTN, "setting button\n");
this->buttonN = button;
pthread_mutex_lock(&this->pci_lock);
@@ -587,7 +587,7 @@ static void dxr3_spudec_set_button(spu_decoder_t *this_gen, int32_t button, int3
(dxr3_spudec_copy_nav_to_btn(this, mode - 1, &btn ) > 0)) {
pthread_mutex_lock(&this->dxr3_vo->spu_device_lock);
if (ioctl(this->fd_spu, EM8300_IOCTL_SPU_BUTTON, &btn))
- xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"dxr3_decode_spu: failed to set spu button (%s)\n", strerror(errno));
pthread_mutex_unlock(&this->dxr3_vo->spu_device_lock);
}
@@ -602,7 +602,7 @@ static void dxr3_spudec_set_button(spu_decoder_t *this_gen, int32_t button, int3
static void dxr3_spudec_process_nav(dxr3_spudec_t *this)
{
em8300_button_t btn;
-
+
this->menu = 1;
this->button_filter = 0;
if (this->pci_cur.pci.hli.hl_gi.fosl_btnn > 0) {
@@ -618,15 +618,15 @@ static void dxr3_spudec_process_nav(dxr3_spudec_t *this)
if ((dxr3_spudec_copy_nav_to_btn(this, 0, &btn ) > 0)) {
pthread_mutex_lock(&this->dxr3_vo->spu_device_lock);
if (ioctl(this->fd_spu, EM8300_IOCTL_SPU_BUTTON, &btn))
- xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"dxr3_decode_spu: failed to set spu button (%s)\n", strerror(errno));
pthread_mutex_unlock(&this->dxr3_vo->spu_device_lock);
} else {
/* current button does not exist -> use another one */
xine_event_t event;
-
+
xprintf(this->stream->xine, XINE_VERBOSITY_LOG, _("requested button not available\n"));
-
+
if (this->buttonN > this->pci_cur.pci.hli.hl_gi.btn_ns)
this->buttonN = this->pci_cur.pci.hli.hl_gi.btn_ns;
else
@@ -636,11 +636,11 @@ static void dxr3_spudec_process_nav(dxr3_spudec_t *this)
event.data = &this->buttonN;
event.data_length = sizeof(this->buttonN);
xine_event_send(this->stream, &event);
-
+
if ((dxr3_spudec_copy_nav_to_btn(this, 0, &btn ) > 0)) {
pthread_mutex_lock(&this->dxr3_vo->spu_device_lock);
if (ioctl(this->fd_spu, EM8300_IOCTL_SPU_BUTTON, &btn))
- xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"dxr3_decode_spu: failed to set spu button (%s)\n", strerror(errno));
pthread_mutex_unlock(&this->dxr3_vo->spu_device_lock);
} else {
@@ -652,10 +652,10 @@ static void dxr3_spudec_process_nav(dxr3_spudec_t *this)
static int dxr3_spudec_copy_nav_to_btn(dxr3_spudec_t *this, int32_t mode, em8300_button_t *btn)
{
btni_t *button_ptr = NULL;
-
+
if ((this->buttonN <= 0) || (this->buttonN > this->pci_cur.pci.hli.hl_gi.btn_ns))
return -1;
-
+
/* choosing a button from a matching button group */
if (this->anamorphic &&
!this->dxr3_vo->widescreen_enabled &&
@@ -663,7 +663,7 @@ static int dxr3_spudec_copy_nav_to_btn(dxr3_spudec_t *this, int32_t mode, em8300
this->stream->spu_channel_letterbox != this->stream->spu_channel &&
this->stream->spu_channel_letterbox >= 0) {
unsigned int btns_per_group = 36 / this->pci_cur.pci.hli.hl_gi.btngr_ns;
-
+
/* use a letterbox button group for letterboxed anamorphic menus on tv out */
if (!button_ptr && this->pci_cur.pci.hli.hl_gi.btngr_ns >= 1 && (this->pci_cur.pci.hli.hl_gi.btngr1_dsp_ty & 2))
button_ptr = &this->pci_cur.pci.hli.btnit[0 * btns_per_group + this->buttonN - 1];
@@ -671,13 +671,13 @@ static int dxr3_spudec_copy_nav_to_btn(dxr3_spudec_t *this, int32_t mode, em8300
button_ptr = &this->pci_cur.pci.hli.btnit[1 * btns_per_group + this->buttonN - 1];
if (!button_ptr && this->pci_cur.pci.hli.hl_gi.btngr_ns >= 3 && (this->pci_cur.pci.hli.hl_gi.btngr3_dsp_ty & 2))
button_ptr = &this->pci_cur.pci.hli.btnit[2 * btns_per_group + this->buttonN - 1];
-
+
xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG, "No suitable letterbox button group found.\n");
_x_assert(button_ptr);
-
+
} else {
unsigned int btns_per_group = 36 / this->pci_cur.pci.hli.hl_gi.btngr_ns;
-
+
/* otherwise use a normal 4:3 or widescreen button group */
if (!button_ptr && this->pci_cur.pci.hli.hl_gi.btngr_ns >= 1 && !(this->pci_cur.pci.hli.hl_gi.btngr1_dsp_ty & 6))
button_ptr = &this->pci_cur.pci.hli.btnit[0 * btns_per_group + this->buttonN - 1];
@@ -685,14 +685,14 @@ static int dxr3_spudec_copy_nav_to_btn(dxr3_spudec_t *this, int32_t mode, em8300
button_ptr = &this->pci_cur.pci.hli.btnit[1 * btns_per_group + this->buttonN - 1];
if (!button_ptr && this->pci_cur.pci.hli.hl_gi.btngr_ns >= 3 && !(this->pci_cur.pci.hli.hl_gi.btngr3_dsp_ty & 6))
button_ptr = &this->pci_cur.pci.hli.btnit[2 * btns_per_group + this->buttonN - 1];
-
+
}
if (!button_ptr) {
- xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"dxr3_decode_spu: No suitable menu button group found, using group 1.\n");
button_ptr = &this->pci_cur.pci.hli.btnit[this->buttonN - 1];
}
-
+
if(button_ptr->btn_coln != 0) {
llprintf(LOG_BTN, "normal button clut, mode %d\n", mode);
btn->color = (this->pci_cur.pci.hli.btn_colit.btn_coli[button_ptr->btn_coln-1][mode] >> 16);
@@ -702,7 +702,7 @@ static int dxr3_spudec_copy_nav_to_btn(dxr3_spudec_t *this, int32_t mode, em8300
btn->right = button_ptr->x_end;
btn->bottom = button_ptr->y_end;
return 1;
- }
+ }
return -1;
}
diff --git a/src/dxr3/dxr3_decode_video.c b/src/dxr3/dxr3_decode_video.c
index 8e57cc462..a4e59eb11 100644
--- a/src/dxr3/dxr3_decode_video.c
+++ b/src/dxr3/dxr3_decode_video.c
@@ -1,18 +1,18 @@
-/*
+/*
* Copyright (C) 2000-2003 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -21,7 +21,7 @@
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
-
+
/* dxr3 video decoder plugin.
* Accepts the video data from xine and sends it directly to the
* corresponding dxr3 device. Takes precedence over the libmpeg2
@@ -77,7 +77,7 @@ static const decoder_info_t dxr3_video_decoder_info = {
};
const plugin_info_t xine_plugin_info[] EXPORTED = {
- /* type, API, "name", version, special_info, init_function */
+ /* type, API, "name", version, special_info, init_function */
{ PLUGIN_VIDEO_DECODER, 19, "dxr3-mpeg2", XINE_VERSION_CODE, &dxr3_video_decoder_info, &dxr3_init_plugin },
{ PLUGIN_NONE, 0, "", 0, NULL, NULL }
};
@@ -96,9 +96,9 @@ static void dxr3_dispose(video_decoder_t *this_gen);
/* plugin structures */
typedef struct dxr3_decoder_class_s {
video_decoder_class_t video_decoder_class;
-
+
int instance; /* we allow only one instance of this plugin */
-
+
metronom_clock_t *clock; /* used for syncing */
} dxr3_decoder_class_t;
@@ -107,11 +107,11 @@ typedef struct dxr3_decoder_s {
dxr3_decoder_class_t *class;
xine_stream_t *stream;
dxr3_scr_t *scr; /* shortcut to the scr plugin in the dxr3 video out */
-
+
int devnum;
int fd_control;
int fd_video; /* to access the dxr3 devices */
-
+
int have_header_info;
int sequence_open;
int width;
@@ -120,26 +120,26 @@ typedef struct dxr3_decoder_s {
int aspect_code;
int frame_rate_code;
int repeat_first_field; /* mpeg stream header data */
-
+
int force_aspect; /* when input plugin has better info, we are forced */
int force_pan_scan; /* to use a certain aspect or to do pan&scan */
-
+
int use_panscan;
int panscan_smart_change;
int afd_smart_change;
int afd_code; /* use pan&scan info if present in stream */
-
+
int last_width;
int last_height;
int last_aspect_code; /* used to detect changes for event sending */
-
+
unsigned int dts_offset[3];
int sync_every_frame;
int sync_retry;
int enhanced_mode;
int resync_window;
int skip_count; /* syncing parameters */
-
+
int correct_durations;
int64_t last_vpts;
int force_duration_window;
@@ -162,11 +162,11 @@ static void dxr3_update_correct_durations(void *this_gen, xine_cfg_entry_t
static inline int dxr3_mvcommand(int fd_control, int command)
{
em8300_register_t reg;
-
+
reg.microcode_register = 1;
reg.reg = 0;
reg.val = command;
-
+
return ioctl(fd_control, EM8300_IOCTL_WRITEREG, &reg);
}
@@ -174,19 +174,19 @@ static inline int dxr3_mvcommand(int fd_control, int command)
static void *dxr3_init_plugin(xine_t *xine, void *data)
{
dxr3_decoder_class_t *this;
-
+
this = calloc(1, sizeof (dxr3_decoder_class_t));
if (!this) return NULL;
-
+
this->video_decoder_class.open_plugin = dxr3_open_plugin;
this->video_decoder_class.identifier = "dxr3-mpeg2";
this->video_decoder_class.description = N_("MPEGI/II decoder plugin using the hardware decoding capabilities of a DXR3 decoder card.");
this->video_decoder_class.dispose = default_video_decoder_class_dispose;
-
+
this->instance = 0;
-
+
this->clock = xine->clock;
-
+
return &this->video_decoder_class;
}
@@ -198,40 +198,40 @@ static video_decoder_t *dxr3_open_plugin(video_decoder_class_t *class_gen, xine_
dxr3_decoder_class_t *class = (dxr3_decoder_class_t *)class_gen;
config_values_t *cfg;
char tmpstr[128];
-
+
if (class->instance) return NULL;
if (!dxr3_present(stream)) return NULL;
-
+
this = calloc(1, sizeof (dxr3_decoder_t));
if (!this) return NULL;
-
+
cfg = stream->xine->config;
-
+
this->video_decoder.decode_data = dxr3_decode_data;
this->video_decoder.reset = dxr3_reset;
this->video_decoder.discontinuity = dxr3_discontinuity;
this->video_decoder.flush = dxr3_flush;
this->video_decoder.dispose = dxr3_dispose;
-
+
this->class = class;
this->stream = stream;
this->scr = NULL;
-
+
this->devnum = cfg->register_num(cfg, CONF_KEY, 0, CONF_NAME, CONF_HELP, 10, NULL, NULL);
-
+
snprintf(tmpstr, sizeof(tmpstr), "/dev/em8300-%d", this->devnum);
llprintf(LOG_VID, "Entering video init, devname=%s.\n",tmpstr);
-
+
/* open later, because dxr3_video_out might have it open until we request a frame */
this->fd_video = -1;
-
+
if ((this->fd_control = open(tmpstr, O_WRONLY)) < 0) {
- xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
_("dxr3_decode_video: Failed to open control device %s (%s)\n"), tmpstr, strerror(errno));
free(this);
return NULL;
}
-
+
this->use_panscan = cfg->register_enum(cfg,
"dxr3.use_panscan", 0, panscan_types, _("use Pan & Scan info"),
_("\"Pan & Scan\" is a special display mode which is sometimes used in MPEG "
@@ -244,14 +244,14 @@ static video_decoder_t *dxr3_open_plugin(video_decoder_class_t *class_gen, xine_
"Enable Pan & Scan based on information embedded in DVB streams. This makes "
"use of the Active Format Descriptor (AFD) used in some European DVB channels."),
10, dxr3_update_panscan, this);
-
+
this->dts_offset[0] = 21600;
this->dts_offset[1] = 21600;
this->dts_offset[2] = 21600;
-
+
this->force_duration_window = -FORCE_DURATION_WINDOW_SIZE;
this->last_vpts = this->class->clock->get_current_time(this->class->clock);
-
+
this->sync_every_frame = cfg->register_bool(cfg,
"dxr3.playback.sync_every_frame", 0, _("try to sync video every frame"),
_("Tries to set a synchronization timestamp for every frame. "
@@ -270,14 +270,14 @@ static video_decoder_t *dxr3_open_plugin(video_decoder_class_t *class_gen, xine_
"correction for NTSC streams erroneously labeled as PAL "
"streams is implemented. Enable only, when you encounter such streams."),
0, dxr3_update_correct_durations, this);
-
+
/* the dxr3 needs a longer prebuffering to have time for its internal decoding */
this->stream->metronom->set_option(this->stream->metronom, METRONOM_PREBUFFER, 90000);
-
+
(stream->video_out->open) (stream->video_out, stream);
-
+
class->instance = 1;
-
+
return &this->video_decoder;
}
@@ -290,9 +290,9 @@ static void dxr3_decode_data(video_decoder_t *this_gen, buf_element_t *buf)
vo_frame_t *img;
uint8_t *buffer, byte;
uint32_t shift;
-
+
vpts = 0;
-
+
/* handle aspect hints from xine-dvdnav */
if (buf->decoder_flags & BUF_FLAG_SPECIAL) {
if (buf->decoder_info[1] == BUF_SPECIAL_ASPECT) {
@@ -304,12 +304,12 @@ static void dxr3_decode_data(video_decoder_t *this_gen, buf_element_t *buf)
this->force_pan_scan = 0;
frame_format_change(this);
-
+
this->last_aspect_code = this->aspect_code;
}
return;
}
-
+
/* parse frames in the buffer handed in, evaluate headers,
* send frames to video_out and handle some syncing
*/
@@ -323,7 +323,7 @@ static void dxr3_decode_data(video_decoder_t *this_gen, buf_element_t *buf)
}
/* header code of some kind found */
shift = 0xffffff00;
-
+
if (byte == 0xb2) {
/* check for AFD data */
if (buffer + 5 < buf->content + buf->size) {
@@ -412,7 +412,7 @@ static void dxr3_decode_data(video_decoder_t *this_gen, buf_element_t *buf)
continue;
if (buf->decoder_flags & BUF_FLAG_PREVIEW)
continue;
-
+
/* pretend like we have decoded a frame */
img = this->stream->video_out->get_frame(this->stream->video_out,
this->width, this->height, this->ratio,
@@ -420,20 +420,20 @@ static void dxr3_decode_data(video_decoder_t *this_gen, buf_element_t *buf)
img->pts = buf->pts;
img->bad_frame = 0;
img->duration = get_duration(this);
-
+
skip = img->draw(img, this->stream);
-
+
if (skip <= 0) { /* don't skip */
vpts = img->vpts; /* copy so we can free img */
-
+
if (this->correct_durations) {
/* calculate an average frame duration from metronom's vpts values */
this->avg_duration = this->avg_duration * 0.9 + (vpts - this->last_vpts) * 0.1;
llprintf(LOG_PTS, "average frame duration %d\n", this->avg_duration);
}
-
+
if (this->skip_count) this->skip_count--;
-
+
if (this->resync_window == 0 && this->scr && this->enhanced_mode &&
!this->scr->scanning) {
/* we are in sync, so we can lock the stream now */
@@ -450,7 +450,7 @@ static void dxr3_decode_data(video_decoder_t *this_gen, buf_element_t *buf)
llprintf(LOG_VID, "%d frames to skip\n", skip);
vpts = 0;
this->avg_duration = 0;
-
+
/* handle frame skip conditions */
if (this->scr && !this->scr->scanning) this->skip_count += skip;
if (this->skip_count > SKIP_TOLERANCE) {
@@ -462,7 +462,7 @@ static void dxr3_decode_data(video_decoder_t *this_gen, buf_element_t *buf)
this->skip_count = 0;
this->resync_window = 0;
}
-
+
if (this->scr && this->scr->scanning) this->resync_window = 0;
if (this->resync_window == 0 && this->scr && this->enhanced_mode &&
!this->scr->scanning) {
@@ -481,7 +481,7 @@ static void dxr3_decode_data(video_decoder_t *this_gen, buf_element_t *buf)
img->free(img);
/* if sync_every_frame was disabled, decrease the counter
- * for a retry
+ * for a retry
* (it might be due to crappy studio logos and stuff
* so we should give the main movie a chance)
*/
@@ -493,7 +493,7 @@ static void dxr3_decode_data(video_decoder_t *this_gen, buf_element_t *buf)
}
}
if (buf->decoder_flags & BUF_FLAG_PREVIEW) return;
-
+
/* ensure video device is open
* (we open it late because on occasion the dxr3 video out driver
* wants to open it)
@@ -503,15 +503,15 @@ static void dxr3_decode_data(video_decoder_t *this_gen, buf_element_t *buf)
metronom_clock_t *clock = this->class->clock;
char tmpstr[128];
int64_t time;
-
+
/* open the device for the decoder */
snprintf (tmpstr, sizeof(tmpstr), "/dev/em8300_mv-%d", this->devnum);
if ((this->fd_video = open(tmpstr, O_WRONLY)) < 0) {
- xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
- _("dxr3_decode_video: Failed to open video device %s (%s)\n"), tmpstr, strerror(errno));
+ xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
+ _("dxr3_decode_video: Failed to open video device %s (%s)\n"), tmpstr, strerror(errno));
return;
}
-
+
/* We may want to issue a SETPTS, so make sure the scr plugin
* is running and registered. Unfortuantely wa cannot do this
* earlier, because the dxr3's internal scr gets confused
@@ -524,11 +524,11 @@ static void dxr3_decode_data(video_decoder_t *this_gen, buf_element_t *buf)
this->scr->scr_plugin.start(&this->scr->scr_plugin, time);
clock->register_scr(clock, &this->scr->scr_plugin);
}
-
+
/* update the pts timestamp in the card, which tags the data we write to it */
if (vpts) {
int64_t delay;
-
+
/* The PTS values written to the DXR3 must be modified based on the difference
* between stream's PTS and DTS (decoder timestamp). We receive this
* difference via decoder_info */
@@ -544,7 +544,7 @@ static void dxr3_decode_data(video_decoder_t *this_gen, buf_element_t *buf)
llprintf(LOG_PTS, "PTS to DTS correction: %d\n", this->dts_offset[1]);
}
vpts -= this->dts_offset[2];
-
+
delay = vpts - this->class->clock->get_current_time(
this->class->clock);
llprintf(LOG_PTS, "SETPTS got %" PRId64 "\n", vpts);
@@ -558,7 +558,7 @@ static void dxr3_decode_data(video_decoder_t *this_gen, buf_element_t *buf)
xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"dxr3_decode_video: set video pts failed (%s)\n", strerror(errno));
}
-
+
if (delay >= 90000) /* frame more than 1 sec ahead */
xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"dxr3_decode_video: WARNING: vpts %" PRId64 " is %.02f seconds ahead of time!\n",
@@ -568,7 +568,7 @@ static void dxr3_decode_data(video_decoder_t *this_gen, buf_element_t *buf)
}
else if (buf->pts)
llprintf(LOG_PTS, "skip buf->pts = %" PRId64 " (no vpts)\n", buf->pts);
-
+
/* now write the content to the dxr3 mpeg device and, in a dramatic
* break with open source tradition, check the return value
*/
@@ -579,7 +579,7 @@ static void dxr3_decode_data(video_decoder_t *this_gen, buf_element_t *buf)
_("dxr3_decode_video: write to device would block. flushing\n"));
dxr3_flush(this_gen);
} else {
- xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
_("dxr3_decode_video: video device write failed (%s)\n"), strerror(errno));
}
return;
@@ -592,7 +592,7 @@ static void dxr3_decode_data(video_decoder_t *this_gen, buf_element_t *buf)
static void dxr3_reset(video_decoder_t *this_gen)
{
dxr3_decoder_t *this = (dxr3_decoder_t *)this_gen;
-
+
this->sequence_open = 0;
}
@@ -600,10 +600,10 @@ static void dxr3_discontinuity(video_decoder_t *this_gen)
{
}
-static void dxr3_flush(video_decoder_t *this_gen)
+static void dxr3_flush(video_decoder_t *this_gen)
{
dxr3_decoder_t *this = (dxr3_decoder_t *)this_gen;
-
+
if (this->sequence_open && ++this->sequence_open > 5 &&
_x_stream_info_get(this->stream, XINE_STREAM_INFO_VIDEO_HAS_STILL)) {
/* The dxr3 needs a sequence end code for still menus to work correctly
@@ -621,18 +621,18 @@ static void dxr3_dispose(video_decoder_t *this_gen)
{
dxr3_decoder_t *this = (dxr3_decoder_t *)this_gen;
metronom_clock_t *clock = this->class->clock;
-
+
if (this->scr)
clock->unregister_scr(clock, &this->scr->scr_plugin);
-
+
dxr3_mvcommand(this->fd_control, MVCOMMAND_FLUSHBUF);
-
+
if (this->fd_video >= 0) close(this->fd_video);
close(this->fd_control);
-
+
this->stream->video_out->close(this->stream->video_out, this->stream);
this->class->instance = 0;
-
+
free(this);
}
@@ -646,11 +646,11 @@ static void parse_mpeg_header(dxr3_decoder_t *this, uint8_t * buffer)
this->width = ((this->height >> 12) + 15) & ~15;
this->height = ((this->height & 0xfff) + 15) & ~15;
this->aspect_code = buffer[3] >> 4;
-
+
this->have_header_info = 1;
-
+
if (this->force_aspect) this->aspect_code = this->force_aspect;
-
+
/* when width, height or aspect changes,
* we have to send an event for dxr3 spu decoder */
if (!this->last_width || !this->last_height || !this->last_aspect_code ||
@@ -667,7 +667,7 @@ static void parse_mpeg_header(dxr3_decoder_t *this, uint8_t * buffer)
static int get_duration(dxr3_decoder_t *this)
{
int duration;
-
+
switch (this->frame_rate_code) {
case 1: /* 23.976 */
duration = 3754; /* actually it's 3753.75 */
@@ -694,19 +694,19 @@ static int get_duration(dxr3_decoder_t *this)
duration = 1500;
break;
default:
- xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
_("dxr3_decode_video: WARNING: unknown frame rate code %d\n"), this->frame_rate_code);
duration = 0;
break;
}
-
+
/* update stream metadata */
_x_stream_info_set(this->stream, XINE_STREAM_INFO_FRAME_DURATION, duration);
-
+
if (this->correct_durations && duration) {
/* we set an initial average frame duration here */
if (!this->avg_duration) this->avg_duration = duration;
-
+
/* Apply a correction to the framerate-code if metronom
* insists on a different frame duration.
* The code below is for NTCS streams labeled as PAL streams.
@@ -731,7 +731,7 @@ static int get_duration(dxr3_decoder_t *this)
return 3000;
}
}
-
+
if (this->force_duration_window == -FORCE_DURATION_WINDOW_SIZE)
/* we are far from a force_duration window */
return duration;
@@ -744,7 +744,7 @@ static int get_duration(dxr3_decoder_t *this)
this->force_duration_window = -FORCE_DURATION_WINDOW_SIZE;
}
}
-
+
return duration;
}
@@ -763,7 +763,7 @@ static void frame_format_change(dxr3_decoder_t *this)
data.aspect = this->aspect_code;
data.pan_scan = this->force_pan_scan;
xine_event_send(this->stream, &event);
-
+
/* update ratio */
switch (this->aspect_code) {
case 2:
@@ -779,12 +779,12 @@ static void frame_format_change(dxr3_decoder_t *this)
if (this->have_header_info)
this->ratio = (double)this->width / (double)this->height;
}
-
+
/* update stream metadata */
_x_stream_info_set(this->stream, XINE_STREAM_INFO_VIDEO_WIDTH, this->width);
_x_stream_info_set(this->stream, XINE_STREAM_INFO_VIDEO_HEIGHT, this->height);
_x_stream_info_set(this->stream, XINE_STREAM_INFO_VIDEO_RATIO, 10000 * this->ratio);
-
+
_x_meta_info_set_utf8(this->stream, XINE_META_INFO_VIDEOCODEC, "MPEG (DXR3)");
}
diff --git a/src/dxr3/dxr3_mpeg_encoders.c b/src/dxr3/dxr3_mpeg_encoders.c
index 66f1ef876..7e9a0e523 100644
--- a/src/dxr3/dxr3_mpeg_encoders.c
+++ b/src/dxr3/dxr3_mpeg_encoders.c
@@ -1,26 +1,26 @@
-/*
+/*
* Copyright (C) 2000-2003 the xine project
- *
+ *
* This file is part of xine, a unix video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
*/
-
+
/* mpeg encoders for the dxr3 video out plugin.
* supports the libfame and librte mpeg encoder libraries.
- */
+ */
#ifdef HAVE_CONFIG_H
# include "config.h"
@@ -57,7 +57,7 @@
#include <xine/xineutils.h>
#include "video_out_dxr3.h"
-/* buffer size for encoded mpeg1 stream; will hold one intra frame
+/* buffer size for encoded mpeg1 stream; will hold one intra frame
* at 640x480 typical sizes are <50 kB. 512 kB should be plenty */
#define DEFAULT_BUFFER_SIZE 512*1024
@@ -73,7 +73,7 @@ static int rte_on_unneeded(dxr3_driver_t *drv);
static int rte_on_close(dxr3_driver_t *drv);
/* helper function */
-static void mp1e_callback(rte_context *context, void *data, ssize_t size,
+static void mp1e_callback(rte_context *context, void *data, ssize_t size,
void *user_data);
/* encoder structure */
@@ -109,7 +109,7 @@ typedef struct {
} fame_data_t;
/* helper function */
-static int fame_prepare_frame(fame_data_t *this, dxr3_driver_t *drv,
+static int fame_prepare_frame(fame_data_t *this, dxr3_driver_t *drv,
dxr3_frame_t *frame);
#endif
@@ -117,15 +117,15 @@ static int fame_prepare_frame(fame_data_t *this, dxr3_driver_t *drv,
int dxr3_rte_init(dxr3_driver_t *drv)
{
rte_data_t* this;
-
+
if (!rte_init()) {
xprintf(drv->class->xine, XINE_VERBOSITY_LOG, _("dxr3_mpeg_encoder: failed to init librte\n"));
return 0;
}
-
+
this = calloc(1, sizeof(rte_data_t));
if (!this) return 0;
-
+
this->encoder_data.type = ENC_RTE;
this->encoder_data.on_update_format = rte_on_update_format;
this->encoder_data.on_frame_copy = NULL;
@@ -133,7 +133,7 @@ int dxr3_rte_init(dxr3_driver_t *drv)
this->encoder_data.on_unneeded = rte_on_unneeded;
this->encoder_data.on_close = rte_on_close;
this->context = 0;
-
+
drv->enc = &this->encoder_data;
return 1;
}
@@ -141,7 +141,7 @@ int dxr3_rte_init(dxr3_driver_t *drv)
static int rte_on_update_format(dxr3_driver_t *drv, dxr3_frame_t *frame)
{
rte_data_t *this = (rte_data_t *)drv->enc;
- rte_context *context;
+ rte_context *context;
rte_codec *codec;
double fps;
@@ -151,13 +151,13 @@ static int rte_on_update_format(dxr3_driver_t *drv, dxr3_frame_t *frame)
rte_context_destroy(this->context);
this->context = 0;
}
-
+
if ((frame->vo_frame.pitches[0] % 16 != 0) || (frame->oheight % 16 != 0)) {
- xprintf(drv->class->xine, XINE_VERBOSITY_LOG,
+ xprintf(drv->class->xine, XINE_VERBOSITY_LOG,
_("dxr3_mpeg_encoder: rte only handles video dimensions which are multiples of 16\n"));
return 0;
}
-
+
this->width = frame->vo_frame.pitches[0];
this->height = frame->oheight;
@@ -171,7 +171,7 @@ static int rte_on_update_format(dxr3_driver_t *drv, dxr3_frame_t *frame)
#if LOG_ENC
rte_set_verbosity(context, 2);
#endif
-
+
/* get mpeg codec handle */
codec = rte_codec_set(context, RTE_STREAM_VIDEO, 0, "mpeg1_video");
if (!codec) {
@@ -180,26 +180,26 @@ static int rte_on_update_format(dxr3_driver_t *drv, dxr3_frame_t *frame)
this->context = 0;
return 0;
}
-
+
this->rte_bitrate = drv->class->xine->config->register_range(drv->class->xine->config,
"dxr3.encoding.rte_bitrate", 10000, 1000, 20000,
- _("rte mpeg output bitrate (kbit/s)"),
+ _("rte mpeg output bitrate (kbit/s)"),
_("The bitrate the mpeg encoder library librte should use for DXR3's encoding mode. "
"Higher values will increase quality and CPU usage."), 10, NULL, NULL);
this->rte_bitrate *= 1000; /* config in kbit/s, rte wants bit/s */
-
- /* FIXME: this needs to be replaced with a codec option call.
+
+ /* FIXME: this needs to be replaced with a codec option call.
* However, there seems to be none for the colour format!
- * So we'll use the deprecated set_video_parameters instead.
+ * So we'll use the deprecated set_video_parameters instead.
* Alternative is to manually set context->video_format (RTE_YU... )
* and context->video_bytes (= width * height * bytes/pixel)
*/
- rte_set_video_parameters(context,
+ rte_set_video_parameters(context,
(frame->vo_frame.format == XINE_IMGFMT_YV12 ? RTE_YUV420 : RTE_YUYV),
- context->width, context->height,
+ context->width, context->height,
context->video_rate, context->output_video_bits,
context->gop_sequence);
-
+
/* Now set a whole bunch of codec options
* If I understand correctly, virtual_frame_rate is the frame rate
* of the source (can be anything), while coded_frame_rate must be
@@ -207,27 +207,27 @@ static int rte_on_update_format(dxr3_driver_t *drv, dxr3_frame_t *frame)
*/
fps = 90000.0 / frame->vo_frame.duration;
if (!rte_option_set(codec, "virtual_frame_rate", fps))
- xprintf(drv->class->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(drv->class->xine, XINE_VERBOSITY_DEBUG,
"dxr3_mpeg_encoder: WARNING: rte_option_set failed; virtual_frame_rate = %g.\n", fps);
if (!rte_option_set(codec, "coded_frame_rate", fps))
- xprintf(drv->class->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(drv->class->xine, XINE_VERBOSITY_DEBUG,
"dxr3_mpeg_encoder: WARNING: rte_option_set failed; coded_frame_rate = %g.\n", fps);
if (!rte_option_set(codec, "bit_rate", (int)this->rte_bitrate))
xprintf(drv->class->xine, XINE_VERBOSITY_DEBUG,
"dxr3_mpeg_encoder: WARNING: rte_option_set failed; bit_rate = %d.\n", (int)this->rte_bitrate);
if (!rte_option_set(codec, "gop_sequence", "I"))
- xprintf(drv->class->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(drv->class->xine, XINE_VERBOSITY_DEBUG,
"dxr3_mpeg_encoder: WARNING: rte_option_set failed; gop_sequence = \"I\".\n");
/* just to be sure, disable motion comp (not needed in I frames) */
if (!rte_option_set(codec, "motion_compensation", 0))
xprintf(drv->class->xine, XINE_VERBOSITY_DEBUG,
"dxr3_mpeg_encoder: WARNING: rte_option_set failed; motion_compensation = 0.\n");
-
+
rte_set_input(context, RTE_VIDEO, RTE_PUSH, FALSE, NULL, NULL, NULL);
rte_set_output(context, mp1e_callback, NULL, NULL);
-
+
if (!rte_init_context(context)) {
- xprintf(drv->class->xine, XINE_VERBOSITY_LOG,
+ xprintf(drv->class->xine, XINE_VERBOSITY_LOG,
_("dxr3_mpeg_encoder: cannot init the context: %s\n"), context->error);
rte_context_destroy(context);
this->context = 0;
@@ -235,7 +235,7 @@ static int rte_on_update_format(dxr3_driver_t *drv, dxr3_frame_t *frame)
}
/* do the sync'ing and start encoding */
if (!rte_start_encoding(context)) {
- xprintf(drv->class->xine, XINE_VERBOSITY_LOG,
+ xprintf(drv->class->xine, XINE_VERBOSITY_LOG,
_("dxr3_mpeg_encoder: cannot start encoding: %s\n"), context->error);
rte_context_destroy(context);
this->context = 0;
@@ -243,11 +243,11 @@ static int rte_on_update_format(dxr3_driver_t *drv, dxr3_frame_t *frame)
}
this->rte_ptr = rte_push_video_data(context, NULL, 0);
if (!this->rte_ptr) {
- xprintf(drv->class->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(drv->class->xine, XINE_VERBOSITY_DEBUG,
"dxr3_mpeg_encoder: failed to get encoder buffer pointer.\n");
return 0;
}
-
+
return 1;
}
@@ -273,7 +273,7 @@ static int rte_on_display_frame(dxr3_driver_t *drv, dxr3_frame_t *frame)
static int rte_on_unneeded(dxr3_driver_t *drv)
{
rte_data_t *this = (rte_data_t *)drv->enc;
-
+
if (this->context) {
rte_stop(this->context);
rte_context_destroy(this->context);
@@ -296,15 +296,15 @@ static void mp1e_callback(rte_context *context, void *data, ssize_t size, void *
dxr3_driver_t *drv = (dxr3_driver_t *)user_data;
char tmpstr[128];
ssize_t written;
-
+
written = write(drv->fd_video, data, size);
if (written < 0) {
- xprintf(drv->class->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(drv->class->xine, XINE_VERBOSITY_DEBUG,
"dxr3_mpeg_encoder: video device write failed (%s)\n", strerror(errno));
return;
}
if (written != size)
- xprintf(drv->class->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(drv->class->xine, XINE_VERBOSITY_DEBUG,
"dxr3_mpeg_encoder: Could only write %d of %d mpeg bytes.\n", written, size);
}
#endif
@@ -314,10 +314,10 @@ static void mp1e_callback(rte_context *context, void *data, ssize_t size, void *
int dxr3_fame_init(dxr3_driver_t *drv)
{
fame_data_t *this;
-
+
this = calloc(1, sizeof(fame_data_t));
if (!this) return 0;
-
+
this->encoder_data.type = ENC_FAME;
this->encoder_data.on_update_format = fame_on_update_format;
this->encoder_data.on_frame_copy = NULL;
@@ -325,34 +325,34 @@ int dxr3_fame_init(dxr3_driver_t *drv)
this->encoder_data.on_unneeded = fame_on_unneeded;
this->encoder_data.on_close = fame_on_close;
this->context = 0;
-
+
drv->enc = &this->encoder_data;
return 1;
}
-static int fame_on_update_format(dxr3_driver_t *drv, dxr3_frame_t *frame)
+static int fame_on_update_format(dxr3_driver_t *drv, dxr3_frame_t *frame)
{
fame_data_t *this = (fame_data_t *)drv->enc;
fame_parameters_t init_fp = FAME_PARAMETERS_INITIALIZER;
double fps;
- av_freep(&this->buf);
+ av_freep(&this->buf);
this->out[0] = this->out[1] = this->out[2] = 0;
-
+
/* if YUY2 and dimensions changed, we need to re-allocate the
* internal YV12 buffer */
if (frame->vo_frame.format == XINE_IMGFMT_YUY2) {
int image_size = frame->vo_frame.width * frame->oheight;
this->out[0] = this->buf = av_mallocz(image_size * 3/2);
- this->out[1] = this->out[0] + image_size;
- this->out[2] = this->out[1] + image_size/4;
+ this->out[1] = this->out[0] + image_size;
+ this->out[2] = this->out[1] + image_size/4;
/* fill with black (yuv 16,128,128) */
memset(this->out[0], 16, image_size);
memset(this->out[1], 128, image_size/4);
memset(this->out[2], 128, image_size/4);
- lprintf("Using YUY2->YV12 conversion\n");
+ lprintf("Using YUY2->YV12 conversion\n");
}
if (this->context) {
@@ -360,18 +360,18 @@ static int fame_on_update_format(dxr3_driver_t *drv, dxr3_frame_t *frame)
fame_close(this->context);
this->context = 0;
}
-
+
this->context = fame_open();
if (!this->context) {
- xprintf(drv->class->xine, XINE_VERBOSITY_LOG,
+ xprintf(drv->class->xine, XINE_VERBOSITY_LOG,
_("dxr3_mpeg_encoder: Couldn't start the FAME library\n"));
return 0;
}
-
+
if (!this->buffer)
this->buffer = (unsigned char *)malloc(DEFAULT_BUFFER_SIZE);
if (!this->buffer) {
- xprintf(drv->class->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(drv->class->xine, XINE_VERBOSITY_DEBUG,
"dxr3_mpeg_encoder: Couldn't allocate temp buffer for mpeg data\n");
return 0;
}
@@ -403,23 +403,23 @@ static int fame_on_update_format(dxr3_driver_t *drv, dxr3_frame_t *frame)
if (fps < 23.988) { /* NTSC-FILM */
lprintf("setting mpeg output framerate to NTSC-FILM (23.976 Hz)\n");
this->fp.frame_rate_num = 24000;
- this->fp.frame_rate_den = 1001;
+ this->fp.frame_rate_den = 1001;
} else if (fps < 24.5) { /* FILM */
lprintf("setting mpeg output framerate to FILM (24 Hz)\n");
this->fp.frame_rate_num = 24;
- this->fp.frame_rate_den = 1;
+ this->fp.frame_rate_den = 1;
} else if (fps < 27.485) { /* PAL */
lprintf("setting mpeg output framerate to PAL (25 Hz)\n");
this->fp.frame_rate_num = 25;
- this->fp.frame_rate_den = 1;
+ this->fp.frame_rate_den = 1;
} else { /* NTSC */
lprintf("setting mpeg output framerate to NTSC (29.97 Hz)\n");
this->fp.frame_rate_num = 30000;
this->fp.frame_rate_den = 1001;
}
-
+
fame_init (this->context, &this->fp, this->buffer, DEFAULT_BUFFER_SIZE);
-
+
return 1;
}
@@ -445,17 +445,17 @@ static int fame_on_display_frame(dxr3_driver_t *drv, dxr3_frame_t *frame)
size = fame_encode_frame(this->context, &this->yuv, NULL);
#endif
- frame->vo_frame.free(&frame->vo_frame);
-
+ frame->vo_frame.free(&frame->vo_frame);
+
written = write(drv->fd_video, this->buffer, size);
if (written < 0) {
- xprintf(drv->class->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(drv->class->xine, XINE_VERBOSITY_DEBUG,
"dxr3_mpeg_encoder: video device write failed (%s)\n",
strerror(errno));
return 0;
}
if (written != size)
- xprintf(drv->class->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(drv->class->xine, XINE_VERBOSITY_DEBUG,
"dxr3_mpeg_encoder: Could only write %d of %d mpeg bytes.\n",
written, size);
return 1;
@@ -464,7 +464,7 @@ static int fame_on_display_frame(dxr3_driver_t *drv, dxr3_frame_t *frame)
static int fame_on_unneeded(dxr3_driver_t *drv)
{
fame_data_t *this = (fame_data_t *)drv->enc;
-
+
if (this->context) {
fame_close(this->context);
this->context = 0;
@@ -491,7 +491,7 @@ static int fame_prepare_frame(fame_data_t *this, dxr3_driver_t *drv, dxr3_frame_
if (frame->vo_frame.format == XINE_IMGFMT_YUY2) {
/* need YUY2->YV12 conversion */
if (!(this->out[0] && this->out[1] && this->out[2]) ) {
- xprintf(drv->class->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(drv->class->xine, XINE_VERBOSITY_DEBUG,
"dxr3_mpeg_encoder: Internal YV12 buffer not created.\n");
return 0;
}
diff --git a/src/dxr3/dxr3_scr.c b/src/dxr3/dxr3_scr.c
index c95ab00a7..dd0ea5840 100644
--- a/src/dxr3/dxr3_scr.c
+++ b/src/dxr3/dxr3_scr.c
@@ -1,18 +1,18 @@
-/*
+/*
* Copyright (C) 2000-2003 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -55,11 +55,11 @@ static void dxr3_scr_update_priority(void *this_gen, xine_cfg_entry_t *entry)
static inline int dxr3_mvcommand(int fd_control, int command)
{
em8300_register_t reg;
-
+
reg.microcode_register = 1;
reg.reg = 0;
reg.val = command;
-
+
return ioctl(fd_control, EM8300_IOCTL_WRITEREG, &reg);
}
@@ -69,21 +69,21 @@ dxr3_scr_t *dxr3_scr_init(xine_t *xine)
dxr3_scr_t *this;
int devnum;
char tmpstr[128];
-
+
this = calloc(1, sizeof(dxr3_scr_t));
-
+
devnum = xine->config->register_num(xine->config,
CONF_KEY, 0, CONF_NAME, CONF_HELP, 10, NULL, NULL);
snprintf(tmpstr, sizeof(tmpstr), "/dev/em8300-%d", devnum);
if ((this->fd_control = open(tmpstr, O_WRONLY)) < 0) {
- xprintf(this->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->xine, XINE_VERBOSITY_DEBUG,
"dxr3_scr: Failed to open control device %s (%s)\n", tmpstr, strerror(errno));
free(this);
return NULL;
}
-
+
this->xine = xine;
-
+
this->scr_plugin.interface_version = 3;
this->scr_plugin.get_priority = dxr3_scr_get_priority;
this->scr_plugin.start = dxr3_scr_start;
@@ -91,7 +91,7 @@ dxr3_scr_t *dxr3_scr_init(xine_t *xine)
this->scr_plugin.adjust = dxr3_scr_adjust;
this->scr_plugin.set_fine_speed = dxr3_scr_set_speed;
this->scr_plugin.exit = dxr3_scr_exit;
-
+
this->priority = xine->config->register_num(
xine->config, "dxr3.scr_priority", 10, _("SCR plugin priority"),
_("Priority of the DXR3 SCR plugin. Values less than 5 mean that the "
@@ -102,9 +102,9 @@ dxr3_scr_t *dxr3_scr_init(xine_t *xine)
this->last_pts = 0;
this->scanning = 0;
this->sync = 0;
-
+
pthread_mutex_init(&this->mutex, NULL);
-
+
lprintf("init complete\n");
return this;
}
@@ -120,7 +120,7 @@ static void dxr3_scr_start(scr_plugin_t *scr, int64_t vpts)
{
dxr3_scr_t *this = (dxr3_scr_t *)scr;
uint32_t vpts32 = vpts >> 1;
-
+
pthread_mutex_lock(&this->mutex);
this->last_pts = vpts32;
this->offset = vpts - ((int64_t)vpts32 << 1);
@@ -140,7 +140,7 @@ static int64_t dxr3_scr_get_current(scr_plugin_t *scr)
dxr3_scr_t *this = (dxr3_scr_t *)scr;
uint32_t pts;
int64_t current;
-
+
pthread_mutex_lock(&this->mutex);
if (ioctl(this->fd_control, EM8300_IOCTL_SCR_GET, &pts))
xprintf(this->xine, XINE_VERBOSITY_DEBUG, "dxr3_scr: get current failed (%s)\n", strerror(errno));
@@ -152,7 +152,7 @@ static int64_t dxr3_scr_get_current(scr_plugin_t *scr)
this->last_pts = pts;
current = ((int64_t)pts << 1) + this->offset;
pthread_mutex_unlock(&this->mutex);
-
+
return current;
}
@@ -161,7 +161,7 @@ static void dxr3_scr_adjust(scr_plugin_t *scr, int64_t vpts)
dxr3_scr_t *this = (dxr3_scr_t *)scr;
uint32_t current_pts32;
int32_t offset32;
-
+
pthread_mutex_lock(&this->mutex);
if (ioctl(this->fd_control, EM8300_IOCTL_SCR_GET, &current_pts32))
xprintf(this->xine, XINE_VERBOSITY_DEBUG, "dxr3_scr: adjust get failed (%s)\n", strerror(errno));
@@ -187,7 +187,7 @@ static int dxr3_scr_set_speed(scr_plugin_t *scr, int speed)
int playmode;
pthread_mutex_lock(&this->mutex);
-
+
em_speed = 0x900LL * (int64_t)speed / XINE_FINE_SPEED_NORMAL;
switch (em_speed) {
case 0:
@@ -200,24 +200,24 @@ static int dxr3_scr_set_speed(scr_plugin_t *scr, int speed)
playmode = MVCOMMAND_SYNC;
else
playmode = MVCOMMAND_START;
- break;
+ break;
default:
playmode = MVCOMMAND_START;
}
-
+
if (dxr3_mvcommand(this->fd_control, playmode))
xprintf(this->xine, XINE_VERBOSITY_DEBUG, "dxr3_scr: failed to playmode (%s)\n", strerror(errno));
-
+
if(em_speed > 0x900)
this->scanning = 1;
else
this->scanning = 0;
-
+
if (ioctl(this->fd_control, EM8300_IOCTL_SCR_SETSPEED, &em_speed))
xprintf(this->xine, XINE_VERBOSITY_DEBUG, "dxr3_scr: failed to set speed (%s)\n", strerror(errno));
-
+
pthread_mutex_unlock(&this->mutex);
-
+
lprintf("speed set to mode %d\n", speed);
return speed;
}
@@ -225,7 +225,7 @@ static int dxr3_scr_set_speed(scr_plugin_t *scr, int speed)
static void dxr3_scr_exit(scr_plugin_t *scr)
{
dxr3_scr_t *this = (dxr3_scr_t *)scr;
-
+
close(this->fd_control);
pthread_mutex_destroy(&this->mutex);
free(this);
@@ -237,8 +237,8 @@ static void dxr3_scr_exit(scr_plugin_t *scr)
static void dxr3_scr_update_priority(void *this_gen, xine_cfg_entry_t *entry)
{
dxr3_scr_t *this = (dxr3_scr_t *)this_gen;
-
+
this->priority = entry->num_value;
- xprintf(this->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->xine, XINE_VERBOSITY_DEBUG,
"dxr3_scr: setting scr priority to %d\n", entry->num_value);
}
diff --git a/src/dxr3/dxr3_scr.h b/src/dxr3/dxr3_scr.h
index b9f35d643..28e2e0f1b 100644
--- a/src/dxr3/dxr3_scr.h
+++ b/src/dxr3/dxr3_scr.h
@@ -1,18 +1,18 @@
-/*
+/*
* Copyright (C) 2000-2003 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -25,11 +25,11 @@
typedef struct dxr3_scr_s {
scr_plugin_t scr_plugin;
pthread_mutex_t mutex;
-
+
xine_t *xine;
-
+
int fd_control; /* to access the dxr3 control device */
-
+
int priority;
int64_t offset; /* difference between real scr and internal dxr3 clock */
uint32_t last_pts; /* last known value of internal dxr3 clock to detect wrap around */
diff --git a/src/dxr3/dxr3_spu_encoder.c b/src/dxr3/dxr3_spu_encoder.c
index 2517063ac..4eb506e8c 100644
--- a/src/dxr3/dxr3_spu_encoder.c
+++ b/src/dxr3/dxr3_spu_encoder.c
@@ -1,18 +1,18 @@
-/*
+/*
* Copyright (C) 2000-2004 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -68,7 +68,7 @@ static void write_nibble(spu_encoder_t *this, int *offset, int *higher_nibble
spu_encoder_t *dxr3_spu_encoder_init(void)
{
spu_encoder_t *this;
-
+
this = (spu_encoder_t *)malloc(sizeof(spu_encoder_t));
this->target = NULL;
this->need_reencode = 0;
@@ -94,7 +94,7 @@ void dxr3_spu_encode(spu_encoder_t *this)
static void convert_palette(spu_encoder_t *this)
{
int i, y, cb, cr, r, g, b;
-
+
if (!this->overlay->rgb_clut) {
for (i = 0; i < OVL_PALETTE_SIZE; i++) {
y = (this->overlay->color[i] >> 16) & 0xff;
@@ -137,7 +137,7 @@ static void create_histogram(spu_encoder_t *this)
{
rle_elem_t *rle;
int i, x, y, len, part;
-
+
for (i = 0; i < OVL_PALETTE_SIZE; i++)
this->map[i] = this->clip_map[i] = 0;
x = y = 0;
@@ -180,14 +180,14 @@ static void generate_clut(spu_encoder_t *this)
{
int i, max, spu_color;
double dist, diff;
-
+
/* find first maximum -> first spu color */
max = 0;
for (i = 1; i < OVL_PALETTE_SIZE; i++)
if (this->map[i] > this->map[max]) max = i;
this->color[0] = this->overlay->color[max];
this->trans[0] = this->overlay->trans[max];
-
+
for (spu_color = 1; spu_color < 4; spu_color++) {
/* modify histogram and find next maximum -> next spu color */
max = 0;
@@ -221,7 +221,7 @@ static void generate_clut(spu_encoder_t *this)
if (this->clip_map[i] > this->clip_map[max]) max = i;
this->hili_color[0] = this->overlay->hili_color[max];
this->hili_trans[0] = this->overlay->hili_trans[max];
-
+
for (spu_color = 1; spu_color < 4; spu_color++) {
/* modify histogram and find next maximum -> next spu color */
max = 0;
@@ -252,7 +252,7 @@ static void map_colors(spu_encoder_t *this)
{
int i, min, spu_color;
double dist, diff, min_dist;
-
+
/* for all colors in overlay palette find closest spu color */
for (i = 0; i < OVL_PALETTE_SIZE; i++) {
min = 0;
@@ -299,7 +299,7 @@ static void map_colors(spu_encoder_t *this)
static void convert_clut(spu_encoder_t *this)
{
int i, r, g, b, y, cb, cr;
-
+
for (i = 0; i < 4; i++) {
r = (this->color[i] >> 16) & 0xff;
g = (this->color[i] >> 8) & 0xff;
@@ -311,7 +311,7 @@ static void convert_clut(spu_encoder_t *this)
}
for (i = 4; i < 16; i++)
this->color[i] = 0x00008080;
-
+
for (i = 0; i < 4; i++) {
r = (this->hili_color[i] >> 16) & 0xff;
g = (this->hili_color[i] >> 8) & 0xff;
@@ -330,15 +330,15 @@ static void convert_overlay(spu_encoder_t *this)
int offset = 0, field_start[2];
rle_elem_t *rle;
int field, i, len, part, x, y, higher_nibble = 1;
-
+
/* size will be determined later */
write_byte(this, &offset, 0x00);
write_byte(this, &offset, 0x00);
-
+
/* control sequence pointer will be determined later */
write_byte(this, &offset, 0x00);
write_byte(this, &offset, 0x00);
-
+
for (field = 0; field < 2; field++) {
write_byte(this, &offset, 0x00);
write_byte(this, &offset, 0x00);
@@ -373,10 +373,10 @@ static void convert_overlay(spu_encoder_t *this)
}
}
}
-
+
/* we should be byte aligned here */
_x_assert(higher_nibble);
-
+
/* control sequence starts here */
this->target[2] = offset >> 8;
this->target[3] = offset & 0xff;
diff --git a/src/dxr3/em8300.h b/src/dxr3/em8300.h
index 44fd8cac3..b862f1d49 100644
--- a/src/dxr3/em8300.h
+++ b/src/dxr3/em8300.h
@@ -186,7 +186,7 @@ typedef struct {
#define IRQSTATUS_AUDIO_FIFO 0x8
#define ENCODER_UNKNOWN 0
-#define ENCODER_ADV7175 1
+#define ENCODER_ADV7175 1
#define ENCODER_ADV7170 2
#define ENCODER_BT865 3
@@ -235,21 +235,21 @@ struct em8300_audio_s {
struct em8300_s
{
char name[40];
-
+
int chip_revision;
int pci_revision;
-
+
int inuse[4];
int nonblock[4];
int ucodeloaded;
-
+
struct pci_dev *dev;
ulong adr;
volatile unsigned *mem;
ulong memsize;
-
+
int playmode;
-
+
/* Sysfs */
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,46)
struct class_device classdev;
@@ -263,7 +263,7 @@ struct em8300_s
struct fifo_s *mafifo;
struct fifo_s *spfifo;
int mtrr_reg;
-
+
/* DICOM */
int dicom_vertoffset;
int dicom_horizoffset;
@@ -272,47 +272,47 @@ struct em8300_s
int dicom_saturation;
int dicom_tvout;
struct displaybuffer_info_s dbuf_info;
-
+
/* I2C */
int i2c_pin_reg;
int i2c_oe_reg;
-
+
/* different between revision 1 and revision 2 boards */
int mystery_divisor;
-
+
/* I2C bus 1*/
struct i2c_algo_bit_data i2c_data_1;
struct i2c_adapter i2c_ops_1;
-
+
/* I2C bus 2*/
struct i2c_algo_bit_data i2c_data_2;
struct i2c_adapter i2c_ops_2;
-
+
/* I2C clients */
int encoder_type;
struct i2c_client *encoder;
-
+
/* Microcode registers */
unsigned ucode_regs[MAX_UCODE_REGISTER];
int var_ucode_reg1; /* These are registers that differ */
int var_ucode_reg2; /* between versions 1 and 2 of the board */
int var_ucode_reg3; /* " */
-
+
/* Interrupt */
unsigned irqmask;
-
+
/* Clockgenerator */
int clockgen;
int clockgen_overlaymode;
int clockgen_tvmode;
-
+
/* Timing measurement */
struct timeval tv, last_status_time;
long irqtimediff;
int irqcount;
int frames;
int scr;
-
+
/* Audio */
struct em8300_audio_s audio;
int audio_mode;
@@ -321,7 +321,7 @@ struct em8300_s
/* */
int dword_DB4;
unsigned char byte_D90[24];
-
+
/* Video */
int video_mode;
int video_playmode;
@@ -330,7 +330,7 @@ struct em8300_s
uint32_t video_lastpts;
int video_ptsvalid,video_offset,video_count;
int video_ptsfifo_ptr;
-#if LINUX_VERSION_CODE < 0x020314
+#if LINUX_VERSION_CODE < 0x020314
struct wait_queue *video_ptsfifo_wait;
struct wait_queue *vbi_wait;
#else
@@ -340,20 +340,20 @@ struct em8300_s
int video_ptsfifo_waiting;
int video_first;
int var_video_value;
-
+
/* Sub Picture */
int sp_pts, sp_ptsvalid, sp_count;
int sp_ptsfifo_ptr;
-#if LINUX_VERSION_CODE < 0x020314
+#if LINUX_VERSION_CODE < 0x020314
struct wait_queue *sp_ptsfifo_wait;
#else
wait_queue_head_t sp_ptsfifo_wait;
#endif
int sp_ptsfifo_waiting;
int sp_mode;
-
+
int linecounter;
-
+
/* EM9010 overlay processor */
int overlay_enabled;
int overlay_mode;
@@ -373,7 +373,7 @@ struct em8300_s
#if LINUX_VERSION_CODE > KERNEL_VERSION(2,4,0)
/* Memory exported via mmap() */
struct list_head memory;
-#endif
+#endif
/* To support different options for different cards */
unsigned int card_nr;
diff --git a/src/dxr3/ffmpeg_encoder.c b/src/dxr3/ffmpeg_encoder.c
index ca132167c..2181dd543 100644
--- a/src/dxr3/ffmpeg_encoder.c
+++ b/src/dxr3/ffmpeg_encoder.c
@@ -1,23 +1,23 @@
-/*
+/*
* Copyright (C) 2000-2004 the xine project
- *
+ *
* This file is part of xine, a unix video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
*/
-
+
/* mpeg encoders for the dxr3 video out plugin. */
#ifdef HAVE_CONFIG_H
@@ -44,7 +44,7 @@
# include <libavcodec/avcodec.h>
#endif
-/* buffer size for encoded mpeg1 stream; will hold one intra frame
+/* buffer size for encoded mpeg1 stream; will hold one intra frame
* at 640x480 typical sizes are <50 kB. 512 kB should be plenty */
#define DEFAULT_BUFFER_SIZE 512*1024
@@ -79,7 +79,7 @@ int dxr3_lavc_init(dxr3_driver_t *drv, plugin_node_t *plugin)
lavc_data_t* this;
avcodec_init();
- avcodec_register_all();
+ avcodec_register_all();
lprintf("lavc init , version %x\n", avcodec_version());
this = calloc(1, sizeof(lavc_data_t));
if (!this) return 0;
@@ -90,7 +90,7 @@ int dxr3_lavc_init(dxr3_driver_t *drv, plugin_node_t *plugin)
this->encoder_data.on_display_frame = lavc_on_display_frame;
this->encoder_data.on_unneeded = lavc_on_unneeded;
this->context = 0;
-
+
drv->enc = &this->encoder_data;
drv->enc->on_close = dxr3_lavc_close;
return 1;
@@ -104,7 +104,7 @@ static int lavc_on_update_format(dxr3_driver_t *drv, dxr3_frame_t *frame)
lavc_data_t *this = (lavc_data_t *)drv->enc;
AVCodec *codec;
unsigned char use_quantizer;
-
+
if (this->context) {
avcodec_close(this->context);
free(this->context);
@@ -112,26 +112,26 @@ static int lavc_on_update_format(dxr3_driver_t *drv, dxr3_frame_t *frame)
this->context = NULL;
this->picture = NULL;
}
-
+
/* if YUY2 and dimensions changed, we need to re-allocate the
* internal YV12 buffer */
if (frame->vo_frame.format == XINE_IMGFMT_YUY2) {
int image_size = frame->vo_frame.pitches[0] * frame->oheight;
this->out[0] = this->buf = av_mallocz(image_size * 3/2);
- this->out[1] = this->out[0] + image_size;
- this->out[2] = this->out[1] + image_size/4;
+ this->out[1] = this->out[0] + image_size;
+ this->out[2] = this->out[1] + image_size/4;
/* fill with black (yuv 16,128,128) */
memset(this->out[0], 16, image_size);
memset(this->out[1], 128, image_size/4);
memset(this->out[2], 128, image_size/4);
- lprintf("Using YUY2->YV12 conversion\n");
+ lprintf("Using YUY2->YV12 conversion\n");
}
-
+
/* resolution must be a multiple of two */
if ((frame->vo_frame.pitches[0] % 2 != 0) || (frame->oheight % 2 != 0)) {
- xprintf(drv->class->xine, XINE_VERBOSITY_LOG,
+ xprintf(drv->class->xine, XINE_VERBOSITY_LOG,
"dxr3_mpeg_encoder: lavc only handles video dimensions which are multiples of 2\n");
return 0;
}
@@ -153,7 +153,7 @@ static int lavc_on_update_format(dxr3_driver_t *drv, dxr3_frame_t *frame)
xprintf(drv->class->xine, XINE_VERBOSITY_LOG,
"dxr3_mpeg_encoder: Couldn't start the ffmpeg library\n");
return 0;
- }
+ }
this->picture = avcodec_alloc_frame();
if (!this->picture) {
xprintf(drv->class->xine, XINE_VERBOSITY_LOG,
@@ -163,7 +163,7 @@ static int lavc_on_update_format(dxr3_driver_t *drv, dxr3_frame_t *frame)
/* mpeg1 encoder only support YUV420P */
this->context->pix_fmt = PIX_FMT_YUVJ420P;
-
+
/* put sample parameters */
this->context->bit_rate = drv->class->xine->config->register_range(drv->class->xine->config,
"dxr3.encoding.lavc_bitrate", 10000, 1000, 20000,
@@ -172,7 +172,7 @@ static int lavc_on_update_format(dxr3_driver_t *drv, dxr3_frame_t *frame)
"Higher values will increase quality and CPU usage.\n"
"This setting is only considered, when constant quality mode is disabled."), 10, NULL, NULL);
this->context->bit_rate *= 1000; /* config in kbit/s, libavcodec wants bit/s */
-
+
use_quantizer = drv->class->xine->config->register_bool(drv->class->xine->config,
"dxr3.encoding.lavc_quantizer", 1,
_("constant quality mode"),
@@ -180,18 +180,18 @@ static int lavc_on_update_format(dxr3_driver_t *drv, dxr3_frame_t *frame)
"compressing the images based on their complexity. When disabled, libavcodec "
"will use constant bitrate mode."), 10, NULL, NULL);
- if (use_quantizer) {
+ if (use_quantizer) {
this->context->qmin = drv->class->xine->config->register_range(drv->class->xine->config,
"dxr3.encoding.lavc_qmin", 1, 1, 10,
_("minimum compression"),
_("The minimum compression to apply to an image in constant quality mode."),
10, NULL, NULL);
-
+
this->context->qmax = drv->class->xine->config->register_range(drv->class->xine->config,
"dxr3.encoding.lavc_qmax", 2, 1, 20,
_("maximum quantizer"),
_("The maximum compression to apply to an image in constant quality mode."),
- 10, NULL, NULL);
+ 10, NULL, NULL);
}
lprintf("lavc -> bitrate %d \n", this->context->bit_rate);
@@ -201,7 +201,7 @@ static int lavc_on_update_format(dxr3_driver_t *drv, dxr3_frame_t *frame)
this->context->gop_size = 0; /*intra frames only */
this->context->me_method = ME_ZERO; /*motion estimation type*/
-
+
this->context->time_base.den = 90000;
if (frame->vo_frame.duration > 90000 / 24)
this->context->time_base.num = 90000 / 24;
@@ -212,14 +212,14 @@ static int lavc_on_update_format(dxr3_driver_t *drv, dxr3_frame_t *frame)
/* ffmpeg can complain about illegal framerates, but since this seems no
* problem for the DXR3, we just tell ffmpeg to be more lax with */
this->context->strict_std_compliance = -1;
-
+
/* open avcodec */
if (avcodec_open(this->context, codec) < 0) {
xprintf(drv->class->xine, XINE_VERBOSITY_LOG, "dxr3_mpeg_encoder: could not open codec\n");
return 0;
}
lprintf("dxr3_mpeg_encoder: lavc MPEG1 codec opened.\n");
-
+
if (!this->ffmpeg_buffer)
this->ffmpeg_buffer = (unsigned char *)malloc(DEFAULT_BUFFER_SIZE); /* why allocate more than needed ?! */
if (!this->ffmpeg_buffer) {
@@ -236,7 +236,7 @@ static int lavc_on_display_frame(dxr3_driver_t *drv, dxr3_frame_t *frame)
int size;
lavc_data_t* this = (lavc_data_t *)drv->enc;
ssize_t written;
-
+
if (frame->vo_frame.bad_frame) return 1;
/* ignore old frames */
if ((frame->vo_frame.pitches[0] != this->context->width) || (frame->oheight != this->context->height)) {
@@ -289,7 +289,7 @@ static int lavc_prepare_frame(lavc_data_t *this, dxr3_driver_t *drv, dxr3_frame_
{
int i, j, w2;
uint8_t *yuy2;
-
+
if (frame->vo_frame.bad_frame) return 1;
if (frame->vo_frame.format == XINE_IMGFMT_YUY2) {
@@ -325,7 +325,7 @@ static int lavc_prepare_frame(lavc_data_t *this, dxr3_driver_t *drv, dxr3_frame_
this->picture->data[1] = this->out[1];
this->picture->data[2] = this->out[2];
}
- else { /* YV12 **/
+ else { /* YV12 **/
this->picture->data[0] = frame->real_base[0];
this->picture->data[1] = frame->real_base[1];
this->picture->data[2] = frame->real_base[2];
diff --git a/src/dxr3/video_out_dxr3.c b/src/dxr3/video_out_dxr3.c
index 71defc285..b6fa0c0ef 100644
--- a/src/dxr3/video_out_dxr3.c
+++ b/src/dxr3/video_out_dxr3.c
@@ -1,28 +1,28 @@
-/*
+/*
* Copyright (C) 2000-2003 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
*/
-
-/* mpeg1 encoding video out plugin for the dxr3.
+
+/* mpeg1 encoding video out plugin for the dxr3.
*
- * modifications to the original dxr3 video out plugin by
+ * modifications to the original dxr3 video out plugin by
* Mike Lampard <mlampard at users.sourceforge.net>
- * this first standalone version by
+ * this first standalone version by
* Harm van der Heijden <hrm at users.sourceforge.net>
*/
@@ -96,7 +96,7 @@ static const vo_info_t vo_info_dxr3_aa = {
};
const plugin_info_t xine_plugin_info[] EXPORTED = {
- /* type, API, "name", version, special_info, init_function */
+ /* type, API, "name", version, special_info, init_function */
#ifdef HAVE_X11
{ PLUGIN_VIDEO_OUT, 22, "dxr3", XINE_VERSION_CODE, &vo_info_dxr3_x11, &dxr3_x11_init_plugin },
#endif
@@ -153,7 +153,7 @@ static void dxr3_update_enhanced_mode(void *this_gen, xine_cfg_entry_t *e
static void *dxr3_x11_init_plugin(xine_t *xine, void *visual_gen)
{
dxr3_driver_class_t *this = dxr3_vo_init_plugin(xine, visual_gen);
-
+
if (!this) return NULL;
this->visual_type = XINE_VISUAL_TYPE_X11;
return &this->video_driver_class;
@@ -163,7 +163,7 @@ static void *dxr3_x11_init_plugin(xine_t *xine, void *visual_gen)
static void *dxr3_aa_init_plugin(xine_t *xine, void *visual_gen)
{
dxr3_driver_class_t *this = dxr3_vo_init_plugin(xine, visual_gen);
-
+
if (!this) return NULL;
this->visual_type = XINE_VISUAL_TYPE_AA;
return &this->video_driver_class;
@@ -172,10 +172,10 @@ static void *dxr3_aa_init_plugin(xine_t *xine, void *visual_gen)
static dxr3_driver_class_t *dxr3_vo_init_plugin(xine_t *xine, void *visual_gen)
{
dxr3_driver_class_t *this;
-
+
this = calloc(1, sizeof(dxr3_driver_class_t));
if (!this) return NULL;
-
+
this->devnum = xine->config->register_num(xine->config,
CONF_KEY, 0, CONF_NAME, CONF_HELP, 10, NULL, NULL);
@@ -183,20 +183,20 @@ static dxr3_driver_class_t *dxr3_vo_init_plugin(xine_t *xine, void *visual_gen)
this->video_driver_class.identifier = DXR3_VO_ID;
this->video_driver_class.description = N_("video output plugin displaying images through your DXR3 decoder card");
this->video_driver_class.dispose = dxr3_vo_class_dispose;
-
+
this->xine = xine;
-
+
this->instance = 0;
-
+
this->scr = dxr3_scr_init(xine);
-
+
return this;
}
static void dxr3_vo_class_dispose(video_driver_class_t *class_gen)
{
dxr3_driver_class_t *class = (dxr3_driver_class_t *)class_gen;
-
+
if(class->scr)
class->scr->scr_plugin.exit(&class->scr->scr_plugin);
free(class_gen);
@@ -224,12 +224,12 @@ static vo_driver_t *dxr3_vo_open_plugin(video_driver_class_t *class_gen, const v
static const char *const tv_modes[] = { "ntsc", "pal", "pal60" , "default", NULL };
int list_id, list_size;
xine_sarray_t *plugin_list;
-
+
if (class->instance) return NULL;
-
+
this = calloc(1, sizeof(dxr3_driver_t));
if (!this) return NULL;
-
+
this->vo_driver.get_capabilities = dxr3_get_capabilities;
this->vo_driver.alloc_frame = dxr3_alloc_frame;
this->vo_driver.update_frame_format = dxr3_update_frame_format;
@@ -243,13 +243,13 @@ static vo_driver_t *dxr3_vo_open_plugin(video_driver_class_t *class_gen, const v
this->vo_driver.get_property_min_max = dxr3_get_property_min_max;
this->vo_driver.gui_data_exchange = dxr3_gui_data_exchange;
this->vo_driver.dispose = dxr3_dispose;
-
+
pthread_mutex_init(&this->video_device_lock, NULL);
pthread_mutex_init(&this->spu_device_lock, NULL);
-
+
_x_vo_scale_init(&this->scale, 0, 0, config);
_x_alphablend_init(&this->alphablend_extra_data, class->xine);
-
+
this->class = class;
this->swap_fields = config->register_bool(config,
"dxr3.encoding.swap_fields", 0, _("swap odd and even lines"),
@@ -266,7 +266,7 @@ static vo_driver_t *dxr3_vo_open_plugin(video_driver_class_t *class_gen, const v
_("use smooth play mode for mpeg encoder playback"),
_("Enabling this option will utilise a smoother play mode for non-MPEG content."),
20, dxr3_update_enhanced_mode, this);
-
+
snprintf(tmpstr, sizeof(tmpstr), "/dev/em8300-%d", class->devnum);
llprintf(LOG_VID, "Entering video init, devname = %s.\n", tmpstr);
if ((this->fd_control = open(tmpstr, O_WRONLY)) < 0) {
@@ -276,10 +276,10 @@ static vo_driver_t *dxr3_vo_open_plugin(video_driver_class_t *class_gen, const v
return 0;
}
-
+
snprintf (tmpstr, sizeof(tmpstr), "/dev/em8300_mv-%d", class->devnum);
if ((this->fd_video = open (tmpstr, O_WRONLY | O_SYNC )) < 0) {
- xprintf(this->class->xine, XINE_VERBOSITY_LOG,
+ xprintf(this->class->xine, XINE_VERBOSITY_LOG,
_("video_out_dxr3: Failed to open video device %s (%s)\n"), tmpstr, strerror(errno));
return 0;
}
@@ -324,45 +324,45 @@ static vo_driver_t *dxr3_vo_open_plugin(video_driver_class_t *class_gen, const v
"but xine support for them is outdated, so these might fail to work."),
0, NULL, NULL);
if ((strcmp(available_encoders[encoder], "libavcodec") == 0) && !dxr3_lavc_init(this, node)) {
- xprintf(this->class->xine, XINE_VERBOSITY_LOG,
+ xprintf(this->class->xine, XINE_VERBOSITY_LOG,
_("video_out_dxr3: Mpeg encoder libavcodec failed to init.\n"));
return 0;
}
#ifdef HAVE_LIBRTE
if ((strcmp(available_encoders[encoder], "rte") == 0) && !dxr3_rte_init(this)) {
- xprintf(this->class->xine, XINE_VERBOSITY_LOG,
+ xprintf(this->class->xine, XINE_VERBOSITY_LOG,
_("video_out_dxr3: Mpeg encoder rte failed to init.\n"));
return 0;
}
#endif
#ifdef HAVE_LIBFAME
if ((strcmp(available_encoders[encoder], "fame") == 0) && !dxr3_fame_init(this)) {
- xprintf(this->class->xine, XINE_VERBOSITY_LOG,
+ xprintf(this->class->xine, XINE_VERBOSITY_LOG,
_("video_out_dxr3: Mpeg encoder fame failed to init.\n"));
return 0;
}
#endif
if (strcmp(available_encoders[encoder], "none") == 0)
- xprintf(this->class->xine, XINE_VERBOSITY_LOG,
+ xprintf(this->class->xine, XINE_VERBOSITY_LOG,
_("video_out_dxr3: Mpeg encoding disabled.\n"
"video_out_dxr3: that's ok, you don't need it for mpeg video like DVDs, but\n"
"video_out_dxr3: you will not be able to play non-mpeg content using this video out\n"
"video_out_dxr3: driver. See the README.dxr3 for details on configuring an encoder.\n"));
} else
- xprintf(this->class->xine, XINE_VERBOSITY_LOG,
+ xprintf(this->class->xine, XINE_VERBOSITY_LOG,
_("video_out_dxr3: No mpeg encoder compiled in.\n"
"video_out_dxr3: that's ok, you don't need it for mpeg video like DVDs, but\n"
"video_out_dxr3: you will not be able to play non-mpeg content using this video out\n"
"video_out_dxr3: driver. See the README.dxr3 for details on configuring an encoder.\n"));
-
+
/* init aspect */
this->aspect = dxr3_set_property(&this->vo_driver, VO_PROP_ASPECT_RATIO, XINE_VO_ASPECT_4_3);
-
+
/* init brightness/contrast/saturation */
dxr3_set_property(&this->vo_driver, VO_PROP_BRIGHTNESS, 500);
dxr3_set_property(&this->vo_driver, VO_PROP_CONTRAST , 500);
dxr3_set_property(&this->vo_driver, VO_PROP_SATURATION, 500);
-
+
/* overlay or tvout? */
confnum = config->register_enum(config, "dxr3.output.mode", 0, videoout_modes,
_("video output mode (TV or overlay)"),
@@ -428,7 +428,7 @@ static vo_driver_t *dxr3_vo_open_plugin(video_driver_class_t *class_gen, const v
_("Removes one pixel line from the top and bottom of the overlay. Enable this, if "
"you see green lines at the top or bottom of the overlay."), 10, NULL, NULL);
} else {
- xprintf(this->class->xine, XINE_VERBOSITY_LOG,
+ xprintf(this->class->xine, XINE_VERBOSITY_LOG,
_("video_out_dxr3: please run autocal, overlay disabled\n"));
this->overlay_enabled = 0;
this->tv_switchable = 0;
@@ -436,7 +436,7 @@ static vo_driver_t *dxr3_vo_open_plugin(video_driver_class_t *class_gen, const v
}
#endif
}
-
+
/* init tvmode */
confnum = config->register_enum(config, "dxr3.output.tvmode", 3, tv_modes,
_("preferred tv mode"), _("Selects the TV mode to be used by the DXR3. The values mean:\n\n"
@@ -460,50 +460,50 @@ static vo_driver_t *dxr3_vo_open_plugin(video_driver_class_t *class_gen, const v
}
if (this->tv_mode != EM8300_VIDEOMODE_DEFAULT)
if (ioctl(this->fd_control, EM8300_IOCTL_SET_VIDEOMODE, &this->tv_mode))
- xprintf(this->class->xine, XINE_VERBOSITY_LOG,
+ xprintf(this->class->xine, XINE_VERBOSITY_LOG,
_("video_out_dxr3: setting video mode failed.\n"));
-
+
#ifdef HAVE_X11
/* initialize overlay */
if (this->overlay_enabled) {
em8300_overlay_screen_t scr;
int value;
XColor dummy;
-
+
this->overlay.fd_control = this->fd_control;
-
+
/* allocate keycolor */
this->key.red = ((this->overlay.colorkey >> 16) & 0xff) * 256;
this->key.green = ((this->overlay.colorkey >> 8) & 0xff) * 256;
this->key.blue = ((this->overlay.colorkey ) & 0xff) * 256;
XAllocColor(this->display, DefaultColormap(this->display, 0), &this->key);
-
+
/* allocate black for output area borders */
XAllocNamedColor(this->display, DefaultColormap(this->display, 0),
"black", &this->black, &dummy);
-
+
/* set the screen */
scr.xsize = this->overlay.screen_xres;
scr.ysize = this->overlay.screen_yres;
if (ioctl(this->fd_control, EM8300_IOCTL_OVERLAY_SETSCREEN, &scr))
- xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
"video_out_dxr3: setting the overlay screen failed.\n");
-
+
if (dxr3_overlay_set_keycolor(&this->overlay) != 0)
- xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
"video_out_dxr3: setting the overlay key colour failed.\n");
if (dxr3_overlay_set_attributes(&this->overlay) != 0)
- xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
"video_out_dxr3: setting an overlay attribute failed.\n");
-
+
/* finally switch to overlay mode */
value = EM8300_OVERLAY_MODE_OVERLAY;
if (ioctl(this->fd_control, EM8300_IOCTL_OVERLAY_SETMODE, &value) != 0)
- xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
"video_out_dxr3: switching to overlay mode failed.\n");
}
#endif
-
+
return &this->vo_driver;
}
@@ -517,9 +517,9 @@ static vo_frame_t *dxr3_alloc_frame(vo_driver_t *this_gen)
{
dxr3_frame_t *frame;
dxr3_driver_t *this = (dxr3_driver_t *)this_gen;
-
+
frame = calloc(1, sizeof(dxr3_frame_t));
-
+
pthread_mutex_init(&frame->vo_frame.mutex, NULL);
if (this->enc && this->enc->on_frame_copy) {
@@ -541,7 +541,7 @@ static void dxr3_frame_proc_frame(vo_frame_t *frame_gen)
/* we reduce the vpts to give the card some extra decoding time */
if (frame_gen->format != XINE_IMGFMT_DXR3 && !frame_gen->proc_called)
frame_gen->vpts -= DECODE_PIPE_PREBUFFER;
-
+
frame_gen->proc_called = 1;
}
@@ -549,11 +549,11 @@ static void dxr3_frame_proc_slice(vo_frame_t *frame_gen, uint8_t **src)
{
dxr3_frame_t *frame = (dxr3_frame_t *)frame_gen;
dxr3_driver_t *this = (dxr3_driver_t *)frame_gen->driver;
-
+
/* we reduce the vpts to give the card some extra decoding time */
if (frame_gen->format != XINE_IMGFMT_DXR3 && !frame_gen->proc_called)
frame_gen->vpts -= DECODE_PIPE_PREBUFFER;
-
+
frame_gen->proc_called = 1;
if (frame_gen->format != XINE_IMGFMT_DXR3 && this->enc && this->enc->on_frame_copy)
@@ -568,7 +568,7 @@ static void dxr3_frame_field(vo_frame_t *vo_img, int which_field)
static void dxr3_frame_dispose(vo_frame_t *frame_gen)
{
dxr3_frame_t *frame = (dxr3_frame_t *)frame_gen;
-
+
av_free(frame->mem);
pthread_mutex_destroy(&frame_gen->mutex);
free(frame);
@@ -577,8 +577,8 @@ static void dxr3_frame_dispose(vo_frame_t *frame_gen)
static void dxr3_update_frame_format(vo_driver_t *this_gen, vo_frame_t *frame_gen,
uint32_t width, uint32_t height, double ratio, int format, int flags)
{
- dxr3_driver_t *this = (dxr3_driver_t *)this_gen;
- dxr3_frame_t *frame = (dxr3_frame_t *)frame_gen;
+ dxr3_driver_t *this = (dxr3_driver_t *)this_gen;
+ dxr3_frame_t *frame = (dxr3_frame_t *)frame_gen;
uint32_t oheight;
if (format == XINE_IMGFMT_DXR3) { /* talking to dxr3 decoder */
@@ -587,7 +587,7 @@ static void dxr3_update_frame_format(vo_driver_t *this_gen, vo_frame_t *frame_ge
pthread_mutex_lock(&this->video_device_lock);
if (this->fd_video >= 0) {
metronom_clock_t *clock = this->class->xine->clock;
-
+
clock->unregister_scr(clock, &this->class->scr->scr_plugin);
close(this->fd_video);
this->fd_video = -1;
@@ -595,10 +595,10 @@ static void dxr3_update_frame_format(vo_driver_t *this_gen, vo_frame_t *frame_ge
this->need_update = 1;
}
pthread_mutex_unlock(&this->video_device_lock);
-
+
/* for mpeg source, we don't have to do much. */
this->video_width = 0;
-
+
frame->vo_frame.width = width;
frame->vo_frame.height = height;
frame->vo_frame.ratio = ratio;
@@ -608,20 +608,20 @@ static void dxr3_update_frame_format(vo_driver_t *this_gen, vo_frame_t *frame_ge
else
frame->aspect = XINE_VO_ASPECT_ANAMORPHIC;
frame->pan_scan = flags & VO_PAN_SCAN_FLAG;
-
+
av_freep(&frame->mem);
frame->real_base[0] = frame->real_base[1] = frame->real_base[2] = NULL;
frame_gen->base[0] = frame_gen->base[1] = frame_gen->base[2] = NULL;
-
+
return;
}
/* the following is for the mpeg encoding part only */
-
+
if (!this->add_bars)
/* don't add black bars; assume source is in 4:3 */
ratio = 4.0/3.0;
-
+
frame->vo_frame.ratio = ratio;
frame->pan_scan = 0;
frame->aspect = this->video_aspect;
@@ -632,18 +632,18 @@ static void dxr3_update_frame_format(vo_driver_t *this_gen, vo_frame_t *frame_ge
metronom_clock_t *clock = this->class->xine->clock;
char tmpstr[128];
int64_t time;
-
+
/* open the device for the encoder */
snprintf(tmpstr, sizeof(tmpstr), "/dev/em8300_mv-%d", this->class->devnum);
if ((this->fd_video = open(tmpstr, O_WRONLY)) < 0)
- xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
"video_out_dxr3: Failed to open video device %s (%s)\n", tmpstr, strerror(errno));
-
+
/* start the scr plugin */
time = clock->get_current_time(clock);
this->class->scr->scr_plugin.start(&this->class->scr->scr_plugin, time);
clock->register_scr(clock, &this->class->scr->scr_plugin);
-
+
this->scale.force_redraw = 1;
}
pthread_mutex_unlock(&this->video_device_lock);
@@ -663,20 +663,20 @@ static void dxr3_update_frame_format(vo_driver_t *this_gen, vo_frame_t *frame_ge
/* still too high, use full height */
oheight = height;
}
-
+
/* use next multiple of 16 */
oheight = ((oheight - 1) | 15) + 1;
/* Tell the viewers about the aspect ratio stuff. */
if (oheight - height > 0)
- xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
"video_out_dxr3: adding %d black lines to get %s aspect ratio.\n",
oheight - height, frame->aspect == XINE_VO_ASPECT_4_3 ? "4:3" : "16:9");
- /* make top black bar multiple of 16,
- * so old and new macroblocks overlap */
+ /* make top black bar multiple of 16,
+ * so old and new macroblocks overlap */
this->top_bar = ((oheight - height) / 32) * 16;
-
+
this->video_width = width;
this->video_iheight = height;
this->video_oheight = oheight;
@@ -687,24 +687,24 @@ static void dxr3_update_frame_format(vo_driver_t *this_gen, vo_frame_t *frame_ge
if (!this->enc) {
/* no encoder plugin! Let's bug the user! */
- xprintf(this->class->xine, XINE_VERBOSITY_LOG,
+ xprintf(this->class->xine, XINE_VERBOSITY_LOG,
_("video_out_dxr3: Need an mpeg encoder to play non-mpeg videos on dxr3\n"
"video_out_dxr3: Read the README.dxr3 for details.\n"));
}
}
/* if dimensions changed, we need to re-allocate frame memory */
- if ((frame->vo_frame.width != width) || (frame->vo_frame.height != height) ||
+ if ((frame->vo_frame.width != width) || (frame->vo_frame.height != height) ||
(frame->oheight != oheight) || (frame->vo_frame.format != format)) {
av_freep(&frame->mem);
-
+
if (format == XINE_IMGFMT_YUY2) {
int i, image_size;
-
+
/* calculate pitch and size including black bars */
frame->vo_frame.pitches[0] = 32 * ((width + 15) / 16);
image_size = frame->vo_frame.pitches[0] * oheight;
-
+
/* planar format, only base[0] */
/* add one extra line for field swap stuff */
frame->real_base[0] = frame->mem = av_mallocz(image_size + frame->vo_frame.pitches[0]);
@@ -724,7 +724,7 @@ static void dxr3_update_frame_format(vo_driver_t *this_gen, vo_frame_t *frame_ge
} else { /* XINE_IMGFMT_YV12 */
int image_size_y, image_size_u, image_size_v;
-
+
/* calculate pitches and sizes including black bars */
frame->vo_frame.pitches[0] = 16*((width + 15) / 16);
frame->vo_frame.pitches[1] = 8*((width + 15) / 16);
@@ -746,7 +746,7 @@ static void dxr3_update_frame_format(vo_driver_t *this_gen, vo_frame_t *frame_ge
frame->vo_frame.base[0] = frame->real_base[0] + frame->vo_frame.pitches[0] * this->top_bar;
frame->vo_frame.base[1] = frame->real_base[1] + frame->vo_frame.pitches[1] * this->top_bar / 2;
frame->vo_frame.base[2] = frame->real_base[2] + frame->vo_frame.pitches[2] * this->top_bar / 2;
-
+
/* fill with black (yuv 16,128,128) */
memset(frame->real_base[0], 16, image_size_y);
memset(frame->real_base[1], 128, image_size_u);
@@ -755,12 +755,12 @@ static void dxr3_update_frame_format(vo_driver_t *this_gen, vo_frame_t *frame_ge
}
if (this->swap_fields != frame->swap_fields) {
- if (this->swap_fields)
+ if (this->swap_fields)
frame->vo_frame.base[0] -= frame->vo_frame.pitches[0];
- else
+ else
frame->vo_frame.base[0] += frame->vo_frame.pitches[0];
}
-
+
frame->vo_frame.width = width;
frame->vo_frame.height = height;
frame->oheight = oheight;
@@ -770,20 +770,20 @@ static void dxr3_update_frame_format(vo_driver_t *this_gen, vo_frame_t *frame_ge
static void dxr3_overlay_begin(vo_driver_t *this_gen, vo_frame_t *frame_gen, int changed)
{
dxr3_driver_t *this = (dxr3_driver_t *)this_gen;
-
+
/* special treatment is only necessary for mpeg frames */
if (frame_gen->format != XINE_IMGFMT_DXR3) return;
-
+
if (!this->spu_enc) this->spu_enc = dxr3_spu_encoder_init();
-
+
if (!changed) {
this->spu_enc->need_reencode = 0;
return;
}
-
+
this->spu_enc->need_reencode = 1;
this->spu_enc->overlay = NULL;
-
+
this->alphablend_extra_data.offset_x = frame_gen->overlay_offset_x;
this->alphablend_extra_data.offset_y = frame_gen->overlay_offset_y;
}
@@ -792,10 +792,10 @@ static void dxr3_overlay_blend(vo_driver_t *this_gen, vo_frame_t *frame_gen,
vo_overlay_t *overlay)
{
dxr3_driver_t *this = (dxr3_driver_t *)this_gen;
-
+
if (frame_gen->format != XINE_IMGFMT_DXR3) {
dxr3_frame_t *frame = (dxr3_frame_t *)frame_gen;
-
+
if (overlay->rle) {
if (frame_gen->format == XINE_IMGFMT_YV12)
_x_blend_yuv(frame->vo_frame.base, overlay,
@@ -819,26 +819,26 @@ static void dxr3_overlay_end(vo_driver_t *this_gen, vo_frame_t *frame_gen)
em8300_button_t btn;
char tmpstr[128];
ssize_t written;
-
+
if (frame_gen->format != XINE_IMGFMT_DXR3) return;
if (!this->spu_enc->need_reencode) return;
-
+
dxr3_spu_encode(this->spu_enc);
pthread_mutex_lock(&this->spu_device_lock);
-
+
/* try to open the dxr3 spu device */
if (!this->fd_spu) {
snprintf (tmpstr, sizeof(tmpstr), "/dev/em8300_sp-%d", this->class->devnum);
if ((this->fd_spu = open (tmpstr, O_WRONLY)) < 0) {
- xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
"video_out_dxr3: Failed to open spu device %s (%s)\n"
"video_out_dxr3: Overlays are not available\n", tmpstr, strerror(errno));
pthread_mutex_unlock(&this->spu_device_lock);
return;
}
}
-
+
if (!this->spu_enc->overlay) {
uint8_t empty_spu[] = {
0x00, 0x26, 0x00, 0x08, 0x80, 0x00, 0x00, 0x80,
@@ -852,7 +852,7 @@ static void dxr3_overlay_end(vo_driver_t *this_gen, vo_frame_t *frame_gen)
pthread_mutex_unlock(&this->spu_device_lock);
return;
}
-
+
/* copy clip palette */
this->spu_enc->color[4] = this->spu_enc->hili_color[0];
this->spu_enc->color[5] = this->spu_enc->hili_color[1];
@@ -860,16 +860,16 @@ static void dxr3_overlay_end(vo_driver_t *this_gen, vo_frame_t *frame_gen)
this->spu_enc->color[7] = this->spu_enc->hili_color[3];
/* set palette */
if (ioctl(this->fd_spu, EM8300_IOCTL_SPU_SETPALETTE, this->spu_enc->color))
- xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
"video_out_dxr3: failed to set CLUT (%s)\n", strerror(errno));
this->clut_cluttered = 1;
/* write spu */
written = write(this->fd_spu, this->spu_enc->target, this->spu_enc->size);
if (written < 0)
- xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
"video_out_dxr3: spu device write failed (%s)\n", strerror(errno));
else if (written != this->spu_enc->size)
- xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
"video_out_dxr3: Could only write %zd of %d spu bytes.\n", written, this->spu_enc->size);
/* set clipping */
btn.color = 0x7654;
@@ -883,9 +883,9 @@ static void dxr3_overlay_end(vo_driver_t *this_gen, vo_frame_t *frame_gen)
btn.top = this->spu_enc->overlay->y + this->spu_enc->overlay->hili_top;
btn.bottom = this->spu_enc->overlay->y + this->spu_enc->overlay->hili_bottom - 2;
if (ioctl(this->fd_spu, EM8300_IOCTL_SPU_BUTTON, &btn))
- xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
"dxr3_decode_spu: failed to set spu button (%s)\n", strerror(errno));
-
+
pthread_mutex_unlock(&this->spu_device_lock);
}
@@ -943,22 +943,22 @@ static void dxr3_display_frame(vo_driver_t *this_gen, vo_frame_t *frame_gen)
}
}
#endif
-
+
if (frame_gen->format != XINE_IMGFMT_DXR3 && this->enc && this->enc->on_display_frame) {
-
+
pthread_mutex_lock(&this->video_device_lock);
if (this->fd_video < 0) {
/* no need to encode, when the device is already reserved for the decoder */
frame_gen->free(frame_gen);
} else {
uint32_t vpts32 = (uint32_t)(frame_gen->vpts + DECODE_PIPE_PREBUFFER);
-
+
if (this->need_update) {
/* we cannot do this earlier, because vo_frame.duration is only valid here */
if (this->enc && this->enc->on_update_format) {
/* set the dxr3 playmode */
if (this->enc->on_update_format(this, frame) && this->enhanced_mode) {
- em8300_register_t reg;
+ em8300_register_t reg;
reg.microcode_register = 1;
reg.reg = 0;
reg.val = MVCOMMAND_SYNC;
@@ -970,19 +970,19 @@ static void dxr3_display_frame(vo_driver_t *this_gen, vo_frame_t *frame_gen)
}
this->need_update = 0;
}
-
+
/* inform the card on the timing */
if (ioctl(this->fd_video, EM8300_IOCTL_VIDEO_SETPTS, &vpts32))
- xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
"video_out_dxr3: set video pts failed (%s)\n", strerror(errno));
- /* for non-mpeg, the encoder plugin is responsible for calling
+ /* for non-mpeg, the encoder plugin is responsible for calling
* frame_gen->free(frame_gen) ! */
this->enc->on_display_frame(this, frame);
}
pthread_mutex_unlock(&this->video_device_lock);
-
+
} else {
-
+
if (this->need_update) {
/* we do not need the mpeg encoders any more */
if (this->enc && this->enc->on_unneeded)
@@ -990,7 +990,7 @@ static void dxr3_display_frame(vo_driver_t *this_gen, vo_frame_t *frame_gen)
this->need_update = 0;
}
frame_gen->free(frame_gen);
-
+
}
}
@@ -998,11 +998,11 @@ static int dxr3_redraw_needed(vo_driver_t *this_gen)
{
dxr3_driver_t *this = (dxr3_driver_t *)this_gen;
-#ifdef HAVE_X11
+#ifdef HAVE_X11
if (this->overlay_enabled)
dxr3_overlay_update(this);
#endif
-
+
return 0;
}
@@ -1030,7 +1030,7 @@ static int dxr3_get_property(vo_driver_t *this_gen, int property)
case VO_PROP_WINDOW_HEIGHT:
return this->scale.gui_height;
}
- xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
"video_out_dxr3: property %d not implemented.\n", property);
return 0;
}
@@ -1061,7 +1061,7 @@ static int dxr3_set_property(vo_driver_t *this_gen, int property, int value)
/* We should send an anamorphic hint to widescreen tvs, so they
* can switch to 16:9 mode. But the dxr3 cannot do this. */
break;
-
+
switch(value) {
case XINE_VO_ASPECT_SQUARE:
case XINE_VO_ASPECT_4_3:
@@ -1077,13 +1077,13 @@ static int dxr3_set_property(vo_driver_t *this_gen, int property, int value)
}
if (ioctl(this->fd_control, EM8300_IOCTL_SET_ASPECTRATIO, &val))
- xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
"video_out_dxr3: failed to set aspect ratio (%s)\n", strerror(errno));
-
+
this->scale.force_redraw = 1;
break;
case VO_PROP_COLORKEY:
- xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
"video_out_dxr3: VO_PROP_COLORKEY not implemented!");
this->overlay.colorkey = value;
break;
@@ -1118,16 +1118,16 @@ static int dxr3_set_property(vo_driver_t *this_gen, int property, int value)
}
#endif
if (ioctl(this->fd_control, EM8300_IOCTL_SET_VIDEOMODE, &this->tv_mode))
- xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
"video_out_dxr3: setting video mode failed (%s)\n", strerror(errno));
break;
}
if (bcs_changed)
if (ioctl(this->fd_control, EM8300_IOCTL_SETBCS, &this->bcs))
- xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
"video_out_dxr3: bcs set failed (%s)\n", strerror(errno));
-
+
return value;
}
@@ -1236,7 +1236,7 @@ static void dxr3_dispose(vo_driver_t *this_gen)
pthread_mutex_destroy(&this->spu_device_lock);
_x_alphablend_free(&this->alphablend_extra_data);
-
+
free(this);
}
@@ -1272,7 +1272,7 @@ static void gather_screen_vars(dxr3_driver_t *this, const x11_visual_t *vis)
this->overlay.screen_depth = DisplayPlanes(this->display, scrn);
this->scale.frame_output_cb = (void *)vis->frame_output_cb;
-
+
llprintf(LOG_OVR, "xres: %d, yres: %d, depth: %d\n",
this->overlay.screen_xres, this->overlay.screen_yres, this->overlay.screen_depth);
}
@@ -1284,9 +1284,9 @@ static void gather_screen_vars(dxr3_driver_t *this, const x11_visual_t *vis)
#define TYPE_FLOAT 4
struct lut_entry {
- char *name;
- int type;
- void *ptr;
+ char *name;
+ int type;
+ void *ptr;
};
/* dxr3_overlay_read_state helper function */
@@ -1294,7 +1294,7 @@ static int lookup_parameter(struct lut_entry *lut, char *name,
void **ptr, int *type)
{
int i;
-
+
for (i = 0; lut[i].name; i++)
if (strcmp(name, lut[i].name) == 0) {
*ptr = lut[i].ptr;
@@ -1334,11 +1334,11 @@ static int dxr3_overlay_read_state(dxr3_overlay_t *this)
* (used by .overlay/res file) */
setlocale(LC_NUMERIC, "C");
- asprintf(&fname, "%s/.overlay/res_%dx%dx%d", getenv("HOME"),
+ asprintf(&fname, "%s/.overlay/res_%dx%dx%d", getenv("HOME"),
this->screen_xres, this->screen_yres, this->screen_depth);
llprintf(LOG_OVR, "attempting to open %s\n", fname);
if (!(fp = fopen(fname, "r"))) {
- xprintf(this->xine, XINE_VERBOSITY_LOG,
+ xprintf(this->xine, XINE_VERBOSITY_LOG,
_("video_out_dxr3: ERROR Reading overlay init file. Run autocal!\n"));
free(fname);
return -1;
@@ -1377,11 +1377,11 @@ static int dxr3_overlay_read_state(dxr3_overlay_t *this)
}
}
}
-
+
fclose(fp);
/* restore original locale */
setlocale(LC_NUMERIC, loc);
-
+
return 0;
}
@@ -1416,7 +1416,7 @@ static int dxr3_overlay_set_keycolor(dxr3_overlay_t *this)
attr.attribute = EM9010_ATTRIBUTE_KEYCOLOR_LOWER;
attr.value = overlay_limit;
if ((ret = ioctl(this->fd_control, EM8300_IOCTL_OVERLAY_SET_ATTRIBUTE, &attr)) < 0) {
- xprintf(this->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->xine, XINE_VERBOSITY_DEBUG,
"video_out_dxr3: WARNING: error setting overlay lower limit attribute\n");
return ret;
}
@@ -1429,7 +1429,7 @@ static int dxr3_overlay_set_keycolor(dxr3_overlay_t *this)
attr.attribute = EM9010_ATTRIBUTE_KEYCOLOR_UPPER;
attr.value = overlay_limit;
if ((ret = ioctl(this->fd_control, EM8300_IOCTL_OVERLAY_SET_ATTRIBUTE, &attr)) < 0)
- xprintf(this->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->xine, XINE_VERBOSITY_DEBUG,
"video_out_dxr3: WARNING: error setting overlay upper limit attribute\n");
return ret;
}
@@ -1437,7 +1437,7 @@ static int dxr3_overlay_set_keycolor(dxr3_overlay_t *this)
static int dxr3_overlay_set_attributes(dxr3_overlay_t *this)
{
em8300_attribute_t attr;
-
+
attr.attribute = EM9010_ATTRIBUTE_XOFFSET;
attr.value = this->xoffset;
if(ioctl(this->fd_control, EM8300_IOCTL_OVERLAY_SET_ATTRIBUTE, &attr) == -1)
@@ -1464,9 +1464,9 @@ static void dxr3_overlay_update(dxr3_driver_t *this)
{
if (_x_vo_scale_redraw_needed(&this->scale)) {
em8300_overlay_window_t win;
-
+
_x_vo_scale_compute_output_size(&this->scale);
-
+
/* fill video window with keycolor */
XLockDisplay(this->display);
XSetForeground(this->display, this->gc, this->black.pixel);
@@ -1479,24 +1479,24 @@ static void dxr3_overlay_update(dxr3_driver_t *this)
this->scale.output_width, this->scale.output_height - 2 * this->overlay.shrink);
XFlush(this->display);
XUnlockDisplay(this->display);
-
+
win.xpos = this->scale.output_xoffset + this->scale.gui_win_x;
win.ypos = this->scale.output_yoffset + this->scale.gui_win_y;
win.width = this->scale.output_width;
win.height = this->scale.output_height;
-
+
if (this->pan_scan) {
win.xpos -= win.width / 6;
win.width *= 4;
win.width /= 3;
}
-
+
/* is some part of the picture visible? */
if (win.xpos + win.width < 0) return;
if (win.ypos + win.height < 0) return;
if (win.xpos > this->overlay.screen_xres) return;
if (win.ypos > this->overlay.screen_yres) return;
-
+
ioctl(this->fd_control, EM8300_IOCTL_OVERLAY_SETWINDOW, &win);
}
}
@@ -1505,20 +1505,20 @@ static void dxr3_overlay_update(dxr3_driver_t *this)
static void dxr3_zoomTV(dxr3_driver_t *this)
{
em8300_register_t frame, visible, update;
-
+
/* change left bound */
frame.microcode_register = 1;
frame.reg = 93; // dicom frame left
frame.val = 0x10;
-
+
visible.microcode_register = 1;
visible.reg = 97; // dicom visible left
visible.val = 0x10;
-
+
update.microcode_register = 1;
update.reg = 65; // dicom_update
update.val = 1;
-
+
ioctl(this->fd_control, EM8300_IOCTL_WRITEREG, &frame);
ioctl(this->fd_control, EM8300_IOCTL_WRITEREG, &visible);
ioctl(this->fd_control, EM8300_IOCTL_WRITEREG, &update);
@@ -1527,15 +1527,15 @@ static void dxr3_zoomTV(dxr3_driver_t *this)
frame.microcode_register = 1;
frame.reg = 94; // dicom frame right
frame.val = 0x10;
-
+
visible.microcode_register = 1;
visible.reg = 98; // dicom visible right
visible.val = 968;
-
+
update.microcode_register = 1;
update.reg = 65; // dicom_update
update.val = 1;
-
+
ioctl(this->fd_control, EM8300_IOCTL_WRITEREG, &frame);
ioctl(this->fd_control, EM8300_IOCTL_WRITEREG, &visible);
ioctl(this->fd_control, EM8300_IOCTL_WRITEREG, &update);
@@ -1546,7 +1546,7 @@ static void dxr3_update_add_bars(void *data, xine_cfg_entry_t *entry)
{
dxr3_driver_t *this = (dxr3_driver_t *)data;
this->add_bars = entry->num_value;
- xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
"video_out_dxr3: setting add_bars to correct aspect ratio to %s\n", (this->add_bars ? "on" : "off"));
}
@@ -1554,7 +1554,7 @@ static void dxr3_update_swap_fields(void *data, xine_cfg_entry_t *entry)
{
dxr3_driver_t *this = (dxr3_driver_t *)data;
this->swap_fields = entry->num_value;
- xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
"video_out_dxr3: setting swap fields to %s\n", (this->swap_fields ? "on" : "off"));
}
@@ -1562,6 +1562,6 @@ static void dxr3_update_enhanced_mode(void *data, xine_cfg_entry_t *entry)
{
dxr3_driver_t *this = (dxr3_driver_t *)data;
this->enhanced_mode = entry->num_value;
- xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
"video_out_dxr3: setting enhanced encoding playback to %s\n", (this->enhanced_mode ? "on" : "off"));
}
diff --git a/src/dxr3/video_out_dxr3.h b/src/dxr3/video_out_dxr3.h
index b3c607109..f120c435d 100644
--- a/src/dxr3/video_out_dxr3.h
+++ b/src/dxr3/video_out_dxr3.h
@@ -1,18 +1,18 @@
-/*
+/*
* Copyright (C) 2000-2001 the xine project
- *
+ *
* This file is part of xine, a unix video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -48,7 +48,7 @@ struct coeff {
typedef struct dxr3_overlay_s {
xine_t *xine;
-
+
int fd_control;
int xoffset;
@@ -70,12 +70,12 @@ typedef struct dxr3_overlay_s {
typedef struct dxr3_driver_class_s {
video_driver_class_t video_driver_class;
xine_t *xine;
-
+
int visual_type;
int instance; /* we allow only one instance of this plugin */
-
+
int devnum;
-
+
dxr3_scr_t *scr; /* to provide dxr3 clocking */
} dxr3_driver_class_t;
@@ -89,11 +89,11 @@ typedef struct dxr3_driver_s {
pthread_mutex_t spu_device_lock;
int fd_spu; /* to access the relevant dxr3 devices */
int clut_cluttered; /* to tell spu decoder that it has to restore the palette */
-
+
int enhanced_mode;
int swap_fields; /* swap fields */
int add_bars; /* add black bars to correct a.r. */
-
+
int aspect;
int tv_mode;
int pan_scan;
@@ -105,14 +105,14 @@ typedef struct dxr3_driver_s {
encoder_data_t *enc; /* mpeg encoder data */
spu_encoder_t *spu_enc; /* spu encoder */
int need_update; /* the mpeg encoder needs to be updated */
-
+
uint32_t video_iheight; /* input height (before adding black bars) */
uint32_t video_oheight; /* output height (after adding black bars) */
uint32_t video_width;
double video_ratio;
int video_aspect;
int top_bar; /* the height of the upper black bar */
-
+
vo_scale_t scale;
alphablend_t alphablend_extra_data;
@@ -143,10 +143,10 @@ struct encoder_data_s {
int (*on_display_frame)(dxr3_driver_t *, dxr3_frame_t *);
int (*on_unneeded)(dxr3_driver_t *);
int (*on_close)(dxr3_driver_t *);
-
+
/* this is only used by the libavcodec encoder */
void *handle;
-};
+};
struct spu_encoder_s {
vo_overlay_t *overlay;
diff --git a/src/input/http_helper.c b/src/input/http_helper.c
index 70e9fea99..9b3560b22 100644
--- a/src/input/http_helper.c
+++ b/src/input/http_helper.c
@@ -65,11 +65,11 @@ int _x_parse_url (char *url, char **proto, char** host, int *port,
*password = NULL;
*uri = NULL;
- /* proto */
+ /* proto */
start = strstr(url, "://");
if (!start || (start == url))
goto error;
-
+
end = start + strlen(start) - 1;
*proto = strndup(url, start - url);
@@ -85,10 +85,10 @@ int _x_parse_url (char *url, char **proto, char** host, int *port,
semicolon = strchr(start, ';');
if (semicolon && (!slash || (semicolon < slash)))
slash = semicolon;
-
+
if (at && slash && (at > slash))
at = NULL;
-
+
if (at) {
authcolon = strchr(start, ':');
if(authcolon && authcolon < at) {
@@ -179,7 +179,7 @@ int _x_parse_url (char *url, char **proto, char** host, int *port,
escapechars++;
it++;
}
-
+
if ( escapechars == 0 )
*uri = strdup(start);
else {
@@ -204,9 +204,9 @@ int _x_parse_url (char *url, char **proto, char** host, int *port,
} else {
*uri = strdup("/");
}
-
+
return 1;
-
+
error:
if (*proto) {
free (*proto);
@@ -231,7 +231,7 @@ error:
free (*uri);
*uri = NULL;
}
- return 0;
+ return 0;
}
@@ -244,7 +244,7 @@ static int check_url(char *url, int ok) {
char *proto, *host, *user, *password, *uri;
int port;
int res;
-
+
printf("--------------------------------\n");
printf("url=%s\n", url);
res = _x_parse_url (url,
@@ -287,7 +287,7 @@ static int check_paste(const char *base, const char *url, const char *ok) {
int main(int argc, char** argv) {
char *proto, host, port, user, password, uri;
int res = 0;
-
+
res += check_url("http://www.toto.com/test1.asx", 1);
res += check_url("http://www.toto.com:8080/test2.asx", 1);
res += check_url("http://titi:pass@www.toto.com:8080/test3.asx", 1);
diff --git a/src/input/input_cdda.c b/src/input/input_cdda.c
index 61ea118c2..0b7f854e2 100644
--- a/src/input/input_cdda.c
+++ b/src/input/input_cdda.c
@@ -17,7 +17,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
*
- * Compact Disc Digital Audio (CDDA) Input Plugin
+ * Compact Disc Digital Audio (CDDA) Input Plugin
* by Mike Melanson (melanson@pcisys.net)
*/
@@ -140,7 +140,7 @@ typedef struct {
int enabled;
char *server;
int port;
-
+
char *cdiscid;
char *disc_title;
char *disc_year;
@@ -188,7 +188,7 @@ typedef struct {
char *cdda_device;
int cddb_error;
-
+
cdda_input_plugin_t *ip;
int show_hidden_files;
@@ -196,7 +196,7 @@ typedef struct {
int mrls_allocated_entries;
xine_mrl_t **mrls;
-
+
char *autoplaylist[MAX_TRACKS];
} cdda_input_class_t;
@@ -328,54 +328,54 @@ struct SRB_ExecSCSICmd
#ifdef LOG
static void print_cdrom_toc(cdrom_toc *toc) {
-
+
int i;
int time1;
int time2;
int timediff;
-
+
printf("\ntoc:\n");
printf("\tfirst track = %d\n", toc->first_track);
printf("\tlast track = %d\n", toc->last_track);
printf("\ttotal tracks = %d\n", toc->total_tracks);
printf("\ntoc entries:\n");
-
-
+
+
printf("leadout track: Control: %d MSF: %02d:%02d:%04d, first frame = %d\n",
toc->leadout_track.track_mode,
toc->leadout_track.first_frame_minute,
toc->leadout_track.first_frame_second,
toc->leadout_track.first_frame_frame,
toc->leadout_track.first_frame);
-
+
/* fetch each toc entry */
- if (toc->first_track > 0) {
- for (i = toc->first_track; i <= toc->last_track; i++) {
+ if (toc->first_track > 0) {
+ for (i = toc->first_track; i <= toc->last_track; i++) {
printf("\ttrack mode = %d", toc->toc_entries[i-1].track_mode);
- printf("\ttrack %d, audio, MSF: %02d:%02d:%02d, first frame = %d\n",
- i,
+ printf("\ttrack %d, audio, MSF: %02d:%02d:%02d, first frame = %d\n",
+ i,
toc->toc_entries[i-1].first_frame_minute,
toc->toc_entries[i-1].first_frame_second,
toc->toc_entries[i-1].first_frame_frame,
toc->toc_entries[i-1].first_frame);
-
- time1 = ((toc->toc_entries[i-1].first_frame_minute * 60) +
+
+ time1 = ((toc->toc_entries[i-1].first_frame_minute * 60) +
toc->toc_entries[i-1].first_frame_second);
-
+
if (i == toc->last_track) {
time2 = ((toc->leadout_track.first_frame_minute * 60) +
toc->leadout_track.first_frame_second);
}
else {
- time2 = ((toc->toc_entries[i].first_frame_minute * 60) +
+ time2 = ((toc->toc_entries[i].first_frame_minute * 60) +
toc->toc_entries[i].first_frame_second);
}
-
+
timediff = time2 - time1;
-
+
printf("\t time: %02d:%02d\n", timediff/60, timediff%60);
}
- }
+ }
}
#endif
@@ -429,7 +429,7 @@ static int read_cdrom_toc(int fd, cdrom_toc *toc) {
toc->ignore_last_track = 0;
}
toc->total_tracks = toc->last_track - toc->first_track + 1;
-
+
/* allocate space for the toc entries */
toc->toc_entries = calloc(toc->total_tracks, sizeof(cdrom_toc_entry));
if (!toc->toc_entries) {
@@ -800,7 +800,7 @@ static int read_cdrom_frames(cdda_input_plugin_t *this_gen, int frame, int num_f
return -1;
}
#endif
-
+
data += CD_RAW_FRAME_SIZE;
frame++;
num_frames--;
@@ -817,44 +817,44 @@ static int read_cdrom_toc(cdda_input_plugin_t *this_gen, cdrom_toc *toc) {
/* This is for ASPI which obviously isn't supported! */
lprintf("Windows ASPI support is not complete yet!\n");
return -1;
-
+
}
else
{
DWORD dwBytesReturned;
CDROM_TOC cdrom_toc;
int i;
-
+
if( DeviceIoControl( this_gen->h_device_handle,
IOCTL_CDROM_READ_TOC,
NULL, 0, &cdrom_toc, sizeof(CDROM_TOC),
&dwBytesReturned, NULL ) == 0 )
{
#ifdef LOG
- DWORD dw;
+ DWORD dw;
printf( "input_cdda: could not read TOCHDR\n" );
dw = GetLastError();
- printf("GetLastError returned %u\n", dw);
+ printf("GetLastError returned %u\n", dw);
#endif
return -1;
}
-
+
toc->first_track = cdrom_toc.FirstTrack;
toc->last_track = cdrom_toc.LastTrack;
toc->total_tracks = toc->last_track - toc->first_track + 1;
-
+
/* allocate space for the toc entries */
toc->toc_entries = calloc(toc->total_tracks, sizeof(cdrom_toc_entry));
if (!toc->toc_entries) {
perror("calloc");
return -1;
}
-
+
/* fetch each toc entry */
for (i = toc->first_track; i <= toc->last_track; i++) {
-
+
toc->toc_entries[i-1].track_mode = (cdrom_toc.TrackData[i-1].Control & 0x04) ? 1 : 0;
toc->toc_entries[i-1].first_frame_minute = cdrom_toc.TrackData[i-1].Address[1];
toc->toc_entries[i-1].first_frame_second = cdrom_toc.TrackData[i-1].Address[2];
@@ -876,7 +876,7 @@ static int read_cdrom_toc(cdda_input_plugin_t *this_gen, cdrom_toc *toc) {
(toc->leadout_track.first_frame_minute * CD_SECONDS_PER_MINUTE * CD_FRAMES_PER_SECOND) +
(toc->leadout_track.first_frame_second * CD_FRAMES_PER_SECOND) +
toc->leadout_track.first_frame_frame;
- }
+ }
return 0;
}
@@ -893,37 +893,37 @@ static int read_cdrom_frames(cdda_input_plugin_t *this_gen, int frame, int num_f
/* This is for ASPI which obviously isn't supported! */
lprintf("Windows ASPI support is not complete yet!\n");
return -1;
-
+
}
else
{
memset(data, 0, CD_RAW_FRAME_SIZE * num_frames);
-
+
while( num_frames ) {
-
+
#ifdef LOG
/*printf("\t Raw read frame %d\n", frame);*/
#endif
raw_read_info.DiskOffset.QuadPart = frame * CD_SECTOR_SIZE;
raw_read_info.SectorCount = 1;
raw_read_info.TrackMode = CDDA;
-
+
/* read a frame */
if( DeviceIoControl( this_gen->h_device_handle,
IOCTL_CDROM_RAW_READ,
- &raw_read_info, sizeof(RAW_READ_INFO), data,
+ &raw_read_info, sizeof(RAW_READ_INFO), data,
CD_RAW_FRAME_SIZE,
&dwBytesReturned, NULL ) == 0 )
{
#ifdef LOG
- DWORD dw;
+ DWORD dw;
printf( "input_cdda: could not read frame\n" );
dw = GetLastError();
- printf("GetLastError returned %u\n", dw);
+ printf("GetLastError returned %u\n", dw);
#endif
return -1;
}
-
+
data += CD_RAW_FRAME_SIZE;
frame++;
num_frames--;
@@ -1029,7 +1029,7 @@ network_command( xine_stream_t *stream, int socket, void *data_buf, const char *
if( n ) {
if( !data_buf ) {
if (stream)
- xprintf(stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(stream->xine, XINE_VERBOSITY_DEBUG,
"input_cdda: protocol error, data returned but no buffer provided.\n");
return -1;
}
@@ -1154,12 +1154,12 @@ static int network_read_cdrom_frames(xine_stream_t *stream, int fd, int first_fr
*/
static void cdda_device_cb(void *data, xine_cfg_entry_t *cfg) {
cdda_input_class_t *class = (cdda_input_class_t *) data;
-
+
class->cdda_device = cfg->str_value;
}
static void enable_cddb_changed_cb(void *data, xine_cfg_entry_t *cfg) {
cdda_input_class_t *class = (cdda_input_class_t *) data;
-
+
if(class->ip) {
cdda_input_plugin_t *this = class->ip;
@@ -1170,7 +1170,7 @@ static void enable_cddb_changed_cb(void *data, xine_cfg_entry_t *cfg) {
}
static void server_changed_cb(void *data, xine_cfg_entry_t *cfg) {
cdda_input_class_t *class = (cdda_input_class_t *) data;
-
+
if(class->ip) {
cdda_input_plugin_t *this = class->ip;
@@ -1181,7 +1181,7 @@ static void server_changed_cb(void *data, xine_cfg_entry_t *cfg) {
}
static void port_changed_cb(void *data, xine_cfg_entry_t *cfg) {
cdda_input_class_t *class = (cdda_input_class_t *) data;
-
+
if(class->ip) {
cdda_input_plugin_t *this = class->ip;
@@ -1193,7 +1193,7 @@ static void port_changed_cb(void *data, xine_cfg_entry_t *cfg) {
#ifdef CDROM_SELECT_SPEED
static void speed_changed_cb(void *data, xine_cfg_entry_t *cfg) {
cdda_input_class_t *class = (cdda_input_class_t *) data;
-
+
if (class->ip) {
cdda_input_plugin_t *this = class->ip;
if (this->fd != -1)
@@ -1210,21 +1210,21 @@ static void speed_changed_cb(void *data, xine_cfg_entry_t *cfg) {
static int _cdda_is_cd_changed(cdda_input_plugin_t *this) {
#ifdef CDROM_MEDIA_CHANGED
int err, cd_changed=0;
-
+
if(this == NULL || this->fd < 0)
return -1;
-
+
if((err = ioctl(this->fd, CDROM_MEDIA_CHANGED, cd_changed)) < 0) {
xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"input_cdda: ioctl(CDROM_MEDIA_CHANGED) failed: %s.\n", strerror(errno));
return -1;
}
-
+
switch(err) {
case 1:
return 1;
break;
-
+
default:
return 0;
break;
@@ -1234,7 +1234,7 @@ static int _cdda_is_cd_changed(cdda_input_plugin_t *this) {
#else
/*
* At least on solaris, CDROM_MEDIA_CHANGED does not exist. Just return an
- * error for now
+ * error for now
*/
return -1;
#endif
@@ -1244,18 +1244,18 @@ static int _cdda_is_cd_changed(cdda_input_plugin_t *this) {
* create a directory, in safe mode
*/
static void _cdda_mkdir_safe(xine_t *xine, char *path) {
-
+
if(path == NULL)
return;
-
+
#ifndef WIN32
{
struct stat pstat;
-
+
if((stat(path, &pstat)) < 0) {
/* file or directory no exist, create it */
if(mkdir(path, 0755) < 0) {
- xprintf(xine, XINE_VERBOSITY_DEBUG,
+ xprintf(xine, XINE_VERBOSITY_DEBUG,
"input_cdda: mkdir(%s) failed: %s.\n", path, strerror(errno));
return;
}
@@ -1272,10 +1272,10 @@ static void _cdda_mkdir_safe(xine_t *xine, char *path) {
HANDLE hList;
TCHAR szDir[MAX_PATH+3];
WIN32_FIND_DATA FileData;
-
+
// Get the proper directory path
sprintf(szDir, "%s\\*", path);
-
+
// Get the first file
hList = FindFirstFile(szDir, &FileData);
if (hList == INVALID_HANDLE_VALUE)
@@ -1283,9 +1283,9 @@ static void _cdda_mkdir_safe(xine_t *xine, char *path) {
if(_mkdir(path) != 0) {
xprintf(xine, XINE_VERBOSITY_DEBUG, "input_cdda: mkdir(%s) failed.\n", path);
return;
- }
+ }
}
-
+
FindClose(hList);
}
#endif /* WIN32 */
@@ -1331,12 +1331,12 @@ static int _cdda_cddb_socket_read(cdda_input_plugin_t *this, char *str, int size
* Send a command to socket
*/
static int _cdda_cddb_send_command(cdda_input_plugin_t *this, char *cmd) {
-
+
if((this == NULL) || (this->cddb.fd < 0) || (cmd == NULL))
return -1;
xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG, ">>> %s\n", cmd);
-
+
return (int)_x_io_tcp_write(this->stream, this->cddb.fd, cmd, strlen(cmd));
}
@@ -1406,7 +1406,7 @@ static int _cdda_cddb_handle_code(char *buf) {
break;
}
}
-
+
return err;
}
@@ -1487,22 +1487,22 @@ static int _cdda_load_cached_cddb_infos(cdda_input_plugin_t *this) {
if(this == NULL)
return 0;
-
+
const size_t cdir_size = strlen(xdg_cache_home) + sizeof("/"PACKAGE"/cddb") + 10 + 1;
char *const cdir = alloca(cdir_size);
sprintf(cdir, "%s/" PACKAGE "/cddb", xdg_cache_home);
if((dir = opendir(cdir)) != NULL) {
struct dirent *pdir;
-
+
while((pdir = readdir(dir)) != NULL) {
char discid[9];
-
+
snprintf(discid, sizeof(discid), "%08" PRIx32, this->cddb.disc_id);
-
+
if(!strcasecmp(pdir->d_name, discid)) {
FILE *fd;
-
+
snprintf(cdir + cdir_size - 12, 10, "/%s", discid);
if((fd = fopen(cdir, "r")) == NULL) {
xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
@@ -1513,7 +1513,7 @@ static int _cdda_load_cached_cddb_infos(cdda_input_plugin_t *this) {
else {
char buffer[2048], *ln;
char *dtitle = NULL;
-
+
while ((ln = fgets(buffer, sizeof (buffer) - 1, fd)) != NULL) {
int length = strlen (buffer);
@@ -1525,7 +1525,7 @@ static int _cdda_load_cached_cddb_infos(cdda_input_plugin_t *this) {
fclose(fd);
free(dtitle);
}
-
+
closedir(dir);
return 1;
}
@@ -1534,7 +1534,7 @@ static int _cdda_load_cached_cddb_infos(cdda_input_plugin_t *this) {
"input_cdda: cached entry for disc ID %08" PRIx32 " not found.\n", this->cddb.disc_id);
closedir(dir);
}
-
+
return 0;
}
@@ -1549,7 +1549,7 @@ static void _cdda_save_cached_cddb_infos(cdda_input_plugin_t *this, char *fileco
if((this == NULL) || (filecontent == NULL))
return;
-
+
/* the filename is always 8 characters */
cfile = alloca(strlen(xdg_cache_home) + sizeof("/"PACKAGE"/cddb") + 9);
strcpy(cfile, xdg_cache_home);
@@ -1557,9 +1557,9 @@ static void _cdda_save_cached_cddb_infos(cdda_input_plugin_t *this, char *fileco
/* Ensure the cache directory exists */
_cdda_mkdir_recursive_safe(this->stream->xine, cfile);
-
+
sprintf(cfile, "%s/%08" PRIx32, cfile, this->cddb.disc_id);
-
+
if((fd = fopen(cfile, "w")) == NULL) {
xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"input_cdda: fopen(%s) failed: %s.\n", cfile, strerror(errno));
@@ -1569,7 +1569,7 @@ static void _cdda_save_cached_cddb_infos(cdda_input_plugin_t *this, char *fileco
fprintf(fd, "%s", filecontent);
fclose(fd);
}
-
+
}
/*
@@ -1597,7 +1597,7 @@ static int _cdda_cddb_socket_open(cdda_input_plugin_t *this) {
* Close the socket
*/
static void _cdda_cddb_socket_close(cdda_input_plugin_t *this) {
-
+
if((this == NULL) || (this->cddb.fd < 0))
return;
@@ -1617,7 +1617,7 @@ static int _cdda_cddb_retrieve(cdda_input_plugin_t *this) {
if(this == NULL) {
return 0;
}
-
+
if(_cdda_load_cached_cddb_infos(this)) {
this->cddb.have_cddb_info = 1;
return 1;
@@ -1706,7 +1706,7 @@ static int _cdda_cddb_retrieve(cdda_input_plugin_t *this) {
xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"input_cdda: error while sending cddb query command.\n");
_cdda_cddb_socket_close(this);
- return 0;
+ return 0;
}
memset(&buffer, 0, sizeof(buffer));
@@ -1731,7 +1731,7 @@ static int _cdda_cddb_retrieve(cdda_input_plugin_t *this) {
i++;
}
}
-
+
if ((err == 210) || (err == 211)) {
memset(&buffer, 0, sizeof(buffer));
err = _cdda_cddb_socket_read(this, buffer, sizeof(buffer) - 1);
@@ -1762,7 +1762,7 @@ static int _cdda_cddb_retrieve(cdda_input_plugin_t *this) {
return 0;
}
}
- }
+ }
/* Send read command */
memset(&buffer, 0, sizeof(buffer));
snprintf(buffer, sizeof(buffer), "cddb read %s %s\n", this->cddb.disc_category, this->cddb.cdiscid);
@@ -1781,7 +1781,7 @@ static int _cdda_cddb_retrieve(cdda_input_plugin_t *this) {
_cdda_cddb_socket_close(this);
return 0;
}
-
+
this->cddb.have_cddb_info = 1;
memset(&buffercache, 0, sizeof(buffercache));
@@ -1795,7 +1795,7 @@ static int _cdda_cddb_retrieve(cdda_input_plugin_t *this) {
_cdda_parse_cddb_info (this, buffer, &dtitle);
}
free(dtitle);
-
+
/* Save cddb info and close socket */
_cdda_save_cached_cddb_infos(this, buffercache);
_cdda_cddb_socket_close(this);
@@ -1811,7 +1811,7 @@ static int _cdda_cddb_retrieve(cdda_input_plugin_t *this) {
*/
static unsigned int _cdda_cddb_sum(int n) {
unsigned int ret = 0;
-
+
while(n > 0) {
ret += (n % 10);
n /= 10;
@@ -1820,15 +1820,15 @@ static unsigned int _cdda_cddb_sum(int n) {
}
static uint32_t _cdda_calc_cddb_id(cdda_input_plugin_t *this) {
int i, tsum = 0;
-
+
if(this == NULL || (this->cddb.num_tracks <= 0))
return 0;
-
+
for(i = 0; i < this->cddb.num_tracks; i++)
tsum += _cdda_cddb_sum((this->cddb.track[i].start / CD_FRAMES_PER_SECOND));
-
+
return ((tsum % 0xff) << 24
- | (this->cddb.disc_length - (this->cddb.track[0].start / CD_FRAMES_PER_SECOND)) << 8
+ | (this->cddb.disc_length - (this->cddb.track[0].start / CD_FRAMES_PER_SECOND)) << 8
| this->cddb.num_tracks);
}
@@ -1904,7 +1904,7 @@ static void _cdda_free_cddb_info(cdda_input_plugin_t *this) {
free(this->cddb.disc_artist);
free(this->cddb.disc_category);
free(this->cddb.disc_year);
-
+
}
}
/*
@@ -1917,7 +1917,7 @@ static int cdda_open(cdda_input_plugin_t *this_gen,
int fd = -1;
if ( !cdda_device ) return -1;
-
+
*fdd = -1;
if (this_gen)
@@ -1932,7 +1932,7 @@ static int cdda_open(cdda_input_plugin_t *this_gen,
if (this_gen)
this_gen->fd = fd;
-
+
#ifdef CDROM_SELECT_SPEED
if (this_gen->stream) {
int speed;
@@ -1962,17 +1962,17 @@ static int cdda_open(cdda_input_plugin_t *this_gen,
else
return -1;
- /* We are going to assume that we are opening a
+ /* We are going to assume that we are opening a
* device and not a file!
*/
if( WIN_NT )
{
char psz_win32_drive[7];
-
+
lprintf( "using winNT/2K/XP ioctl layer" );
-
+
sprintf( psz_win32_drive, "\\\\.\\%c:", cdda_device[0] );
-
+
this_gen->h_device_handle = CreateFile( psz_win32_drive, GENERIC_READ,
FILE_SHARE_READ | FILE_SHARE_WRITE,
NULL, OPEN_EXISTING,
@@ -1988,7 +1988,7 @@ static int cdda_open(cdda_input_plugin_t *this_gen,
DWORD dwSupportInfo;
int i, j, i_hostadapters;
char c_drive = cdda_device[0];
-
+
hASPI = LoadLibrary( "wnaspi32.dll" );
if( hASPI != NULL )
{
@@ -1997,80 +1997,80 @@ static int cdda_open(cdda_input_plugin_t *this_gen,
lpSendCommand = GetProcAddress( hASPI,
"SendASPI32Command" );
}
-
+
if( hASPI == NULL || lpGetSupport == NULL || lpSendCommand == NULL )
{
lprintf( "unable to load aspi or get aspi function pointers" );
-
+
if( hASPI ) FreeLibrary( hASPI );
return -1;
}
-
+
/* ASPI support seems to be there */
-
+
dwSupportInfo = lpGetSupport();
-
+
if( HIBYTE( LOWORD ( dwSupportInfo ) ) == SS_NO_ADAPTERS )
{
lprintf( "no host adapters found (aspi)" );
FreeLibrary( hASPI );
return -1;
}
-
+
if( HIBYTE( LOWORD ( dwSupportInfo ) ) != SS_COMP )
{
lprintf( "unable to initalize aspi layer" );
-
+
FreeLibrary( hASPI );
return -1;
}
-
+
i_hostadapters = LOBYTE( LOWORD( dwSupportInfo ) );
if( i_hostadapters == 0 )
{
FreeLibrary( hASPI );
return -1;
}
-
+
c_drive = c_drive > 'Z' ? c_drive - 'a' : c_drive - 'A';
-
+
for( i = 0; i < i_hostadapters; i++ )
{
for( j = 0; j < 15; j++ )
{
struct SRB_GetDiskInfo srbDiskInfo;
-
+
srbDiskInfo.SRB_Cmd = SC_GET_DISK_INFO;
srbDiskInfo.SRB_HaId = i;
srbDiskInfo.SRB_Flags = 0;
srbDiskInfo.SRB_Hdr_Rsvd = 0;
srbDiskInfo.SRB_Target = j;
srbDiskInfo.SRB_Lun = 0;
-
+
lpSendCommand( (void*) &srbDiskInfo );
-
+
if( (srbDiskInfo.SRB_Status == SS_COMP) &&
(srbDiskInfo.SRB_Int13HDriveInfo == c_drive) )
{
/* Make sure this is a cdrom device */
struct SRB_GDEVBlock srbGDEVBlock;
-
+
memset( &srbGDEVBlock, 0, sizeof(struct SRB_GDEVBlock) );
srbGDEVBlock.SRB_Cmd = SC_GET_DEV_TYPE;
srbGDEVBlock.SRB_HaId = i;
srbGDEVBlock.SRB_Target = j;
-
+
lpSendCommand( (void*) &srbGDEVBlock );
-
+
if( ( srbGDEVBlock.SRB_Status == SS_COMP ) &&
( srbGDEVBlock.SRB_DeviceType == DTYPE_CDROM ) )
{
this_gen->i_sid = MAKEWORD( i, j );
this_gen->hASPI = (long)hASPI;
this_gen->lpSendCommand = lpSendCommand;
-
+
lprintf( "using aspi layer" );
-
+
return 0;
}
else
@@ -2082,12 +2082,12 @@ static int cdda_open(cdda_input_plugin_t *this_gen,
}
}
}
-
+
FreeLibrary( hASPI );
-
+
lprintf( "unable to get haid and target (aspi)" );
}
-
+
#endif /* WIN32 */
return -1;
@@ -2158,9 +2158,9 @@ static off_t cdda_plugin_read (input_plugin_t *this_gen, void *buf, off_t len) {
this->cache_last = this->current_frame + CACHED_FRAMES - 1;
if( this->cache_last > this->last_frame )
this->cache_last = this->last_frame;
-
-#ifndef WIN32
- if ( this->fd != -1 )
+
+#ifndef WIN32
+ if ( this->fd != -1 )
#else
if ( this->h_device_handle )
#endif /* WIN32 */
@@ -2176,7 +2176,7 @@ static off_t cdda_plugin_read (input_plugin_t *this_gen, void *buf, off_t len) {
if( err < 0 )
return 0;
-
+
memcpy(buf, this->cache[this->current_frame-this->cache_first], CD_RAW_FRAME_SIZE);
this->current_frame++;
@@ -2274,7 +2274,7 @@ static int cdda_plugin_open (input_plugin_t *this_gen ) {
int fd = -1;
char *cdda_device;
int err = -1;
-
+
lprintf("cdda_plugin_open\n");
/* get the CD TOC */
@@ -2285,7 +2285,7 @@ static int cdda_plugin_open (input_plugin_t *this_gen ) {
else
cdda_device = class->cdda_device;
-#ifndef WIN32
+#ifndef WIN32
if( strchr(cdda_device,':') ) {
fd = network_connect(this->stream, cdda_device);
if( fd != -1 ) {
@@ -2303,7 +2303,7 @@ static int cdda_plugin_open (input_plugin_t *this_gen ) {
return 0;
}
-#ifndef WIN32
+#ifndef WIN32
err = read_cdrom_toc(this->fd, toc);
#else
err = read_cdrom_toc(this, toc);
@@ -2315,18 +2315,18 @@ static int cdda_plugin_open (input_plugin_t *this_gen ) {
}
-
- if ( (err < 0) || (toc->first_track > (this->track + 1)) ||
+
+ if ( (err < 0) || (toc->first_track > (this->track + 1)) ||
(toc->last_track < (this->track + 1))) {
cdda_close(this);
-
+
free_cdrom_toc(toc);
return 0;
}
/* set up the frame boundaries for this particular track */
- this->first_frame = this->current_frame =
+ this->first_frame = this->current_frame =
toc->toc_entries[this->track].first_frame;
if (this->track + 1 == toc->last_track)
this->last_frame = toc->leadout_track.first_frame - 1;
@@ -2337,8 +2337,8 @@ static int cdda_plugin_open (input_plugin_t *this_gen ) {
this->cache_first = this->cache_last = -1;
/* get the Musicbrainz CDIndex */
- _cdda_cdindex (this, toc);
-
+ _cdda_cdindex (this, toc);
+
/*
* CDDB
*/
@@ -2352,23 +2352,23 @@ static int cdda_plugin_open (input_plugin_t *this_gen ) {
this->cddb.track = (trackinfo_t *) calloc(this->cddb.num_tracks, sizeof(trackinfo_t));
for(t = 0; t < this->cddb.num_tracks; t++) {
- int length = (toc->toc_entries[t].first_frame_minute * CD_SECONDS_PER_MINUTE +
+ int length = (toc->toc_entries[t].first_frame_minute * CD_SECONDS_PER_MINUTE +
toc->toc_entries[t].first_frame_second);
-
- this->cddb.track[t].start = (length * CD_FRAMES_PER_SECOND +
+
+ this->cddb.track[t].start = (length * CD_FRAMES_PER_SECOND +
toc->toc_entries[t].first_frame_frame);
this->cddb.track[t].title = NULL;
}
-
+
}
- this->cddb.disc_length = (toc->leadout_track.first_frame_minute * CD_SECONDS_PER_MINUTE +
+ this->cddb.disc_length = (toc->leadout_track.first_frame_minute * CD_SECONDS_PER_MINUTE +
toc->leadout_track.first_frame_second);
this->cddb.disc_id = _cdda_get_cddb_id(this);
if((this->cddb.have_cddb_info == 0) || (_cdda_is_cd_changed(this) == 1))
_cdda_cddb_retrieve(this);
-
+
if(this->cddb.disc_title) {
lprintf("Disc Title: %s\n", this->cddb.disc_title);
@@ -2376,7 +2376,7 @@ static int cdda_plugin_open (input_plugin_t *this_gen ) {
}
if(this->cddb.track[this->track].title) {
- /* Check for track 'titles' of the form <artist> / <title>. */
+ /* Check for track 'titles' of the form <artist> / <title>. */
char *pt;
pt = strstr(this->cddb.track[this->track].title, " / ");
if (pt != NULL) {
@@ -2392,10 +2392,10 @@ static int cdda_plugin_open (input_plugin_t *this_gen ) {
else {
if(this->cddb.disc_artist) {
lprintf("Disc Artist: %s\n", this->cddb.disc_artist);
-
+
_x_meta_info_set_utf8(this->stream, XINE_META_INFO_ARTIST, this->cddb.disc_artist);
}
-
+
pt = this->cddb.track[this->track].title;
}
lprintf("Track %d Title: %s\n", this->track+1, pt);
@@ -2405,7 +2405,7 @@ static int cdda_plugin_open (input_plugin_t *this_gen ) {
_x_meta_info_set_utf8(this->stream, XINE_META_INFO_TRACK_NUMBER, tracknum);
_x_meta_info_set_utf8(this->stream, XINE_META_INFO_TITLE, pt);
}
-
+
if(this->cddb.disc_category) {
lprintf("Disc Category: %s\n", this->cddb.disc_category);
@@ -2423,7 +2423,7 @@ static int cdda_plugin_open (input_plugin_t *this_gen ) {
return 1;
}
-static char ** cdda_class_get_autoplay_list (input_class_t *this_gen,
+static char ** cdda_class_get_autoplay_list (input_class_t *this_gen,
int *num_files) {
cdda_input_class_t *this = (cdda_input_class_t *) this_gen;
@@ -2437,8 +2437,8 @@ static char ** cdda_class_get_autoplay_list (input_class_t *this_gen,
/* free old playlist */
for( i = 0; this->autoplaylist[i]; i++ ) {
free( this->autoplaylist[i] );
- this->autoplaylist[i] = NULL;
- }
+ this->autoplaylist[i] = NULL;
+ }
/* get the CD TOC */
toc = init_cdrom_toc();
@@ -2484,13 +2484,13 @@ static char ** cdda_class_get_autoplay_list (input_class_t *this_gen,
print_cdrom_toc(toc);
#endif
- cdda_close(ip);
-
+ cdda_close(ip);
+
if ( err < 0 ) {
if (ip != this->ip) free(ip);
return NULL;
}
-
+
num_tracks = toc->last_track - toc->first_track;
if (toc->ignore_last_track)
num_tracks--;
@@ -2550,19 +2550,19 @@ static input_plugin_t *cdda_class_get_instance (input_class_t *cls_gen, xine_str
return NULL;
this = calloc(1, sizeof (cdda_input_plugin_t));
-
+
class->ip = this;
this->stream = stream;
this->mrl = strdup(mrl);
this->cdda_device = cdda_device;
-
+
/* CD tracks start from 1; internal data structure indexes from 0 */
this->track = track - 1;
this->cddb.track = NULL;
this->fd = -1;
this->net_fd = -1;
this->class = (input_class_t *) class;
-
+
this->input_plugin.open = cdda_plugin_open;
this->input_plugin.get_capabilities = cdda_plugin_get_capabilities;
this->input_plugin.read = cdda_plugin_read;
@@ -2575,20 +2575,20 @@ static input_plugin_t *cdda_class_get_instance (input_class_t *cls_gen, xine_str
this->input_plugin.get_optional_data = cdda_plugin_get_optional_data;
this->input_plugin.dispose = cdda_plugin_dispose;
this->input_plugin.input_class = cls_gen;
-
+
/*
* Lookup config entries.
*/
- if(xine_config_lookup_entry(this->stream->xine, "media.audio_cd.use_cddb",
- &enable_entry))
+ if(xine_config_lookup_entry(this->stream->xine, "media.audio_cd.use_cddb",
+ &enable_entry))
enable_cddb_changed_cb(class, &enable_entry);
- if(xine_config_lookup_entry(this->stream->xine, "media.audio_cd.cddb_server",
- &server_entry))
+ if(xine_config_lookup_entry(this->stream->xine, "media.audio_cd.cddb_server",
+ &server_entry))
server_changed_cb(class, &server_entry);
-
- if(xine_config_lookup_entry(this->stream->xine, "media.audio_cd.cddb_port",
- &port_entry))
+
+ if(xine_config_lookup_entry(this->stream->xine, "media.audio_cd.cddb_port",
+ &port_entry))
port_changed_cb(class, &port_entry);
class->cddb_error = cddb_error;
@@ -2643,15 +2643,15 @@ static void *init_plugin (xine_t *xine, void *data) {
this->mrls = NULL;
this->mrls_allocated_entries = 0;
this->ip = NULL;
-
- this->cdda_device = config->register_filename(config, "media.audio_cd.device",
+
+ this->cdda_device = config->register_filename(config, "media.audio_cd.device",
DEFAULT_CDDA_DEVICE, XINE_CONFIG_STRING_IS_DEVICE_NAME,
_("device used for CD audio"),
_("The path to the device, usually a "
"CD or DVD drive, which you intend to use "
"for playing audio CDs."),
10, cdda_device_cb, (void *) this);
-
+
config->register_bool(config, "media.audio_cd.use_cddb", 1,
_("query CDDB"), _("Enables CDDB queries, which will give you "
"convenient title and track names for your audio CDs.\n"
@@ -2659,7 +2659,7 @@ static void *init_plugin (xine_t *xine, void *data) {
"is retrieved from an internet server which might collect a profile "
"of your listening habits."),
10, enable_cddb_changed_cb, (void *) this);
-
+
config->register_string(config, "media.audio_cd.cddb_server", CDDB_SERVER,
_("CDDB server name"), _("The CDDB server used to retrieve the "
"title and track information from.\nThis setting is security critical, "
@@ -2667,12 +2667,12 @@ static void *init_plugin (xine_t *xine, void *data) {
"and could answer the queries with malicious replies. Be sure to enter "
"a server you can trust."), XINE_CONFIG_SECURITY,
server_changed_cb, (void *) this);
-
+
config->register_num(config, "media.audio_cd.cddb_port", CDDB_PORT,
_("CDDB server port"), _("The server port used to retrieve the "
"title and track information from."), XINE_CONFIG_SECURITY,
port_changed_cb, (void *) this);
-
+
#ifdef CDROM_SELECT_SPEED
config->register_num(config, "media.audio_cd.drive_slowdown", 4,
_("slow down disc drive to this speed factor"),
diff --git a/src/input/input_dvb.c b/src/input/input_dvb.c
index 164ac2bc9..5b8afef92 100644
--- a/src/input/input_dvb.c
+++ b/src/input/input_dvb.c
@@ -1,18 +1,18 @@
/*
* Copyright (C) 2000-2008 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -30,7 +30,7 @@
* 01-Feb-2005 Pekka Jääskeläinen <poj@iki.fi>
*
* - This history log started.
- * - Disabled the automatic EPG updater thread until EPG demuxer
+ * - Disabled the automatic EPG updater thread until EPG demuxer
* is done (it caused pausing of video stream), now EPG is
* updated only on demand when the EPG OSD is displayed and
* no data is in cache.
@@ -39,10 +39,10 @@
* - Now tuning to an erroneus channel shouldn't hang but stop
* the playback and output a log describing the error.
* - Style cleanups here and there.
- *
+ *
* 06-Apr-2006 Jack Steven Kelliher
* - Add ATSC support
- *
+ *
* TODO/Wishlist: (not in any order)
* - Parse all Administrative PIDs - NIT,SDT,CAT etc
* - As per James' suggestion, we need a way for the demuxer
@@ -52,7 +52,7 @@
* Alevtd can read it.
* - Allow the user to view one set of PIDs (channel) while
* recording another on the same transponder - this will require either remuxing or
- * perhaps bypassing the TS demuxer completely - we could easily have access to the
+ * perhaps bypassing the TS demuxer completely - we could easily have access to the
* individual audio/video streams via seperate read calls, so send them to the decoders
* and save the TS output to disk instead of passing it to the demuxer.
* This also gives us full control over the streams being played..hmm..control...
@@ -60,7 +60,7 @@
* - Allow the user to find and tune new stations from within xine, and
* do away with the need for dvbscan & channels.conf file.
* - Enable use of Conditional Access devices for scrambled content.
- * - if multiple cards are available, optionally use these to record/gather si info,
+ * - if multiple cards are available, optionally use these to record/gather si info,
* and leave primary card for viewing.
* - allow for handing off of EPG data to specialised frontends, instead of displaying via
* OSD - this will allow for filtering/searching of epg data - useful for automatic recording :)
@@ -71,7 +71,7 @@
#endif
/* pthread.h must be included first so rest of the headers are imported
- thread safely (on some systems).
+ thread safely (on some systems).
However, including it before config.h causes problems with asprintf not
being declared (glibc 2.3.6)
*/
@@ -128,7 +128,7 @@
#define DVB_NOPID 0xffff
-/* define stream types
+/* define stream types
* administrative/system PIDs first */
#define INTERNAL_FILTER 0
#define PATFILTER 1
@@ -201,7 +201,7 @@
#define EPG_PIXELS_BETWEEN_TEXT_ROWS 2
#define EPG_PIXELS_BETWEEN_PROGRAM_ENTRIES 2
-/* How many pixels the background of the OSD is bigger than the text area?
+/* How many pixels the background of the OSD is bigger than the text area?
The margin is for each side of the background box. */
#define EPG_BACKGROUND_MARGIN 5
@@ -212,10 +212,10 @@
/* How many seconds an EPG entry with the running flag on can be "late"
according to the system time before discarding it as an old program?
-
- This margin is needed because in channel list OSD some EPG entries of
+
+ This margin is needed because in channel list OSD some EPG entries of
some channels may be updated a very long ago (if user has watched another
- channel in different mux) so we have to resort to system clock for
+ channel in different mux) so we have to resort to system clock for
figuring out the current program. */
#define MAX_EPG_ENTRY_LATENESS 5*60.0
@@ -237,12 +237,12 @@ typedef struct {
int fd_subfilter[MAX_SUBTITLES];
struct dvb_frontend_info feinfo;
-
+
int adapter_num;
- char *dvr_device;
+ char *dvr_device;
char *demux_device;
-
+
struct dmx_pes_filter_params pesFilterParams[MAX_FILTERS];
struct dmx_pes_filter_params subFilterParams[MAX_SUBTITLES];
struct dmx_sct_filter_params sectFilterParams[MAX_FILTERS];
@@ -254,16 +254,16 @@ typedef struct {
typedef struct {
/* Program's name. */
- char *progname;
+ char *progname;
/* Textual description of the program. */
char *description;
/* The content type string. */
- char *content;
+ char *content;
/* Age recommendation. 0 if not available. */
- int rating;
+ int rating;
time_t starttime;
@@ -272,7 +272,7 @@ typedef struct {
char duration_minutes;
/* Is this program running currently according to EPG data? */
- char running;
+ char running;
} epg_entry_t;
@@ -298,7 +298,7 @@ typedef struct {
const char *mrls[6];
- int numchannels;
+ int numchannels;
char *autoplaylist[MAX_AUTOCHANNELS];
@@ -332,12 +332,12 @@ typedef struct {
osd_object_t *rec_osd;
osd_object_t *name_osd;
osd_object_t *paused_osd;
- osd_object_t *proginfo_osd;
+ osd_object_t *proginfo_osd;
osd_object_t *channel_osd;
osd_object_t *background;
-
+
xine_event_queue_t *event_queue;
-
+
/* scratch buffer for forward seeking */
char seek_buf[BUFSIZE];
@@ -347,7 +347,7 @@ typedef struct {
int record_fd;
int record_paused;
/* centre cutout zoom */
- int zoom_ok;
+ int zoom_ok;
/* Is EPG displaying? */
int epg_displaying;
@@ -356,8 +356,8 @@ typedef struct {
pthread_t epg_updater_thread;
/* buffer for EIT data */
- /*char *eitbuffer;*/
- int num_streams_in_this_ts;
+ /*char *eitbuffer;*/
+ int num_streams_in_this_ts;
/* number of timedout reads in plugin_read */
int read_failcount;
#ifdef DVB_NO_BUFFERING
@@ -474,7 +474,7 @@ static unsigned int getbits(unsigned char *buffer, unsigned int bitpos, unsigned
}
-static int find_descriptor(uint8_t tag, const unsigned char *buf, int descriptors_loop_len,
+static int find_descriptor(uint8_t tag, const unsigned char *buf, int descriptors_loop_len,
const unsigned char **desc, int *desc_len)
{
@@ -512,7 +512,7 @@ static time_t dvb_mjdtime (uint8_t *buf)
time_t t;
_x_assert(tma != NULL);
-
+
mjd = (unsigned int)(buf[0] & 0xff) << 8;
mjd +=(unsigned int)(buf[1] & 0xff);
hour =(unsigned char)bcdtoint(buf[2] & 0xff);
@@ -521,14 +521,14 @@ static time_t dvb_mjdtime (uint8_t *buf)
year =(unsigned long)((mjd - 15078.2)/365.25);
month=(unsigned long)((mjd - 14956.1 - (unsigned long)(year * 365.25))/30.6001);
day = mjd - 14956 - (unsigned long)(year * 365.25) - (unsigned long)(month * 30.6001);
-
+
if (month == 14 || month == 15)
i = 1;
else
i = 0;
year += i;
month = month - 1 - i * 12;
-
+
tma->tm_sec=sec;
tma->tm_min=min;
tma->tm_hour=hour;
@@ -538,7 +538,7 @@ static time_t dvb_mjdtime (uint8_t *buf)
t = timegm(tma);
-
+
free(tma);
return t;
}
@@ -586,7 +586,7 @@ static tuner_t *XINE_MALLOC tuner_init(xine_t * xine, int adapter)
this->xine = xine;
this->adapter_num = adapter;
-
+
asprintf(&this->demux_device,"/dev/dvb/adapter%i/demux0",this->adapter_num);
asprintf(&this->dvr_device,"/dev/dvb/adapter%i/dvr0",this->adapter_num);
asprintf(&video_device,"/dev/dvb/adapter%i/video0",this->adapter_num);
@@ -631,7 +631,7 @@ static tuner_t *XINE_MALLOC tuner_init(xine_t * xine, int adapter)
xprintf(this->xine,XINE_VERBOSITY_DEBUG,"input_dvb: couldn't set INTERNAL to nonblock: %s\n",strerror(errno));
/* and the frontend */
fcntl(this->fd_frontend, F_SETFL, O_NONBLOCK);
-
+
xprintf(this->xine,XINE_VERBOSITY_DEBUG,"input_dvb: Frontend is <%s> ",this->feinfo.name);
if(this->feinfo.type==FE_QPSK) xprintf(this->xine,XINE_VERBOSITY_DEBUG,"SAT Card\n");
if(this->feinfo.type==FE_QAM) xprintf(this->xine,XINE_VERBOSITY_DEBUG,"CAB Card\n");
@@ -648,7 +648,7 @@ static tuner_t *XINE_MALLOC tuner_init(xine_t * xine, int adapter)
exit:
free(video_device);
free(frontend_device);
-
+
return this;
}
@@ -660,7 +660,7 @@ static int dvb_set_pidfilter(dvb_input_plugin_t * this, int filter, ushort pid,
if(this->channels[this->channel].pid [filter] !=DVB_NOPID) {
ioctl(tuner->fd_pidfilter[filter], DMX_STOP);
}
-
+
this->channels[this->channel].pid [filter] = pid;
tuner->pesFilterParams[filter].pid = pid;
tuner->pesFilterParams[filter].input = DMX_IN_FRONTEND;
@@ -683,7 +683,7 @@ static int dvb_set_sectfilter(dvb_input_plugin_t * this, int filter, ushort pid,
if(this->channels[this->channel].pid [filter] !=DVB_NOPID) {
ioctl(tuner->fd_pidfilter[filter], DMX_STOP);
}
-
+
this->channels[this->channel].pid [filter] = pid;
tuner->sectFilterParams[filter].pid = pid;
memset(&tuner->sectFilterParams[filter].filter.filter,0,DMX_FILTER_SIZE);
@@ -717,14 +717,14 @@ static int extract_channel_from_string_internal(channel_t * channel,char * str,f
<bw>:<fec_hp>:<fec_lp>:<qam>:
<transmissionm>:<guardlist>:<hierarchinfo>:<vpid>:<apid>
(DVBA) ATSC: <channel name>:<frequency>:<qam>:<vpid>:<apid>
-
+
<channel name> = any string not containing ':'
<frequency> = unsigned long
<polarisation> = 'v' or 'h'
<sat_no> = unsigned long, usually 0 :D
<sym_rate> = symbol rate in MSyms/sec
-
-
+
+
<inversion> = INVERSION_ON | INVERSION_OFF | INVERSION_AUTO
<fec> = FEC_1_2, FEC_2_3, FEC_3_4 .... FEC_AUTO ... FEC_NONE
<qam> = QPSK, QAM_128, QAM_16, ATSC ...
@@ -741,7 +741,7 @@ static int extract_channel_from_string_internal(channel_t * channel,char * str,f
char *field, *tmp;
tmp = str;
-
+
/* find the channel name */
if(!(field = strsep(&tmp,":")))return -1;
channel->name = strdup(field);
@@ -762,8 +762,8 @@ static int extract_channel_from_string_internal(channel_t * channel,char * str,f
channel->tone = 0;
}
channel->front_param.inversion = INVERSION_AUTO;
-
- /* find out the polarisation */
+
+ /* find out the polarisation */
if(!(field = strsep(&tmp, ":")))return -1;
channel->pol = (field[0] == 'h' ? 0 : 1);
@@ -779,7 +779,7 @@ static int extract_channel_from_string_internal(channel_t * channel,char * str,f
break;
case FE_QAM:
channel->front_param.frequency = freq;
-
+
/* find out the inversion */
if(!(field = strsep(&tmp, ":")))return -1;
channel->front_param.inversion = find_param(inversion_list, field);
@@ -797,10 +797,10 @@ static int extract_channel_from_string_internal(channel_t * channel,char * str,f
channel->front_param.u.qam.modulation = find_param(qam_list, field);
break;
case FE_OFDM:
- /* DVB-T frequency is in kHz - workaround broken channels.confs */
- if (freq < 1000000)
- freq*=1000;
-
+ /* DVB-T frequency is in kHz - workaround broken channels.confs */
+ if (freq < 1000000)
+ freq*=1000;
+
channel->front_param.frequency = freq;
/* find out the inversion */
@@ -836,7 +836,7 @@ static int extract_channel_from_string_internal(channel_t * channel,char * str,f
break;
case FE_ATSC:
channel->front_param.frequency = freq;
-
+
/* find out the qam */
if(!(field = strsep(&tmp, ":")))return -1;
channel->front_param.u.vsb.modulation = find_param(atsc_list, field);
@@ -862,9 +862,9 @@ static int extract_channel_from_string_internal(channel_t * channel,char * str,f
/* some channel.conf files are generated with the service ID 1 to the right
this needs investigation */
if ((field = strsep(&tmp, ":")))
- if(strtoul(field,NULL,0)>0)
+ if(strtoul(field,NULL,0)>0)
channel->service_id = strtoul(field, NULL, 0);
-
+
return 0;
}
@@ -903,7 +903,7 @@ static channel_t *load_channels(xine_t *xine, xine_stream_t *stream, int *num_ch
}
/*
- * load channel list
+ * load channel list
*/
while ( fgets (str, BUFSIZE, f)) {
@@ -917,7 +917,7 @@ static channel_t *load_channels(xine_t *xine, xine_stream_t *stream, int *num_ch
continue;
str[i] = 0;
- if (extract_channel_from_string(&channel,str,fe_type) < 0)
+ if (extract_channel_from_string(&channel,str,fe_type) < 0)
continue;
if (num_channels >= num_alloc) {
@@ -941,14 +941,14 @@ static channel_t *load_channels(xine_t *xine, xine_stream_t *stream, int *num_ch
/* free any trailing unused entries */
channels = realloc (channels, num_channels * sizeof (channel_t));
- if(num_channels > 0)
+ if(num_channels > 0)
xprintf (xine, XINE_VERBOSITY_DEBUG, "input_dvb: found %d channels...\n", num_channels);
else {
xprintf (xine, XINE_VERBOSITY_DEBUG, "input_dvb: no channels found in the file: giving up.\n");
free(channels);
return NULL;
}
-
+
*num_ch = num_channels;
return channels;
}
@@ -1042,7 +1042,7 @@ static int tuner_tune_it (tuner_t *this, struct dvb_frontend_parameters
}
xprintf(this->xine, XINE_VERBOSITY_DEBUG, "input_dvb: tuner_tune_it - waiting for lock...\n" );
-
+
do {
status = 0;
if (ioctl(this->fd_frontend, FE_READ_STATUS, &status) < 0) {
@@ -1069,25 +1069,25 @@ static int tuner_tune_it (tuner_t *this, struct dvb_frontend_parameters
usleep(10000);
xprintf(this->xine, XINE_VERBOSITY_DEBUG, "Trying to get lock...");
} while (!(status & FE_TIMEDOUT));
-
- /* inform the user of frontend status */
+
+ /* inform the user of frontend status */
xprintf(this->xine,XINE_VERBOSITY_LOG,"input_dvb: Tuner status: ");
/* if (ioctl(this->fd_frontend, FE_READ_STATUS, &status) >= 0){ */
- if (status & FE_HAS_SIGNAL)
+ if (status & FE_HAS_SIGNAL)
xprintf(this->xine,XINE_VERBOSITY_LOG," FE_HAS_SIGNAL");
- if (status & FE_TIMEDOUT)
+ if (status & FE_TIMEDOUT)
xprintf(this->xine,XINE_VERBOSITY_LOG," FE_TIMEDOUT");
- if (status & FE_HAS_LOCK)
+ if (status & FE_HAS_LOCK)
xprintf(this->xine,XINE_VERBOSITY_LOG," FE_HAS_LOCK");
- if (status & FE_HAS_CARRIER)
+ if (status & FE_HAS_CARRIER)
xprintf(this->xine,XINE_VERBOSITY_LOG," FE_HAS_CARRIER");
- if (status & FE_HAS_VITERBI)
+ if (status & FE_HAS_VITERBI)
xprintf(this->xine,XINE_VERBOSITY_LOG," FE_HAS_VITERBI");
- if (status & FE_HAS_SYNC)
+ if (status & FE_HAS_SYNC)
xprintf(this->xine,XINE_VERBOSITY_LOG," FE_HAS_SYNC");
/* } */
xprintf(this->xine,XINE_VERBOSITY_LOG,"\n");
-
+
strength=0;
if(ioctl(this->fd_frontend,FE_READ_BER,&strength) >= 0)
xprintf(this->xine,XINE_VERBOSITY_LOG,"input_dvb: Bit error rate: %i\n",strength);
@@ -1099,9 +1099,9 @@ static int tuner_tune_it (tuner_t *this, struct dvb_frontend_parameters
strength=0;
if(ioctl(this->fd_frontend,FE_READ_SNR,&strength) >= 0)
xprintf(this->xine,XINE_VERBOSITY_LOG,"input_dvb: Signal/Noise Ratio: %u\n",strength);
-
+
if (status & FE_HAS_LOCK && !(status & FE_TIMEDOUT)) {
- xprintf(this->xine,XINE_VERBOSITY_LOG,"input_dvb: Lock achieved at %lu Hz\n",(unsigned long)front_param->frequency);
+ xprintf(this->xine,XINE_VERBOSITY_LOG,"input_dvb: Lock achieved at %lu Hz\n",(unsigned long)front_param->frequency);
return 1;
} else {
xprintf(this->xine,XINE_VERBOSITY_LOG,"input_dvb: Unable to achieve lock at %lu Hz\n",(unsigned long)front_param->frequency);
@@ -1110,13 +1110,13 @@ static int tuner_tune_it (tuner_t *this, struct dvb_frontend_parameters
}
-/* Parse the PMT, and add filters for all stream types associated with
- * the 'channel'. We leave it to the demuxer to sort out which PIDs to
+/* Parse the PMT, and add filters for all stream types associated with
+ * the 'channel'. We leave it to the demuxer to sort out which PIDs to
* use. to simplify things slightly, (and because the demuxer can't handle it)
* allow only one of each media type */
static void parse_pmt(dvb_input_plugin_t *this, const unsigned char *buf, int section_length)
{
-
+
int program_info_len;
int pcr_pid;
int has_video=0;
@@ -1146,9 +1146,9 @@ static void parse_pmt(dvb_input_plugin_t *this, const unsigned char *buf, int se
xprintf(this->stream->xine,XINE_VERBOSITY_LOG,"input_dvb: Adding VIDEO : PID 0x%04x\n", elementary_pid);
dvb_set_pidfilter(this, VIDFILTER, elementary_pid, DMX_PES_VIDEO, DMX_OUT_TS_TAP);
has_video=1;
- }
+ }
break;
-
+
case 0x03:
case 0x04:
if(!has_audio) {
@@ -1157,14 +1157,14 @@ static void parse_pmt(dvb_input_plugin_t *this, const unsigned char *buf, int se
has_audio=1;
}
break;
-
+
case 0x06:
if (find_descriptor(0x56, buf + 5, descriptor_len, NULL, NULL)) {
if(!has_text) {
xprintf(this->stream->xine,XINE_VERBOSITY_LOG,"input_dvb: Adding TELETEXT : PID 0x%04x\n", elementary_pid);
dvb_set_pidfilter(this,TXTFILTER, elementary_pid, DMX_PES_OTHER,DMX_OUT_TS_TAP);
has_text=1;
- }
+ }
break;
} else if (find_descriptor (0x59, buf + 5, descriptor_len, NULL, NULL)) {
/* Note: The subtitling descriptor can also signal
@@ -1185,7 +1185,7 @@ static void parse_pmt(dvb_input_plugin_t *this, const unsigned char *buf, int se
this->tuner->subFilterParams[has_subs].flags = DMX_IMMEDIATE_START;
if (ioctl(this->tuner->fd_subfilter[has_subs], DMX_SET_PES_FILTER, &this->tuner->subFilterParams[has_subs]) < 0)
{
- xprintf(this->tuner->xine, XINE_VERBOSITY_DEBUG, "input_dvb: set_pid: %s\n", strerror(errno));
+ xprintf(this->tuner->xine, XINE_VERBOSITY_DEBUG, "input_dvb: set_pid: %s\n", strerror(errno));
break;
}
has_subs++;
@@ -1193,7 +1193,7 @@ static void parse_pmt(dvb_input_plugin_t *this, const unsigned char *buf, int se
break;
} else if (find_descriptor (0x6a, buf + 5, descriptor_len, NULL, NULL)) {
if(!has_ac3) {
- dvb_set_pidfilter(this, AC3FILTER, elementary_pid, DMX_PES_OTHER,DMX_OUT_TS_TAP);
+ dvb_set_pidfilter(this, AC3FILTER, elementary_pid, DMX_PES_OTHER,DMX_OUT_TS_TAP);
xprintf(this->stream->xine,XINE_VERBOSITY_LOG,"input_dvb: Adding AC3 : PID 0x%04x\n", elementary_pid);
has_ac3=1;
}
@@ -1201,7 +1201,7 @@ static void parse_pmt(dvb_input_plugin_t *this, const unsigned char *buf, int se
}
break;
case 0x81: /* AC3 audio */
- fprintf(stderr, " pid type 0x%x, has audio %d\n",buf[0],has_audio);
+ fprintf(stderr, " pid type 0x%x, has audio %d\n",buf[0],has_audio);
if(!has_audio) {
xprintf(this->stream->xine,XINE_VERBOSITY_LOG,"input_dvb: Adding AUDIO : PID 0x%04x\n", elementary_pid);
dvb_set_pidfilter(this, AUDFILTER, elementary_pid, DMX_PES_AUDIO, DMX_OUT_TS_TAP);
@@ -1209,7 +1209,7 @@ static void parse_pmt(dvb_input_plugin_t *this, const unsigned char *buf, int se
}
break;
- };
+ };
buf += descriptor_len + 5;
section_length -= descriptor_len + 5;
@@ -1220,12 +1220,12 @@ static void dvb_parse_si(dvb_input_plugin_t *this) {
uint8_t *tmpbuffer;
uint8_t *bufptr;
- int service_id;
+ int service_id;
int result;
- int section_len;
- int x;
+ int section_len;
+ int x;
struct pollfd pfd;
-
+
tuner_t *tuner = this->tuner;
tmpbuffer = calloc(1, 8192);
@@ -1239,8 +1239,8 @@ static void dvb_parse_si(dvb_input_plugin_t *this) {
xprintf(this->stream->xine,XINE_VERBOSITY_DEBUG,"input_dvb: Setting up Internal PAT filter\n");
xine_usec_sleep(500000);
-
- /* first - the PAT. retrieve the entire section...*/
+
+ /* first - the PAT. retrieve the entire section...*/
dvb_set_sectfilter(this, INTERNAL_FILTER, 0, DMX_PES_OTHER, 0, 0xff);
/* wait for up to 15 seconds */
@@ -1253,13 +1253,13 @@ static void dvb_parse_si(dvb_input_plugin_t *this) {
return;
}
result = read (tuner->fd_pidfilter[INTERNAL_FILTER], tmpbuffer, 3);
-
+
if(result!=3)
xprintf(this->stream->xine,XINE_VERBOSITY_DEBUG,"input_dvb: error reading PAT table - no data!\n");
section_len = getbits(tmpbuffer,12,12);
result = read (tuner->fd_pidfilter[INTERNAL_FILTER], tmpbuffer+5,section_len);
-
+
if(result!=section_len)
xprintf(this->stream->xine,XINE_VERBOSITY_DEBUG,"input_dvb: error reading in the PAT table\n");
@@ -1267,7 +1267,7 @@ static void dvb_parse_si(dvb_input_plugin_t *this) {
bufptr+=10;
this->num_streams_in_this_ts=0;
- section_len-=5;
+ section_len-=5;
while(section_len>4){
service_id = getbits (bufptr,0,16);
@@ -1279,7 +1279,7 @@ static void dvb_parse_si(dvb_input_plugin_t *this) {
section_len-=4;
bufptr+=4;
if(service_id>0) /* ignore NIT table for now */
- this->num_streams_in_this_ts++;
+ this->num_streams_in_this_ts++;
}
bufptr = tmpbuffer;
@@ -1304,7 +1304,7 @@ static void dvb_parse_si(dvb_input_plugin_t *this) {
ioctl(tuner->fd_pidfilter[INTERNAL_FILTER], DMX_STOP);
parse_pmt(this,tmpbuffer+8,section_len);
-
+
/*
dvb_set_pidfilter(this, TSDTFILTER, 0x02,DMX_PES_OTHER,DMX_OUT_TS_TAP);
dvb_set_pidfilter(this, RSTFILTER, 0x13,DMX_PES_OTHER,DMX_OUT_TS_TAP);
@@ -1317,8 +1317,8 @@ static void dvb_parse_si(dvb_input_plugin_t *this) {
/* we use the section filter for EIT because we are guarenteed a complete section */
if(ioctl(tuner->fd_pidfilter[EITFILTER],DMX_SET_BUFFER_SIZE,8192*this->num_streams_in_this_ts)<0)
- xprintf(this->stream->xine,XINE_VERBOSITY_DEBUG,"input_dvb: couldn't increase buffer size for EIT: %s \n",strerror(errno));
- dvb_set_sectfilter(this, EITFILTER, 0x12,DMX_PES_OTHER,0x4e, 0xff);
+ xprintf(this->stream->xine,XINE_VERBOSITY_DEBUG,"input_dvb: couldn't increase buffer size for EIT: %s \n",strerror(errno));
+ dvb_set_sectfilter(this, EITFILTER, 0x12,DMX_PES_OTHER,0x4e, 0xff);
xprintf(this->stream->xine,XINE_VERBOSITY_DEBUG,"input_dvb: Setup of PID filters complete\n");
@@ -1330,7 +1330,7 @@ static void dvb_parse_si(dvb_input_plugin_t *this) {
static int channel_index(dvb_input_plugin_t* this, int service_id) {
int n;
for (n=0; n < this->num_channels; n++)
- if (this->channels[n].service_id == service_id)
+ if (this->channels[n].service_id == service_id)
return n;
return -1;
@@ -1345,7 +1345,7 @@ static int compare_epg_by_starttime(const void* a, const void* b) {
return -1;
} else if ((*epg_a)->starttime > (*epg_b)->starttime) {
return 1;
- }
+ }
return 0;
}
@@ -1368,7 +1368,7 @@ static void pthread_sleep(int seconds) {
struct timespec timeout;
/* Create a dummy mutex which doesn't unlock for sure while waiting. */
- pthread_mutex_init(&dummy_mutex, NULL);
+ pthread_mutex_init(&dummy_mutex, NULL);
pthread_mutex_lock(&dummy_mutex);
/* Create a dummy condition variable. */
@@ -1408,7 +1408,7 @@ static void* epg_data_updater(void *t) {
}
#endif
-/* This function parses the EIT table and saves the data used in
+/* This function parses the EIT table and saves the data used in
EPG OSD of all channels found in the currently tuned stream. */
static void load_epg_data(dvb_input_plugin_t *this)
{
@@ -1417,7 +1417,7 @@ static void load_epg_data(dvb_input_plugin_t *this)
int descriptor_id;
int section_len = 0;
unsigned int service_id=-1;
- int n;
+ int n;
uint8_t *eit = NULL;
uint8_t *foo = NULL;
char *seen_channels = NULL;
@@ -1432,8 +1432,8 @@ static void load_epg_data(dvb_input_plugin_t *this)
pthread_mutex_lock(&this->channel_change_mutex);
/* seen_channels array is used to store information of channels that were
- already "found" in the stream. This information is used to initialize the
- channel's EPG structs when the EPG information for the channel is seen in
+ already "found" in the stream. This information is used to initialize the
+ channel's EPG structs when the EPG information for the channel is seen in
the stream the first time. */
seen_channels = calloc(this->num_channels, sizeof(char));
_x_assert(seen_channels != NULL);
@@ -1443,7 +1443,7 @@ static void load_epg_data(dvb_input_plugin_t *this)
fd.fd = this->tuner->fd_pidfilter[EITFILTER];
fd.events = POLLPRI;
-
+
for (loops = 0; loops <= this->num_streams_in_this_ts*2; loops++) {
eit = foo;
@@ -1452,7 +1452,7 @@ static void load_epg_data(dvb_input_plugin_t *this)
pthread_mutex_unlock(&this->channel_change_mutex);
free(seen_channels);
free(foo);
- return;
+ return;
}
n = read(this->tuner->fd_pidfilter[EITFILTER], eit, 3);
table_id = getbits(eit, 0, 8);
@@ -1465,8 +1465,8 @@ static void load_epg_data(dvb_input_plugin_t *this)
xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,"input_dvb: load_epg_data(): unknown service_id: %d!\n", service_id);
continue;
}
-
-
+
+
if (section_len > 15) {
current_channel = &this->channels[current_channel_index];
@@ -1484,14 +1484,14 @@ static void load_epg_data(dvb_input_plugin_t *this)
continue;
}
- /* Initialize the EPG struct if there's not one we can reuse.
+ /* Initialize the EPG struct if there's not one we can reuse.
Allocate space for the strings. */
if (current_channel->epg[current_channel->epg_count] == NULL) {
current_channel->epg[current_channel->epg_count] =
calloc(1, sizeof(epg_entry_t));
_x_assert(current_channel->epg[current_channel->epg_count] != NULL);
- current_channel->epg[current_channel->epg_count]->progname =
+ current_channel->epg[current_channel->epg_count]->progname =
malloc(MAX_EPG_PROGRAM_NAME_LENGTH + 1);
_x_assert(current_channel->epg[current_channel->epg_count]->progname != NULL);
@@ -1499,7 +1499,7 @@ static void load_epg_data(dvb_input_plugin_t *this)
malloc(MAX_EPG_PROGRAM_DESCRIPTION_LENGTH + 1);
_x_assert(current_channel->epg[current_channel->epg_count]->description != NULL);
- current_channel->epg[current_channel->epg_count]->content =
+ current_channel->epg[current_channel->epg_count]->content =
malloc(MAX_EPG_CONTENT_TYPE_LENGTH + 1);
_x_assert(current_channel->epg[current_channel->epg_count]->content != NULL);
current_channel->epg[current_channel->epg_count]->running = 0;
@@ -1514,12 +1514,12 @@ static void load_epg_data(dvb_input_plugin_t *this)
1 not running
2 starts in a few seconds
3 pausing
- 4 running
+ 4 running
*/
if (getbits(foo,192,3) == 4){
- current_epg->running = 1;
+ current_epg->running = 1;
} else {
- current_epg->running = 0;
+ current_epg->running = 0;
}
@@ -1532,7 +1532,7 @@ static void load_epg_data(dvb_input_plugin_t *this)
current_epg->duration_minutes = (char)bcdtoint(eit[22] & 0xff);
descriptor_id = eit[26];
- eit += 27;
+ eit += 27;
section_len -= 27;
/* run the descriptor loop for the length of section_len */
while (section_len > 1)
@@ -1545,23 +1545,23 @@ static void load_epg_data(dvb_input_plugin_t *this)
desc_len = getbits(eit, 0, 8);
- /* Let's get the EPG data only in the wanted language. */
+ /* Let's get the EPG data only in the wanted language. */
if (xine_config_lookup_entry(
- this->stream->xine,
+ this->stream->xine,
"media.dvd.language", &language) &&
- language.str_value && strlen(language.str_value) >= 2 &&
+ language.str_value && strlen(language.str_value) >= 2 &&
strncasecmp(language.str_value, &eit[1], 2)) {
-
+
#ifdef DEBUG_EPG
printf("input_dvb: EPG Skipping language: %C%C%C\n",
- eit[1],eit[2],eit[3]);
- printf("input_dvb: EPG language.str_value: %s\n",
+ eit[1],eit[2],eit[3]);
+ printf("input_dvb: EPG language.str_value: %s\n",
language.str_value);
-#endif
+#endif
break;
- }
+ }
/* program name */
name_len = (unsigned char)eit[4];
@@ -1570,20 +1570,20 @@ static void load_epg_data(dvb_input_plugin_t *this)
break;
}
- /* the first char of the string contains sometimes the character
+ /* the first char of the string contains sometimes the character
encoding information, which should not be copied to the
string. (FIXME - we ought to be using this byte to change charsets)*/
-
+
if (!isalnum(*(eit + 5)))
skip_byte = 1;
else
skip_byte = 0;
- memcpy(current_epg->progname, eit + 5 + skip_byte,
- name_len - skip_byte);
+ memcpy(current_epg->progname, eit + 5 + skip_byte,
+ name_len - skip_byte);
current_epg->progname[name_len - skip_byte] = '\0';
- /* detailed program information (max 256 chars)*/
+ /* detailed program information (max 256 chars)*/
text_len = (unsigned char)eit[5 + name_len];
if (text_len == 0) {
current_epg->description[0] = '\0';
@@ -1595,7 +1595,7 @@ static void load_epg_data(dvb_input_plugin_t *this)
else
skip_byte = 0;
- memcpy(current_epg->description, eit + 6 + name_len + skip_byte,
+ memcpy(current_epg->description, eit + 6 + name_len + skip_byte,
text_len - skip_byte);
current_epg->description[text_len - skip_byte] = '\0';
}
@@ -1611,7 +1611,7 @@ static void load_epg_data(dvb_input_plugin_t *this)
snprintf(current_epg->content, MAX_EPG_CONTENT_TYPE_LENGTH, "%s", content[content_bits]);
}
break;
- case 0x55: { /* Parental Rating descriptor describes minimum recommened age -3 */
+ case 0x55: { /* Parental Rating descriptor describes minimum recommened age -3 */
/* A rating value of 0 means that there is no rating defined. Ratings
greater than 0xF are "defined by broadcaster", which is not supported
@@ -1621,7 +1621,7 @@ static void load_epg_data(dvb_input_plugin_t *this)
else
current_epg->rating = 0;
}
- break;
+ break;
default:
break;
}
@@ -1630,28 +1630,28 @@ static void load_epg_data(dvb_input_plugin_t *this)
eit += getbits(eit, 0, 8);
descriptor_id = eit[1];
eit += 2;
- }
+ }
/* Store the entry if we got enough data. */
- if (current_epg->progname && strlen(current_epg->progname))
+ if (current_epg->progname && strlen(current_epg->progname))
current_channel->epg_count++;
}
}
/* Sort the EPG arrays by starttime. */
for (i = 0; i < this->num_channels; ++i) {
- if (!seen_channels[i])
+ if (!seen_channels[i])
continue;
- qsort(this->channels[i].epg, this->channels[i].epg_count,
+ qsort(this->channels[i].epg, this->channels[i].epg_count,
sizeof(epg_entry_t*), compare_epg_by_starttime);
}
free(seen_channels);
- free(foo);
+ free(foo);
pthread_mutex_unlock(&this->channel_change_mutex);
}
/* Prints text to an area, tries to cut the lines in between words. */
static void render_text_area(osd_renderer_t* renderer, osd_object_t* osd, const char* text,
- int x, int y, int row_space,
+ int x, int y, int row_space,
int max_x, int max_y, int* height, int color_base) {
/* The position of the text to be printed. */
@@ -1663,7 +1663,7 @@ static void render_text_area(osd_renderer_t* renderer, osd_object_t* osd, const
int text_width, text_height;
size_t old_line_length, line_cursor;
const char* bound, *old_bound;
-
+
*height = 0;
while (cursor < text_end) {
bound = cursor;
@@ -1677,12 +1677,12 @@ static void render_text_area(osd_renderer_t* renderer, osd_object_t* osd, const
line_cursor = old_line_length;
/* Strip leading white space. */
- while (isspace(*bound))
+ while (isspace(*bound))
bound++;
-
+
/* Copy text to the text_line until end of word or end of string. */
while (!isspace(*bound) && *bound != '\0') {
- text_line[line_cursor] = *bound;
+ text_line[line_cursor] = *bound;
bound++;
line_cursor++;
}
@@ -1695,13 +1695,13 @@ static void render_text_area(osd_renderer_t* renderer, osd_object_t* osd, const
if (x + text_width > max_x) {
/* It didn't fit, restore the old line and stop trying to fit more.*/
text_line[old_line_length] = '\0';
-
+
/* If no words did fit to the line, fit as many characters as possible in it. */
if (old_line_length == 0) {
text_width = 0;
bound = bound - line_cursor + 1; /* rewind to the beginning of the word */
line_cursor = 0;
- while (!isspace(*bound) &&
+ while (!isspace(*bound) &&
*bound != '\0') {
text_line[line_cursor++] = *bound++;
text_line[line_cursor] = '\0';
@@ -1720,10 +1720,10 @@ static void render_text_area(osd_renderer_t* renderer, osd_object_t* osd, const
bound = old_bound;
break;
}
-
+
/* OK, it did fit, let's try to fit some more. */
} while (bound < text_end);
-
+
if (y + text_height + row_space > max_y) {
break;
}
@@ -1734,7 +1734,7 @@ static void render_text_area(osd_renderer_t* renderer, osd_object_t* osd, const
}
}
-/* Finds the EPG of the ith next program. 0 means the current program, 1 next.
+/* Finds the EPG of the ith next program. 0 means the current program, 1 next.
If not found, returns NULL. All these functions expect the EPG entries
are sorted by starting time. */
static epg_entry_t* ith_next_epg(channel_t* channel, int count) {
@@ -1742,14 +1742,14 @@ static epg_entry_t* ith_next_epg(channel_t* channel, int count) {
int counter = 0;
/* Discard the entries of past programs. */
- while (counter + 1 < channel->epg_count &&
+ while (counter + 1 < channel->epg_count &&
difftime(channel->epg[counter + 1]->starttime, current_time) < 0.0)
counter++;
/* Check whether the previous program has still the running bit on,
and if it's not more late than the given margin, assume it's still
running. */
- if (counter >= 1 && channel->epg[counter - 1]->running &&
+ if (counter >= 1 && channel->epg[counter - 1]->running &&
difftime(current_time, channel->epg[counter]->starttime) < MAX_EPG_ENTRY_LATENESS) {
counter--;
}
@@ -1764,13 +1764,13 @@ static epg_entry_t* ith_next_epg(channel_t* channel, int count) {
ago. In that case do not return any EPG. This fixes the "very last
program of the day sticking until morning" bug. */
if (counter == channel->epg_count - 1) {
- if (difftime(current_time,
- channel->epg[counter]->starttime +
+ if (difftime(current_time,
+ channel->epg[counter]->starttime +
channel->epg[counter]->duration_hours*60*60 +
channel->epg[counter]->duration_minutes*60) > MAX_EPG_ENTRY_LATENESS) {
return NULL;
}
- }
+ }
return channel->epg[counter];
}
@@ -1781,7 +1781,7 @@ static epg_entry_t* current_epg(channel_t* channel) {
#ifdef DEBUG_EPG
if (next != NULL)
printf("input_dvb: EPG current: %s (%d)\n", next->progname, next->running);
-#endif
+#endif
return next;
}
@@ -1791,13 +1791,13 @@ static epg_entry_t* next_epg(channel_t* channel) {
#ifdef DEBUG_EPG
if (next != NULL)
printf("input_dvb: EPG next: %s (%d)\n", next->progname, next->running);
-#endif
+#endif
return next;
}
/* Displays the program info of an EPG entry in OSD.
-
+
x,y The upper left coordinates of the program information area.
max_x, max_y The maximum right coordinate of the program information area.
last_y The position of y after printing the entry.
@@ -1806,7 +1806,7 @@ static epg_entry_t* next_epg(channel_t* channel) {
Returns the height of the entry in the OSD in pixels.
*/
static void show_program_info(int x, int y, int max_x, int max_y, int* last_y,
- epg_entry_t* epg_data, osd_renderer_t* renderer,
+ epg_entry_t* epg_data, osd_renderer_t* renderer,
osd_object_t* osd) {
char* buffer;
int time_width, text_width, dummy;
@@ -1845,7 +1845,7 @@ static void show_program_info(int x, int y, int max_x, int max_y, int* last_y,
snprintf(buffer + strlen(buffer), 7, " (%i+)", prog_rating);
}
if (!renderer->set_font(osd, "sans", EPG_CONTENT_FONT_SIZE)) {
- print_error("Setting content type font failed.");
+ print_error("Setting content type font failed.");
}
renderer->get_text_size(osd, buffer, &content_width, &dummy);
renderer->render_text(osd, max_x - 2 - content_width, y, buffer, OSD_TEXT3);
@@ -1853,14 +1853,14 @@ static void show_program_info(int x, int y, int max_x, int max_y, int* last_y,
text_width = max_x - x - time_width - content_width - 2;
- renderer->set_font(osd, "sans", EPG_TITLE_FONT_SIZE);
+ renderer->set_font(osd, "sans", EPG_TITLE_FONT_SIZE);
render_text_area(renderer, osd, epg_data->progname,
- x + time_width, y, EPG_PIXELS_BETWEEN_TEXT_ROWS,
- x + text_width + time_width, max_y, &text_height,
+ x + time_width, y, EPG_PIXELS_BETWEEN_TEXT_ROWS,
+ x + text_width + time_width, max_y, &text_height,
OSD_TEXT4);
- if (text_height == 0)
+ if (text_height == 0)
*last_y = y + time_height;
else
*last_y = y + text_height;
@@ -1879,15 +1879,15 @@ static void show_program_info(int x, int y, int max_x, int max_y, int* last_y,
/* If duration_hours is zero, do not print them. */
if (epg_data->duration_hours > 0)
- sprintf(buffer + strlen(buffer), " (%dh%02dmin)",
+ sprintf(buffer + strlen(buffer), " (%dh%02dmin)",
epg_data->duration_hours, epg_data->duration_minutes);
else if (epg_data->duration_minutes > 0)
- sprintf(buffer + strlen(buffer), " (%dmin)",
+ sprintf(buffer + strlen(buffer), " (%dmin)",
epg_data->duration_minutes);
- render_text_area(renderer, osd, buffer, x + time_width,
- *last_y + EPG_PIXELS_BETWEEN_TEXT_ROWS,
- EPG_PIXELS_BETWEEN_TEXT_ROWS,
+ render_text_area(renderer, osd, buffer, x + time_width,
+ *last_y + EPG_PIXELS_BETWEEN_TEXT_ROWS,
+ EPG_PIXELS_BETWEEN_TEXT_ROWS,
max_x, max_y, &text_height, OSD_TEXT3);
*last_y += EPG_PIXELS_BETWEEN_TEXT_ROWS + text_height;
@@ -1909,7 +1909,7 @@ static void show_eit(dvb_input_plugin_t *this) {
if (!this->epg_displaying) {
#ifndef EPG_UPDATE_IN_BACKGROUND
- if (current_epg(&this->channels[this->channel]) == NULL ||
+ if (current_epg(&this->channels[this->channel]) == NULL ||
next_epg(&this->channels[this->channel]) == NULL) {
load_epg_data(this);
}
@@ -1919,12 +1919,12 @@ static void show_eit(dvb_input_plugin_t *this) {
this->stream->osd_renderer->hide(this->proginfo_osd, 0);
this->stream->osd_renderer->clear(this->proginfo_osd);
- /* Channel Name */
+ /* Channel Name */
if (!this->stream->osd_renderer->set_font(
this->proginfo_osd, "sans", EPG_CHANNEL_FONT_SIZE)) {
print_error("Error setting channel name font.");
}
-
+
this->stream->osd_renderer->render_text(
this->proginfo_osd, 0, 0, this->channels[this->channel].name, OSD_TEXT4);
@@ -1942,11 +1942,11 @@ static void show_eit(dvb_input_plugin_t *this) {
this->proginfo_osd, this->channels[this->channel].name, &temp1, &temp2);
this->stream->osd_renderer->render_text(
- this->proginfo_osd, EPG_WIDTH - 45,
+ this->proginfo_osd, EPG_WIDTH - 45,
EPG_CHANNEL_FONT_SIZE - EPG_CLOCK_FONT_SIZE, clock, OSD_TEXT4);
-
+
show_program_info(0, EPG_CHANNEL_FONT_SIZE + 2, EPG_WIDTH, EPG_HEIGHT, &y_pos,
- current_epg(&this->channels[this->channel]),
+ current_epg(&this->channels[this->channel]),
this->stream->osd_renderer,
this->proginfo_osd);
y = y_pos;
@@ -1957,11 +1957,11 @@ static void show_eit(dvb_input_plugin_t *this) {
this->proginfo_osd);
y = y_pos;
- window_width =
+ window_width =
this->stream->video_out->get_property(
this->stream->video_out, VO_PROP_WINDOW_WIDTH);
- window_height =
+ window_height =
this->stream->video_out->get_property(
this->stream->video_out, VO_PROP_WINDOW_HEIGHT);
@@ -1978,8 +1978,8 @@ static void show_eit(dvb_input_plugin_t *this) {
this->stream->osd_renderer->set_text_palette(
this->background, XINE_TEXTPALETTE_YELLOW_BLACK_TRANSPARENT, OSD_TEXT3);
this->stream->osd_renderer->filled_rect(
- this->background, 0, 0,
- EPG_WIDTH + EPG_BACKGROUND_MARGIN*2,
+ this->background, 0, 0,
+ EPG_WIDTH + EPG_BACKGROUND_MARGIN*2,
y + EPG_BACKGROUND_MARGIN*2, 4);
/* In case video is downscaled and the EPG fits, show it unscaled to make it
@@ -1993,8 +1993,8 @@ static void show_eit(dvb_input_plugin_t *this) {
centered_y = (centered_y > 0)?(centered_y):(EPG_TOP);
this->stream->osd_renderer->set_position(
- this->proginfo_osd,
- centered_x + EPG_BACKGROUND_MARGIN,
+ this->proginfo_osd,
+ centered_x + EPG_BACKGROUND_MARGIN,
centered_y + EPG_BACKGROUND_MARGIN);
this->stream->osd_renderer->set_position(this->background, centered_x, centered_y);
@@ -2010,15 +2010,15 @@ static void show_eit(dvb_input_plugin_t *this) {
/* Center the OSD to stream. */
this->stream->osd_renderer->set_position(
- this->proginfo_osd,
- centered_x + EPG_BACKGROUND_MARGIN,
+ this->proginfo_osd,
+ centered_x + EPG_BACKGROUND_MARGIN,
centered_y + EPG_BACKGROUND_MARGIN);
this->stream->osd_renderer->set_position(this->background, centered_x, centered_y);
this->stream->osd_renderer->show(this->background, 0);
this->stream->osd_renderer->show(this->proginfo_osd, 0);
}
-
+
} else {
this->epg_displaying = 0;
this->stream->osd_renderer->hide (this->proginfo_osd,0);
@@ -2048,7 +2048,7 @@ static int tuner_set_channel (dvb_input_plugin_t *this, channel_t *c) {
if (lastchannel.num_value){
/* Remember last watched channel. never show this entry*/
config->update_num(config, "media.dvb.last_channel", this->channel+1);
- }
+ }
#ifdef DVB_NO_BUFFERING
this->newchannel=1;
#endif
@@ -2078,14 +2078,14 @@ static void osd_show_channel (dvb_input_plugin_t *this, int channel) {
this->channel_osd, 110, 10+i*35,
this->channels[channel_to_print].name,
(channel_to_print == channel)?(OSD_TEXT4):(OSD_TEXT3));
-
+
if ((current_program = current_epg(&this->channels[channel_to_print])) &&
current_program->progname && strlen(current_program->progname) > 0) {
this->stream->osd_renderer->set_font(this->channel_osd, "sans", 16);
render_text_area(this->stream->osd_renderer, this->channel_osd,
- current_program->progname, 400, 10+i*35,
+ current_program->progname, 400, 10+i*35,
-5, CHSEL_WIDTH, 10+i*35+CHSEL_CHANNEL_FONT_SIZE+2,
&temp, (channel_to_print == channel)?(OSD_TEXT4):(OSD_TEXT3));
}
@@ -2108,19 +2108,19 @@ static void osd_show_channel (dvb_input_plugin_t *this, int channel) {
}
static int switch_channel(dvb_input_plugin_t *this, int channel) {
-
+
int x;
xine_event_t event;
xine_pids_data_t data;
xine_ui_data_t ui_data;
-
- /* control_nop appears to stop an occasional (quite long) pause between
+
+ /* control_nop appears to stop an occasional (quite long) pause between
channel-changes, which the user may see as a lockup. */
_x_demux_control_nop(this->stream, BUF_FLAG_END_STREAM);
- _x_demux_flush_engine(this->stream);
+ _x_demux_flush_engine(this->stream);
pthread_mutex_lock (&this->channel_change_mutex);
-
+
close (this->fd);
this->tuned_in = 0;
@@ -2128,9 +2128,9 @@ static int switch_channel(dvb_input_plugin_t *this, int channel) {
close(this->tuner->fd_pidfilter[x]);
this->tuner->fd_pidfilter[x] = open(this->tuner->demux_device, O_RDWR);
}
-
+
if (!tuner_set_channel (this, &this->channels[channel])) {
- xprintf (this->class->xine, XINE_VERBOSITY_LOG,
+ xprintf (this->class->xine, XINE_VERBOSITY_LOG,
_("input_dvb: tuner_set_channel failed\n"));
pthread_mutex_unlock (&this->channel_change_mutex);
return 0;
@@ -2164,7 +2164,7 @@ static int switch_channel(dvb_input_plugin_t *this, int channel) {
this->tuned_in = 1;
pthread_mutex_unlock (&this->channel_change_mutex);
-
+
/* now read the pat, find all accociated PIDs and add them to the stream */
dvb_parse_si(this);
@@ -2176,7 +2176,7 @@ static int switch_channel(dvb_input_plugin_t *this, int channel) {
/* show eit for this channel if necessary */
if (this->epg_displaying==1){
- this->epg_displaying=0;
+ this->epg_displaying=0;
show_eit(this);
}
return 1;
@@ -2185,7 +2185,7 @@ static int switch_channel(dvb_input_plugin_t *this, int channel) {
static void do_record (dvb_input_plugin_t *this) {
struct tm *tma;
- time_t *t;
+ time_t *t;
char filename [256];
char dates[64];
int x=0;
@@ -2211,7 +2211,7 @@ static void do_record (dvb_input_plugin_t *this) {
free(t);
t = NULL;
strftime(dates,63,"%Y-%m-%d_%H%M",tma);
-
+
if (xine_config_lookup_entry(this->stream->xine, "media.capture.save_dir", &savedir)){
if(strlen(savedir.str_value)>1){
if((dir = opendir(savedir.str_value))==NULL){
@@ -2237,7 +2237,7 @@ static void do_record (dvb_input_plugin_t *this) {
this->record_fd = open (filename, O_CREAT | O_APPEND | O_WRONLY, 0644);
this->stream->osd_renderer->clear (this->rec_osd);
-
+
this->stream->osd_renderer->render_text (this->rec_osd, 10, 10, "Recording to:",
OSD_TEXT3);
@@ -2253,7 +2253,7 @@ static void dvb_event_handler (dvb_input_plugin_t *this) {
xine_event_t *event;
static int channel_menu_visible = 0;
- static int next_channel = -1;
+ static int next_channel = -1;
while ((event = xine_event_get (this->event_queue))) {
@@ -2279,7 +2279,7 @@ static void dvb_event_handler (dvb_input_plugin_t *this) {
}
else
this->stream->osd_renderer->hide(this->channel_osd, 0);
- }
+ }
#ifdef LEFT_MOUSE_DOES_EPG
else { /* show EPG on left click of videowindow */
show_eit(this);
@@ -2438,27 +2438,27 @@ static void dvb_event_handler (dvb_input_plugin_t *this) {
static void ts_rewrite_packets (dvb_input_plugin_t *this, unsigned char * originalPkt, int len) {
#define PKT_SIZE 188
-#define BODY_SIZE (188-4)
+#define BODY_SIZE (188-4)
unsigned int sync_byte;
unsigned int data_offset;
unsigned int data_len;
- unsigned int pid;
+ unsigned int pid;
while(len>0){
-
+
sync_byte = originalPkt[0];
pid = ((originalPkt[1] << 8) | originalPkt[2]) & 0x1fff;
-
+
/*
* Discard packets that are obviously bad.
*/
data_offset = 4;
originalPkt+=data_offset;
-
+
if (pid == 0 && sync_byte==0x47) {
unsigned long crc;
-
+
originalPkt[3]=13; /* section length including CRC - first 3 bytes */
originalPkt[2]=0x80;
originalPkt[7]=0; /* section number */
@@ -2469,13 +2469,13 @@ static void ts_rewrite_packets (dvb_input_plugin_t *this, unsigned char * origin
originalPkt[12]=this->channels[this->channel].pmtpid & 0xff;
crc = av_crc(this->class->av_crc, 0xffffffff, originalPkt+1, 12);
-
+
originalPkt[13]=(crc>>24) & 0xff;
originalPkt[14]=(crc>>16) & 0xff;
originalPkt[15]=(crc>>8) & 0xff;
originalPkt[16]=crc & 0xff;
memset(originalPkt+17,0xFF,PKT_SIZE-21); /* stuff the remainder */
-
+
}
data_len = PKT_SIZE - data_offset;
@@ -2489,7 +2489,7 @@ static off_t dvb_plugin_read (input_plugin_t *this_gen,
void *buf_gen, off_t len) {
dvb_input_plugin_t *this = (dvb_input_plugin_t *) this_gen;
uint8_t *buf = buf_gen;
-
+
off_t n=0, total=0;
int have_mutex=0;
struct pollfd pfd;
@@ -2506,32 +2506,32 @@ static off_t dvb_plugin_read (input_plugin_t *this_gen,
/* protect against channel changes */
have_mutex = pthread_mutex_lock(&this->channel_change_mutex);
total=0;
-
- while (total<len){
+
+ while (total<len){
pfd.fd = this->fd;
pfd.events = POLLPRI | POLLIN | POLLERR;
pfd.revents = 0;
-
+
if (!this->tuned_in) {
pthread_mutex_unlock( &this->channel_change_mutex );
xprintf(this->class->xine, XINE_VERBOSITY_LOG,
"input_dvb: Channel \"%s\" could not be tuned in. "
"Possibly erroneus settings in channels.conf "
- "(frequency changed?).\n",
+ "(frequency changed?).\n",
this->channels[this->channel].name);
return 0;
}
-
- if (poll(&pfd, 1, 1500) < 1) {
+
+ if (poll(&pfd, 1, 1500) < 1) {
xprintf(this->class->xine, XINE_VERBOSITY_LOG,
"input_dvb: No data available. Signal Lost?? \n");
- _x_demux_control_end(this->stream, BUF_FLAG_END_USER);
+ _x_demux_control_end(this->stream, BUF_FLAG_END_USER);
this->read_failcount++;
break;
}
- if (this->read_failcount) {
- /* signal/stream regained after loss -
+ if (this->read_failcount) {
+ /* signal/stream regained after loss -
kick the net_buf_control layer. */
this->read_failcount=0;
xprintf(this->class->xine,XINE_VERBOSITY_LOG,
@@ -2541,22 +2541,22 @@ static off_t dvb_plugin_read (input_plugin_t *this_gen,
if (pfd.revents & POLLPRI || pfd.revents & POLLIN) {
n = read (this->fd, &buf[total], len-total);
- } else
+ } else
if (pfd.revents & POLLERR) {
xprintf(this->class->xine, XINE_VERBOSITY_LOG,
"input_dvb: No data available. Signal Lost?? \n");
- _x_demux_control_end(this->stream, BUF_FLAG_END_USER);
+ _x_demux_control_end(this->stream, BUF_FLAG_END_USER);
this->read_failcount++;
break;
- }
+ }
#ifdef LOG_READS
xprintf(this->class->xine,XINE_VERBOSITY_DEBUG,
- "input_dvb: got %" PRIdMAX " bytes (%" PRIdMAX "/%" PRIdMAX " bytes read)\n",
+ "input_dvb: got %" PRIdMAX " bytes (%" PRIdMAX "/%" PRIdMAX " bytes read)\n",
(intmax_t)n, (intmax_t)total, (intmax_t)len);
#endif
-
- if (n > 0){
+
+ if (n > 0){
this->curpos += n;
total += n;
} else if (n < 0 && errno!=EAGAIN) {
@@ -2573,7 +2573,7 @@ static off_t dvb_plugin_read (input_plugin_t *this_gen,
/* no data for several seconds - tell the user a possible reason */
if(this->read_failcount==5){
- _x_message(this->stream,1,"DVB Signal Lost. Please check connections.", NULL);
+ _x_message(this->stream,1,"DVB Signal Lost. Please check connections.", NULL);
}
#ifdef DVB_NO_BUFFERING
if(this->newchannel){
@@ -2661,7 +2661,7 @@ static void dvb_plugin_dispose (input_plugin_t *this_gen) {
}
if (this->nbc) {
- nbc_close (this->nbc);
+ nbc_close (this->nbc);
this->nbc = NULL;
}
@@ -2786,7 +2786,7 @@ static int dvb_plugin_open(input_plugin_t * this_gen)
* and assume that its format is valid for our tuner type
*/
- if (!(channels = load_channels(this->class->xine, this->stream, &num_channels, tuner->feinfo.type)))
+ if (!(channels = load_channels(this->class->xine, this->stream, &num_channels, tuner->feinfo.type)))
{
/* failed to load the channels */
tuner_dispose(tuner);
@@ -2822,7 +2822,7 @@ static int dvb_plugin_open(input_plugin_t * this_gen)
} else {
/*
* try a partial match too
- * be smart and compare starting from the first char, then from
+ * be smart and compare starting from the first char, then from
* the second etc..
* Yes, this is expensive, but it happens really often
* that the channels have really ugly names, sometimes prefixed
@@ -2840,7 +2840,7 @@ static int dvb_plugin_open(input_plugin_t * this_gen)
if (strlen(channels[idx].name) > offset) {
if (strncasecmp(channels[idx].name + offset, channame, chanlen) == 0) {
xprintf(this->class->xine, XINE_VERBOSITY_LOG, _("input_dvb: found matching channel %s\n"), channels[idx].name);
- break;
+ break;
}
}
idx++;
@@ -2913,12 +2913,12 @@ static int dvb_plugin_open(input_plugin_t * this_gen)
return 0;
}
this->channel = 0;
- } else if (strncasecmp(this->mrl, "dvbc://", 7) == 0)
+ } else if (strncasecmp(this->mrl, "dvbc://", 7) == 0)
{
/*
* This is dvbc://<channel name>:<qam tuning parameters>
*/
- if (tuner->feinfo.type != FE_QAM)
+ if (tuner->feinfo.type != FE_QAM)
{
xprintf(this->class->xine, XINE_VERBOSITY_LOG,
_("input_dvb: dvbc mrl specified but the tuner doesn't appear to be QAM (DVB-C)\n"));
@@ -2937,15 +2937,15 @@ static int dvb_plugin_open(input_plugin_t * this_gen)
return 0;
}
this->channel = 0;
- } else if (strncasecmp(this->mrl, "dvba://", 7) == 0)
+ } else if (strncasecmp(this->mrl, "dvba://", 7) == 0)
{
- fprintf(stderr,"input_dvb: 2a %x\n",tuner->feinfo.type);
+ fprintf(stderr,"input_dvb: 2a %x\n",tuner->feinfo.type);
/*
* This is dvba://<channel name>:<atsc tuning parameters>
*/
- if (tuner->feinfo.type != FE_ATSC)
+ if (tuner->feinfo.type != FE_ATSC)
{
- fprintf(stderr,"input_dvb: FAILED 1\n");
+ fprintf(stderr,"input_dvb: FAILED 1\n");
xprintf(this->class->xine, XINE_VERBOSITY_LOG,
_("input_dvb: dvba mrl specified but the tuner doesn't appear to be ATSC (DVB-A)\n"));
tuner_dispose(tuner);
@@ -2957,7 +2957,7 @@ static int dvb_plugin_open(input_plugin_t * this_gen)
_x_assert(channels != NULL);
if (extract_channel_from_string(channels, ptr, tuner->feinfo.type) < 0)
{
- fprintf(stderr,"input_dvb: FAILED 2\n");
+ fprintf(stderr,"input_dvb: FAILED 2\n");
free(channels);
channels = NULL;
tuner_dispose(tuner);
@@ -2973,7 +2973,7 @@ static int dvb_plugin_open(input_plugin_t * this_gen)
this->tuner = tuner;
this->channels = channels;
this->num_channels = num_channels;
-
+
if (!tuner_set_channel(this, &this->channels[this->channel])) {
xprintf(this->class->xine, XINE_VERBOSITY_LOG,
_("input_dvb: tuner_set_channel failed\n"));
@@ -2986,7 +2986,7 @@ static int dvb_plugin_open(input_plugin_t * this_gen)
return 0;
}
this->tuned_in = 1;
-
+
/* now read the pat, find all accociated PIDs and add them to the stream */
dvb_parse_si(this);
@@ -3001,14 +3001,14 @@ static int dvb_plugin_open(input_plugin_t * this_gen)
if (this->dvb_gui_enabled) {
/* Start the EPG updater thread. */
this->epg_updater_stop = 0;
- if (pthread_create(&this->epg_updater_thread, NULL,
+ if (pthread_create(&this->epg_updater_thread, NULL,
epg_data_updater, this) != 0) {
xprintf(
this->class->xine, XINE_VERBOSITY_LOG,
_("input_dvb: cannot create EPG updater thread\n"));
return 0;
}
- }
+ }
#endif
/*
* this osd is used to draw the "recording" sign
@@ -3027,8 +3027,8 @@ static int dvb_plugin_open(input_plugin_t * this_gen)
this->stream->osd_renderer->set_position(this->channel_osd, 20, 10);
this->stream->osd_renderer->set_encoding(this->channel_osd, NULL);
- /*
- * this osd is for displaying currently shown channel name
+ /*
+ * this osd is for displaying currently shown channel name
*/
this->name_osd = this->stream->osd_renderer->new_object(this->stream->osd_renderer, 301, 61);
this->stream->osd_renderer->set_position(this->name_osd, 20, 10);
@@ -3036,8 +3036,8 @@ static int dvb_plugin_open(input_plugin_t * this_gen)
this->stream->osd_renderer->set_encoding(this->name_osd, NULL);
this->stream->osd_renderer->set_text_palette(this->name_osd, XINE_TEXTPALETTE_YELLOW_BLACK_TRANSPARENT, OSD_TEXT3);
- /*
- * this osd is for displaying Recording Paused
+ /*
+ * this osd is for displaying Recording Paused
*/
this->paused_osd = this->stream->osd_renderer->new_object(this->stream->osd_renderer, 301, 161);
this->stream->osd_renderer->set_position(this->paused_osd, 10, 50);
@@ -3045,10 +3045,10 @@ static int dvb_plugin_open(input_plugin_t * this_gen)
this->stream->osd_renderer->set_encoding(this->paused_osd, NULL);
this->stream->osd_renderer->set_text_palette(this->paused_osd, XINE_TEXTPALETTE_YELLOW_BLACK_TRANSPARENT, OSD_TEXT3);
- /*
+ /*
* This osd is for displaying Program Information (EIT), i.e., EPG.
*/
- this->proginfo_osd =
+ this->proginfo_osd =
this->stream->osd_renderer->new_object(
this->stream->osd_renderer, EPG_WIDTH, EPG_HEIGHT);
@@ -3057,10 +3057,10 @@ static int dvb_plugin_open(input_plugin_t * this_gen)
this->stream->osd_renderer->set_text_palette(this->proginfo_osd, XINE_TEXTPALETTE_WHITE_NONE_TRANSLUCID, OSD_TEXT3);
this->stream->osd_renderer->set_text_palette(this->proginfo_osd, XINE_TEXTPALETTE_YELLOW_BLACK_TRANSPARENT, OSD_TEXT4);
- this->background =
+ this->background =
this->stream->osd_renderer->new_object(
- this->stream->osd_renderer,
- EPG_WIDTH + EPG_BACKGROUND_MARGIN*2,
+ this->stream->osd_renderer,
+ EPG_WIDTH + EPG_BACKGROUND_MARGIN*2,
EPG_HEIGHT + EPG_BACKGROUND_MARGIN*2);
this->epg_displaying = 0;
@@ -3092,7 +3092,7 @@ static int dvb_plugin_open(input_plugin_t * this_gen)
/* Clear all pids, the pmt will tell us which to use */
for (x = 0; x < MAX_FILTERS; x++){
this->channels[this->channel].pid[x] = DVB_NOPID;
- }
+ }
return 1;
@@ -3128,16 +3128,16 @@ static input_plugin_t *dvb_class_get_instance (input_class_t *class_gen,
this->fd = -1;
this->tuned_in = 0;
#ifndef DVB_NO_BUFFERING
- this->nbc = nbc_init (this->stream);
+ this->nbc = nbc_init (this->stream);
#else
- this->nbc = NULL;
+ this->nbc = NULL;
#endif
this->osd = NULL;
this->event_queue = NULL;
this->record_fd = -1;
this->read_failcount = 0;
this->epg_updater_stop = 0;
-
+
this->input_plugin.open = dvb_plugin_open;
this->input_plugin.get_capabilities = dvb_plugin_get_capabilities;
this->input_plugin.read = dvb_plugin_read;
@@ -3162,7 +3162,7 @@ static void dvb_class_dispose(input_class_t * this_gen)
{
dvb_input_class_t *class = (dvb_input_class_t *) this_gen;
int x;
-
+
for(x=0;x<class->numchannels;x++)
free(class->autoplaylist[x]);
@@ -3208,7 +3208,7 @@ static char **dvb_class_get_autoplay_list(input_class_t * this_gen,
tuner_dispose(tuner);
return class->mrls;
}
-
+
tuner_dispose(tuner);
if (xine_config_lookup_entry(class->xine, "media.dvb.remember_channel", &lastchannel_enable)
@@ -3311,7 +3311,7 @@ static void *init_class (xine_t *xine, void *data) {
"really have more than 1 card "
"in your system."),
0, NULL, (void *) this);
-
+
return this;
}
diff --git a/src/input/input_dvd.c b/src/input/input_dvd.c
index 86c5f44dd..e58498abd 100644
--- a/src/input/input_dvd.c
+++ b/src/input/input_dvd.c
@@ -1,26 +1,26 @@
-/*
- * Copyright (C) 2000-2005 the xine project,
+/*
+ * Copyright (C) 2000-2005 the xine project,
* Rich Wareham <richwareham@users.sourceforge.net>
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
*/
/* This file was origninally part of the xine-dvdnav project
- * at http://dvd.sf.net/.
+ * at http://dvd.sf.net/.
*/
/* TODO:
@@ -123,7 +123,7 @@
#else
#define DVD_PATH "/dev/dvd"
#define RDVD_PATH "/dev/rdvd"
-#endif
+#endif
/* Some misc. defines */
#ifdef DVD_VIDEO_LB_LEN
@@ -153,7 +153,7 @@
/* Array to hold MRLs returned by get_autoplay_list */
#define MAX_DIR_ENTRIES 1250
-#define MAX_STR_LEN 255
+#define MAX_STR_LEN 255
#if defined (__FreeBSD__)
# define off64_t off_t
@@ -176,7 +176,7 @@ typedef struct {
xine_stream_t *stream;
xine_event_queue_t *event_queue;
-
+
int pause_timer; /* Cell still-time timer */
int pause_counter;
time_t pause_end_time;
@@ -186,7 +186,7 @@ typedef struct {
int64_t pg_start;
int32_t buttonN;
int typed_buttonN;/* for XINE_EVENT_INPUT_NUMBER_* */
-
+
int32_t mouse_buttonN;
int mouse_in;
@@ -195,13 +195,13 @@ typedef struct {
int seekable; /* are we seekable? */
int mode; /* MODE_NAVIGATE / MODE_TITLE */
int tt, pr; /* title / chapter */
-
+
/* xine specific variables */
const char *current_dvd_device; /* DVD device currently open */
char *mrl; /* Current MRL */
dvdnav_t *dvdnav; /* Handle for libdvdnav */
const char *dvd_name;
-
+
/* special buffer handling for libdvdnav caching */
pthread_mutex_t buf_mutex;
void *source;
@@ -240,16 +240,16 @@ static void xine_dvd_send_button_update(dvd_input_plugin_t *this, int mode);
/* Callback on device name change */
static void device_change_cb(void *data, xine_cfg_entry_t *cfg) {
dvd_input_class_t *class = (dvd_input_class_t *) data;
-
+
class->dvd_device = cfg->str_value;
}
static uint32_t dvd_plugin_get_capabilities (input_plugin_t *this_gen) {
dvd_input_plugin_t *this = (dvd_input_plugin_t*)this_gen;
-
+
trace_print("Called\n");
- return INPUT_CAP_BLOCK |
+ return INPUT_CAP_BLOCK |
/* TODO: figure out if there is any "allow copying" flag on DVD.
* maybe set INPUT_CAP_RIP_FORBIDDEN only for encrypted media?
*/
@@ -257,7 +257,7 @@ static uint32_t dvd_plugin_get_capabilities (input_plugin_t *this_gen) {
#if CAN_SEEK
(this->seekable ? INPUT_CAP_SEEKABLE : 0) |
#endif
- INPUT_CAP_AUDIOLANG | INPUT_CAP_SPULANG | INPUT_CAP_CHAPTERS;
+ INPUT_CAP_AUDIOLANG | INPUT_CAP_SPULANG | INPUT_CAP_CHAPTERS;
}
static void read_ahead_cb(void *this_gen, xine_cfg_entry_t *entry) {
@@ -274,7 +274,7 @@ static void read_ahead_cb(void *this_gen, xine_cfg_entry_t *entry) {
dvdnav_set_readahead_flag(this->dvdnav, entry->num_value);
}
}
-
+
static void seek_mode_cb(void *this_gen, xine_cfg_entry_t *entry) {
dvd_input_class_t *class = (dvd_input_class_t*)this_gen;
@@ -289,7 +289,7 @@ static void seek_mode_cb(void *this_gen, xine_cfg_entry_t *entry) {
dvdnav_set_PGC_positioning_flag(this->dvdnav, !entry->num_value);
}
}
-
+
static void region_changed_cb (void *this_gen, xine_cfg_entry_t *entry) {
dvd_input_class_t *class = (dvd_input_class_t*)this_gen;
@@ -312,10 +312,10 @@ static void language_changed_cb(void *this_gen, xine_cfg_entry_t *entry) {
return;
class->language = entry->str_value[0] << 8 | entry->str_value[1];
-
+
if(class->ip) {
dvd_input_plugin_t *this = class->ip;
-
+
dvdnav_menu_language_select(this->dvdnav, entry->str_value);
dvdnav_audio_language_select(this->dvdnav, entry->str_value);
dvdnav_spu_language_select(this->dvdnav, entry->str_value);
@@ -347,14 +347,14 @@ static void send_mouse_enter_leave_event(dvd_input_plugin_t *this, int direction
event.data = &spu_event;
event.data_length = sizeof(spu_event);
xine_event_send(this->stream, &event);
-
+
this->mouse_in = direction;
}
if(!direction)
this->mouse_buttonN = -1;
}
-
+
static int update_title_display(dvd_input_plugin_t *this) {
xine_ui_data_t data;
xine_event_t uevent = {
@@ -366,7 +366,7 @@ static int update_title_display(dvd_input_plugin_t *this) {
int tt=-1, pr=-1;
int num_tt = 0;
- if(!this || !(this->stream))
+ if(!this || !(this->stream))
return 0;
/* Set title/chapter display */
@@ -384,22 +384,22 @@ static int update_title_display(dvd_input_plugin_t *this) {
dvdnav_get_number_of_titles(this->dvdnav, &num_tt );
-
- if(tt >= 1) {
+
+ if(tt >= 1) {
int num_angle = 0, cur_angle = 0;
int num_part = 0;
- /* no menu here */
+ /* no menu here */
/* Reflect angle info if appropriate */
dvdnav_get_number_of_parts(this->dvdnav, tt, &num_part);
dvdnav_get_angle_info(this->dvdnav, &cur_angle, &num_angle);
if(num_angle > 1) {
data.str_len = snprintf(data.str, sizeof(data.str),
"Title %i, Chapter %i, Angle %i of %i",
- tt,pr,cur_angle, num_angle);
+ tt,pr,cur_angle, num_angle);
_x_stream_info_set(this->stream,XINE_STREAM_INFO_DVD_ANGLE_NUMBER,cur_angle);
_x_stream_info_set(this->stream,XINE_STREAM_INFO_DVD_ANGLE_COUNT,num_angle);
} else {
- data.str_len = snprintf(data.str, sizeof(data.str),
+ data.str_len = snprintf(data.str, sizeof(data.str),
"Title %i, Chapter %i",
tt,pr);
_x_stream_info_set(this->stream,XINE_STREAM_INFO_DVD_ANGLE_NUMBER,0);
@@ -429,10 +429,10 @@ static int update_title_display(dvd_input_plugin_t *this) {
_x_stream_info_set(this->stream,XINE_STREAM_INFO_DVD_ANGLE_NUMBER,0);
_x_stream_info_set(this->stream,XINE_STREAM_INFO_DVD_ANGLE_COUNT,0);
}
-
+
if (this->dvd_name && this->dvd_name[0] &&
(data.str_len + strlen(this->dvd_name) < sizeof(data.str))) {
- data.str_len += snprintf(data.str+data.str_len, sizeof(data.str) - data.str_len,
+ data.str_len += snprintf(data.str+data.str_len, sizeof(data.str) - data.str_len,
", %s", this->dvd_name);
}
#ifdef INPUT_DEBUG
@@ -445,16 +445,16 @@ static int update_title_display(dvd_input_plugin_t *this) {
static void dvd_plugin_dispose (input_plugin_t *this_gen) {
dvd_input_plugin_t *this = (dvd_input_plugin_t*)this_gen;
-
+
trace_print("Called\n");
-
+
if (this->event_queue)
xine_event_dispose_queue (this->event_queue);
-
+
((dvd_input_class_t *)this_gen->input_class)->ip = NULL;
if (this->dvdnav)
dvdnav_close(this->dvdnav);
-
+
pthread_mutex_lock(&this->buf_mutex);
if (this->mem_stack) {
/* raise the freeing flag, so that the plugin will be freed as soon
@@ -488,11 +488,11 @@ static void dvd_build_mrl_list(dvd_input_plugin_t *this) {
this->class->num_mrls = 0;
}
- if (dvdnav_open(&(this->dvdnav),
+ if (dvdnav_open(&(this->dvdnav),
this->dvd_device) == DVDNAV_STATUS_ERR) {
return;
}
-
+
this->current_dvd_device = this->dvd_device;
this->opened = 1;
@@ -514,7 +514,7 @@ static void dvd_build_mrl_list(dvd_input_plugin_t *this) {
/* allocate enough memory for:
* - a list of pointers to mrls sizeof(xine_mrl_t *) * (num_mrls+1)
- * - possible alignment of the mrl array
+ * - possible alignment of the mrl array
* - an array of mrl structures sizeof(xine_mrl_t) * num_mrls
* - enough chars for every filename sizeof(char)*25 * num_mrls
* - "dvd:/000000.000000\0" = 25 chars
@@ -522,7 +522,7 @@ static void dvd_build_mrl_list(dvd_input_plugin_t *this) {
if ((this->mrls = (xine_mrl_t **) malloc(sizeof(xine_mrl_t *) + num_mrls *
(sizeof(xine_mrl_t*) + sizeof(xine_mrl_t) + 25*sizeof(char)) +
xine_mrl_alignment))) {
-
+
/* the first mrl struct comes after the pointer list */
xine_mrl_t *mrl = PTR_ALIGN(&this->mrls[num_mrls+1], xine_mrl_alignment);
@@ -555,7 +555,7 @@ static void dvd_build_mrl_list(dvd_input_plugin_t *this) {
static void dvd_plugin_free_buffer(buf_element_t *buf) {
dvd_input_plugin_t *this = buf->source;
-
+
pthread_mutex_lock(&this->buf_mutex);
/* give this buffer back to libdvdnav */
dvdnav_free_cache_block(this->dvdnav, buf->mem);
@@ -575,7 +575,7 @@ static void dvd_plugin_free_buffer(buf_element_t *buf) {
}
}
-static buf_element_t *dvd_plugin_read_block (input_plugin_t *this_gen,
+static buf_element_t *dvd_plugin_read_block (input_plugin_t *this_gen,
fifo_buffer_t *fifo, off_t nlen) {
dvd_input_plugin_t *this = (dvd_input_plugin_t*)this_gen;
buf_element_t *buf;
@@ -596,7 +596,7 @@ static buf_element_t *dvd_plugin_read_block (input_plugin_t *this_gen,
while(!finished) {
dvd_handle_events(this);
-
+
if (block != buf->mem) {
/* if we already have a dvdnav cache block, give it back first */
dvdnav_free_cache_block(this->dvdnav, block);
@@ -614,17 +614,17 @@ static buf_element_t *dvd_plugin_read_block (input_plugin_t *this_gen,
}
switch(event) {
- case DVDNAV_BLOCK_OK:
+ case DVDNAV_BLOCK_OK:
{
buf->content = block;
buf->type = BUF_DEMUX_BLOCK;
/* Make sure we don't think we are still paused */
this->pause_timer = 0;
-
+
/* we got a block, so we might be seekable here */
this->seekable = 1;
-
+
finished = 1;
}
break;
@@ -636,7 +636,7 @@ static buf_element_t *dvd_plugin_read_block (input_plugin_t *this_gen,
(dvdnav_still_event_t*)block;
buf->type = BUF_CONTROL_NOP;
finished = 1;
-
+
/* stills are not seekable */
this->seekable = 0;
@@ -657,7 +657,7 @@ static buf_element_t *dvd_plugin_read_block (input_plugin_t *this_gen,
xine_usec_sleep(50000);
break;
}
- if ((this->pause_timer != 0xff) &&
+ if ((this->pause_timer != 0xff) &&
(time(NULL) >= this->pause_end_time)) {
this->pause_timer = 0;
this->pause_end_time = 0;
@@ -677,7 +677,7 @@ static buf_element_t *dvd_plugin_read_block (input_plugin_t *this_gen,
break;
case DVDNAV_SPU_STREAM_CHANGE:
{
- dvdnav_spu_stream_change_event_t *stream_event =
+ dvdnav_spu_stream_change_event_t *stream_event =
(dvdnav_spu_stream_change_event_t*) (block);
buf->content = block;
buf->type = BUF_CONTROL_SPU_CHANNEL;
@@ -695,7 +695,7 @@ static buf_element_t *dvd_plugin_read_block (input_plugin_t *this_gen,
break;
case DVDNAV_AUDIO_STREAM_CHANGE:
{
- dvdnav_audio_stream_change_event_t *stream_event =
+ dvdnav_audio_stream_change_event_t *stream_event =
(dvdnav_audio_stream_change_event_t*) (block);
buf->content = block;
buf->type = BUF_CONTROL_AUDIO_CHANNEL;
@@ -729,7 +729,7 @@ static buf_element_t *dvd_plugin_read_block (input_plugin_t *this_gen,
break;
case DVDNAV_CELL_CHANGE:
{
- dvdnav_cell_change_event_t *cell_event =
+ dvdnav_cell_change_event_t *cell_event =
(dvdnav_cell_change_event_t*) (block);
/* Tell xine to update the UI */
@@ -740,14 +740,14 @@ static buf_element_t *dvd_plugin_read_block (input_plugin_t *this_gen,
.data_length = 0
};
xine_event_send(this->stream, &event);
-
+
if( !update_title_display(this) ) {
if (buf->mem != block) dvdnav_free_cache_block(this->dvdnav, block);
buf->free_buffer(buf);
/* return NULL to indicate end of stream */
return NULL;
}
-
+
this->pg_length = cell_event->pg_length;
this->pgc_length = cell_event->pgc_length;
this->cell_start = cell_event->cell_start;
@@ -799,7 +799,7 @@ static buf_element_t *dvd_plugin_read_block (input_plugin_t *this_gen,
break;
}
}
-
+
if (block != buf->mem) {
/* we have received a buffer from the libdvdnav cache, store all
* necessary values to reconstruct xine's buffer and modify it according to
@@ -835,7 +835,7 @@ static buf_element_t *dvd_plugin_read_block (input_plugin_t *this_gen,
}
pthread_mutex_unlock(&this->buf_mutex);
}
-
+
if (this->pg_length && this->pgc_length) {
switch (((dvd_input_class_t *)this->input_plugin.input_class)->seek_mode) {
case 0: /* PGC based seeking */
@@ -848,7 +848,7 @@ static buf_element_t *dvd_plugin_read_block (input_plugin_t *this_gen,
break;
}
}
-
+
return buf;
}
@@ -866,7 +866,7 @@ static off_t dvd_plugin_read (input_plugin_t *this_gen, void *buf_gen, off_t len
ch_buf[3] = 0xba;
return 1;
}
-
+
static off_t dvd_plugin_get_current_pos (input_plugin_t *this_gen){
dvd_input_plugin_t *this = (dvd_input_plugin_t*)this_gen;
uint32_t pos=0;
@@ -883,28 +883,28 @@ static off_t dvd_plugin_get_current_pos (input_plugin_t *this_gen){
static off_t dvd_plugin_seek (input_plugin_t *this_gen, off_t offset, int origin) {
dvd_input_plugin_t *this = (dvd_input_plugin_t*)this_gen;
-
+
trace_print("Called\n");
if(!this || !this->dvdnav) {
return -1;
}
-
+
dvdnav_sector_search(this->dvdnav, offset / DVD_BLOCK_SIZE , origin);
return dvd_plugin_get_current_pos(this_gen);
}
static off_t dvd_plugin_seek_time (input_plugin_t *this_gen, int time_offset, int origin) {
dvd_input_plugin_t *this = (dvd_input_plugin_t*)this_gen;
-
+
trace_print("Called\n");
-
+
if(!this || !this->dvdnav || origin != SEEK_SET) {
return -1;
}
-
+
dvdnav_time_search(this->dvdnav, time_offset * 90);
-
+
return dvd_plugin_get_current_pos(this_gen);
}
@@ -913,7 +913,7 @@ static off_t dvd_plugin_get_length (input_plugin_t *this_gen) {
uint32_t pos=0;
uint32_t length=1;
dvdnav_status_t result;
-
+
trace_print("Called\n");
if(!this || !this->dvdnav) {
@@ -931,7 +931,7 @@ static uint32_t dvd_plugin_get_blocksize (input_plugin_t *this_gen) {
static const char* dvd_plugin_get_mrl (input_plugin_t *this_gen) {
dvd_input_plugin_t *this = (dvd_input_plugin_t*)this_gen;
-
+
trace_print("Called\n");
return this->mrl;
@@ -943,17 +943,17 @@ static void xine_dvd_send_button_update(dvd_input_plugin_t *this, int mode) {
if (!this || !this->stream || _x_stream_info_get(this->stream,XINE_STREAM_INFO_IGNORE_SPU))
return;
-
+
if (!this->stream->spu_decoder_plugin ||
this->stream->spu_decoder_streamtype != ((BUF_SPU_DVD >> 16) & 0xFF)) {
/* the proper SPU decoder has not been initialized yet,
* so we send a dummy buffer to trigger this */
buf_element_t *buf = this->stream->video_fifo->buffer_pool_alloc(this->stream->video_fifo);
-
+
buf->size = 0;
buf->type = BUF_SPU_DVD;
this->stream->video_fifo->insert(this->stream->video_fifo, buf);
-
+
while (!this->stream->spu_decoder_plugin ||
this->stream->spu_decoder_streamtype != ((BUF_SPU_DVD >> 16) & 0xFF))
xine_usec_sleep(50000);
@@ -962,7 +962,7 @@ static void xine_dvd_send_button_update(dvd_input_plugin_t *this, int mode) {
dvdnav_get_current_highlight(this->dvdnav, &button);
if (button == this->buttonN && (mode == 0) ) return;
-
+
this->buttonN = button; /* Avoid duplicate sending of button info */
#ifdef INPUT_DEBUG
@@ -977,11 +977,11 @@ static void xine_dvd_send_button_update(dvd_input_plugin_t *this, int mode) {
static void dvd_handle_events(dvd_input_plugin_t *this) {
dvd_input_class_t *class = (dvd_input_class_t*)this->input_plugin.input_class;
- config_values_t *config = class->config; /* Pointer to XineRC config file */
+ config_values_t *config = class->config; /* Pointer to XineRC config file */
xine_event_t *event;
while ((event = xine_event_get(this->event_queue))) {
-
+
if(!this->dvdnav) {
xine_event_free(event);
return;
@@ -1055,7 +1055,7 @@ static void dvd_handle_events(dvd_input_plugin_t *this) {
}
}
break;
- case XINE_EVENT_INPUT_ANGLE_NEXT:
+ case XINE_EVENT_INPUT_ANGLE_NEXT:
{
int num = 0, current = 0;
dvdnav_get_angle_info(this->dvdnav, &current, &num);
@@ -1072,7 +1072,7 @@ static void dvd_handle_events(dvd_input_plugin_t *this) {
update_title_display(this);
}
break;
- case XINE_EVENT_INPUT_ANGLE_PREVIOUS:
+ case XINE_EVENT_INPUT_ANGLE_PREVIOUS:
{
int num = 0, current = 0;
dvdnav_get_angle_info(this->dvdnav, &current, &num);
@@ -1101,7 +1101,7 @@ static void dvd_handle_events(dvd_input_plugin_t *this) {
}
}
break;
- case XINE_EVENT_INPUT_MOUSE_BUTTON:
+ case XINE_EVENT_INPUT_MOUSE_BUTTON:
{
pci_t nav_pci;
if(!this->stream || !this->stream->spu_decoder_plugin) {
@@ -1109,7 +1109,7 @@ static void dvd_handle_events(dvd_input_plugin_t *this) {
}
if (this->stream->spu_decoder_plugin->get_interact_info(this->stream->spu_decoder_plugin, &nav_pci) ) {
xine_input_data_t *input = event->data;
- if((input->button == 1) && dvdnav_mouse_activate(this->dvdnav,
+ if((input->button == 1) && dvdnav_mouse_activate(this->dvdnav,
&nav_pci, input->x, input->y) == DVDNAV_STATUS_OK) {
xine_dvd_send_button_update(this, 1);
@@ -1135,7 +1135,7 @@ static void dvd_handle_events(dvd_input_plugin_t *this) {
dvdnav_button_select(this->dvdnav, &nav_pci, *but);
}
break;
- case XINE_EVENT_INPUT_MOUSE_MOVE:
+ case XINE_EVENT_INPUT_MOUSE_MOVE:
{
pci_t nav_pci;
if(!this->stream || !this->stream->spu_decoder_plugin)
@@ -1145,19 +1145,19 @@ static void dvd_handle_events(dvd_input_plugin_t *this) {
/* printf("input_dvd: Mouse move (x,y) = (%i,%i)\n", input->x, input->y); */
if(dvdnav_mouse_select(this->dvdnav, &nav_pci, input->x, input->y) == DVDNAV_STATUS_OK) {
int32_t button;
-
+
dvdnav_get_current_highlight(this->dvdnav, &button);
-
+
if(this->mouse_buttonN != button) {
this->mouse_buttonN = button;
send_mouse_enter_leave_event(this, 1);
}
-
+
}
else {
if(this->mouse_in)
send_mouse_enter_leave_event(this, 0);
-
+
}
}
}
@@ -1237,14 +1237,14 @@ static void dvd_handle_events(dvd_input_plugin_t *this) {
case XINE_EVENT_INPUT_NUMBER_1:
this->typed_buttonN++;
case XINE_EVENT_INPUT_NUMBER_0:
- {
+ {
pci_t nav_pci;
if(!this->stream || !this->stream->spu_decoder_plugin)
return;
if (this->stream->spu_decoder_plugin->get_interact_info(this->stream->spu_decoder_plugin, &nav_pci) ) {
if (dvdnav_button_select_and_activate(this->dvdnav, &nav_pci, this->typed_buttonN) == DVDNAV_STATUS_OK) {
xine_dvd_send_button_update(this, 1);
-
+
if(this->mouse_in)
send_mouse_enter_leave_event(this, 0);
}
@@ -1256,23 +1256,23 @@ static void dvd_handle_events(dvd_input_plugin_t *this) {
case XINE_EVENT_INPUT_NUMBER_10_ADD:
this->typed_buttonN += 10;
}
-
+
xine_event_free(event);
}
return;
}
-static int dvd_plugin_get_optional_data (input_plugin_t *this_gen,
+static int dvd_plugin_get_optional_data (input_plugin_t *this_gen,
void *data, int data_type) {
- dvd_input_plugin_t *this = (dvd_input_plugin_t *) this_gen;
-
+ dvd_input_plugin_t *this = (dvd_input_plugin_t *) this_gen;
+
switch(data_type) {
case INPUT_OPTIONAL_DATA_AUDIOLANG: {
uint16_t lang;
int channel = *((int *)data);
int8_t dvd_channel;
-
+
/* Be paranoid */
if(this && this->stream && this->dvdnav) {
@@ -1283,7 +1283,7 @@ static int dvd_plugin_get_optional_data (input_plugin_t *this_gen,
else
return INPUT_OPTIONAL_UNSUPPORTED;
}
-
+
if (channel == -1)
dvd_channel = dvdnav_get_audio_logical_stream(this->dvdnav, this->stream->audio_channel_auto);
else
@@ -1291,7 +1291,7 @@ static int dvd_plugin_get_optional_data (input_plugin_t *this_gen,
if(dvd_channel != -1) {
lang = dvdnav_audio_stream_to_lang(this->dvdnav, dvd_channel);
-
+
if(lang != 0xffff)
sprintf(data, " %c%c", lang >> 8, lang & 0xff);
/* TODO: provide long version in XINE_META_INFO_FULL_LANG */
@@ -1304,7 +1304,7 @@ static int dvd_plugin_get_optional_data (input_plugin_t *this_gen,
return INPUT_OPTIONAL_SUCCESS;
}
}
- }
+ }
return INPUT_OPTIONAL_UNSUPPORTED;
}
break;
@@ -1314,7 +1314,7 @@ static int dvd_plugin_get_optional_data (input_plugin_t *this_gen,
uint16_t lang;
int channel = *((int *)data);
int8_t dvd_channel;
-
+
/* Be paranoid */
if(this && this->stream && this->dvdnav) {
@@ -1350,14 +1350,14 @@ static int dvd_plugin_get_optional_data (input_plugin_t *this_gen,
return INPUT_OPTIONAL_UNSUPPORTED;
}
break;
-
+
}
-
+
return INPUT_OPTIONAL_UNSUPPORTED;
}
#ifdef __sun
-/*
+/*
* Check the environment, if we're running under sun's
* vold/rmmount control.
*/
@@ -1389,7 +1389,7 @@ check_solaris_vold_device(dvd_input_class_t *this)
static int dvd_parse_try_open(dvd_input_plugin_t *this, const char *locator)
{
const char *intended_dvd_device;
-
+
/* FIXME: we temporarily special-case "dvd:/" for compatibility;
* actually "dvd:/" should play a DVD image stored in /, but for
* now we have it use the default device */
@@ -1411,7 +1411,7 @@ static int dvd_parse_try_open(dvd_input_plugin_t *this, const char *locator)
xine_setenv("DVDCSS_RAW_DEVICE", raw_device.str_value, 1);
intended_dvd_device = class->dvd_device;
}
-
+
/* attempt to open DVD */
if (this->opened) {
if (intended_dvd_device == this->current_dvd_device) {
@@ -1421,7 +1421,7 @@ static int dvd_parse_try_open(dvd_input_plugin_t *this, const char *locator)
/* Changing DVD device */
dvdnav_close(this->dvdnav);
this->dvdnav = NULL;
- this->opened = 0;
+ this->opened = 0;
}
}
if (!this->opened) {
@@ -1430,14 +1430,14 @@ static int dvd_parse_try_open(dvd_input_plugin_t *this, const char *locator)
this->current_dvd_device = intended_dvd_device;
}
}
-
+
return this->opened;
}
static int dvd_parse_mrl(dvd_input_plugin_t *this, char **locator, char **title_part)
{
*title_part = NULL;
-
+
if (dvd_parse_try_open(this, *locator)) {
return MODE_NAVIGATE;
} else {
@@ -1462,7 +1462,7 @@ static int dvd_parse_mrl(dvd_input_plugin_t *this, char **locator, char **title_
*locator = "";
} else
return MODE_FAIL;
-
+
if (dvd_parse_try_open(this, *locator))
if (strlen(*title_part))
return MODE_TITLE;
@@ -1476,24 +1476,24 @@ static int dvd_parse_mrl(dvd_input_plugin_t *this, char **locator, char **title_
static int dvd_plugin_open (input_plugin_t *this_gen) {
dvd_input_plugin_t *this = (dvd_input_plugin_t*)this_gen;
dvd_input_class_t *class = (dvd_input_class_t*)this_gen->input_class;
-
+
char *locator, *locator_orig;
char *title_part;
xine_cfg_entry_t region_entry, lang_entry, cfg_entry;
-
+
trace_print("Called\n");
/* we already checked the "dvd:/" MRL before */
locator_orig = locator = strdup (this->mrl + (sizeof("dvd:") - 1));
/* FIXME: call a generic xine-lib MRL parser here to pre-parse
- * the MRL for ?title=<title>&part=<part> stuff and to expand
+ * the MRL for ?title=<title>&part=<part> stuff and to expand
* escaped characters properly */
_x_mrl_unescape (locator);
this->mode = dvd_parse_mrl(this, &locator, &title_part);
-
+
if (this->mode == MODE_FAIL) {
/* opening failed and we have nothing left to try */
xprintf(this->stream->xine, XINE_VERBOSITY_LOG, _("input_dvd: Error opening DVD device\n"));
@@ -1507,26 +1507,26 @@ static int dvd_plugin_open (input_plugin_t *this_gen) {
dvdnav_get_title_string(this->dvdnav, &this->dvd_name);
if(this->dvd_name)
_x_meta_info_set(this->stream, XINE_META_INFO_TITLE, this->dvd_name);
-
+
/* Set region code */
- if (xine_config_lookup_entry (this->stream->xine, "media.dvd.region",
- &region_entry))
+ if (xine_config_lookup_entry (this->stream->xine, "media.dvd.region",
+ &region_entry))
region_changed_cb (class, &region_entry);
-
+
/* Set languages */
if (xine_config_lookup_entry (this->stream->xine, "media.dvd.language",
- &lang_entry))
+ &lang_entry))
language_changed_cb (class, &lang_entry);
-
+
/* Set cache usage */
if (xine_config_lookup_entry(this->stream->xine, "media.dvd.readahead",
&cfg_entry))
read_ahead_cb(class, &cfg_entry);
-
+
/* Set seek mode */
if (xine_config_lookup_entry(this->stream->xine, "media.dvd.seek_behaviour",
&cfg_entry))
- seek_mode_cb(class, &cfg_entry);
+ seek_mode_cb(class, &cfg_entry);
/* Set single chapter mode */
if (xine_config_lookup_entry(this->stream->xine, "media.dvd.play_single_chapter",
@@ -1537,7 +1537,7 @@ static int dvd_plugin_open (input_plugin_t *this_gen) {
char *delimiter;
int tt, pr;
int titles, parts;
-
+
/* a <title>.<part> was specified -> resume parsing */
/* See if there is a period. */
@@ -1547,7 +1547,7 @@ static int dvd_plugin_open (input_plugin_t *this_gen) {
tt = strtol(title_part, NULL, 10);
dvdnav_get_number_of_titles(this->dvdnav, &titles);
if((tt < 0) || (tt > titles)) {
- xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"input_dvd: Title %i is out of range (1 to %i).\n", tt, titles);
dvdnav_close(this->dvdnav);
this->dvdnav = NULL;
@@ -1561,7 +1561,7 @@ static int dvd_plugin_open (input_plugin_t *this_gen) {
pr = strtol(delimiter+1, NULL, 10);
dvdnav_get_number_of_parts(this->dvdnav, tt, &parts);
if ((pr < 0) || (pr > parts)) {
- xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"input_dvd: Part %i is out of range (1 to %i).\n", pr, parts);
dvdnav_close(this->dvdnav);
this->dvdnav = NULL;
@@ -1625,7 +1625,7 @@ static input_plugin_t *dvd_class_get_instance (input_class_t *class_gen, xine_st
static const char handled_mrl[] = "dvd:/";
trace_print("Called\n");
-
+
/* Check we can handle this MRL */
if (strncasecmp (data, handled_mrl, sizeof(handled_mrl)-1 ) != 0)
return NULL;
@@ -1675,9 +1675,9 @@ static input_plugin_t *dvd_class_get_instance (input_class_t *class_gen, xine_st
pthread_mutex_init(&this->buf_mutex, NULL);
this->freeing = 0;
-
+
this->event_queue = xine_event_new_queue (this->stream);
-
+
/* config callbacks may react now */
class->ip = this;
@@ -1686,7 +1686,7 @@ static input_plugin_t *dvd_class_get_instance (input_class_t *class_gen, xine_st
/* FIXME: adapt to new api. */
#if 0
-static xine_mrl_t **dvd_class_get_dir (input_class_t *this_gen,
+static xine_mrl_t **dvd_class_get_dir (input_class_t *this_gen,
const char *filename, int *nFiles) {
dvd_input_class_t *this = (dvd_input_class_t*)this_gen;
@@ -1703,11 +1703,11 @@ static xine_mrl_t **dvd_class_get_dir (input_class_t *this_gen,
}
#endif
-static char **dvd_class_get_autoplay_list (input_class_t *this_gen,
+static char **dvd_class_get_autoplay_list (input_class_t *this_gen,
int *num_files) {
dvd_input_class_t *this = (dvd_input_class_t *) this_gen;
- trace_print("get_autoplay_list entered\n");
+ trace_print("get_autoplay_list entered\n");
this->filelist[0] = "dvd:/";
this->filelist[1] = NULL;
@@ -1754,7 +1754,7 @@ static void *init_class (xine_t *xine, void *data) {
this = (dvd_input_class_t *) calloc(1, sizeof (dvd_input_class_t));
if (!this)
return NULL;
-
+
this->input_class.get_instance = dvd_class_get_instance;
this->input_class.identifier = "DVD";
this->input_class.description = N_("DVD Navigator");
@@ -1765,7 +1765,7 @@ static void *init_class (xine_t *xine, void *data) {
this->input_class.get_autoplay_list = dvd_class_get_autoplay_list;
this->input_class.dispose = dvd_class_dispose;
this->input_class.eject_media = dvd_class_eject_media;
-
+
this->config = config;
this->xine = xine;
@@ -1789,7 +1789,7 @@ static void *init_class (xine_t *xine, void *data) {
char *raw_device;
static const char *const decrypt_modes[] = { "key", "disc", "title", NULL };
int mode;
-
+
raw_device = config->register_filename(config, "media.dvd.raw_device",
RDVD_PATH, XINE_CONFIG_STRING_IS_DEVICE_NAME,
_("raw device set up for DVD access"),
@@ -1804,14 +1804,14 @@ static void *init_class (xine_t *xine, void *data) {
"(man raw) for further information."),
10, NULL, NULL);
if (raw_device) xine_setenv("DVDCSS_RAW_DEVICE", raw_device, 0);
-
+
mode = config->register_enum(config, "media.dvd.css_decryption_method", 0,
decrypt_modes, _("CSS decryption method"),
_("Selects the decryption method libdvdcss will use to descramble "
"copy protected DVDs. Try the various methods, if you have problems "
"playing scrambled DVDs."), 20, NULL, NULL);
xine_setenv("DVDCSS_METHOD", decrypt_modes[mode], 0);
-
+
if(xine->verbosity > XINE_VERBOSITY_NONE)
xine_setenv("DVDCSS_VERBOSE", "2", 0);
else
@@ -1819,7 +1819,7 @@ static void *init_class (xine_t *xine, void *data) {
dlclose(dvdcss);
}
-
+
config->register_num(config, "media.dvd.region",
1,
_("region the DVD player claims to be in (1 to 8)"),
@@ -1891,7 +1891,7 @@ static void *init_class (xine_t *xine, void *data) {
const plugin_info_t xine_plugin_info[] EXPORTED = {
- /* type, API, "name", version, special_info, init_function */
+ /* type, API, "name", version, special_info, init_function */
{ PLUGIN_INPUT | PLUGIN_MUST_PRELOAD, 18, "DVD", XINE_VERSION_CODE, NULL, init_class },
{ PLUGIN_NONE, 0, "", 0, NULL, NULL }
};
diff --git a/src/input/input_file.c b/src/input/input_file.c
index 26874db7c..29e8f74ca 100644
--- a/src/input/input_file.c
+++ b/src/input/input_file.c
@@ -1,18 +1,18 @@
/*
* Copyright (C) 2000-2005 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -63,18 +63,18 @@ typedef struct {
xine_t *xine;
config_values_t *config;
-
+
char *origin_path;
int show_hidden_files;
int mrls_allocated_entries;
xine_mrl_t **mrls;
-
+
} file_input_class_t;
typedef struct {
input_plugin_t input_plugin;
-
+
xine_stream_t *stream;
int fh;
@@ -153,10 +153,10 @@ static off_t file_plugin_read (input_plugin_t *this_gen, void *buf, off_t len) {
off_t l = len;
if ( (this->mmap_curr + len) > (this->mmap_base + this->mmap_len) )
l = (this->mmap_base + this->mmap_len) - this->mmap_curr;
-
+
memcpy(buf, this->mmap_curr, l);
this->mmap_curr += l;
-
+
return l;
}
#endif
@@ -191,7 +191,7 @@ static buf_element_t *file_plugin_read_block (input_plugin_t *this_gen, fifo_buf
/* FIXME: it's completely illegal to free buffer->mem here
* - buffer->mem has not been allocated by malloc
- * - demuxers expect buffer->mem != NULL
+ * - demuxers expect buffer->mem != NULL
*/
/* free(buf->mem); buf->mem = NULL; */
@@ -200,7 +200,7 @@ static buf_element_t *file_plugin_read_block (input_plugin_t *this_gen, fifo_buf
#endif
{
off_t num_bytes, total_bytes = 0;
-
+
buf->content = buf->mem;
while (total_bytes < todo) {
@@ -218,11 +218,11 @@ static buf_element_t *file_plugin_read_block (input_plugin_t *this_gen, fifo_buf
}
total_bytes += num_bytes;
}
-
+
if( buf != NULL )
buf->size = total_bytes;
}
-
+
return buf;
}
@@ -296,7 +296,7 @@ static uint32_t file_plugin_get_blocksize (input_plugin_t *this_gen) {
*/
static int is_a_dir(char *filepathname) {
struct stat pstat;
-
+
stat(filepathname, &pstat);
return (S_ISDIR(pstat.st_mode));
@@ -308,9 +308,9 @@ static const char* file_plugin_get_mrl (input_plugin_t *this_gen) {
return this->mrl;
}
-static int file_plugin_get_optional_data (input_plugin_t *this_gen,
+static int file_plugin_get_optional_data (input_plugin_t *this_gen,
void *data, int data_type) {
-
+
return INPUT_OPTIONAL_UNSUPPORTED;
}
@@ -416,7 +416,7 @@ static int file_plugin_open (input_plugin_t *this_gen ) {
return 1;
}
-static input_plugin_t *file_class_get_instance (input_class_t *cls_gen, xine_stream_t *stream,
+static input_plugin_t *file_class_get_instance (input_class_t *cls_gen, xine_stream_t *stream,
const char *data) {
/* file_input_class_t *cls = (file_input_class_t *) cls_gen; */
@@ -483,12 +483,12 @@ static input_plugin_t *file_class_get_instance (input_class_t *cls_gen, xine_str
*/
static void hidden_bool_cb(void *data, xine_cfg_entry_t *cfg) {
file_input_class_t *this = (file_input_class_t *) data;
-
+
this->show_hidden_files = cfg->num_value;
}
static void origin_change_cb(void *data, xine_cfg_entry_t *cfg) {
file_input_class_t *this = (file_input_class_t *) data;
-
+
this->origin_path = cfg->str_value;
}
@@ -539,20 +539,20 @@ static int _strverscmp(const char *s1, const char *s2) {
c2 = *p2++;
state |= (c1 == '0') + (ISDIGIT(c1) != 0);
}
-
+
state = result_type[state << 2 | ((c2 == '0') + (ISDIGIT(c2) != 0))];
-
+
switch(state) {
case CMP:
return diff;
-
+
case LEN:
while(ISDIGIT(*p1++))
if(!ISDIGIT(*p2++))
return 1;
-
+
return ISDIGIT(*p2) ? -1 : diff;
-
+
default:
return state;
}
@@ -582,11 +582,11 @@ static uint32_t get_file_type(char *filepathname, char *origin, xine_t *xine) {
return file_type;
}
}
-
+
file_type |= mrl_file;
-
+
mode = pstat.st_mode;
-
+
if(S_ISLNK(mode))
file_type |= mrl_file_symlink;
else if(S_ISDIR(mode))
@@ -606,10 +606,10 @@ static uint32_t get_file_type(char *filepathname, char *origin, xine_t *xine) {
if(mode & S_IXUGO)
file_type |= mrl_file_exec;
}
-
+
if(filepathname[strlen(filepathname) - 1] == '~')
file_type |= mrl_file_backup;
-
+
return file_type;
}
@@ -629,7 +629,7 @@ static off_t get_file_size(char *filepathname, char *origin) {
return pstat.st_size;
}
-static xine_mrl_t **file_class_get_dir (input_class_t *this_gen,
+static xine_mrl_t **file_class_get_dir (input_class_t *this_gen,
const char *filename, int *nFiles) {
/* FIXME: this code needs cleanup badly */
@@ -651,7 +651,7 @@ static xine_mrl_t **file_class_get_dir (input_class_t *this_gen,
*nFiles = 0;
memset(current_dir, 0, sizeof(current_dir));
- /*
+ /*
* No origin location, so got the content of the current directory
*/
if(!filename) {
@@ -659,7 +659,7 @@ static xine_mrl_t **file_class_get_dir (input_class_t *this_gen,
}
else {
snprintf(current_dir, XINE_PATH_MAX, "%s", filename);
-
+
/* Remove exceed '/' */
while((current_dir[strlen(current_dir) - 1] == '/') && strlen(current_dir) > 1)
current_dir[strlen(current_dir) - 1] = '\0';
@@ -667,14 +667,14 @@ static xine_mrl_t **file_class_get_dir (input_class_t *this_gen,
/* Store new origin path */
try_again_from_home:
-
+
this->config->update_string(this->config, "media.files.origin_path", current_dir);
if(strcasecmp(current_dir, "/"))
snprintf(current_dir_slashed, sizeof(current_dir_slashed), "%s/", current_dir);
else
sprintf(current_dir_slashed, "/");
-
+
/*
* Ooch!
*/
@@ -689,28 +689,28 @@ static xine_mrl_t **file_class_get_dir (input_class_t *this_gen,
return NULL;
}
-
+
dir_files = (xine_mrl_t *) calloc(MAXFILES, sizeof(xine_mrl_t));
hide_files = (xine_mrl_t *) calloc(MAXFILES, sizeof(xine_mrl_t));
norm_files = (xine_mrl_t *) calloc(MAXFILES, sizeof(xine_mrl_t));
-
+
while((pdirent = readdir(pdir)) != NULL) {
-
+
memset(fullfilename, 0, sizeof(fullfilename));
snprintf(fullfilename, sizeof(fullfilename), "%s/%s", current_dir, pdirent->d_name);
-
+
if(is_a_dir(fullfilename)) {
-
+
/* if user don't want to see hidden files, ignore them */
- if(this->show_hidden_files == 0 &&
+ if(this->show_hidden_files == 0 &&
((strlen(pdirent->d_name) > 1)
&& (pdirent->d_name[0] == '.' && pdirent->d_name[1] != '.'))) {
;
}
else {
-
+
dir_files[num_dir_files].origin = strdup(current_dir);
- asprintf(&(dir_files[num_dir_files].mrl), "%s%s",
+ asprintf(&(dir_files[num_dir_files].mrl), "%s%s",
current_dir_slashed, pdirent->d_name);
dir_files[num_dir_files].link = NULL;
dir_files[num_dir_files].type = get_file_type(fullfilename, current_dir, this->xine);
@@ -720,11 +720,11 @@ static xine_mrl_t **file_class_get_dir (input_class_t *this_gen,
if(dir_files[num_dir_files].type & mrl_file_symlink) {
char linkbuf[XINE_PATH_MAX + XINE_NAME_MAX + 1];
int linksize;
-
+
memset(linkbuf, 0, sizeof(linkbuf));
linksize = readlink(fullfilename, linkbuf, XINE_PATH_MAX + XINE_NAME_MAX);
-
- if(linksize < 0)
+
+ if(linksize < 0)
xprintf (this->xine, XINE_VERBOSITY_DEBUG,
"input_file: readlink() failed: %s\n", strerror(errno));
else {
@@ -734,7 +734,7 @@ static xine_mrl_t **file_class_get_dir (input_class_t *this_gen,
dir_files[num_dir_files].type |= get_file_type(dir_files[num_dir_files].link, current_dir, this->xine);
}
}
-
+
num_dir_files++;
}
@@ -746,20 +746,20 @@ static xine_mrl_t **file_class_get_dir (input_class_t *this_gen,
if(this->show_hidden_files) {
hide_files[num_hide_files].origin = strdup(current_dir);
- asprintf(&(hide_files[num_hide_files].mrl), "%s%s",
+ asprintf(&(hide_files[num_hide_files].mrl), "%s%s",
current_dir_slashed, pdirent->d_name);
hide_files[num_hide_files].link = NULL;
hide_files[num_hide_files].type = get_file_type(fullfilename, current_dir, this->xine);
hide_files[num_hide_files].size = get_file_size(fullfilename, current_dir);
-
+
/* The file is a link, follow it */
if(hide_files[num_hide_files].type & mrl_file_symlink) {
char linkbuf[XINE_PATH_MAX + XINE_NAME_MAX + 1];
int linksize;
-
+
memset(linkbuf, 0, sizeof(linkbuf));
linksize = readlink(fullfilename, linkbuf, XINE_PATH_MAX + XINE_NAME_MAX);
-
+
if(linksize < 0) {
xprintf (this->xine, XINE_VERBOSITY_DEBUG,
"input_file: readlink() failed: %s\n", strerror(errno));
@@ -770,7 +770,7 @@ static xine_mrl_t **file_class_get_dir (input_class_t *this_gen,
hide_files[num_hide_files].type |= get_file_type(hide_files[num_hide_files].link, current_dir, this->xine);
}
}
-
+
num_hide_files++;
}
@@ -778,39 +778,39 @@ static xine_mrl_t **file_class_get_dir (input_class_t *this_gen,
else {
norm_files[num_norm_files].origin = strdup(current_dir);
- asprintf(&(norm_files[num_norm_files].mrl), "%s%s",
+ asprintf(&(norm_files[num_norm_files].mrl), "%s%s",
current_dir_slashed, pdirent->d_name);
norm_files[num_norm_files].link = NULL;
norm_files[num_norm_files].type = get_file_type(fullfilename, current_dir, this->xine);
norm_files[num_norm_files].size = get_file_size(fullfilename, current_dir);
-
+
/* The file is a link, follow it */
if(norm_files[num_norm_files].type & mrl_file_symlink) {
char linkbuf[XINE_PATH_MAX + XINE_NAME_MAX + 1];
int linksize;
-
+
memset(linkbuf, 0, sizeof(linkbuf));
linksize = readlink(fullfilename, linkbuf, XINE_PATH_MAX + XINE_NAME_MAX);
-
+
if(linksize < 0) {
xprintf (this->xine, XINE_VERBOSITY_DEBUG,
"input_file: readlink() failed: %s\n", strerror(errno));
}
else {
- norm_files[num_norm_files].link =
+ norm_files[num_norm_files].link =
strndup(linkbuf, linksize);
norm_files[num_norm_files].type |= get_file_type(norm_files[num_norm_files].link, current_dir, this->xine);
}
}
-
+
num_norm_files++;
}
-
+
num_files++;
}
-
+
closedir(pdir);
-
+
/*
* Ok, there are some files here, so sort
* them then store them into global mrls array.
@@ -825,18 +825,18 @@ static xine_mrl_t **file_class_get_dir (input_class_t *this_gen,
*/
if(num_dir_files)
qsort(dir_files, num_dir_files, sizeof(xine_mrl_t), func);
-
+
if(num_hide_files)
qsort(hide_files, num_hide_files, sizeof(xine_mrl_t), func);
-
+
if(num_norm_files)
qsort(norm_files, num_norm_files, sizeof(xine_mrl_t), func);
-
+
/*
* Add directories entries
*/
for(i = 0; i < num_dir_files; i++) {
-
+
if(num_files >= this->mrls_allocated_entries) {
++this->mrls_allocated_entries;
this->mrls = realloc(this->mrls, (this->mrls_allocated_entries+1) * sizeof(xine_mrl_t*));
@@ -844,8 +844,8 @@ static xine_mrl_t **file_class_get_dir (input_class_t *this_gen,
}
else
memset(this->mrls[num_files], 0, sizeof(xine_mrl_t));
-
- MRL_DUPLICATE(&dir_files[i], this->mrls[num_files]);
+
+ MRL_DUPLICATE(&dir_files[i], this->mrls[num_files]);
num_files++;
}
@@ -854,7 +854,7 @@ static xine_mrl_t **file_class_get_dir (input_class_t *this_gen,
* Add hidden files entries
*/
for(i = 0; i < num_hide_files; i++) {
-
+
if(num_files >= this->mrls_allocated_entries) {
++this->mrls_allocated_entries;
this->mrls = realloc(this->mrls, (this->mrls_allocated_entries+1) * sizeof(xine_mrl_t*));
@@ -862,13 +862,13 @@ static xine_mrl_t **file_class_get_dir (input_class_t *this_gen,
}
else
memset(this->mrls[num_files], 0, sizeof(xine_mrl_t));
-
- MRL_DUPLICATE(&hide_files[i], this->mrls[num_files]);
+
+ MRL_DUPLICATE(&hide_files[i], this->mrls[num_files]);
num_files++;
}
-
- /*
+
+ /*
* Add other files entries
*/
for(i = 0; i < num_norm_files; i++) {
@@ -881,24 +881,24 @@ static xine_mrl_t **file_class_get_dir (input_class_t *this_gen,
else
memset(this->mrls[num_files], 0, sizeof(xine_mrl_t));
- MRL_DUPLICATE(&norm_files[i], this->mrls[num_files]);
+ MRL_DUPLICATE(&norm_files[i], this->mrls[num_files]);
num_files++;
}
-
+
/* Some cleanups before leaving */
for(i = num_dir_files; i == 0; i--)
MRL_ZERO(&dir_files[i]);
free(dir_files);
-
+
for(i = num_hide_files; i == 0; i--)
MRL_ZERO(&hide_files[i]);
free(hide_files);
-
+
for(i = num_norm_files; i == 0; i--)
MRL_ZERO(&norm_files[i]);
free(norm_files);
-
+
}
else {
free(hide_files);
@@ -906,12 +906,12 @@ static xine_mrl_t **file_class_get_dir (input_class_t *this_gen,
free(norm_files);
return NULL;
}
-
+
/*
* Inform caller about files found number.
*/
*nFiles = num_files;
-
+
/*
* Freeing exceeded mrls if exists.
*/
@@ -919,7 +919,7 @@ static xine_mrl_t **file_class_get_dir (input_class_t *this_gen,
MRL_ZERO(this->mrls[this->mrls_allocated_entries - 1]);
free(this->mrls[this->mrls_allocated_entries--]);
}
-
+
/*
* This is useful to let UI know where it should stops ;-).
*/
@@ -961,7 +961,7 @@ static void *init_plugin (xine_t *xine, void *data) {
this->xine = xine;
this->config = xine->config;
config = xine->config;
-
+
this->input_class.get_instance = file_class_get_instance;
this->input_class.identifier = "file";
this->input_class.description = N_("file input plugin");
@@ -975,7 +975,7 @@ static void *init_plugin (xine_t *xine, void *data) {
{
char current_dir[XINE_PATH_MAX + 1];
-
+
if(getcwd(current_dir, sizeof(current_dir)) == NULL)
strcpy(current_dir, ".");
@@ -986,14 +986,14 @@ static void *init_plugin (xine_t *xine, void *data) {
"start at this location."),
0, origin_change_cb, (void *) this);
}
-
- this->show_hidden_files = config->register_bool(config,
- "media.files.show_hidden_files",
+
+ this->show_hidden_files = config->register_bool(config,
+ "media.files.show_hidden_files",
0, _("list hidden files"),
_("If enabled, the browser to select the file to "
"play will also show hidden files."),
10, hidden_bool_cb, (void *) this);
-
+
return this;
}
@@ -1002,7 +1002,7 @@ static void *init_plugin (xine_t *xine, void *data) {
*/
const plugin_info_t xine_plugin_info[] EXPORTED = {
- /* type, API, "name", version, special_info, init_function */
+ /* type, API, "name", version, special_info, init_function */
{ PLUGIN_INPUT | PLUGIN_MUST_PRELOAD, 18, "FILE", XINE_VERSION_CODE, NULL, init_plugin },
{ PLUGIN_NONE, 0, "", 0, NULL, NULL }
};
diff --git a/src/input/input_gnome_vfs.c b/src/input/input_gnome_vfs.c
index acb63dcf6..b65530912 100644
--- a/src/input/input_gnome_vfs.c
+++ b/src/input/input_gnome_vfs.c
@@ -1,19 +1,19 @@
/*
* Copyright (C) 2000-2003 the xine project
* 2002 Bastien Nocera <hadess@hadess.net>
- *
+ *
* This file is part of totem,
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -219,7 +219,7 @@ gnomevfs_plugin_get_mrl (input_plugin_t *this_gen)
}
static int
-gnomevfs_plugin_get_optional_data (input_plugin_t *this_gen,
+gnomevfs_plugin_get_optional_data (input_plugin_t *this_gen,
void *data, int data_type)
{
D ("input_gnomevfs: get optional data, type %08x\n", data_type);
diff --git a/src/input/input_http.c b/src/input/input_http.c
index fdd7d74f8..d4a1b4de6 100644
--- a/src/input/input_http.c
+++ b/src/input/input_http.c
@@ -1,18 +1,18 @@
/*
* Copyright (C) 2000-2004 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -74,14 +74,14 @@ typedef struct {
input_plugin_t input_plugin;
xine_stream_t *stream;
-
+
char *mrl;
- nbc_t *nbc;
+ nbc_t *nbc;
off_t curpos;
off_t contentlength;
-
+
char buf[BUFSIZE];
char preview[MAX_PREVIEW_SIZE];
@@ -113,7 +113,7 @@ typedef struct {
/* scratch buffer for forward seeking */
char seek_buf[BUFSIZE];
-
+
} http_input_plugin_t;
typedef struct {
@@ -141,7 +141,7 @@ static void proxy_host_change_cb (void *this_gen, xine_cfg_entry_t *cfg) {
static void proxy_port_change_cb(void *this_gen, xine_cfg_entry_t *cfg) {
http_input_class_t *this = (http_input_class_t *)this_gen;
-
+
this->proxyport = cfg->num_value;
}
@@ -173,17 +173,17 @@ static int _x_use_proxy(http_input_class_t *this, const char *host) {
struct hostent *info;
size_t i = 0, host_len, noprox_len;
- /*
- * get full host name
+ /*
+ * get full host name
*/
if ((info = gethostbyname(host)) == NULL) {
- xine_log(this->xine, XINE_LOG_MSG,
+ xine_log(this->xine, XINE_LOG_MSG,
_("input_http: gethostbyname(%s) failed: %s\n"), host,
hstrerror(h_errno));
return 1;
}
if (!info->h_name) return 1;
-
+
if ( info->h_addr_list[0] ) {
/* \177\0\0\1 is the *octal* representation of 127.0.0.1 */
if ( info->h_addrtype == AF_INET && !memcmp(info->h_addr_list[0], "\177\0\0\1", 4) ) {
@@ -247,7 +247,7 @@ static void http_plugin_basicauth (const char *user, const char *password, char*
}
static int http_plugin_read_metainf (http_input_plugin_t *this) {
-
+
char metadata_buf[255 * 16];
unsigned char len = 0;
char *title_end;
@@ -255,19 +255,19 @@ static int http_plugin_read_metainf (http_input_plugin_t *this) {
const char *radio;
xine_event_t uevent;
xine_ui_data_t data;
-
+
/* get the length of the metadata */
if (_x_io_tcp_read (this->stream, this->fh, (char*)&len, 1) != 1)
return 0;
lprintf ("http_plugin_read_metainf: len=%d\n", len);
-
+
if (len > 0) {
if (_x_io_tcp_read (this->stream, this->fh, metadata_buf, len * 16) != (len * 16))
return 0;
-
+
metadata_buf[len * 16] = '\0';
-
+
lprintf ("http_plugin_read_metainf: %s\n", metadata_buf);
/* Extract the title of the current song */
@@ -280,13 +280,13 @@ static int http_plugin_read_metainf (http_input_plugin_t *this) {
}
if ((title_end = strstr(songtitle, terminator))) {
*title_end = '\0';
-
+
if ((!this->shoutcast_songtitle ||
(strcmp(songtitle, this->shoutcast_songtitle))) &&
(strlen(songtitle) > 0)) {
-
+
lprintf ("http_plugin_read_metainf: songtitle: %s\n", songtitle);
-
+
if (this->shoutcast_songtitle)
free(this->shoutcast_songtitle);
this->shoutcast_songtitle = strdup(songtitle);
@@ -323,7 +323,7 @@ static off_t http_plugin_read_int (http_input_plugin_t *this,
char *buf, off_t total) {
int read_bytes = 0;
int nlen;
-
+
lprintf("total=%"PRId64"\n", total);
while (total) {
nlen = total;
@@ -338,7 +338,7 @@ static off_t http_plugin_read_int (http_input_plugin_t *this,
if (!http_plugin_read_metainf(this))
goto error;
this->shoutcast_pos = 0;
-
+
} else {
nlen = _x_io_tcp_read (this->stream, this->fh, &buf[read_bytes], nlen);
if (nlen < 0)
@@ -365,7 +365,7 @@ static off_t http_plugin_read_int (http_input_plugin_t *this,
this->shoutcast_pos += nlen;
}
-
+
/* end of file */
if (nlen == 0)
return read_bytes;
@@ -373,9 +373,9 @@ static off_t http_plugin_read_int (http_input_plugin_t *this,
total -= nlen;
}
return read_bytes;
-
+
error:
- if (!_x_action_pending(this->stream))
+ if (!_x_action_pending(this->stream))
_x_message (this->stream, XINE_MSG_READ_ERROR, this->host, NULL);
xine_log (this->stream->xine, XINE_LOG_MSG, _("input_http: read error %d\n"), errno);
return read_bytes;
@@ -411,7 +411,7 @@ static off_t http_plugin_read (input_plugin_t *this_gen,
if (n > 0) {
int read_bytes;
read_bytes = http_plugin_read_int (this, &buf[num_bytes], n);
-
+
if (read_bytes < 0)
return read_bytes;
@@ -429,7 +429,7 @@ static int resync_nsv(http_input_plugin_t *this) {
lprintf("resyncing NSV stream\n");
while ((pos < 3) && (read_bytes < (1024*1024))) {
-
+
if (http_plugin_read_int(this, (char*)&c, 1) != 1)
return 1;
@@ -461,7 +461,7 @@ static int resync_nsv(http_input_plugin_t *this) {
if (pos == 3) {
lprintf("NSV stream resynced\n");
} else {
- xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"http: cannot resync NSV stream!\n");
return 0;
}
@@ -546,10 +546,10 @@ static off_t http_plugin_seek(input_plugin_t *this_gen, off_t offset, int origin
if( this->curpos <= this->preview_size )
this->curpos = offset;
else
- xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"http: cannot seek back! (%" PRIdMAX " > %" PRIdMAX ")\n",
(intmax_t)this->curpos, (intmax_t)offset);
-
+
} else {
offset -= this->curpos;
@@ -598,7 +598,7 @@ static void http_plugin_dispose (input_plugin_t *this_gen ) {
close(this->fh);
this->fh = -1;
}
-
+
if (this->nbc) {
nbc_close (this->nbc);
this->nbc = NULL;
@@ -617,7 +617,7 @@ static void report_progress (xine_stream_t *stream, int p) {
xine_event_t event;
xine_progress_data_t prg;
-
+
prg.description = _("Connecting HTTP server...");
prg.percent = p;
@@ -642,7 +642,7 @@ static int http_plugin_open (input_plugin_t *this_gen ) {
mime_type[0] = 0;
use_proxy = this_class->proxyhost && strlen(this_class->proxyhost);
-
+
if (!_x_parse_url(this->mrl, &this->proto, &this->host, &this->port,
&this->user, &this->password, &this->uri,
&this->user_agent)) {
@@ -653,7 +653,7 @@ static int http_plugin_open (input_plugin_t *this_gen ) {
if (this->port == 0)
this->port = DEFAULT_HTTP_PORT;
-
+
if (this_class->proxyport == 0)
proxyport = DEFAULT_HTTP_PORT;
else
@@ -667,10 +667,10 @@ static int http_plugin_open (input_plugin_t *this_gen ) {
printf ("input_http: password : >%s<\n", this->password);
printf ("input_http: path : >%s<\n", this->uri);
-
+
if (use_proxy)
printf (" via proxy >%s:%d<", this_class->proxyhost, proxyport);
-
+
printf ("\n");
}
@@ -680,13 +680,13 @@ static int http_plugin_open (input_plugin_t *this_gen ) {
this->fh = _x_io_tcp_connect (this->stream, this_class->proxyhost, proxyport);
else
this->fh = _x_io_tcp_connect (this->stream, this->host, this->port);
-
+
this->curpos = 0;
-
+
if (this->fh == -1)
return -2;
- {
+ {
uint32_t timeout, progress;
xine_cfg_entry_t cfgentry;
if (xine_config_lookup_entry (this->stream->xine, "media.network.timeout", &cfgentry)) {
@@ -716,10 +716,10 @@ static int http_plugin_open (input_plugin_t *this_gen ) {
snprintf (this->buf, BUFSIZE, "GET http://%s%s HTTP/1.0\015\012",
this->host, this->uri);
}
- }
+ }
else
snprintf (this->buf, BUFSIZE, "GET %s HTTP/1.0\015\012", this->uri);
-
+
buflen = strlen(this->buf);
if (this->port != DEFAULT_HTTP_PORT)
snprintf (this->buf + buflen, BUFSIZE - buflen, "Host: %s:%d\015\012",
@@ -727,7 +727,7 @@ static int http_plugin_open (input_plugin_t *this_gen ) {
else
snprintf (this->buf + buflen, BUFSIZE - buflen, "Host: %s\015\012",
this->host);
-
+
buflen = strlen(this->buf);
if (use_proxy && this_class->proxyuser && strlen(this_class->proxyuser)) {
char *proxyauth;
@@ -748,7 +748,7 @@ static int http_plugin_open (input_plugin_t *this_gen ) {
buflen = strlen(this->buf);
free(auth);
}
-
+
snprintf(this->buf + buflen, BUFSIZE - buflen,
"User-Agent: %s%sxine/%s\015\012"
"Accept: */*\015\012"
@@ -781,14 +781,14 @@ static int http_plugin_open (input_plugin_t *this_gen ) {
this->buf[len] = '\0';
len--;
-
+
if (len >= 0 && this->buf[len] == '\015') {
this->buf[len] = '\0';
len--;
}
linenum++;
-
+
lprintf ("answer: >%s<\n", this->buf);
if (linenum == 1) {
@@ -804,13 +804,13 @@ static int http_plugin_open (input_plugin_t *this_gen ) {
&httpcode, httpstatus) != 2)
) {
_x_message(this->stream, XINE_MSG_CONNECTION_REFUSED, "invalid http answer", NULL);
- xine_log (this->stream->xine, XINE_LOG_MSG,
+ xine_log (this->stream->xine, XINE_LOG_MSG,
_("input_http: invalid http answer\n"));
return -6;
}
if (httpcode >= 300 && httpcode < 400) {
- xine_log (this->stream->xine, XINE_LOG_MSG,
+ xine_log (this->stream->xine, XINE_LOG_MSG,
_("input_http: 3xx redirection: >%d %s<\n"),
httpcode, httpstatus);
} else if (httpcode == 404) {
@@ -833,7 +833,7 @@ static int http_plugin_open (input_plugin_t *this_gen ) {
} else if (httpcode < 200 || httpcode >= 300) {
_x_message(this->stream, XINE_MSG_CONNECTION_REFUSED, "http status not 2xx: ",
httpstatus, NULL);
- xine_log (this->stream->xine, XINE_LOG_MSG,
+ xine_log (this->stream->xine, XINE_LOG_MSG,
_("input_http: http status not 2xx: >%d %s<\n"),
httpcode, httpstatus);
return -9;
@@ -841,18 +841,18 @@ static int http_plugin_open (input_plugin_t *this_gen ) {
} else {
if (this->contentlength == 0) {
intmax_t contentlength;
-
+
if (sscanf(this->buf, "Content-Length: %" SCNdMAX , &contentlength) == 1) {
- xine_log (this->stream->xine, XINE_LOG_MSG,
+ xine_log (this->stream->xine, XINE_LOG_MSG,
_("input_http: content length = %" PRIdMAX " bytes\n"),
contentlength);
this->contentlength = (off_t)contentlength;
}
}
-
+
if (!strncasecmp(this->buf, "Location: ", 10)) {
char *href = (this->buf + 10);
-
+
lprintf ("trying to open target of redirection: >%s<\n", href);
href = _x_canonicalise_url (this->mrl, href);
@@ -883,13 +883,13 @@ static int http_plugin_open (input_plugin_t *this_gen ) {
(this->buf + sizeof(TAG_ICY_NAME) - 1 +
(*(this->buf + sizeof(TAG_ICY_NAME) - 1) == ' ')));
}
-
+
if (!strncasecmp(this->buf, TAG_ICY_GENRE, sizeof(TAG_ICY_GENRE) - 1)) {
_x_meta_info_set(this->stream, XINE_META_INFO_GENRE,
(this->buf + sizeof(TAG_ICY_GENRE) - 1 +
(*(this->buf + sizeof(TAG_ICY_GENRE) - 1) == ' ')));
}
-
+
/* icy-notice1 is always the same */
if (!strncasecmp(this->buf, TAG_ICY_NOTICE2, sizeof(TAG_ICY_NOTICE2) - 1)) {
char *end;
@@ -900,14 +900,14 @@ static int http_plugin_open (input_plugin_t *this_gen ) {
(this->buf + sizeof(TAG_ICY_NOTICE2) - 1 +
(*(this->buf + sizeof(TAG_ICY_NOTICE2) - 1) == ' ')));
}
-
+
/* metadata interval (in byte) */
if (sscanf(this->buf, TAG_ICY_METAINT"%d", &this->shoutcast_metaint) == 1) {
lprintf("shoutcast_metaint: %d\n", this->shoutcast_metaint);
this->shoutcast_mode = 1;
this->shoutcast_pos = 0;
}
-
+
/* content type */
if (!strncasecmp(this->buf, TAG_CONTENT_TYPE, sizeof(TAG_CONTENT_TYPE) - 1)) {
const char *type = this->buf + sizeof (TAG_CONTENT_TYPE) - 1;
@@ -924,7 +924,7 @@ static int http_plugin_open (input_plugin_t *this_gen ) {
this->is_lastfm = 1;
}
}
-
+
if (len == -1)
done = 1;
else
@@ -961,7 +961,7 @@ static int http_plugin_open (input_plugin_t *this_gen ) {
*newline = '\0';
lprintf("mpegurl pointing to %s\n", buf);
-
+
href = _x_canonicalise_url (this->mrl, buf);
free(this->mrl);
this->mrl = href;
@@ -976,7 +976,7 @@ static int http_plugin_open (input_plugin_t *this_gen ) {
if (this->is_nsv) {
if (!resync_nsv(this))
return -11;
-
+
/* the first 3 chars are "NSV" */
this->preview_size = http_plugin_read_int (this, this->preview + 3, MAX_PREVIEW_SIZE - 3);
} else {
@@ -987,12 +987,12 @@ static int http_plugin_open (input_plugin_t *this_gen ) {
xine_log (this->stream->xine, XINE_LOG_MSG, _("input_http: read error %d\n"), errno);
return -12;
}
-
+
lprintf("preview_size=%"PRId64"\n", this->preview_size);
this->curpos = 0;
if (*mime_type)
this->mime_type = strdup (mime_type);
-
+
return 1;
}
@@ -1003,8 +1003,8 @@ static input_plugin_t *http_class_get_instance (input_class_t *cls_gen, xine_str
const char *mrl) {
/* http_input_class_t *cls = (http_input_class_t *) cls_gen;*/
http_input_plugin_t *this;
-
- if (strncasecmp (mrl, "http://", 7) &&
+
+ if (strncasecmp (mrl, "http://", 7) &&
strncasecmp (mrl, "unsv://", 7) &&
strncasecmp (mrl, "peercast://pls/", 15) &&
!_x_url_user_agent (mrl) /* user agent hacks */) {
@@ -1014,14 +1014,14 @@ static input_plugin_t *http_class_get_instance (input_class_t *cls_gen, xine_str
if (!strncasecmp (mrl, "peercast://pls/", 15)) {
asprintf (&this->mrl, "http://127.0.0.1:7144/stream/%s", mrl+15);
- } else {
+ } else {
this->mrl = strdup (mrl);
}
-
+
this->stream = stream;
this->fh = -1;
this->nbc = nbc_init (this->stream);
-
+
this->input_plugin.open = http_plugin_open;
this->input_plugin.get_capabilities = http_plugin_get_capabilities;
this->input_plugin.read = http_plugin_read;
@@ -1040,7 +1040,7 @@ static input_plugin_t *http_class_get_instance (input_class_t *cls_gen, xine_str
static void http_class_dispose (input_class_t *this_gen) {
http_input_class_t *this = (http_input_class_t *) this_gen;
-
+
free(this->proxyhost_env);
free (this);
@@ -1065,23 +1065,23 @@ static void *init_class (xine_t *xine, void *data) {
this->input_class.dispose = http_class_dispose;
this->input_class.eject_media = NULL;
- /*
- * honour http_proxy envvar
+ /*
+ * honour http_proxy envvar
*/
if((proxy_env = getenv("http_proxy")) && *proxy_env) {
int proxy_port = DEFAULT_HTTP_PORT;
char *p;
-
+
if(!strncmp(proxy_env, "http://", 7))
proxy_env += 7;
this->proxyhost_env = strdup(proxy_env);
-
+
if((p = strrchr(this->proxyhost_env, ':')) && (strlen(p) > 1)) {
*p++ = '\0';
proxy_port = (int) strtol(p, &p, 10);
}
-
+
this->proxyport_env = proxy_port;
}
else
@@ -1090,7 +1090,7 @@ static void *init_class (xine_t *xine, void *data) {
/*
* proxy settings
*/
- this->proxyhost = config->register_string(config,
+ this->proxyhost = config->register_string(config,
"media.network.http_proxy_host", proxy_env ? this->proxyhost_env : "",
_("HTTP proxy host"), _("The hostname of the HTTP proxy."), 10,
proxy_host_change_cb, (void *) this);
@@ -1098,13 +1098,13 @@ static void *init_class (xine_t *xine, void *data) {
"media.network.http_proxy_port", proxy_env ? this->proxyport_env : DEFAULT_HTTP_PORT,
_("HTTP proxy port"), _("The port number of the HTTP proxy."), 10,
proxy_port_change_cb, (void *) this);
-
+
/* registered entries could be empty. Don't ignore envvar */
if(!strlen(this->proxyhost) && (proxy_env && strlen(proxy_env))) {
config->update_string(config, "media.network.http_proxy_host", this->proxyhost_env);
config->update_num(config, "media.network.http_proxy_port", this->proxyport_env);
}
-
+
this->proxyuser = config->register_string(config,
"media.network.http_proxy_user", "", _("HTTP proxy username"),
_("The user name for the HTTP proxy."), 10,
@@ -1117,7 +1117,7 @@ static void *init_class (xine_t *xine, void *data) {
"media.network.http_no_proxy", "", _("Domains for which to ignore the HTTP proxy"),
_("A comma-separated list of domain names for which the proxy is to be ignored.\nIf a domain name is prefixed with '=' then it is treated as a host name only (full match required)."), 10,
no_proxy_list_change_cb, (void *) this);
-
+
return this;
}
@@ -1126,7 +1126,7 @@ static void *init_class (xine_t *xine, void *data) {
*/
const plugin_info_t xine_plugin_info[] EXPORTED = {
- /* type, API, "name", version, special_info, init_function */
+ /* type, API, "name", version, special_info, init_function */
{ PLUGIN_INPUT | PLUGIN_MUST_PRELOAD, 18, "http", XINE_VERSION_CODE, NULL, init_class },
{ PLUGIN_NONE, 0, "", 0, NULL, NULL }
};
diff --git a/src/input/input_mms.c b/src/input/input_mms.c
index 191d1aed0..ec921e106 100644
--- a/src/input/input_mms.c
+++ b/src/input/input_mms.c
@@ -1,18 +1,18 @@
/*
* Copyright (C) 2002-2003 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -76,26 +76,26 @@ typedef struct {
char *mrl;
- nbc_t *nbc;
+ nbc_t *nbc;
char scratch[1025];
int bandwidth;
int protocol; /* mmst or mmsh */
-
+
} mms_input_plugin_t;
typedef struct {
input_class_t input_class;
-
+
mms_input_plugin_t *ip;
int protocol; /* autoprobe, mmst or mmsh */
xine_t *xine;
} mms_input_class_t;
-static off_t mms_plugin_read (input_plugin_t *this_gen,
+static off_t mms_plugin_read (input_plugin_t *this_gen,
void *buf_gen, off_t len) {
mms_input_plugin_t *this = (mms_input_plugin_t *) this_gen;
char *buf = (char *)buf_gen;
@@ -132,7 +132,7 @@ static buf_element_t *mms_plugin_read_block (input_plugin_t *this_gen,
buf->content = buf->mem;
buf->type = BUF_DEMUX_BLOCK;
-
+
total_bytes = mms_plugin_read (this_gen, (char*)buf->content, todo);
if (total_bytes != todo) {
@@ -146,7 +146,7 @@ static buf_element_t *mms_plugin_read_block (input_plugin_t *this_gen,
}
static off_t mms_plugin_seek (input_plugin_t *this_gen, off_t offset, int origin) {
- mms_input_plugin_t *this = (mms_input_plugin_t *) this_gen;
+ mms_input_plugin_t *this = (mms_input_plugin_t *) this_gen;
off_t dest = 0;
off_t curpos = 0;
@@ -161,7 +161,7 @@ static off_t mms_plugin_seek (input_plugin_t *this_gen, off_t offset, int origin
curpos = mmsh_get_current_pos (this->mmsh);
break;
}
-
+
switch (origin) {
case SEEK_SET:
dest = offset;
@@ -178,7 +178,7 @@ static off_t mms_plugin_seek (input_plugin_t *this_gen, off_t offset, int origin
printf ("input_mms: cannot seek back!\n");
return curpos;
}
-
+
while (curpos < dest) {
int n = 0;
int diff;
@@ -196,7 +196,7 @@ static off_t mms_plugin_seek (input_plugin_t *this_gen, off_t offset, int origin
n = mmsh_read (this->mmsh, this->scratch, diff);
break;
}
-
+
curpos += n;
if (n < diff)
@@ -212,7 +212,7 @@ static off_t mms_plugin_seek_time (input_plugin_t *this_gen, int time_offset, in
off_t curpos = 0;
lprintf ("seek_time %d msec, origin %d\n", time_offset, origin);
-
+
switch (this->protocol) {
case PROTOCOL_MMST:
if (origin == SEEK_SET)
@@ -225,12 +225,12 @@ static off_t mms_plugin_seek_time (input_plugin_t *this_gen, int time_offset, in
curpos = mmsh_get_current_pos (this->mmsh);
break;
}
-
+
return curpos;
}
static off_t mms_plugin_get_length (input_plugin_t *this_gen) {
- mms_input_plugin_t *this = (mms_input_plugin_t *) this_gen;
+ mms_input_plugin_t *this = (mms_input_plugin_t *) this_gen;
off_t length = 0;
if (!this->mms)
@@ -262,7 +262,7 @@ static uint32_t mms_plugin_get_blocksize (input_plugin_t *this_gen) {
static off_t mms_plugin_get_current_pos (input_plugin_t *this_gen){
mms_input_plugin_t *this = (mms_input_plugin_t *) this_gen;
off_t curpos = 0;
-
+
switch (this->protocol) {
case PROTOCOL_MMST:
curpos = mms_get_current_pos(this->mms);
@@ -280,10 +280,10 @@ static void mms_plugin_dispose (input_plugin_t *this_gen) {
if (this->mms)
mms_close (this->mms);
-
+
if (this->mmsh)
mmsh_close (this->mmsh);
-
+
this->mms = NULL;
this->mmsh = NULL;
@@ -291,7 +291,7 @@ static void mms_plugin_dispose (input_plugin_t *this_gen) {
nbc_close (this->nbc);
this->nbc = NULL;
}
-
+
free(this->mrl);
free (this);
}
@@ -302,7 +302,7 @@ static const char* mms_plugin_get_mrl (input_plugin_t *this_gen) {
return this->mrl;
}
-static int mms_plugin_get_optional_data (input_plugin_t *this_gen,
+static int mms_plugin_get_optional_data (input_plugin_t *this_gen,
void *data, int data_type) {
mms_input_plugin_t *this = (mms_input_plugin_t *) this_gen;
@@ -318,7 +318,7 @@ static int mms_plugin_get_optional_data (input_plugin_t *this_gen,
break;
}
break;
-
+
default:
return INPUT_OPTIONAL_UNSUPPORTED;
break;
@@ -356,7 +356,7 @@ static int mms_plugin_open (input_plugin_t *this_gen) {
mms_input_plugin_t *this = (mms_input_plugin_t *) this_gen;
mms_t *mms = NULL;
mmsh_t *mmsh = NULL;
-
+
switch (this->protocol) {
case PROTOCOL_UNDEFINED:
mms = mms_connect (this->stream, this->mrl, this->bandwidth);
@@ -374,18 +374,18 @@ static int mms_plugin_open (input_plugin_t *this_gen) {
mmsh = mmsh_connect (this->stream, this->mrl, this->bandwidth);
break;
}
-
+
if (!mms && !mmsh) {
return 0;
}
-
+
this->mms = mms;
this->mmsh = mmsh;
-
+
return 1;
}
-static input_plugin_t *mms_class_get_instance (input_class_t *cls_gen, xine_stream_t *stream,
+static input_plugin_t *mms_class_get_instance (input_class_t *cls_gen, xine_stream_t *stream,
const char *data) {
mms_input_class_t *cls = (mms_input_class_t *) cls_gen;
@@ -393,7 +393,7 @@ static input_plugin_t *mms_class_get_instance (input_class_t *cls_gen, xine_stre
char *mrl = strdup(data);
xine_cfg_entry_t bandwidth_entry;
int protocol;
-
+
lprintf ("trying to open '%s'\n", mrl);
if (!strncasecmp (mrl, "mms://", 6)) {
@@ -413,10 +413,10 @@ static input_plugin_t *mms_class_get_instance (input_class_t *cls_gen, xine_stre
this->mms = NULL;
this->mmsh = NULL;
this->protocol = protocol;
- this->mrl = mrl;
+ this->mrl = mrl;
this->nbc = nbc_init (this->stream);
- if (xine_config_lookup_entry (stream->xine, "media.network.bandwidth",
+ if (xine_config_lookup_entry (stream->xine, "media.network.bandwidth",
&bandwidth_entry)) {
bandwidth_changed_cb(cls, &bandwidth_entry);
}
@@ -435,7 +435,7 @@ static input_plugin_t *mms_class_get_instance (input_class_t *cls_gen, xine_stre
this->input_plugin.get_optional_data = mms_plugin_get_optional_data;
this->input_plugin.input_class = cls_gen;
-
+
return &this->input_plugin;
}
@@ -447,7 +447,7 @@ static void mms_class_dispose (input_class_t *this_gen) {
mms_input_class_t *this = (mms_input_class_t *) this_gen;
this->xine->config->unregister_callback(this->xine->config,
- "media.network.bandwidth");
+ "media.network.bandwidth");
this->xine->config->unregister_callback(this->xine->config,
"media.network.mms_protocol");
free (this);
@@ -479,12 +479,12 @@ static void *init_class (xine_t *xine, void *data) {
0, bandwidth_changed_cb, (void*) this);
this->protocol = xine->config->register_enum(xine->config,
- "media.network.mms_protocol",
- 0,
- mms_protocol_strs,
+ "media.network.mms_protocol",
+ 0,
+ mms_protocol_strs,
_("MMS protocol"),
_("Select the protocol to encapsulate MMS.\nTCP is better but you may need HTTP behind a firewall."),
- 20,
+ 20,
protocol_changed_cb, (void*)this);
return this;
@@ -495,7 +495,7 @@ static void *init_class (xine_t *xine, void *data) {
*/
const plugin_info_t xine_plugin_info[] EXPORTED = {
- /* type, API, "name", version, special_info, init_function */
+ /* type, API, "name", version, special_info, init_function */
{ PLUGIN_INPUT | PLUGIN_MUST_PRELOAD, 18, "mms", XINE_VERSION_CODE, NULL, init_class },
{ PLUGIN_NONE, 0, "", 0, NULL, NULL }
};
diff --git a/src/input/input_net.c b/src/input/input_net.c
index a052d5650..5007b58a3 100644
--- a/src/input/input_net.c
+++ b/src/input/input_net.c
@@ -1,18 +1,18 @@
-/*
+/*
* Copyright (C) 2000-2003 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -21,9 +21,9 @@
* other end and you can watch tv anywhere in the house ..)
*
* how to set up mp1e for use with this plugin:
- *
+ *
* use mp1 to capture the live stream, e.g.
- * mp1e -b 1200 -R 4,32 -a 0 -B 160 -v >live.mpg
+ * mp1e -b 1200 -R 4,32 -a 0 -B 160 -v >live.mpg
*
* add an extra service "xine" to /etc/services and /etc/inetd.conf, e.g.:
* /etc/services:
@@ -78,11 +78,11 @@ typedef struct {
input_plugin_t input_plugin;
xine_stream_t *stream;
-
+
int fh;
char *mrl;
char *host_port;
-
+
char preview[MAX_PREVIEW_SIZE];
off_t preview_size;
@@ -122,21 +122,21 @@ static int host_connect_attempt_ipv4(struct in_addr ia, int port, xine_t *xine)
return -1;
}
- sin.sin_family = AF_INET;
+ sin.sin_family = AF_INET;
sin.sin_addr = ia;
sin.sin_port = htons(port);
-
+
#ifndef WIN32
- if (connect(s, (struct sockaddr *)&sin, sizeof(sin))==-1 && errno != EINPROGRESS)
+ if (connect(s, (struct sockaddr *)&sin, sizeof(sin))==-1 && errno != EINPROGRESS)
#else
- if (connect(s, (struct sockaddr *)&sin, sizeof(sin))==-1 && WSAGetLastError() != WSAEINPROGRESS)
+ if (connect(s, (struct sockaddr *)&sin, sizeof(sin))==-1 && WSAGetLastError() != WSAEINPROGRESS)
#endif
{
xine_log(xine, XINE_LOG_MSG,
_("input_net: connect(): %s\n"), strerror(errno));
close(s);
return -1;
- }
+ }
return s;
}
@@ -144,7 +144,7 @@ static int host_connect_attempt_ipv4(struct in_addr ia, int port, xine_t *xine)
static int host_connect_attempt(int family, struct sockaddr* sin, int addrlen, xine_t *xine) {
int s;
-
+
s = socket(family, SOCK_STREAM, IPPROTO_TCP);
if (s==-1) {
xine_log(xine, XINE_LOG_MSG,
@@ -153,16 +153,16 @@ static int host_connect_attempt(int family, struct sockaddr* sin, int addrlen, x
}
#ifndef WIN32
- if (connect(s, sin, addrlen)==-1 && errno != EINPROGRESS)
+ if (connect(s, sin, addrlen)==-1 && errno != EINPROGRESS)
#else
- if (connect(s, sin, addrlen)==-1 && WSAGetLastError() != WSAEINPROGRESS)
+ if (connect(s, sin, addrlen)==-1 && WSAGetLastError() != WSAEINPROGRESS)
#endif
{
xine_log(xine, XINE_LOG_MSG,
_("input_net: connect(): %s\n"), strerror(errno));
close(s);
return -1;
- }
+ }
return s;
}
@@ -173,14 +173,14 @@ static int host_connect_ipv4(const char *host, int port, xine_t *xine) {
struct hostent *h;
int i;
int s;
-
+
h = gethostbyname(host);
if (h==NULL) {
xine_log(xine, XINE_LOG_MSG,
_("input_net: unable to resolve '%s'.\n"), host);
return -1;
}
-
+
for (i=0; h->h_addr_list[i]; i++) {
struct in_addr ia;
memcpy (&ia, h->h_addr_list[i],4);
@@ -205,36 +205,36 @@ static int host_connect(const char *host, int port, xine_t *xine) {
int error;
char strport[16];
int s;
-
+
memset(&hints, 0, sizeof(hints));
hints.ai_socktype = SOCK_STREAM;
- hints.ai_family = PF_UNSPEC;
-
+ hints.ai_family = PF_UNSPEC;
+
snprintf(strport, sizeof(strport), "%d", port);
lprintf("Resolving host '%s' at port '%s'\n", host, strport);
error = getaddrinfo(host, strport, &hints, &res);
-
+
if (error) {
-
+
xine_log(xine, XINE_LOG_MSG,
_("input_net: unable to resolve '%s'.\n"), host);
return -1;
}
-
+
/* We loop over all addresses and try to connect */
tmpaddr = res;
while (tmpaddr) {
-
- s = host_connect_attempt (tmpaddr->ai_family,
+
+ s = host_connect_attempt (tmpaddr->ai_family,
tmpaddr->ai_addr, tmpaddr->ai_addrlen, xine);
if (s != -1)
return s;
tmpaddr = tmpaddr->ai_next;
}
-
+
xine_log(xine, XINE_LOG_MSG,
_("input_net: unable to connect to '%s'.\n"), host);
return -1;
@@ -246,7 +246,7 @@ static int host_connect(const char *host, int port, xine_t *xine) {
#define LOW_WATER_MARK 50
#define HIGH_WATER_MARK 100
-static off_t net_plugin_read (input_plugin_t *this_gen,
+static off_t net_plugin_read (input_plugin_t *this_gen,
void *buf_gen, off_t len) {
net_input_plugin_t *this = (net_input_plugin_t *) this_gen;
char *buf = (char *)buf_gen;
@@ -274,7 +274,7 @@ static off_t net_plugin_read (input_plugin_t *this_gen,
n = _x_read_abort (this->stream, this->fh, &buf[total], len-total);
xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG, "input_net: got %" PRIdMAX " bytes (%" PRIdMAX "/%" PRIdMAX " bytes read)\n", (intmax_t)n, (intmax_t)total, (intmax_t)len);
-
+
if (n < 0) {
_x_message(this->stream, XINE_MSG_READ_ERROR, this->host_port, NULL);
return 0;
@@ -286,7 +286,7 @@ static off_t net_plugin_read (input_plugin_t *this_gen,
return total;
}
-static buf_element_t *net_plugin_read_block (input_plugin_t *this_gen,
+static buf_element_t *net_plugin_read_block (input_plugin_t *this_gen,
fifo_buffer_t *fifo, off_t todo) {
/* net_input_plugin_t *this = (net_input_plugin_t *) this_gen; */
buf_element_t *buf = fifo->buffer_pool_alloc (fifo);
@@ -301,7 +301,7 @@ static buf_element_t *net_plugin_read_block (input_plugin_t *this_gen,
buf->content = buf->mem;
buf->type = BUF_DEMUX_BLOCK;
-
+
total_bytes = net_plugin_read (this_gen, (char*)buf->content, todo);
if (total_bytes != todo) {
@@ -382,7 +382,7 @@ static const char* net_plugin_get_mrl (input_plugin_t *this_gen) {
return this->mrl;
}
-static int net_plugin_get_optional_data (input_plugin_t *this_gen,
+static int net_plugin_get_optional_data (input_plugin_t *this_gen,
void *data, int data_type) {
net_input_plugin_t *this = (net_input_plugin_t *) this_gen;
@@ -405,10 +405,10 @@ static void net_plugin_dispose (input_plugin_t *this_gen ) {
close(this->fh);
this->fh = -1;
}
-
+
free (this->mrl);
free (this->host_port);
-
+
if (this->nbc) {
nbc_close (this->nbc);
this->nbc = NULL;
@@ -465,28 +465,28 @@ static input_plugin_t *net_class_get_instance (input_class_t *cls_gen, xine_stre
if (!strncasecmp (mrl, "tcp://", 6)) {
filename = (char *) &mrl[6];
-
+
if((!filename) || (strlen(filename) == 0)) {
return NULL;
}
-
+
nbc = nbc_init (stream);
-
+
} else if (!strncasecmp (mrl, "slave://", 8)) {
-
+
filename = (char *) &mrl[8];
-
+
if((!filename) || (strlen(filename) == 0)) {
return NULL;
}
-
+
/* the only difference for slave:// is that network buffering control
* is not used. otherwise, dvd still menus are not displayed (it freezes
* with "buffering..." all the time)
*/
-
+
nbc = NULL;
-
+
} else {
return NULL;
}
@@ -520,7 +520,7 @@ static input_plugin_t *net_class_get_instance (input_class_t *cls_gen, xine_stre
/*
* net plugin class
*/
-
+
static void *init_class (xine_t *xine, void *data) {
net_input_class_t *this;
@@ -545,7 +545,7 @@ static void *init_class (xine_t *xine, void *data) {
*/
const plugin_info_t xine_plugin_info[] EXPORTED = {
- /* type, API, "name", version, special_info, init_function */
+ /* type, API, "name", version, special_info, init_function */
{ PLUGIN_INPUT, 18, "tcp", XINE_VERSION_CODE, NULL, init_class },
{ PLUGIN_NONE, 0, "", 0, NULL, NULL }
};
diff --git a/src/input/input_pnm.c b/src/input/input_pnm.c
index 718473819..2ee46768b 100644
--- a/src/input/input_pnm.c
+++ b/src/input/input_pnm.c
@@ -1,18 +1,18 @@
/*
* Copyright (C) 2002-2003 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -61,21 +61,21 @@ typedef struct {
input_plugin_t input_plugin;
xine_stream_t *stream;
-
+
pnm_t *pnm;
char *mrl;
off_t curpos;
- nbc_t *nbc;
+ nbc_t *nbc;
char scratch[BUFSIZE];
} pnm_input_plugin_t;
-static off_t pnm_plugin_read (input_plugin_t *this_gen,
+static off_t pnm_plugin_read (input_plugin_t *this_gen,
void *buf_gen, off_t len) {
pnm_input_plugin_t *this = (pnm_input_plugin_t *) this_gen;
char *buf = (char *)buf_gen;
@@ -90,7 +90,7 @@ static off_t pnm_plugin_read (input_plugin_t *this_gen,
return n;
}
-static buf_element_t *pnm_plugin_read_block (input_plugin_t *this_gen,
+static buf_element_t *pnm_plugin_read_block (input_plugin_t *this_gen,
fifo_buffer_t *fifo, off_t todo) {
/*pnm_input_plugin_t *this = (pnm_input_plugin_t *) this_gen; */
buf_element_t *buf = fifo->buffer_pool_alloc (fifo);
@@ -107,7 +107,7 @@ static buf_element_t *pnm_plugin_read_block (input_plugin_t *this_gen,
buf->content = buf->mem;
buf->type = BUF_DEMUX_BLOCK;
-
+
total_bytes = pnm_plugin_read (this_gen, (char*)buf->content, todo);
if (total_bytes != todo) {
@@ -150,7 +150,7 @@ static off_t pnm_plugin_seek (input_plugin_t *this_gen, off_t offset, int origin
static off_t pnm_plugin_get_length (input_plugin_t *this_gen) {
/*
- pnm_input_plugin_t *this = (pnm_input_plugin_t *) this_gen;
+ pnm_input_plugin_t *this = (pnm_input_plugin_t *) this_gen;
off_t length;
*/
@@ -187,10 +187,10 @@ static void pnm_plugin_dispose (input_plugin_t *this_gen) {
nbc_close (this->nbc);
this->nbc = NULL;
}
-
+
if(this->mrl)
free(this->mrl);
-
+
free (this);
}
@@ -200,7 +200,7 @@ static const char* pnm_plugin_get_mrl (input_plugin_t *this_gen) {
return this->mrl;
}
-static int pnm_plugin_get_optional_data (input_plugin_t *this_gen,
+static int pnm_plugin_get_optional_data (input_plugin_t *this_gen,
void *data, int data_type) {
pnm_input_plugin_t *this = (pnm_input_plugin_t *) this_gen;
@@ -228,11 +228,11 @@ static int pnm_plugin_open (input_plugin_t *this_gen) {
}
this->pnm = pnm;
-
+
return 1;
}
-static input_plugin_t *pnm_class_get_instance (input_class_t *cls_gen, xine_stream_t *stream,
+static input_plugin_t *pnm_class_get_instance (input_class_t *cls_gen, xine_stream_t *stream,
const char *data) {
/* pnm_input_class_t *cls = (pnm_input_class_t *) cls_gen; */
@@ -248,9 +248,9 @@ static input_plugin_t *pnm_class_get_instance (input_class_t *cls_gen, xine_stre
this->stream = stream;
this->pnm = NULL;
- this->mrl = mrl;
+ this->mrl = mrl;
this->nbc = nbc_init (this->stream);
-
+
this->input_plugin.open = pnm_plugin_open;
this->input_plugin.get_capabilities = pnm_plugin_get_capabilities;
this->input_plugin.read = pnm_plugin_read;
@@ -263,7 +263,7 @@ static input_plugin_t *pnm_class_get_instance (input_class_t *cls_gen, xine_stre
this->input_plugin.dispose = pnm_plugin_dispose;
this->input_plugin.get_optional_data = pnm_plugin_get_optional_data;
this->input_plugin.input_class = cls_gen;
-
+
return &this->input_plugin;
}
@@ -295,7 +295,7 @@ static void *init_class (xine_t *xine, void *data) {
*/
const plugin_info_t xine_plugin_info[] EXPORTED = {
- /* type, API, "name", version, special_info, init_function */
+ /* type, API, "name", version, special_info, init_function */
{ PLUGIN_INPUT, 18, "pnm", XINE_VERSION_CODE, NULL, init_class },
{ PLUGIN_NONE, 0, "", 0, NULL, NULL }
};
diff --git a/src/input/input_pvr.c b/src/input/input_pvr.c
index 07f5d955d..288434c47 100644
--- a/src/input/input_pvr.c
+++ b/src/input/input_pvr.c
@@ -4,17 +4,17 @@
* This plugin was sponsored by 1Control
*
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -32,26 +32,26 @@
* - audio.synchronization.av_sync_method=resample
* - ivtv driver (01 Jul 2003 cvs is known to work)
*
- * MRL:
+ * MRL:
* pvr:/<prefix_to_tmp_files>!<prefix_to_saved_files>!<max_page_age>
*
- * usage:
+ * usage:
* xine pvr:/<prefix_to_tmp_files>\!<prefix_to_saved_files>\!<max_page_age>
*/
/**************************************************************************
-
+
Programmer's note (or how to write your PVR frontend):
-
+
- in order to use live pause functionality you must capture data to disk.
this is done using XINE_EVENT_SET_V4L2 event. it is important to set the
inputs/channel/frequency you want to capture data from.
-
+
comments:
1) session_id must be set: it is used to create the temporary filenames.
-
+
2) if session_id = -1 no data will be recorded to disk (no pause/replay)
-
+
3) if session_id is the same as previous value it will just set the "sync
point". sync point (show_page) may be used by the PVR frontend to tell
that a new show has began. of course, the PVR frontend should be aware
@@ -60,18 +60,18 @@
- when user wants to start recording (that is: temporary data will be made
permanent) it should issue a XINE_EVENT_PVR_SAVE.
mode can be one of the following:
-
+
-1 = do nothing, just set the name (see below)
0 = truncate current session and save from now on
1 = save from last sync point
2 = save everything on current session
-
+
saving actually means just marking the current pages as not temporary.
when a session is finished, instead of erasing the files they will be
renamed using the save file prefix.
- the permanent name can be set in two ways:
-
+
1) passing a name with the XINE_EVENT_PVR_SAVE before closing the
current session. (id = -1)
2) when a saved session is closed without setting the name, it will be
@@ -81,7 +81,7 @@
pass back a XINE_EVENT_PVR_SAVE with id set. pvr plugin will rename
the files again.
-***************************************************************************/
+***************************************************************************/
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -167,7 +167,7 @@ typedef struct {
config_values_t *config;
char *devname;
-
+
} pvr_input_class_t;
@@ -175,18 +175,18 @@ typedef struct {
input_plugin_t input_plugin;
pvr_input_class_t *class;
-
+
xine_stream_t *stream;
-
+
xine_event_queue_t *event_queue;
-
+
pvrscr_t *scr;
int scr_tunning;
int speed_before_pause;
-
+
uint32_t session; /* session number used to identify the pvr file */
int new_session; /* force going to realtime for new sessions */
-
+
int dev_fd; /* fd of the mpeg2 encoder device */
int rec_fd; /* fd of the current recording file (session/page) */
int play_fd; /* fd of the current playback (-1 when realtime) */
@@ -200,22 +200,22 @@ typedef struct {
uint32_t show_page; /* first page of current show */
uint32_t save_page; /* first page to save */
uint32_t page_block[MAX_PAGES]; /* first block of each page */
-
+
char *mrl;
char *tmp_prefix;
char *save_prefix;
char *save_name;
xine_list_t *saved_shows;
int saved_id;
-
+
time_t start_time; /* time when recording started */
time_t show_time; /* time when current show started */
-
+
/* buffer to pass data from pvr thread to xine */
uint8_t data[PVR_BLOCK_SIZE];
int valid_data;
int want_data;
-
+
pthread_mutex_t lock;
pthread_mutex_t dev_lock;
pthread_cond_t has_valid_data;
@@ -224,14 +224,14 @@ typedef struct {
int pvr_running;
int pvr_playing;
int pvr_play_paused;
-
+
int preview_buffers;
-
+
/* device properties */
int input;
int channel;
- uint32_t frequency;
-
+ uint32_t frequency;
+
} pvr_input_plugin_t;
typedef struct {
@@ -245,7 +245,7 @@ typedef struct {
* unix System Clock Reference + fine tunning
*
* on an ideal world we would be using scr from mpeg2
- * encoder just like dxr3 does.
+ * encoder just like dxr3 does.
* unfortunately it is not supported by ivtv driver,
* and perhaps not even possible with wintv cards.
*
@@ -279,19 +279,19 @@ static void pvrscr_set_pivot (pvrscr_t *this) {
struct timeval tv;
int64_t pts;
- double pts_calc;
+ double pts_calc;
xine_monotonic_clock(&tv, NULL);
pts_calc = (tv.tv_sec - this->cur_time.tv_sec) * this->speed_factor;
pts_calc += (tv.tv_usec - this->cur_time.tv_usec) * this->speed_factor / 1e6;
pts = this->cur_pts + pts_calc;
-/* This next part introduces a one off inaccuracy
- * to the scr due to rounding tv to pts.
+/* This next part introduces a one off inaccuracy
+ * to the scr due to rounding tv to pts.
*/
this->cur_time.tv_sec=tv.tv_sec;
this->cur_time.tv_usec=tv.tv_usec;
- this->cur_pts=pts;
+ this->cur_pts=pts;
return ;
}
@@ -303,7 +303,7 @@ static int pvrscr_set_speed (scr_plugin_t *scr, int speed) {
pvrscr_set_pivot( this );
this->xine_speed = speed;
- this->speed_factor = (double) speed * 90000.0 / XINE_FINE_SPEED_NORMAL *
+ this->speed_factor = (double) speed * 90000.0 / XINE_FINE_SPEED_NORMAL *
this->speed_tunning;
pthread_mutex_unlock (&this->lock);
@@ -316,7 +316,7 @@ static void pvrscr_speed_tunning (pvrscr_t *this, double factor) {
pvrscr_set_pivot( this );
this->speed_tunning = factor;
- this->speed_factor = (double) this->xine_speed * 90000.0 / XINE_FINE_SPEED_NORMAL *
+ this->speed_factor = (double) this->xine_speed * 90000.0 / XINE_FINE_SPEED_NORMAL *
this->speed_tunning;
pthread_mutex_unlock (&this->lock);
@@ -345,7 +345,7 @@ static void pvrscr_start (scr_plugin_t *scr, int64_t start_vpts) {
this->cur_pts = start_vpts;
pthread_mutex_unlock (&this->lock);
-
+
pvrscr_set_speed (&this->scr, XINE_FINE_SPEED_NORMAL);
}
@@ -354,16 +354,16 @@ static int64_t pvrscr_get_current (scr_plugin_t *scr) {
struct timeval tv;
int64_t pts;
- double pts_calc;
+ double pts_calc;
pthread_mutex_lock (&this->lock);
xine_monotonic_clock(&tv, NULL);
-
+
pts_calc = (tv.tv_sec - this->cur_time.tv_sec) * this->speed_factor;
pts_calc += (tv.tv_usec - this->cur_time.tv_usec) * this->speed_factor / 1e6;
pts = this->cur_pts + pts_calc;
-
+
pthread_mutex_unlock (&this->lock);
return pts;
@@ -388,9 +388,9 @@ static pvrscr_t *XINE_MALLOC pvrscr_init (void) {
this->scr.start = pvrscr_start;
this->scr.get_current = pvrscr_get_current;
this->scr.exit = pvrscr_exit;
-
+
pthread_mutex_init (&this->lock, NULL);
-
+
pvrscr_speed_tunning(this, 1.0 );
pvrscr_set_speed (&this->scr, XINE_SPEED_PAUSE);
#ifdef SCRLOG
@@ -405,10 +405,10 @@ static pvrscr_t *XINE_MALLOC pvrscr_init (void) {
static uint32_t block_to_page(pvr_input_plugin_t *this, uint32_t block) {
uint32_t page;
-
+
for( page = 0; page < this->rec_page; page++ ) {
if( block < this->page_block[page+1] )
- break;
+ break;
}
return page;
}
@@ -437,7 +437,7 @@ static off_t pvr_plugin_read (input_plugin_t *this_gen, void *buf_gen, off_t len
}
-/*
+/*
* this function will adjust playback speed to control buffer utilization.
* we must avoid:
* - overflow: buffer runs full. no data is read from the mpeg2 card so it will discard
@@ -448,15 +448,15 @@ static off_t pvr_plugin_read (input_plugin_t *this_gen, void *buf_gen, off_t len
* OBS: use with audio.synchronization.av_sync_method=resample
*/
static void pvr_adjust_realtime_speed(pvr_input_plugin_t *this, fifo_buffer_t *fifo, int speed ) {
-
+
int num_used, num_free;
int scr_tunning = this->scr_tunning;
-
+
num_used = fifo->size(fifo);
num_free = fifo->num_free(fifo);
-
+
if( num_used == 0 && scr_tunning != -2 ) {
-
+
/* buffer is empty. pause it for a while */
this->scr_tunning = -2; /* marked as paused */
pvrscr_speed_tunning(this->scr, 1.0);
@@ -465,44 +465,44 @@ static void pvr_adjust_realtime_speed(pvr_input_plugin_t *this, fifo_buffer_t *f
#ifdef SCRLOG
printf("input_pvr: buffer empty, pausing playback\n" );
#endif
-
+
} else if( scr_tunning == -2 ) {
-
+
/* currently paused, revert to normal if 1/3 full */
if( 2*num_used > num_free ) {
this->scr_tunning = 0;
-
+
pvrscr_speed_tunning(this->scr, 1.0 );
_x_set_speed(this->stream, this->speed_before_pause);
#ifdef SCRLOG
printf("input_pvr: resuming playback\n" );
#endif
}
-
+
} else if( speed == XINE_SPEED_NORMAL && this->play_fd == -1 ) {
-
+
/* when playing realtime, adjust the scr to make xine buffers half full */
if( num_used > 2*num_free )
- scr_tunning = +1; /* play faster */
+ scr_tunning = +1; /* play faster */
else if( num_free > 2*num_used )
scr_tunning = -1; /* play slower */
else if( (scr_tunning > 0 && num_free > num_used) ||
(scr_tunning < 0 && num_used > num_free) )
scr_tunning = 0;
-
+
if( scr_tunning != this->scr_tunning ) {
this->scr_tunning = scr_tunning;
#ifdef SCRLOG
printf("input_pvr: scr_tunning = %d (used: %d free: %d)\n", scr_tunning, num_used, num_free );
#endif
-
+
/* make it play .5% faster or slower */
pvrscr_speed_tunning(this->scr, 1.0 + (0.005 * scr_tunning) );
}
-
+
} else if( this->scr_tunning ) {
this->scr_tunning = 0;
-
+
pvrscr_speed_tunning(this->scr, 1.0 );
}
}
@@ -511,21 +511,21 @@ static void pvr_adjust_realtime_speed(pvr_input_plugin_t *this, fifo_buffer_t *f
static char *make_temp_name(pvr_input_plugin_t *this, int page) {
char *filename;
-
+
asprintf(&filename, PVR_FILENAME, this->tmp_prefix, this->session, page);
-
+
return filename;
}
-
+
#define SAVE_BASE_FILENAME "ch%03d %02d-%02d-%04d %02d:%02d:%02d"
-
+
static char *make_base_save_name(int channel, time_t tm) {
struct tm rec_time;
char *filename;
-
+
localtime_r(&tm, &rec_time);
-
- asprintf(&filename, SAVE_BASE_FILENAME,
+
+ asprintf(&filename, SAVE_BASE_FILENAME,
channel, rec_time.tm_mon+1, rec_time.tm_mday,
rec_time.tm_year+1900, rec_time.tm_hour, rec_time.tm_min,
rec_time.tm_sec);
@@ -536,9 +536,9 @@ static char *make_base_save_name(int channel, time_t tm) {
static char *make_save_name(pvr_input_plugin_t *this, char *base, int page) {
char *filename;
-
+
asprintf(&filename, SAVE_FILENAME, this->save_prefix, base, page);
-
+
return filename;
}
@@ -563,27 +563,27 @@ static void pvr_report_realtime (pvr_input_plugin_t *this, int mode) {
* close current recording page and open a new one
*/
static int pvr_break_rec_page (pvr_input_plugin_t *this) {
-
+
char *filename;
-
+
if( this->session == (unsigned)-1 ) /* not recording */
return 1;
-
+
if( this->rec_fd != -1 && this->rec_fd != this->play_fd ) {
- close(this->rec_fd);
+ close(this->rec_fd);
}
-
+
if( this->rec_fd == -1 )
this->rec_page = 0;
else
this->rec_page++;
-
+
this->page_block[this->rec_page] = this->rec_blk;
-
+
filename = make_temp_name(this, this->rec_page);
-
+
lprintf("opening pvr file for writing (%s)\n", filename);
-
+
this->rec_fd = open(filename, O_RDWR | O_CREAT | O_TRUNC, 0666 );
if( this->rec_fd == -1 ) {
xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
@@ -592,39 +592,39 @@ static int pvr_break_rec_page (pvr_input_plugin_t *this) {
return 0;
}
free(filename);
-
+
/* erase first_page if old and not to be saved */
- if( this->max_page_age != (unsigned)-1 &&
+ if( this->max_page_age != (unsigned)-1 &&
this->rec_page - this->max_page_age == this->first_page &&
(this->save_page == (unsigned)-1 || this->first_page < this->save_page) ) {
-
+
filename = make_temp_name(this, this->first_page);
lprintf("erasing old pvr file (%s)\n", filename);
-
+
this->first_page++;
if(this->play_fd != -1 && this->play_page < this->first_page) {
this->play_blk = this->page_block[this->first_page];
close(this->play_fd);
this->play_fd = -1;
}
-
+
remove(filename);
free(filename);
- }
+ }
return 1;
}
/*
- * check the status of recording file, open new one as needed and write the current data.
+ * check the status of recording file, open new one as needed and write the current data.
*/
static int pvr_rec_file(pvr_input_plugin_t *this) {
-
+
off_t pos;
if( this->session == (unsigned)-1 ) /* not recording */
return 1;
-
+
/* check if it's time to change page/file */
if( this->rec_fd == -1 || (this->rec_blk - this->page_block[this->rec_page]) >= BLOCKS_PER_PAGE ) {
if( !pvr_break_rec_page(this) )
@@ -632,61 +632,61 @@ static int pvr_rec_file(pvr_input_plugin_t *this) {
}
pos = (off_t)(this->rec_blk - this->page_block[this->rec_page]) * PVR_BLOCK_SIZE;
if( lseek (this->rec_fd, pos, SEEK_SET) != pos ) {
- xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"input_pvr: error setting position for writing %" PRIdMAX "\n", (intmax_t)pos);
return 0;
}
if( this->rec_fd != -1 ) {
if( write(this->rec_fd, this->data, PVR_BLOCK_SIZE) < PVR_BLOCK_SIZE ) {
- xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"input_pvr: short write to pvr file (out of disk space?)\n");
return 0;
}
this->rec_blk++;
}
-
+
return 1;
}
-/*
+/*
* check for playback mode, switching realtime <-> non-realtime.
* gets data from file in non-realtime mode.
*/
static int pvr_play_file(pvr_input_plugin_t *this, fifo_buffer_t *fifo, uint8_t *buffer, int speed) {
-
+
off_t pos;
-
+
/* check for realtime. don't switch back unless enough buffers are
* free to not block the pvr thread */
if( this->new_session ||
(this->play_blk+1 >= this->rec_blk && speed >= XINE_SPEED_NORMAL &&
(this->play_fd == -1 || fifo->size(fifo) < fifo->num_free(fifo))) ) {
-
+
this->play_blk = (this->rec_blk) ? (this->rec_blk-1) : 0;
-
+
if( speed > XINE_SPEED_NORMAL )
_x_set_speed(this->stream, XINE_SPEED_NORMAL);
-
+
if( this->play_fd != -1 ) {
if(this->play_fd != this->rec_fd )
- close(this->play_fd);
+ close(this->play_fd);
this->play_fd = -1;
-
+
lprintf("switching back to realtime\n");
pvr_report_realtime(this,1);
-
+
} else if (this->new_session) {
lprintf("starting new session in realtime\n");
pvr_report_realtime(this,1);
}
-
+
this->want_data = 1;
this->new_session = 0;
-
+
} else {
- if( this->rec_fd == -1 )
+ if( this->rec_fd == -1 )
return 1;
if(speed != XINE_SPEED_PAUSE) {
@@ -700,30 +700,30 @@ static int pvr_play_file(pvr_input_plugin_t *this, fifo_buffer_t *fifo, uint8_t
}
}
- if( this->play_fd == -1 ||
+ if( this->play_fd == -1 ||
((this->play_blk - this->page_block[this->play_page]) >= BLOCKS_PER_PAGE) ||
(this->rec_page > this->play_page && this->play_blk >= this->page_block[this->play_page+1]) ) {
-
+
if(this->play_fd == -1) {
lprintf("switching to non-realtime\n");
pvr_report_realtime(this,0);
}
-
+
if( this->play_fd != -1 && this->play_fd != this->rec_fd ) {
- close(this->play_fd);
+ close(this->play_fd);
}
-
+
if( this->play_fd == -1 )
this->play_page = block_to_page(this, this->play_blk);
else
this->play_page++;
-
+
if( this->play_page < this->first_page ) {
this->play_page = this->first_page;
this->play_blk = this->page_block[this->play_page];
}
-
+
/* should be impossible */
if( this->play_page > this->rec_page ||
this->play_blk > this->rec_blk ) {
@@ -736,11 +736,11 @@ static int pvr_play_file(pvr_input_plugin_t *this, fifo_buffer_t *fifo, uint8_t
this->play_fd = this->rec_fd;
} else {
char *filename;
-
+
filename = make_temp_name(this, this->play_page);
lprintf("opening pvr file for reading (%s)\n", filename);
-
+
this->play_fd = open(filename, O_RDONLY );
if( this->play_fd == -1 ) {
xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
@@ -753,7 +753,7 @@ static int pvr_play_file(pvr_input_plugin_t *this, fifo_buffer_t *fifo, uint8_t
this->want_data = 0;
pthread_cond_signal (&this->wake_pvr);
}
-
+
if(speed != XINE_SPEED_PAUSE) {
pos = (off_t)(this->play_blk - this->page_block[this->play_page]) * PVR_BLOCK_SIZE;
@@ -804,29 +804,29 @@ static void *pvr_loop (void *this_gen) {
int lost_sync;
while( this->pvr_running ) {
-
+
pthread_mutex_lock(&this->lock);
this->valid_data = 0;
pthread_mutex_unlock(&this->lock);
-
+
total_bytes = 0;
do {
-
+
lost_sync = 0;
-
+
pthread_mutex_lock(&this->dev_lock);
while (total_bytes < PVR_BLOCK_SIZE) {
num_bytes = read (this->dev_fd, this->data + total_bytes, PVR_BLOCK_SIZE-total_bytes);
if (num_bytes <= 0) {
- if (num_bytes < 0)
+ if (num_bytes < 0)
xprintf (this->stream->xine, XINE_VERBOSITY_LOG,
_("input_pvr: read error (%s)\n"), strerror(errno));
- this->pvr_running = 0;
+ this->pvr_running = 0;
break;
}
total_bytes += num_bytes;
}
-
+
if( this->data[0] || this->data[1] || this->data[2] != 1 || this->data[3] != 0xba ) {
xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG, "resyncing mpeg stream\n");
@@ -837,28 +837,28 @@ static void *pvr_loop (void *this_gen) {
this->data[0] = 0; this->data[1] = 0; this->data[2] = 1; this->data[3] = 0xba;
total_bytes = 4;
}
- }
+ }
pthread_mutex_unlock(&this->dev_lock);
-
- } while( lost_sync );
-
+
+ } while( lost_sync );
+
pthread_mutex_lock(&this->lock);
-
+
if( !pvr_rec_file(this) ) {
- this->pvr_running = 0;
+ this->pvr_running = 0;
}
-
+
this->valid_data = 1;
pthread_cond_signal (&this->has_valid_data);
- while(this->valid_data && this->play_fd == -1 &&
+ while(this->valid_data && this->play_fd == -1 &&
this->want_data && this->pvr_playing) {
pthread_cond_wait (&this->wake_pvr, &this->lock);
}
-
+
pthread_mutex_unlock(&this->lock);
}
-
+
pthread_exit(NULL);
}
@@ -869,7 +869,7 @@ static void *pvr_loop (void *this_gen) {
* name (save_name) or a default one using channel and time.
*/
static void pvr_finish_recording (pvr_input_plugin_t *this) {
-
+
char *src_filename;
char *save_base;
char *dst_filename;
@@ -878,31 +878,31 @@ static void pvr_finish_recording (pvr_input_plugin_t *this) {
lprintf("finish_recording\n");
if( this->rec_fd != -1 ) {
- close(this->rec_fd);
-
+ close(this->rec_fd);
+
if( this->play_fd != -1 && this->play_fd != this->rec_fd )
close(this->play_fd);
-
+
this->rec_fd = this->play_fd = -1;
-
+
if( this->save_page == this->show_page )
save_base = make_base_save_name(this->channel, this->show_time);
else
save_base = make_base_save_name(this->channel, this->start_time);
-
+
for( i = this->first_page; i <= this->rec_page; i++ ) {
-
+
src_filename = make_temp_name(this, i);
-
+
if( this->save_page == (unsigned)-1 || i < this->save_page ) {
lprintf("erasing old pvr file (%s)\n", src_filename);
remove(src_filename);
} else {
-
+
if( !this->save_name || !strlen(this->save_name) )
dst_filename = make_save_name(this, save_base, i-this->save_page+1);
- else
+ else
dst_filename = make_save_name(this, this->save_name, i-this->save_page+1);
lprintf("moving (%s) to (%s)\n", src_filename, dst_filename);
@@ -912,17 +912,17 @@ static void pvr_finish_recording (pvr_input_plugin_t *this) {
}
free(src_filename);
}
-
+
if( this->save_page != (unsigned)-1 && (!this->save_name || !strlen(this->save_name)) ) {
saved_show_t *show = malloc(sizeof(saved_show_t));
xine_event_t event;
xine_pvr_save_data_t data;
-
+
show->base_name = save_base;
show->id = ++this->saved_id;
show->pages = this->rec_page - this->save_page + 1;
xine_list_push_back (this->saved_shows, show);
-
+
lprintf("sending event with base name [%s]\n", show->base_name);
/* tell frontend the name of the saved show */
@@ -931,18 +931,18 @@ static void pvr_finish_recording (pvr_input_plugin_t *this) {
event.data = &data;
event.data_length = sizeof(data);
gettimeofday(&event.tv, NULL);
-
+
data.mode = 0;
data.id = show->id;
strncpy(data.name, show->base_name, sizeof(data.name));
data.name[sizeof(data.name) - 1] = '\0';
-
+
xine_event_send(this->stream, &event);
} else {
free(save_base);
}
}
-
+
this->first_page = 0;
this->show_page = 0;
this->save_page = -1;
@@ -1017,13 +1017,13 @@ static void pvr_event_handler (pvr_input_plugin_t *this) {
if( ioctl(this->dev_fd, VIDIOC_S_INPUT, &this->input) == 0 ) {
lprintf("Tuner Input set to:%d\n", v4l2_data->input);
} else {
- xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"input_pvr: error setting v4l2 input\n");
}
}
}
- /* change channel */
+ /* change channel */
if (v4l2_data->channel != -1 && v4l2_data->channel != this->channel) {
lprintf("change channel to:%d\n", v4l2_data->channel);
this->channel = v4l2_data->channel;
@@ -1058,13 +1058,13 @@ static void pvr_event_handler (pvr_input_plugin_t *this) {
}
pthread_mutex_unlock(&this->dev_lock);
-
+
/* FIXME: also flush the device */
/* _x_demux_flush_engine(this->stream); */
break;
-
-
+
+
case XINE_EVENT_PVR_SAVE:
if( this->session != -1 ) {
switch( save_data->mode ) {
@@ -1097,11 +1097,11 @@ static void pvr_event_handler (pvr_input_plugin_t *this) {
if( this->save_name )
free( this->save_name );
this->save_name = NULL;
-
+
if( save_data->id < 0 ) {
/* no id: set name for current recording */
this->save_name = strdup(save_data->name);
-
+
} else {
/* search for the ID of saved shows and rename it
* to the given name. */
@@ -1109,17 +1109,17 @@ static void pvr_event_handler (pvr_input_plugin_t *this) {
char *dst_filename;
saved_show_t *show;
xine_list_iterator_t ite;
-
+
pthread_mutex_lock(&this->lock);
-
+
ite = xine_list_front (this->saved_shows);
while (ite) {
show = xine_list_get_value(this->saved_shows, ite);
if( show->id == save_data->id ) {
int i;
-
+
for( i = 0; i < show->pages; i++ ) {
-
+
src_filename = make_save_name(this, show->base_name, i+1);
dst_filename = make_save_name(this, save_data->name, i+1);
@@ -1151,7 +1151,7 @@ static void pvr_event_handler (pvr_input_plugin_t *this) {
case XINE_EVENT_SET_MPEG_DATA: {
struct ivtv_ioctl_codec codec;
-
+
pthread_mutex_lock(&this->dev_lock);
/* how lame. we must close and reopen to change bitrate. */
@@ -1162,9 +1162,9 @@ static void pvr_event_handler (pvr_input_plugin_t *this) {
_("input_pvr: error opening device %s\n"), this->class->devname );
return;
}
-
+
if (ioctl(this->dev_fd, IVTV_IOC_G_CODEC, &codec) < 0) {
- xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
_("input_pvr: IVTV_IOC_G_CODEC failed, maybe API changed?\n"));
} else {
codec.bitrate = mpeg_data->bitrate_mean;
@@ -1179,7 +1179,7 @@ static void pvr_event_handler (pvr_input_plugin_t *this) {
pthread_mutex_unlock(&this->dev_lock);
}
break;
-
+
#if 0
default:
printf ("input_pvr: got an event, type 0x%08x\n", event->type);
@@ -1205,7 +1205,7 @@ static buf_element_t *pvr_plugin_read_block (input_plugin_t *this_gen, fifo_buff
if( !this->pvr_running ) {
xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG, "input_pvr: thread died, aborting\n");
- return NULL;
+ return NULL;
}
buf = fifo->buffer_pool_alloc (fifo);
@@ -1221,7 +1221,7 @@ static buf_element_t *pvr_plugin_read_block (input_plugin_t *this_gen, fifo_buff
if( this->pvr_play_paused )
speed = XINE_SPEED_PAUSE;
-
+
if( this->pvr_playing && _x_stream_info_get(this->stream, XINE_STREAM_INFO_IGNORE_VIDEO) ) {
/* video decoding has being disabled. avoid tweaking the clock */
this->pvr_playing = 0;
@@ -1233,55 +1233,55 @@ static buf_element_t *pvr_plugin_read_block (input_plugin_t *this_gen, fifo_buff
this->pvr_playing = 1;
this->play_blk = this->rec_blk;
}
-
+
if( this->pvr_playing )
pvr_adjust_realtime_speed(this, fifo, speed);
pvr_event_handler(this);
-
+
buf->content = buf->mem;
-
+
pthread_mutex_lock(&this->lock);
-
+
if( this->pvr_playing )
if( !pvr_play_file(this, fifo, buf->content, speed) ) {
buf->free_buffer(buf);
pthread_mutex_unlock(&this->lock);
return NULL;
}
-
+
if( todo == PVR_BLOCK_SIZE && speed != XINE_SPEED_PAUSE &&
this->pvr_playing ) {
buf->type = BUF_DEMUX_BLOCK;
buf->size = PVR_BLOCK_SIZE;
-
+
if(this->play_fd == -1) {
-
+
/* realtime mode: wait for valid data from pvr thread */
this->want_data = 1;
while(!this->valid_data && this->pvr_running)
pthread_cond_wait (&this->has_valid_data, &this->lock);
-
+
this->play_blk = this->rec_blk;
xine_fast_memcpy(buf->content, this->data, PVR_BLOCK_SIZE);
-
+
this->valid_data = 0;
pthread_cond_signal (&this->wake_pvr);
}
pthread_mutex_unlock(&this->lock);
-
+
} else {
pthread_mutex_unlock(&this->lock);
-
+
buf->type = BUF_CONTROL_NOP;
- buf->size = 0;
-
+ buf->size = 0;
+
if(this->preview_buffers)
this->preview_buffers--;
else
xine_usec_sleep (20000);
}
-
+
return buf;
}
@@ -1290,7 +1290,7 @@ static off_t pvr_plugin_seek (input_plugin_t *this_gen, off_t offset, int origin
pvr_input_plugin_t *this = (pvr_input_plugin_t *) this_gen;
pthread_mutex_lock(&this->lock);
-
+
switch( origin ) {
case SEEK_SET:
this->play_blk = (offset / PVR_BLOCK_SIZE) + this->page_block[this->first_page];
@@ -1302,18 +1302,18 @@ static off_t pvr_plugin_seek (input_plugin_t *this_gen, off_t offset, int origin
this->play_blk = this->rec_blk + (offset / PVR_BLOCK_SIZE);
break;
}
-
+
/* invalidate the fd if needed */
if( this->play_fd != -1 && block_to_page(this,this->play_blk) != this->play_page ) {
if( this->play_fd != this->rec_fd )
- close(this->play_fd);
+ close(this->play_fd);
this->play_fd = -1;
if( this->play_blk >= this->rec_blk )
pvr_report_realtime(this,1);
}
pthread_mutex_unlock(&this->lock);
-
+
return (off_t) (this->play_blk - this->page_block[this->first_page]) * PVR_BLOCK_SIZE;
}
@@ -1340,9 +1340,9 @@ static const char* pvr_plugin_get_mrl (input_plugin_t *this_gen) {
return this->mrl;
}
-static int pvr_plugin_get_optional_data (input_plugin_t *this_gen,
+static int pvr_plugin_get_optional_data (input_plugin_t *this_gen,
void *data, int data_type) {
-
+
return INPUT_OPTIONAL_UNSUPPORTED;
}
@@ -1360,11 +1360,11 @@ static void pvr_plugin_dispose (input_plugin_t *this_gen ) {
this->want_data = 0;
pthread_cond_signal (&this->wake_pvr);
pthread_mutex_unlock(&this->lock);
- pthread_join (this->pvr_thread, &p);
+ pthread_join (this->pvr_thread, &p);
lprintf("pvr thread joined\n");
}
-
+
if (this->scr) {
this->stream->xine->clock->unregister_scr(this->stream->xine->clock, &this->scr->scr);
this->scr->scr.exit(&this->scr->scr);
@@ -1377,15 +1377,15 @@ static void pvr_plugin_dispose (input_plugin_t *this_gen ) {
close(this->dev_fd);
pvr_finish_recording(this);
-
+
free (this->mrl);
-
+
if (this->tmp_prefix)
free (this->tmp_prefix);
-
+
if (this->save_prefix)
free (this->save_prefix);
-
+
ite = xine_list_front (this->saved_shows);
while (ite) {
show = xine_list_get_value(this->saved_shows, ite);
@@ -1402,7 +1402,7 @@ static int pvr_plugin_open (input_plugin_t *this_gen ) {
int64_t time;
int err;
struct ivtv_ioctl_codec codec;
-
+
this->session = 0;
this->rec_fd = -1;
this->play_fd = -1;
@@ -1418,7 +1418,7 @@ static int pvr_plugin_open (input_plugin_t *this_gen ) {
this->dev_fd = open (this->class->devname, O_RDWR);
if (this->dev_fd == -1) {
- xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
_("input_pvr: error opening device %s\n"), this->class->devname );
return 0;
}
@@ -1437,42 +1437,42 @@ static int pvr_plugin_open (input_plugin_t *this_gen ) {
_("input_pvr: IVTV_IOC_S_CODEC failed, maybe API changed?\n"));
}
}
-
- /* register our own scr provider */
+
+ /* register our own scr provider */
time = this->stream->xine->clock->get_current_time(this->stream->xine->clock);
this->scr = pvrscr_init();
this->scr->scr.start(&this->scr->scr, time);
this->stream->xine->clock->register_scr(this->stream->xine->clock, &this->scr->scr);
this->scr_tunning = 0;
-
+
this->event_queue = xine_event_new_queue (this->stream);
-
+
/* enable resample method */
this->stream->xine->config->update_num(this->stream->xine->config,"audio.synchronization.av_sync_method",1);
-
+
this->pvr_running = 1;
-
+
if ((err = pthread_create (&this->pvr_thread,
NULL, pvr_loop, this)) != 0) {
- xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->stream->xine, XINE_VERBOSITY_NONE,
"input_pvr: can't create new thread (%s)\n", strerror(err));
_x_abort();
}
-
+
return 1;
}
-static input_plugin_t *pvr_class_get_instance (input_class_t *cls_gen, xine_stream_t *stream,
+static input_plugin_t *pvr_class_get_instance (input_class_t *cls_gen, xine_stream_t *stream,
const char *data) {
pvr_input_class_t *cls = (pvr_input_class_t *) cls_gen;
pvr_input_plugin_t *this;
char *mrl;
char *aux;
-
- if (strncasecmp (data, "pvr:/", 5))
+
+ if (strncasecmp (data, "pvr:/", 5))
return NULL;
-
+
mrl = strdup(data);
aux = &mrl[5];
@@ -1486,14 +1486,14 @@ static input_plugin_t *pvr_class_get_instance (input_class_t *cls_gen, xine_stre
/* decode configuration options from mrl */
if( strlen(aux) ) {
this->tmp_prefix = strdup(aux);
-
+
aux = strchr(this->tmp_prefix,'!');
if( aux ) {
aux[0] = '\0';
this->save_prefix = strdup(aux+1);
aux = strchr(this->save_prefix, '!');
- if( aux ) {
+ if( aux ) {
aux[0] = '\0';
if( atoi(aux+1) )
this->max_page_age = atoi(aux+1);
@@ -1505,11 +1505,11 @@ static input_plugin_t *pvr_class_get_instance (input_class_t *cls_gen, xine_stre
this->tmp_prefix=strdup("./");
this->save_prefix=strdup("./");
}
-
+
lprintf("tmp_prefix=%s\n", this->tmp_prefix);
lprintf("save_prefix=%s\n", this->save_prefix);
lprintf("max_page_age=%d\n", this->max_page_age);
-
+
this->input_plugin.open = pvr_plugin_open;
this->input_plugin.get_capabilities = pvr_plugin_get_capabilities;
this->input_plugin.read = pvr_plugin_read;
@@ -1527,12 +1527,12 @@ static input_plugin_t *pvr_class_get_instance (input_class_t *cls_gen, xine_stre
this->event_queue = NULL;
this->save_name = NULL;
this->saved_shows = xine_list_new();
-
+
pthread_mutex_init (&this->lock, NULL);
pthread_mutex_init (&this->dev_lock, NULL);
pthread_cond_init (&this->has_valid_data,NULL);
pthread_cond_init (&this->wake_pvr,NULL);
-
+
return &this->input_plugin;
}
@@ -1573,7 +1573,7 @@ static void *init_plugin (xine_t *xine, void *data) {
*/
const plugin_info_t xine_plugin_info[] EXPORTED = {
- /* type, API, "name", version, special_info, init_function */
+ /* type, API, "name", version, special_info, init_function */
{ PLUGIN_INPUT | PLUGIN_MUST_PRELOAD, 18, "pvr", XINE_VERSION_CODE, NULL, init_plugin },
{ PLUGIN_NONE, 0, "", 0, NULL, NULL }
};
diff --git a/src/input/input_rtp.c b/src/input/input_rtp.c
index d8822a3e1..175c61b41 100644
--- a/src/input/input_rtp.c
+++ b/src/input/input_rtp.c
@@ -1,18 +1,18 @@
-/*
+/*
* Copyright (C) 2000-2004 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -114,7 +114,7 @@ typedef struct {
input_plugin_t input_plugin;
xine_stream_t *stream;
-
+
char *mrl;
config_values_t *config;
@@ -122,16 +122,16 @@ typedef struct {
int port;
char *interface; /* For multicast, eth0, eth1 etc */
int is_rtp;
-
+
int fh;
-
+
unsigned char *buffer; /* circular buffer */
unsigned char *buffer_get_ptr; /* get pointer used by reader */
unsigned char *buffer_put_ptr; /* put pointer used by writer */
long buffer_count; /* number of bytes in the buffer */
unsigned char packet_buffer[65536];
-
+
int last_input_error;
int input_eof;
@@ -184,7 +184,7 @@ static int host_connect_attempt(struct in_addr ia, int port,
return -1;
}
- saddr.in.sin_family = AF_INET;
+ saddr.in.sin_family = AF_INET;
saddr.in.sin_addr = ia;
saddr.in.sin_port = htons(port);
@@ -193,8 +193,8 @@ static int host_connect_attempt(struct in_addr ia, int port,
LOG_MSG(xine, _("IP address specified is multicast\n"));
multicast = 1; /* boolean true */
}
-
-
+
+
/* Try to increase receive buffer to 1MB to avoid dropping packets */
optval = BUFFER_SIZE;
if ((setsockopt(s, SOL_SOCKET, SO_RCVBUF,
@@ -217,7 +217,7 @@ static int host_connect_attempt(struct in_addr ia, int port,
LOG_MSG(xine, _("bind(): %s.\n"), strerror(errno));
return -1;
}
-
+
/* multicast ? */
if (multicast) {
@@ -250,14 +250,14 @@ static int host_connect_attempt(struct in_addr ia, int port,
&((struct sockaddr_in *) &ifreq.ifr_addr)->sin_addr,
sizeof(struct in_addr));
}
-
+
if (setsockopt(s, IPPROTO_IP, IP_ADD_MEMBERSHIP, &mreq, sizeof(mreq))) {
LOG_MSG(xine, _("setsockopt(IP_ADD_MEMBERSHIP) failed (multicast kernel?): %s.\n"),
strerror(errno));
return -1;
}
}
-
+
return s;
}
@@ -271,13 +271,13 @@ static int host_connect(const char *host, int port,
struct hostent *h;
int i;
int s;
-
+
h=gethostbyname(host);
if(h==NULL) {
LOG_MSG(xine, _("unable to resolve '%s'.\n"), host);
return -1;
}
-
+
for(i=0; h->h_addr_list[i]; i++) {
struct in_addr ia;
memcpy(&ia, h->h_addr_list[i],4);
@@ -299,7 +299,7 @@ static void * input_plugin_read_loop(void *arg) {
fd_set read_fds;
while (1) {
-
+
/* System calls are not a thread cancellation point in Linux
* pthreads. However, the RT signal sent to cancel the thread
* will cause recv() to return with EINTR, and we can manually
@@ -339,11 +339,11 @@ static void * input_plugin_read_loop(void *arg) {
}
else {
data = this->packet_buffer;
-
+
if (this->is_rtp) {
int pad, ext;
int csrc;
-
+
/* Do minimal RTP parsing to extract payload. See
* http://www.faqs.org/rfcs/rfc1889.html for header format.
*
@@ -351,7 +351,7 @@ static void * input_plugin_read_loop(void *arg) {
*/
if (length < 12) continue;
-
+
pad = data[0] & 0x20;
ext = data[0] & 0x10;
csrc = data[0] & 0x0f;
@@ -361,7 +361,7 @@ static void * input_plugin_read_loop(void *arg) {
if (ext) {
long hlen;
-
+
if (length < 4) continue;
hlen = (data[2] << 8) | data[3];
@@ -382,12 +382,12 @@ static void * input_plugin_read_loop(void *arg) {
/* insert data into cyclic buffer */
if (length > 0) {
-
- /*
+
+ /*
* if the buffer is full, wait for the reader
- * to signal
- */
-
+ * to signal
+ */
+
pthread_mutex_lock(&this->buffer_ring_mut);
/* wait for enough space to write the whole of the recv'ed data */
while( (BUFFER_SIZE - this->buffer_count) < length )
@@ -399,23 +399,23 @@ static void * input_plugin_read_loop(void *arg) {
timeout.tv_nsec = tv.tv_usec * 1000;
timeout.tv_sec = tv.tv_sec + 2;
-
+
if( pthread_cond_timedwait(&this->writer_cond, &this->buffer_ring_mut, &timeout) != 0 )
{
fprintf( stdout, "input_rtp: buffer ring not read within 2 seconds!\n" );
}
}
-
+
/* Now there's enough space to write some bytes into the buffer
* determine how many bytes can be written. If the buffer wraps
* around, write in two pieces: from the head pointer to the
- * end of the buffer and from the base to the remaining number
+ * end of the buffer and from the base to the remaining number
* of bytes.
*/
{
long buffer_space_remaining = BUFFER_SIZE - (this->buffer_put_ptr - this->buffer);
-
+
if( buffer_space_remaining >= length )
{
/* data fits inside the buffer */
@@ -445,15 +445,15 @@ static void * input_plugin_read_loop(void *arg) {
/* END OF PRIVATES */
/* ***************************************************************** */
-static off_t rtp_plugin_read (input_plugin_t *this_gen,
+static off_t rtp_plugin_read (input_plugin_t *this_gen,
void *buf_gen, off_t length) {
rtp_input_plugin_t *this = (rtp_input_plugin_t *) this_gen;
char *buf = (char *)buf_gen;
struct timeval tv;
struct timespec timeout;
- off_t copied = 0;
-
+ off_t copied = 0;
+
if (length < 0)
return -1;
@@ -473,7 +473,7 @@ static off_t rtp_plugin_read (input_plugin_t *this_gen,
gettimeofday(&tv, NULL);
timeout.tv_nsec = tv.tv_usec * 1000;
timeout.tv_sec = tv.tv_sec + 5;
-
+
if(pthread_cond_timedwait(&this->reader_cond, &this->buffer_ring_mut, &timeout) != 0)
{
/* we timed out, no data available */
@@ -484,9 +484,9 @@ static off_t rtp_plugin_read (input_plugin_t *this_gen,
/* Now determine how many bytes can be read. If the buffer
* will wrap the buffer is read in two pieces, first read
- * to the end of the buffer, wrap the tail pointer and
+ * to the end of the buffer, wrap the tail pointer and
* update the buffer count. Finally read the second piece
- * from the base to the remaining count
+ * from the base to the remaining count
*/
if(length > this->buffer_count) {
n = this->buffer_count;
@@ -494,26 +494,26 @@ static off_t rtp_plugin_read (input_plugin_t *this_gen,
else {
n = length;
}
-
+
if(((this->buffer_get_ptr - this->buffer) + n) > BUFFER_SIZE) {
n = BUFFER_SIZE - (this->buffer_get_ptr - this->buffer);
}
-
+
/* the actual read */
memcpy(buf, this->buffer_get_ptr, n);
buf += n;
copied += n;
length -= n;
-
+
/* update the tail pointer, watch for wrap arounds */
this->buffer_get_ptr += n;
if(this->buffer_get_ptr - this->buffer >= BUFFER_SIZE)
this->buffer_get_ptr = this->buffer;
-
+
this->buffer_count -= n;
-
- /* signal the writer that there's space in the buffer again */
+
+ /* signal the writer that there's space in the buffer again */
pthread_cond_signal(&this->writer_cond);
pthread_mutex_unlock(&this->buffer_ring_mut);
}
@@ -555,7 +555,7 @@ static buf_element_t *rtp_plugin_read_block (input_plugin_t *this_gen,
*/
static off_t rtp_plugin_seek (input_plugin_t *this_gen,
off_t offset, int origin) {
-
+
return -1;
}
@@ -572,7 +572,7 @@ static off_t rtp_plugin_get_length (input_plugin_t *this_gen) {
*/
static off_t rtp_plugin_get_current_pos (input_plugin_t *this_gen){
rtp_input_plugin_t *this = (rtp_input_plugin_t *) this_gen;
-
+
return this->curpos;
}
@@ -580,7 +580,7 @@ static off_t rtp_plugin_get_current_pos (input_plugin_t *this_gen){
*
*/
static uint32_t rtp_plugin_get_capabilities (input_plugin_t *this_gen) {
-
+
return INPUT_CAP_PREVIEW;
}
@@ -588,7 +588,7 @@ static uint32_t rtp_plugin_get_capabilities (input_plugin_t *this_gen) {
*
*/
static uint32_t rtp_plugin_get_blocksize (input_plugin_t *this_gen) {
-
+
return 0;
}
@@ -597,14 +597,14 @@ static uint32_t rtp_plugin_get_blocksize (input_plugin_t *this_gen) {
*/
static const char* rtp_plugin_get_mrl (input_plugin_t *this_gen) {
rtp_input_plugin_t *this = (rtp_input_plugin_t *) this_gen;
-
+
return this->mrl;
}
/*
*
*/
-static int rtp_plugin_get_optional_data (input_plugin_t *this_gen,
+static int rtp_plugin_get_optional_data (input_plugin_t *this_gen,
void *data, int data_type) {
rtp_input_plugin_t *this = (rtp_input_plugin_t *) this_gen;
@@ -636,16 +636,16 @@ static int rtp_plugin_get_optional_data (input_plugin_t *this_gen,
static void rtp_plugin_dispose (input_plugin_t *this_gen ) {
rtp_input_plugin_t *this = (rtp_input_plugin_t *) this_gen;
-
+
if (this->nbc) nbc_close(this->nbc);
-
+
if (this->rtp_running) {
LOG_MSG(this->stream->xine, _("RTP: stopping reading thread...\n"));
pthread_cancel(this->reader_thread);
pthread_join(this->reader_thread, NULL);
LOG_MSG(this->stream->xine, _("RTP: reading thread terminated\n"));
}
-
+
if (this->fh != -1) close(this->fh);
free(this->buffer);
@@ -662,7 +662,7 @@ static int rtp_plugin_open (input_plugin_t *this_gen ) {
this->filename,
this->port,
this->interface);
-
+
this->fh = host_connect(this->filename, this->port,
this->interface, this->stream->xine);
@@ -673,12 +673,12 @@ static int rtp_plugin_open (input_plugin_t *this_gen ) {
this->curpos = 0;
this->rtp_running = 1;
- if ((err = pthread_create(&this->reader_thread, NULL,
+ if ((err = pthread_create(&this->reader_thread, NULL,
input_plugin_read_loop, (void *)this)) != 0) {
LOG_MSG(this->stream->xine, _("input_rtp: can't create new thread (%s)\n"), strerror(err));
_x_abort();
}
-
+
return 1;
}
@@ -692,7 +692,7 @@ static input_plugin_t *rtp_class_get_instance (input_class_t *cls_gen,
char *mrl;
int is_rtp = 0;
int port = 7658;
-
+
mrl = strdup(data);
if (!strncasecmp (mrl, "rtp://", 6)) {
@@ -703,12 +703,12 @@ static input_plugin_t *rtp_class_get_instance (input_class_t *cls_gen,
filename = &mrl[6];
is_rtp = 0;
}
-
+
if (filename == NULL || strlen(filename) == 0) {
free(mrl);
return NULL;
}
-
+
/* Locate the port number */
pptr=strchr(filename, ':');
iptr = NULL;
@@ -729,7 +729,7 @@ static input_plugin_t *rtp_class_get_instance (input_class_t *cls_gen,
}
}
}
-
+
this = calloc(1, sizeof(rtp_input_plugin_t));
this->stream = stream;
this->mrl = mrl;
@@ -766,8 +766,8 @@ static input_plugin_t *rtp_class_get_instance (input_class_t *cls_gen,
this->input_plugin.get_optional_data = rtp_plugin_get_optional_data;
this->input_plugin.dispose = rtp_plugin_dispose;
this->input_plugin.input_class = cls_gen;
-
- this->nbc = NULL;
+
+ this->nbc = NULL;
this->nbc = nbc_init(this->stream);
return &this->input_plugin;
@@ -781,7 +781,7 @@ static void *init_class (xine_t *xine, void *data) {
rtp_input_class_t *this;
-
+
this = calloc(1, sizeof(rtp_input_class_t));
this->config = xine->config;
this->xine = xine;
@@ -802,7 +802,7 @@ static void *init_class (xine_t *xine, void *data) {
*/
const plugin_info_t xine_plugin_info[] EXPORTED = {
- /* type, API, "name", version, special_info, init_function */
+ /* type, API, "name", version, special_info, init_function */
{ PLUGIN_INPUT, 18, "rtp", XINE_VERSION_CODE, NULL, init_class },
{ PLUGIN_NONE, 0, "", 0, NULL, NULL }
};
diff --git a/src/input/input_rtsp.c b/src/input/input_rtsp.c
index 0e5af6043..e8c1a1ce7 100644
--- a/src/input/input_rtsp.c
+++ b/src/input/input_rtsp.c
@@ -1,18 +1,18 @@
/*
* Copyright (C) 2002-2003 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -69,14 +69,14 @@ typedef struct {
off_t curpos;
- nbc_t *nbc;
+ nbc_t *nbc;
char scratch[BUFSIZE];
} rtsp_input_plugin_t;
-static off_t rtsp_plugin_read (input_plugin_t *this_gen,
+static off_t rtsp_plugin_read (input_plugin_t *this_gen,
void *buf, off_t len) {
rtsp_input_plugin_t *this = (rtsp_input_plugin_t *) this_gen;
off_t n;
@@ -90,7 +90,7 @@ static off_t rtsp_plugin_read (input_plugin_t *this_gen,
return n;
}
-static buf_element_t *rtsp_plugin_read_block (input_plugin_t *this_gen,
+static buf_element_t *rtsp_plugin_read_block (input_plugin_t *this_gen,
fifo_buffer_t *fifo, off_t todo) {
/*rtsp_input_plugin_t *this = (rtsp_input_plugin_t *) this_gen; */
buf_element_t *buf = fifo->buffer_pool_alloc (fifo);
@@ -107,7 +107,7 @@ static buf_element_t *rtsp_plugin_read_block (input_plugin_t *this_gen,
buf->content = buf->mem;
buf->type = BUF_DEMUX_BLOCK;
-
+
total_bytes = rtsp_plugin_read (this_gen, (char*)buf->content, todo);
if (total_bytes != todo) {
@@ -151,17 +151,17 @@ static off_t rtsp_plugin_seek_time (input_plugin_t *this_gen, int time_offset, i
rtsp_input_plugin_t *this = (rtsp_input_plugin_t *) this_gen;
lprintf ("seek_time %d msec, origin %d\n", time_offset, origin);
-
+
if (origin == SEEK_SET)
rtsp_session_set_start_time (this->rtsp, time_offset);
-
+
return this->curpos;
}
static off_t rtsp_plugin_get_length (input_plugin_t *this_gen) {
/*
- rtsp_input_plugin_t *this = (rtsp_input_plugin_t *) this_gen;
+ rtsp_input_plugin_t *this = (rtsp_input_plugin_t *) this_gen;
off_t length;
*/
@@ -198,13 +198,13 @@ static void rtsp_plugin_dispose (input_plugin_t *this_gen) {
nbc_close (this->nbc);
this->nbc = NULL;
}
-
+
if(this->mrl)
free(this->mrl);
-
+
if(this->public_mrl)
free(this->public_mrl);
-
+
free (this);
}
@@ -214,7 +214,7 @@ static const char* rtsp_plugin_get_mrl (input_plugin_t *this_gen) {
return this->public_mrl;
}
-static int rtsp_plugin_get_optional_data (input_plugin_t *this_gen,
+static int rtsp_plugin_get_optional_data (input_plugin_t *this_gen,
void *data, int data_type) {
rtsp_input_plugin_t *this = (rtsp_input_plugin_t *) this_gen;
@@ -245,11 +245,11 @@ static int rtsp_plugin_open (input_plugin_t *this_gen) {
}
this->rtsp = rtsp;
-
+
return 1;
}
-static input_plugin_t *rtsp_class_get_instance (input_class_t *cls_gen, xine_stream_t *stream,
+static input_plugin_t *rtsp_class_get_instance (input_class_t *cls_gen, xine_stream_t *stream,
const char *mrl) {
/* rtsp_input_class_t *cls = (rtsp_input_class_t *) cls_gen; */
@@ -267,7 +267,7 @@ static input_plugin_t *rtsp_class_get_instance (input_class_t *cls_gen, xine_str
* an .rm extention to force handling by demux_real.
*/
asprintf(&this->public_mrl, "%s.rm", this->mrl);
-
+
this->nbc = nbc_init (stream);
this->input_plugin.open = rtsp_plugin_open;
@@ -283,7 +283,7 @@ static input_plugin_t *rtsp_class_get_instance (input_class_t *cls_gen, xine_str
this->input_plugin.dispose = rtsp_plugin_dispose;
this->input_plugin.get_optional_data = rtsp_plugin_get_optional_data;
this->input_plugin.input_class = cls_gen;
-
+
return &this->input_plugin;
}
@@ -314,7 +314,7 @@ static void *init_class (xine_t *xine, void *data) {
*/
const plugin_info_t xine_plugin_info[] EXPORTED = {
- /* type, API, "name", version, special_info, init_function */
+ /* type, API, "name", version, special_info, init_function */
{ PLUGIN_INPUT, 18, "rtsp", XINE_VERSION_CODE, NULL, init_class },
{ PLUGIN_NONE, 0, "", 0, NULL, NULL }
};
diff --git a/src/input/input_smb.c b/src/input/input_smb.c
index 3c2086cc3..6e857259b 100644
--- a/src/input/input_smb.c
+++ b/src/input/input_smb.c
@@ -1,18 +1,18 @@
/*
* Copyright (C) 2008 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -41,7 +41,7 @@
typedef struct {
input_class_t input_class;
xine_t *xine;
-
+
int mrls_allocated_entries;
xine_mrl_t **mrls;
} smb_input_class_t;
@@ -139,7 +139,7 @@ smb_plugin_get_length (input_plugin_t *this_gen)
int e;
struct stat st;
-
+
if (this->fd>=0) e = smbc_fstat(this->fd,&st);
else e = smbc_stat(this->mrl,&st);
@@ -207,20 +207,20 @@ static int _strverscmp(const char *s1, const char *s2) {
c2 = *p2++;
state |= (c1 == '0') + (ISDIGIT(c1) != 0);
}
-
+
state = result_type[state << 2 | ((c2 == '0') + (ISDIGIT(c2) != 0))];
-
+
switch(state) {
case CMP:
return diff;
-
+
case LEN:
while(ISDIGIT(*p1++))
if(!ISDIGIT(*p2++))
return 1;
-
+
return ISDIGIT(*p2) ? -1 : diff;
-
+
default:
return state;
}
@@ -234,9 +234,9 @@ static int _sortfiles_default(const xine_mrl_t *s1, const xine_mrl_t *s2) {
}
-static xine_mrl_t **smb_class_get_dir (input_class_t *this_gen,
+static xine_mrl_t **smb_class_get_dir (input_class_t *this_gen,
const char *filename, int *nFiles) {
-
+
smb_input_class_t *this = (smb_input_class_t *) this_gen;
int (*func) () = _sortfiles_default;
int dir;
@@ -252,11 +252,11 @@ static xine_mrl_t **smb_class_get_dir (input_class_t *this_gen,
snprintf(current_path, XINE_PATH_MAX, "smb:/");
snprintf(current_path_smb, XINE_PATH_MAX, "smb://");
}
-
+
if ((dir = smbc_opendir(current_path_smb)) >= 0){
xine_mrl_t *dir_files = (xine_mrl_t *) calloc(MAXFILES, sizeof(xine_mrl_t));
xine_mrl_t *norm_files = (xine_mrl_t *) calloc(MAXFILES, sizeof(xine_mrl_t));
- int num_dir_files=0;
+ int num_dir_files=0;
int num_norm_files=0;
while ((pdirent = smbc_readdir(dir)) != NULL){
if (pdirent->smbc_type == SMBC_WORKGROUP){
@@ -266,7 +266,7 @@ static xine_mrl_t **smb_class_get_dir (input_class_t *this_gen,
asprintf(&(dir_files[num_dir_files].mrl), "%s/%s", current_path, pdirent->name);
dir_files[num_dir_files].size = pdirent->dirlen;
num_dir_files ++;
- }else if (pdirent->smbc_type == SMBC_SERVER){
+ }else if (pdirent->smbc_type == SMBC_SERVER){
if (num_dir_files == 0) {
dir_files[num_dir_files].link = NULL;
dir_files[num_dir_files].type = mrl_file | mrl_file_directory;
@@ -298,7 +298,7 @@ static xine_mrl_t **smb_class_get_dir (input_class_t *this_gen,
asprintf(&(dir_files[num_dir_files].mrl), "%s/%s", current_path, pdirent->name);
dir_files[num_dir_files].size = pdirent->dirlen;
num_dir_files ++;
- }
+ }
} else if (pdirent->smbc_type == SMBC_DIR){
dir_files[num_dir_files].link = NULL;
dir_files[num_dir_files].type = mrl_file | mrl_file_directory;
@@ -331,49 +331,49 @@ static xine_mrl_t **smb_class_get_dir (input_class_t *this_gen,
*/
if(num_dir_files)
qsort(dir_files, num_dir_files, sizeof(xine_mrl_t), func);
-
+
if(num_norm_files)
qsort(norm_files, num_norm_files, sizeof(xine_mrl_t), func);
-
+
/*
* Add directories entries
*/
for(i = 0; i < num_dir_files; i++) {
if (num_files >= this->mrls_allocated_entries) {
++this->mrls_allocated_entries;
- this->mrls = realloc(this->mrls,
+ this->mrls = realloc(this->mrls,
(this->mrls_allocated_entries+1) * sizeof(xine_mrl_t*));
this->mrls[num_files] = calloc(1, sizeof(xine_mrl_t));
}else
memset(this->mrls[num_files], 0, sizeof(xine_mrl_t));
-
- MRL_DUPLICATE(&dir_files[i], this->mrls[num_files]);
+
+ MRL_DUPLICATE(&dir_files[i], this->mrls[num_files]);
num_files++;
}
-
- /*
+
+ /*
* Add other files entries
*/
for(i = 0; i < num_norm_files; i++) {
if(num_files >= this->mrls_allocated_entries) {
++this->mrls_allocated_entries;
- this->mrls = realloc(this->mrls,
+ this->mrls = realloc(this->mrls,
(this->mrls_allocated_entries+1) * sizeof(xine_mrl_t*));
this->mrls[num_files] = calloc(1, sizeof(xine_mrl_t));
}else
memset(this->mrls[num_files], 0, sizeof(xine_mrl_t));
- MRL_DUPLICATE(&norm_files[i], this->mrls[num_files]);
+ MRL_DUPLICATE(&norm_files[i], this->mrls[num_files]);
num_files++;
}
-
+
/* Some cleanups before leaving */
for(i = num_dir_files; i == 0; i--)
MRL_ZERO(&dir_files[i]);
free(dir_files);
-
+
for(i = num_norm_files; i == 0; i--)
MRL_ZERO(&norm_files[i]);
free(norm_files);
@@ -383,13 +383,13 @@ static xine_mrl_t **smb_class_get_dir (input_class_t *this_gen,
current_path, errno, strerror(errno));
*nFiles = 0;
return NULL;
- }
-
+ }
+
/*
* Inform caller about files found number.
*/
*nFiles = num_files;
-
+
/*
* Freeing exceeded mrls if exists.
*/
@@ -397,7 +397,7 @@ static xine_mrl_t **smb_class_get_dir (input_class_t *this_gen,
MRL_ZERO(this->mrls[this->mrls_allocated_entries - 1]);
free(this->mrls[this->mrls_allocated_entries--]);
}
-
+
/*
* This is useful to let UI know where it should stops ;-).
*/
@@ -407,7 +407,7 @@ static xine_mrl_t **smb_class_get_dir (input_class_t *this_gen,
}
static int
-smb_plugin_get_optional_data (input_plugin_t *this_gen,
+smb_plugin_get_optional_data (input_plugin_t *this_gen,
void *data, int data_type)
{
return INPUT_OPTIONAL_UNSUPPORTED;
@@ -432,8 +432,8 @@ smb_plugin_open (input_plugin_t *this_gen )
smb_input_class_t *class = (smb_input_class_t *) this_gen->input_class;
this->fd = smbc_open(this->mrl,O_RDONLY,0);
- xprintf(class->xine, XINE_VERBOSITY_DEBUG,
- "input_smb: open failed for %s: %s\n",
+ xprintf(class->xine, XINE_VERBOSITY_DEBUG,
+ "input_smb: open failed for %s: %s\n",
this->mrl, strerror(errno));
if (this->fd<0) return 0;
@@ -445,7 +445,7 @@ smb_class_get_instance (input_class_t *class_gen, xine_stream_t *stream,
const char *mrl)
{
smb_input_t *this;
-
+
if (mrl == NULL)
return NULL;
if (strncmp (mrl, "smb://",6))
@@ -489,7 +489,7 @@ static void
if (smbc_init(smb_auth,(xine->verbosity >= XINE_VERBOSITY_DEBUG)))
goto _exit_error;
-
+
this = calloc(1, sizeof(smb_input_class_t));
this->xine = xine;
@@ -507,7 +507,7 @@ static void
setlocale(LC_MESSAGES, lcl);
free(lcl);
#endif
-
+
return (input_class_t *) this;
}
diff --git a/src/input/input_stdin_fifo.c b/src/input/input_stdin_fifo.c
index 55ac18a42..9d6f7059f 100644
--- a/src/input/input_stdin_fifo.c
+++ b/src/input/input_stdin_fifo.c
@@ -2,17 +2,17 @@
* Copyright (C) 2000-2003 the xine project
*
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -78,7 +78,7 @@ static off_t stdin_plugin_get_current_pos (input_plugin_t *this_gen);
-static off_t stdin_plugin_read (input_plugin_t *this_gen,
+static off_t stdin_plugin_read (input_plugin_t *this_gen,
void *buf_gen, off_t len) {
stdin_input_plugin_t *this = (stdin_input_plugin_t *) this_gen;
@@ -105,7 +105,7 @@ static off_t stdin_plugin_read (input_plugin_t *this_gen,
n = _x_io_file_read (this->stream, this->fh, &buf[total], len - total);
lprintf ("got %"PRId64" bytes (%"PRId64"/%"PRId64" bytes read)\n", n,total,len);
-
+
if (n < 0) {
_x_message(this->stream, XINE_MSG_READ_ERROR, NULL);
return 0;
@@ -117,7 +117,7 @@ static off_t stdin_plugin_read (input_plugin_t *this_gen,
return total;
}
-static buf_element_t *stdin_plugin_read_block (input_plugin_t *this_gen, fifo_buffer_t *fifo,
+static buf_element_t *stdin_plugin_read_block (input_plugin_t *this_gen, fifo_buffer_t *fifo,
off_t todo) {
off_t total_bytes;
@@ -167,11 +167,11 @@ static off_t stdin_plugin_seek (input_plugin_t *this_gen, off_t offset, int orig
if (offset < this->curpos) {
- if( this->curpos <= this->preview_size )
+ if( this->curpos <= this->preview_size )
this->curpos = offset;
else
- xprintf (this->xine, XINE_VERBOSITY_LOG,
- _("stdin: cannot seek back! (%" PRIdMAX " > %" PRIdMAX ")\n"),
+ xprintf (this->xine, XINE_VERBOSITY_LOG,
+ _("stdin: cannot seek back! (%" PRIdMAX " > %" PRIdMAX ")\n"),
(intmax_t)this->curpos, (intmax_t)offset);
} else {
@@ -195,7 +195,7 @@ static off_t stdin_plugin_get_length(input_plugin_t *this_gen) {
}
static uint32_t stdin_plugin_get_capabilities(input_plugin_t *this_gen) {
-
+
return INPUT_CAP_PREVIEW;
}
@@ -219,17 +219,17 @@ static const char* stdin_plugin_get_mrl (input_plugin_t *this_gen) {
static void stdin_plugin_dispose (input_plugin_t *this_gen ) {
stdin_input_plugin_t *this = (stdin_input_plugin_t *) this_gen;
- if (this->nbc)
+ if (this->nbc)
nbc_close (this->nbc);
if ((this->fh != STDIN_FILENO) && (this->fh != -1))
close(this->fh);
-
+
free (this->mrl);
free (this);
}
-static int stdin_plugin_get_optional_data (input_plugin_t *this_gen,
+static int stdin_plugin_get_optional_data (input_plugin_t *this_gen,
void *data, int data_type) {
stdin_input_plugin_t *this = (stdin_input_plugin_t *) this_gen;
@@ -288,7 +288,7 @@ static int stdin_plugin_open (input_plugin_t *this_gen ) {
}
-static input_plugin_t *stdin_class_get_instance (input_class_t *class_gen,
+static input_plugin_t *stdin_class_get_instance (input_class_t *class_gen,
xine_stream_t *stream, const char *data) {
stdin_input_class_t *class = (stdin_input_class_t *) class_gen;
diff --git a/src/input/input_v4l.c b/src/input/input_v4l.c
index c89653050..5d38cb4e4 100644
--- a/src/input/input_v4l.c
+++ b/src/input/input_v4l.c
@@ -1,19 +1,19 @@
/*
* Copyright (C) 2003-2008 the xine project
* Copyright (C) 2003 J.Asselman <j.asselman@itsec-ps.nl>
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -65,7 +65,7 @@
/* #define LOG_MODULE "input_v4l" */
#define LOG_VERBOSE
/*
-#define LOG
+#define LOG
*/
#ifdef LOG
@@ -133,7 +133,7 @@ typedef struct {
typedef struct {
input_plugin_t input_plugin;
-
+
xine_stream_t *stream;
char *mrl;
@@ -147,7 +147,7 @@ typedef struct {
buf_element_t *frames_base;
void *audio_content_base;
void *video_content_base;
-
+
/* Audio */
buf_element_t *aud_frames;
pthread_mutex_t aud_frames_lock;
@@ -156,32 +156,32 @@ typedef struct {
#ifdef HAVE_ALSA
/* Handle for the PCM device */
snd_pcm_t *pcm_handle;
-
+
/* Record stream (via line 1) */
snd_pcm_stream_t pcm_stream;
-
+
/* Information and configuration for the PCM stream */
snd_pcm_hw_params_t *pcm_hwparams;
/* Name of the PCM device, plughw:0,0?=>soundcard,device*/
- char *pcm_name;
-
+ char *pcm_name;
+
/* Use alsa to capture the sound (for a/v sync) */
char audio_capture;
-
+
int exact_rate; /* Actual sample rate
sndpcm_hw_params_set_rate_near */
int dir; /* exact rate == rate --> dir = 0
exact rate < rate --> dir = -1
exact rate > rate --> dir = 1 */
-
+
unsigned char *pcm_data;
-
+
int64_t pts_aud_start;
#endif
int audio_header_sent;
-
+
int rate; /* Sample rate */
int periods; /* Number of periods */
int periodsize; /* Periodsize in bytes */
@@ -210,9 +210,9 @@ typedef struct {
struct video_audio audio;
struct video_audio audio_saved;
struct video_mbuf gb_buffers;
-
+
int video_header_sent;
-
+
int frame_format;
const resolution_t *resolution;
int frame_size;
@@ -249,13 +249,13 @@ typedef struct {
struct pvrscr_s {
scr_plugin_t scr;
-
+
struct timeval cur_time;
int64_t cur_pts;
int xine_speed;
double speed_factor;
double speed_tuning;
-
+
pthread_mutex_t lock;
};
@@ -270,47 +270,47 @@ static void pvrscr_set_pivot(pvrscr_t *this)
struct timeval tv;
int64_t pts;
double pts_calc;
-
+
xine_monotonic_clock(&tv, NULL);
pts_calc = (tv.tv_sec - this->cur_time.tv_sec) * this->speed_factor;
pts_calc += (tv.tv_usec - this->cur_time.tv_usec) * this->speed_factor / 1e6;
pts = this->cur_pts + pts_calc;
-
+
/* This next part introduces a one off inaccuracy
* to the scr due to rounding tv to pts.
*/
this->cur_time.tv_sec = tv.tv_sec;
this->cur_time.tv_usec = tv.tv_usec;
this->cur_pts = pts;
-
+
return;
}
static int pvrscr_set_fine_speed (scr_plugin_t *scr, int speed)
{
pvrscr_t *this = (pvrscr_t*) scr;
-
+
pthread_mutex_lock (&this->lock);
-
+
pvrscr_set_pivot( this );
this->xine_speed = speed;
this->speed_factor = (double) speed * 90000.0 / XINE_FINE_SPEED_NORMAL *
this->speed_tuning;
-
+
pthread_mutex_unlock (&this->lock);
-
+
return speed;
}
static void pvrscr_speed_tuning (pvrscr_t *this, double factor)
{
pthread_mutex_lock (&this->lock);
-
+
pvrscr_set_pivot( this );
this->speed_tuning = factor;
this->speed_factor = (double) this->xine_speed * 90000.0 / XINE_FINE_SPEED_NORMAL *
this->speed_tuning;
-
+
pthread_mutex_unlock (&this->lock);
}
@@ -318,28 +318,28 @@ static void pvrscr_adjust (scr_plugin_t *scr, int64_t vpts)
{
pvrscr_t *this = (pvrscr_t*) scr;
struct timeval tv;
-
+
pthread_mutex_lock (&this->lock);
-
+
xine_monotonic_clock(&tv, NULL);
this->cur_time.tv_sec = tv.tv_sec;
this->cur_time.tv_usec = tv.tv_usec;
this->cur_pts = vpts;
-
+
pthread_mutex_unlock (&this->lock);
}
static void pvrscr_start (scr_plugin_t *scr, int64_t start_vpts)
{
pvrscr_t *this = (pvrscr_t*) scr;
-
+
pthread_mutex_lock (&this->lock);
-
+
xine_monotonic_clock(&this->cur_time, NULL);
this->cur_pts = start_vpts;
pthread_mutex_unlock (&this->lock);
-
+
pvrscr_set_fine_speed (&this->scr, XINE_FINE_SPEED_NORMAL);
}
@@ -349,17 +349,17 @@ static int64_t pvrscr_get_current (scr_plugin_t *scr)
struct timeval tv;
int64_t pts;
double pts_calc;
-
+
pthread_mutex_lock (&this->lock);
-
+
xine_monotonic_clock(&tv, NULL);
-
+
pts_calc = (tv.tv_sec - this->cur_time.tv_sec) * this->speed_factor;
pts_calc += (tv.tv_usec - this->cur_time.tv_usec) * this->speed_factor / 1e6;
pts = this->cur_pts + pts_calc;
-
+
pthread_mutex_unlock (&this->lock);
-
+
/*printf("returning pts %lld\n", pts);*/
return pts;
}
@@ -367,7 +367,7 @@ static int64_t pvrscr_get_current (scr_plugin_t *scr)
static void pvrscr_exit (scr_plugin_t *scr)
{
pvrscr_t *this = (pvrscr_t*) scr;
-
+
pthread_mutex_destroy (&this->lock);
free(this);
}
@@ -375,9 +375,9 @@ static void pvrscr_exit (scr_plugin_t *scr)
static pvrscr_t *XINE_MALLOC pvrscr_init (void)
{
pvrscr_t *this;
-
+
this = calloc(1, sizeof(pvrscr_t));
-
+
this->scr.interface_version = 3;
this->scr.get_priority = pvrscr_get_priority;
this->scr.set_fine_speed = pvrscr_set_fine_speed;
@@ -385,7 +385,7 @@ static pvrscr_t *XINE_MALLOC pvrscr_init (void)
this->scr.start = pvrscr_start;
this->scr.get_current = pvrscr_get_current;
this->scr.exit = pvrscr_exit;
-
+
pthread_mutex_init (&this->lock, NULL);
pvrscr_speed_tuning(this, 1.0 );
@@ -393,7 +393,7 @@ static pvrscr_t *XINE_MALLOC pvrscr_init (void)
#ifdef SCRLOG
printf("input_v4l: scr init complete\n");
#endif
-
+
return this;
}
@@ -404,7 +404,7 @@ static void report_progress (xine_stream_t *stream, int p)
{
xine_event_t event;
xine_progress_data_t prg;
-
+
if (p == SCR_PAUSED) {
prg.description = _("Buffer underrun...");
p = 0;
@@ -414,13 +414,13 @@ static void report_progress (xine_stream_t *stream, int p)
p = 100;
} else
prg.description = _("Adjusting...");
-
+
prg.percent = (p>100)?100:p;
-
+
event.type = XINE_EVENT_PROGRESS;
event.data = &prg;
event.data_length = sizeof (xine_progress_data_t);
-
+
xine_event_send (stream, &event);
}
@@ -436,25 +436,25 @@ static void v4l_event_handler(v4l_input_plugin_t *this);
inline static buf_element_t *alloc_aud_frame (v4l_input_plugin_t *this)
{
buf_element_t *frame;
-
+
lprintf("alloc_aud_frame. trying to get lock...\n");
pthread_mutex_lock (&this->aud_frames_lock) ;
-
+
lprintf("got the lock\n");
-
+
while (!this->aud_frames) {
lprintf("no audio frame available...\n");
pthread_cond_wait (&this->aud_frame_freed, &this->aud_frames_lock);
}
-
+
frame = this->aud_frames;
this->aud_frames = this->aud_frames->next;
-
+
pthread_mutex_unlock (&this->aud_frames_lock);
-
+
lprintf("alloc_aud_frame done\n");
-
+
return frame;
}
@@ -468,10 +468,10 @@ static void store_aud_frame (buf_element_t *frame)
lprintf("store_aud_frame\n");
pthread_mutex_lock (&this->aud_frames_lock) ;
-
+
frame->next = this->aud_frames;
this->aud_frames = frame;
-
+
pthread_cond_signal (&this->aud_frame_freed);
pthread_mutex_unlock (&this->aud_frames_lock);
}
@@ -488,19 +488,19 @@ inline static buf_element_t *alloc_vid_frame (v4l_input_plugin_t *this)
pthread_mutex_lock (&this->vid_frames_lock) ;
lprintf("got the lock\n");
-
+
while (!this->vid_frames) {
lprintf("no video frame available...\n");
pthread_cond_wait (&this->vid_frame_freed, &this->vid_frames_lock);
}
-
+
frame = this->vid_frames;
this->vid_frames = this->vid_frames->next;
-
+
pthread_mutex_unlock (&this->vid_frames_lock);
-
+
lprintf("alloc_vid_frame done\n");
-
+
return frame;
}
@@ -511,50 +511,50 @@ static void store_vid_frame (buf_element_t *frame)
{
v4l_input_plugin_t *this = (v4l_input_plugin_t *) frame->source;
-
+
lprintf("store_vid_frame\n");
-
+
pthread_mutex_lock (&this->vid_frames_lock) ;
frame->next = this->vid_frames;
this->vid_frames = frame;
-
+
pthread_cond_signal (&this->vid_frame_freed);
pthread_mutex_unlock (&this->vid_frames_lock);
}
-static int extract_mrl(v4l_input_plugin_t *this, char *mrl)
+static int extract_mrl(v4l_input_plugin_t *this, char *mrl)
{
char *tuner_name = NULL;
int frequency = 0;
char *locator = NULL;
char *begin = NULL;
-
+
if (mrl == NULL) {
lprintf("Someone passed an empty mrl\n");
return 0;
}
-
+
for (locator = mrl; *locator != '\0' && *locator != '/' ; locator++);
-
+
/* Get tuner name */
if (*locator == '/') {
begin = ++locator;
-
+
for (; *locator != '\0' && *locator != '/' ; locator++);
-
+
tuner_name = (char *) strndup(begin, locator - begin);
-
- /* Get frequency, if available */
+
+ /* Get frequency, if available */
sscanf(locator, "/%d", &frequency);
-
+
/* cannot use xprintf to log in this routine */
lprintf("input_v4l: Tuner name: %s frequency %d\n", tuner_name, frequency );
}
-
+
this->frequency = frequency;
this->tuner_name = tuner_name;
-
+
return 1;
}
@@ -562,12 +562,12 @@ static int set_frequency(v4l_input_plugin_t *this, unsigned long frequency)
{
int ret = 0;
int fd;
-
+
if (this->video_fd > 0)
fd = this->video_fd;
else
fd = this->radio_fd;
-
+
if (frequency != 0) {
/* FIXME: Don't assume tuner 0 ? */
this->tuner = 0;
@@ -580,19 +580,19 @@ static int set_frequency(v4l_input_plugin_t *this, unsigned long frequency)
} else {
this->calc_frequency = (frequency * 16) / 1000;
}
-
+
ret = ioctl(fd, VIDIOCSFREQ, &this->calc_frequency);
- xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
"input_v4l: set frequency (%ld) returned: %d\n", frequency, ret);
} else {
- xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
"input_v4l: No frequency given. Expected syntax: v4l:/tuner/frequency\n"
"input_v4l: Using currently tuned settings\n");
}
-
+
this->frequency = frequency;
-
+
if (ret < 0)
return ret;
else
@@ -602,11 +602,11 @@ static int set_frequency(v4l_input_plugin_t *this, unsigned long frequency)
static int set_input_source(v4l_input_plugin_t *this, char *input_source)
{
int ret = 0;
-
+
if ((ret = search_by_channel(this, input_source)) != 1) {
ret = search_by_tuner(this, input_source);
}
-
+
return ret;
}
@@ -615,23 +615,23 @@ static int search_by_tuner(v4l_input_plugin_t *this, char *input_source)
int ret = 0;
int fd = 0;
int cur_tuner = 0;
-
+
if (this->video_fd > 0)
fd = this->video_fd;
else
fd = this->radio_fd;
-
+
this->video_tuner.tuner = cur_tuner;
ioctl(fd, VIDIOCGCAP, &this->video_cap);
-
+
lprintf("This device has %d channel(s)\n", this->video_cap.channels);
-
+
for (ret = ioctl(fd, VIDIOCGTUNER, &this->video_tuner);
ret == 0 && this->video_cap.channels > cur_tuner && strstr(this->video_tuner.name, input_source) == NULL;
cur_tuner++) {
-
+
this->video_tuner.tuner = cur_tuner;
-
+
lprintf("(%d) V4L device currently set to: \n", ret);
lprintf("Tuner: %d\n", this->video_tuner.tuner);
lprintf("Name: %s\n", this->video_tuner.name);
@@ -641,7 +641,7 @@ static int search_by_tuner(v4l_input_plugin_t *this, char *input_source)
lprintf("Range: %ld - %ld\n", this->video_tuner.rangelow * 1000 / 16, this->video_tuner.rangehigh * 1000 / 16);
}
}
-
+
lprintf("(%d) V4L device final: \n", ret);
lprintf("Tuner: %d\n", this->video_tuner.tuner);
lprintf("Name: %s\n", this->video_tuner.name);
@@ -650,10 +650,10 @@ static int search_by_tuner(v4l_input_plugin_t *this, char *input_source)
} else {
lprintf("Range: %ld - %ld\n", this->video_tuner.rangelow * 1000 / 16, this->video_tuner.rangehigh * 1000 / 16);
}
-
+
if (strstr(this->video_tuner.name, input_source) == NULL)
return -1;
-
+
return 1;
}
@@ -664,20 +664,20 @@ static int search_by_channel(v4l_input_plugin_t *this, char *input_source)
cfg_entry_t *tv_standard_entry;
lprintf("input_source: %s\n", input_source);
-
+
this->input = 0;
-
+
if (this->video_fd > 0)
fd = this->video_fd;
else
fd = this->radio_fd;
-
+
/* Tune into channel */
if (strlen(input_source) > 0) {
for( this->video_channel.channel = 0;
ioctl(fd, VIDIOCGCHAN, &this->video_channel) == 0;
this->video_channel.channel++ ) {
-
+
lprintf("V4L device currently set to:\n");
lprintf("Channel: %d\n", this->video_channel.channel);
lprintf("Name: %s\n", this->video_channel.name);
@@ -691,33 +691,33 @@ static int search_by_channel(v4l_input_plugin_t *this, char *input_source)
break;
}
}
-
+
if (strstr(this->video_channel.name, input_source) == NULL) {
xprintf(this->stream->xine, XINE_VERBOSITY_LOG, _("Tuner name not found\n"));
return -1;
}
-
+
tv_standard_entry = this->stream->xine->config->lookup_entry(this->stream->xine->config,
"media.video4linux.tv_standard");
this->tuner_name = input_source;
if (tv_standard_entry->num_value != 0) {
this->video_channel.norm = tv_standard_values[ tv_standard_entry->num_value ];
xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
- "input_v4l: TV Standard configured as STD %s (%d)\n",
+ "input_v4l: TV Standard configured as STD %s (%d)\n",
tv_standard_names[ tv_standard_entry->num_value ], this->video_channel.norm );
ret = ioctl(fd, VIDIOCSCHAN, &this->video_channel);
} else
ret = ioctl(fd, VIDIOCSCHAN, &this->input);
-
+
lprintf("(%d) Set channel to %d\n", ret, this->input);
} else {
- xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
"input_v4l: Not setting video source. No source given\n");
}
ret = ioctl(fd, VIDIOCGTUNER, &this->video_tuner);
lprintf("(%d) Flags %d\n", ret, this->video_tuner.flags);
-
+
lprintf("VIDEO_TUNER_PAL %s set\n", this->video_tuner.flags & VIDEO_TUNER_PAL ? "" : "not");
lprintf("VIDEO_TUNER_NTSC %s set\n", this->video_tuner.flags & VIDEO_TUNER_NTSC ? "" : "not");
lprintf("VIDEO_TUNER_SECAM %s set\n", this->video_tuner.flags & VIDEO_TUNER_SECAM ? "" : "not");
@@ -726,7 +726,7 @@ static int search_by_channel(v4l_input_plugin_t *this, char *input_source)
lprintf("VIDEO_TUNER_STEREO_ON %s set\n", this->video_tuner.flags & VIDEO_TUNER_STEREO_ON ? "" : "not");
lprintf("VIDEO_TUNER_RDS_ON %s set\n", this->video_tuner.flags & VIDEO_TUNER_RDS_ON ? "" : "not");
lprintf("VIDEO_TUNER_MBS_ON %s set\n", this->video_tuner.flags & VIDEO_TUNER_MBS_ON ? "" : "not");
-
+
switch (this->video_tuner.mode) {
case VIDEO_MODE_PAL:
lprintf("The tuner is in PAL mode\n");
@@ -742,7 +742,7 @@ static int search_by_channel(v4l_input_plugin_t *this, char *input_source)
break;
}
- return 1;
+ return 1;
}
static void allocate_frames(v4l_input_plugin_t *this, unsigned dovideo)
@@ -768,7 +768,7 @@ static void allocate_frames(v4l_input_plugin_t *this, unsigned dovideo)
frames[i].source = this;
frames[i].free_buffer = store_aud_frame;
frames[i].extra_info = &infos[i];
-
+
audio_content += this->periodsize;
store_aud_frame(&frames[i]);
}
@@ -797,12 +797,12 @@ static void unmute_audio(v4l_input_plugin_t *this)
int fd;
lprintf("unmute_audio\n");
-
+
if (this->video_fd > 0)
fd = this->video_fd;
else
fd = this->radio_fd;
-
+
ioctl(fd, VIDIOCGAUDIO, &this->audio);
memcpy(&this->audio_saved, &this->audio, sizeof(this->audio));
@@ -811,43 +811,43 @@ static void unmute_audio(v4l_input_plugin_t *this)
ioctl(fd, VIDIOCSAUDIO, &this->audio);
}
-
+
static int open_radio_capture_device(v4l_input_plugin_t *this)
{
int tuner_found = 0;
cfg_entry_t *entry;
-
+
lprintf("open_radio_capture_device\n");
-
+
entry = this->stream->xine->config->lookup_entry(this->stream->xine->config,
"media.video4linux.radio_device");
-
+
if((this->radio_fd = open(entry->str_value, O_RDWR)) < 0) {
xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
- "input_v4l: error opening v4l device (%s): %s\n",
+ "input_v4l: error opening v4l device (%s): %s\n",
entry->str_value, strerror(errno));
return 0;
}
-
+
lprintf("Device opened, radio %d\n", this->radio_fd);
-
+
if (set_input_source(this, this->tuner_name) > 0)
tuner_found = 1;
-
+
_x_stream_info_set(this->stream, XINE_STREAM_INFO_HAS_AUDIO, 1);
_x_stream_info_set(this->stream, XINE_STREAM_INFO_HAS_VIDEO, 0);
-
+
/* Pre-allocate some frames for audio so it doesn't have to be done during
* capture */
allocate_frames(this, 0);
-
+
this->audio_only = 1;
-
+
/* Unmute audio off video capture device */
unmute_audio(this);
-
- set_frequency(this, this->frequency);
-
+
+ set_frequency(this, this->frequency);
+
if (tuner_found)
return 1;
else
@@ -868,20 +868,20 @@ static int open_video_capture_device(v4l_input_plugin_t *this)
int ret;
unsigned int j;
cfg_entry_t *entry;
-
+
lprintf("open_video_capture_device\n");
-
- entry = this->stream->xine->config->lookup_entry(this->stream->xine->config,
+
+ entry = this->stream->xine->config->lookup_entry(this->stream->xine->config,
"media.video4linux.video_device");
/* Try to open the video device */
if((this->video_fd = open(entry->str_value, O_RDWR)) < 0) {
xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
- "input_v4l: error opening v4l device (%s): %s\n",
+ "input_v4l: error opening v4l device (%s): %s\n",
entry->str_value, strerror(errno));
return 0;
}
-
+
lprintf("Device opened, tv %d\n", this->video_fd);
/* figure out the resolution */
@@ -895,7 +895,7 @@ static int open_video_capture_device(v4l_input_plugin_t *this)
break;
}
}
-
+
if (found == 0 || resolutions[j].width < this->video_cap.minwidth
|| resolutions[j].height < this->video_cap.minheight)
{
@@ -903,19 +903,19 @@ static int open_video_capture_device(v4l_input_plugin_t *this)
lprintf("Grab device does not support any preset resolutions");
return 0;
}
-
+
this->resolution = &resolutions[j];
-
+
_x_stream_info_set(this->stream, XINE_STREAM_INFO_HAS_AUDIO, 1);
_x_stream_info_set(this->stream, XINE_STREAM_INFO_HAS_VIDEO, 1);
-
- /* Pre-allocate some frames for audio and video so it doesn't have to be
+
+ /* Pre-allocate some frames for audio and video so it doesn't have to be
* done during capture */
allocate_frames(this, 1);
-
+
/* Unmute audio off video capture device */
unmute_audio(this);
-
+
if (strlen(this->tuner_name) > 0) {
/* Tune into source and given frequency */
if (set_input_source(this, this->tuner_name) <= 0)
@@ -923,20 +923,20 @@ static int open_video_capture_device(v4l_input_plugin_t *this)
else
tuner_found = 1;
}
-
- set_frequency(this, this->frequency);
-
+
+ set_frequency(this, this->frequency);
+
/* Test for mmap video access */
ret = ioctl(this->video_fd,VIDIOCGMBUF, &this->gb_buffers);
-
+
if (ret < 0) {
/* Device driver does not support mmap */
/* try to use read based access */
struct video_picture pict;
int val;
-
+
ioctl(this->video_fd, VIDIOCGPICT, &pict);
-
+
/* try to choose a suitable video format */
pict.palette = VIDEO_PALETTE_YUV420P;
ret = ioctl(this->video_fd, VIDIOCSPICT, &pict);
@@ -954,13 +954,13 @@ static int open_video_capture_device(v4l_input_plugin_t *this)
}
else
lprintf("Grab: format YUV 4:2:0\n");
-
+
this->frame_format = pict.palette;
val = 1;
ioctl(this->video_fd, VIDIOCCAPTURE, &val);
-
+
this->use_mmap = 0;
-
+
} else {
/* Good, device driver support mmap. Mmap the memory */
lprintf("using mmap, size %d\n", this->gb_buffers.size);
@@ -974,23 +974,23 @@ static int open_video_capture_device(v4l_input_plugin_t *this)
return 0;
}
this->gb_frame = 0;
-
+
/* start to grab the first frame */
this->gb_buf.frame = (this->gb_frame + 1) % this->gb_buffers.frames;
this->gb_buf.height = resolutions[j].height;
this->gb_buf.width = resolutions[j].width;
this->gb_buf.format = VIDEO_PALETTE_YUV420P;
-
+
ret = ioctl(this->video_fd, VIDIOCMCAPTURE, &this->gb_buf);
if (ret < 0 && errno != EAGAIN) {
/* try YUV422 */
this->gb_buf.format = VIDEO_PALETTE_YUV422;
-
+
ret = ioctl(this->video_fd, VIDIOCMCAPTURE, &this->gb_buf);
}
else
lprintf("(%d) YUV420 should work\n", ret);
-
+
if (ret < 0) {
if (errno != EAGAIN) {
lprintf("grab device does not support suitable format\n");
@@ -1003,7 +1003,7 @@ static int open_video_capture_device(v4l_input_plugin_t *this)
this->frame_format = this->gb_buf.format;
this->use_mmap = 1;
}
-
+
switch(this->frame_format) {
case VIDEO_PALETTE_YUV420P:
this->frame_format = BUF_VIDEO_I420;
@@ -1014,19 +1014,19 @@ static int open_video_capture_device(v4l_input_plugin_t *this)
this->frame_size = resolutions[j].width * resolutions[j].height * 2;
break;
}
-
- /* Strip the vbi / sync signal from the image by zooming in */
+
+ /* Strip the vbi / sync signal from the image by zooming in */
this->old_zoomx = xine_get_param(this->stream, XINE_PARAM_VO_ZOOM_X);
this->old_zoomy = xine_get_param(this->stream, XINE_PARAM_VO_ZOOM_Y);
-
+
xine_set_param(this->stream, XINE_PARAM_VO_ZOOM_X, 103);
xine_set_param(this->stream, XINE_PARAM_VO_ZOOM_Y, 103);
- /* Pre-allocate some frames for audio and video so it doesn't have to be
+ /* Pre-allocate some frames for audio and video so it doesn't have to be
* done during capture */
allocate_frames(this, 1);
- /* If we made it here, everything went ok */
+ /* If we made it here, everything went ok */
this->audio_only = 0;
if (tuner_found)
return 1;
@@ -1050,98 +1050,98 @@ static int open_audio_capture_device(v4l_input_plugin_t *this)
/* Allocate the snd_pcm_hw_params_t structure on the stack. */
snd_pcm_hw_params_alloca(&this->pcm_hwparams);
-
+
/* If we are not capturing video, open the sound device in blocking mode,
* otherwise xine gets too many NULL bufs and doesn't seem to handle them
* correctly. If we are capturing video, open the sound device in non-
* blocking mode, otherwise we will loose video frames while waiting */
if(!this->audio_only)
mode = SND_PCM_NONBLOCK;
-
+
/* Open the PCM device. */
if(snd_pcm_open(&this->pcm_handle, this->pcm_name, this->pcm_stream, mode) < 0) {
- xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
"input_v4l: Error opening PCM device: %s\n", this->pcm_name);
this->audio_capture = 0;
}
-
+
/* Get parameters */
if (this->audio_capture &&
(snd_pcm_hw_params_any(this->pcm_handle, this->pcm_hwparams) < 0)) {
- xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
"input_v4l: Broken configuration for PCM device: No configurations available\n");
this->audio_capture = 0;
}
-
+
/* Set access type */
if (this->audio_capture &&
(snd_pcm_hw_params_set_access(this->pcm_handle, this->pcm_hwparams,
SND_PCM_ACCESS_RW_INTERLEAVED) < 0)) {
- xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
"input_v4l: Error setting SND_PCM_ACCESS_RW_INTERLEAVED\n");
this->audio_capture = 0;
}
-
+
/* Set sample format */
if (this->audio_capture &&
- (snd_pcm_hw_params_set_format(this->pcm_handle,
+ (snd_pcm_hw_params_set_format(this->pcm_handle,
this->pcm_hwparams, SND_PCM_FORMAT_S16_LE) < 0)) {
- xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
"input_v4l: Error setting SND_PCM_FORMAT_S16_LE\n");
this->audio_capture = 0;
}
-
+
/* Set sample rate */
this->exact_rate = this->rate;
if (this->audio_capture &&
- (snd_pcm_hw_params_set_rate_near(this->pcm_handle, this->pcm_hwparams,
+ (snd_pcm_hw_params_set_rate_near(this->pcm_handle, this->pcm_hwparams,
&this->exact_rate, &this->dir) < 0)) {
xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
"input_v4l: Error setting samplerate\n");
this->audio_capture = 0;
}
if (this->audio_capture && this->dir != 0) {
- xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
"input_v4l: Samplerate %d Hz is not supported by your hardware\n", this->rate);
- xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
"input_v4l: Using %d instead\n", this->exact_rate);
}
-
+
/* Set number of channels */
if (this->audio_capture &&
(snd_pcm_hw_params_set_channels(this->pcm_handle, this->pcm_hwparams, 2) < 0)) {
xprintf(this->stream->xine, XINE_VERBOSITY_LOG, "input_v4l: Error setting PCM channels\n");
this->audio_capture = 0;
}
-
+
if (this->audio_capture &&
(snd_pcm_hw_params_set_periods(this->pcm_handle, this->pcm_hwparams, this->periods, 0) < 0)) {
xprintf(this->stream->xine, XINE_VERBOSITY_LOG, "input_v4l: Error setting PCM periods\n");
this->audio_capture = 0;
}
-
+
/* Set buffersize */
if (this->audio_capture &&
- (snd_pcm_hw_params_set_buffer_size_near(this->pcm_handle,
+ (snd_pcm_hw_params_set_buffer_size_near(this->pcm_handle,
this->pcm_hwparams,
&buf_size) < 0)) {
xprintf(this->stream->xine, XINE_VERBOSITY_LOG, "input_v4l: Error setting PCM buffer size to %d\n", (int)buf_size );
this->audio_capture = 0;
}
-
+
/* Apply HW parameter settings */
if (this->audio_capture &&
(snd_pcm_hw_params(this->pcm_handle, this->pcm_hwparams) < 0)) {
xprintf(this->stream->xine, XINE_VERBOSITY_LOG, "input_v4l: Error Setting PCM HW params\n");
this->audio_capture = 0;
}
-
+
if (this->audio_capture) {
lprintf("Allocating memory for PCM capture :%d\n", this->periodsize);
this->pcm_data = (unsigned char*) malloc(this->periodsize);
} else
- this->pcm_data = NULL;
-
+ this->pcm_data = NULL;
+
lprintf("Audio device succesfully configured\n");
#endif
return 0;
@@ -1157,30 +1157,30 @@ static int v4l_adjust_realtime_speed(v4l_input_plugin_t *this, fifo_buffer_t *fi
{
int num_used, num_free;
int scr_tuning = this->scr_tuning;
-
+
if (fifo == NULL)
return 0;
-
+
num_used = fifo->size(fifo);
num_free = NUM_FRAMES - num_used;
-
+
if (!this->audio_only && num_used == 0 && scr_tuning != SCR_PAUSED) {
/* Buffer is empty, and we did not pause playback */
report_progress(this->stream, SCR_PAUSED);
-
- xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
+
+ xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"input_v4l: Buffer empty, pausing playback (used: %d, num_free: %d)\n",
num_used, num_free);
-
+
_x_set_speed(this->stream, XINE_SPEED_PAUSE);
this->stream->xine->clock->set_option (this->stream->xine->clock, CLOCK_SCR_ADJUSTABLE, 0);
-
+
this->scr_tuning = SCR_PAUSED;
/* pvrscr_speed_tuning(this->scr, 0.0); */
-
+
} else if (num_free <= 1 && scr_tuning != SCR_SKIP) {
this->scr_tuning = SCR_SKIP;
- xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"input_v4l: Buffer full, skipping (used: %d, free: %d)\n", num_used, num_free);
return 0;
} else if (scr_tuning == SCR_PAUSED) {
@@ -1188,11 +1188,11 @@ static int v4l_adjust_realtime_speed(v4l_input_plugin_t *this, fifo_buffer_t *fi
/* Playback was paused, but we have normal buffer usage again */
xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"input_v4l: Resuming from paused (used: %d, free: %d)\n", num_used, num_free);
-
+
this->scr_tuning = 0;
-
+
pvrscr_speed_tuning(this->scr, 1.0);
-
+
_x_set_speed(this->stream, XINE_SPEED_NORMAL);
this->stream->xine->clock->set_option (this->stream->xine->clock, CLOCK_SCR_ADJUSTABLE, 1);
}
@@ -1217,12 +1217,12 @@ static int v4l_adjust_realtime_speed(v4l_input_plugin_t *this, fifo_buffer_t *fi
(scr_tuning < 0 && num_used > num_free))
/* Buffer usage is ok again. Set playback speed to normal */
scr_tuning = 0;
-
- /* Check if speed adjustment should be changed */
+
+ /* Check if speed adjustment should be changed */
if (scr_tuning != this->scr_tuning) {
this->scr_tuning = scr_tuning;
- xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
- "input_v4l: scr tuning = %d (used: %d, free: %d)\n",
+ xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
+ "input_v4l: scr tuning = %d (used: %d, free: %d)\n",
scr_tuning, num_used, num_free);
pvrscr_speed_tuning(this->scr, 1.0 + (0.01 * scr_tuning));
}
@@ -1232,13 +1232,13 @@ static int v4l_adjust_realtime_speed(v4l_input_plugin_t *this, fifo_buffer_t *fi
* speed
*/
this->scr_tuning = 0;
-
+
xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"input_v4l: scr tuning resetting (used: %d, free: %d\n", num_used, num_free);
-
+
pvrscr_speed_tuning(this->scr, 1.0);
}
-
+
return 1;
}
@@ -1275,15 +1275,15 @@ static buf_element_t *v4l_plugin_read_block (input_plugin_t *this_gen, fifo_buff
uint8_t *ptr;
static char video = 0;
int speed = _x_get_speed(this->stream);
-
- v4l_event_handler(this);
-
+
+ v4l_event_handler(this);
+
#ifdef HAVE_ALSA
if (!this->audio_header_sent) {
lprintf("sending audio header\n");
-
+
buf = alloc_aud_frame (this);
-
+
buf->size = 0;
buf->decoder_flags = BUF_FLAG_HEADER|BUF_FLAG_STDHEADER|BUF_FLAG_FRAME_END;
@@ -1291,60 +1291,60 @@ static buf_element_t *v4l_plugin_read_block (input_plugin_t *this_gen, fifo_buff
buf->decoder_info[1] = this->exact_rate;
buf->decoder_info[2] = this->bits;
buf->decoder_info[3] = 2;
-
+
this->audio_header_sent = 1;
-
+
return buf;
}
-#endif
-
+#endif
+
if (!this->audio_only && !this->video_header_sent) {
xine_bmiheader bih;
-
+
lprintf("sending video header");
-
+
bih.biSize = sizeof(xine_bmiheader);
bih.biWidth = this->resolution->width;
bih.biHeight = this->resolution->height;
-
+
buf = alloc_vid_frame (this);
-
+
buf->size = sizeof(xine_bmiheader);
buf->decoder_flags = BUF_FLAG_HEADER|BUF_FLAG_STDHEADER|BUF_FLAG_FRAME_END;
memcpy(buf->content, &bih, sizeof(xine_bmiheader));
-
+
this->video_header_sent = 1;
-
- return buf;
+
+ return buf;
}
-
+
if (!this->audio_only) {
if (!v4l_adjust_realtime_speed(this, fifo, speed)) {
return NULL;
}
}
-
- if (!this->audio_only)
+
+ if (!this->audio_only)
video = !video;
else
video = 0;
-
+
lprintf("%lld bytes...\n", todo);
-
- if (this->start_time == 0)
+
+ if (this->start_time == 0)
/* Create a start pts value */
this->start_time = get_time(); /* this->stream->xine->clock->get_current_time(this->stream->xine->clock); */
-
+
if (video) {
/* Capture video */
buf = alloc_vid_frame (this);
buf->decoder_flags = BUF_FLAG_FRAME_START|BUF_FLAG_FRAME_END;
-
+
this->gb_buf.frame = this->gb_frame;
-
+
lprintf("VIDIOCMCAPTURE\n");
-
+
while (ioctl(this->video_fd, VIDIOCMCAPTURE, &this->gb_buf) < 0) {
lprintf("Upper while loop\n");
if (errno == EAGAIN) {
@@ -1356,92 +1356,92 @@ static buf_element_t *v4l_plugin_read_block (input_plugin_t *this_gen, fifo_buff
return NULL;
}
}
-
+
this->gb_frame = (this->gb_frame + 1) % this->gb_buffers.frames;
-
+
while (ioctl(this->video_fd, VIDIOCSYNC, &this->gb_frame) < 0 &&
(errno == EAGAIN || errno == EINTR))
{
lprintf("Waiting for videosync\n");
}
-
+
/* printf ("grabbing frame #%d\n", frame_num); */
-
+
ptr = this->video_buf + this->gb_buffers.offsets[this->gb_frame];
buf->pts = get_time(); /* this->stream->xine->clock->get_current_time(this->stream->xine->clock); */
- xine_fast_memcpy (buf->content, ptr, this->frame_size);
+ xine_fast_memcpy (buf->content, ptr, this->frame_size);
}
#ifdef HAVE_ALSA
else if (this->audio_capture) {
/* Record audio */
int pcmreturn;
-
- if ((pcmreturn = snd_pcm_readi(this->pcm_handle, this->pcm_data, (this->periodsize)>> 2)) < 0) {
+
+ if ((pcmreturn = snd_pcm_readi(this->pcm_handle, this->pcm_data, (this->periodsize)>> 2)) < 0) {
switch (pcmreturn) {
case -EAGAIN:
/* No data available at the moment */
break;
case -EBADFD: /* PCM device in wrong state */
- xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
"input_v4l: PCM is not in the right state\n");
break;
case -EPIPE: /* Buffer overrun */
- xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
"input_v4l: PCM buffer Overrun (lost some samples)\n");
/* On buffer overrun we need to re prepare the capturing pcm device */
snd_pcm_prepare(this->pcm_handle);
break;
case -ESTRPIPE: /* Suspend event */
- xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
"input_v4l: PCM suspend event occured\n");
break;
default: /* Unknown */
- xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
"input_v4l: Unknown PCM error code: %d\n", pcmreturn);
snd_pcm_prepare(this->pcm_handle);
}
} else {
/* Succesfully read audio data */
-
+
if (this->pts_aud_start) {
buf = alloc_aud_frame (this);
buf->decoder_flags = 0;
}
-
+
/* We want the pts on the start of the sample. As the soundcard starts
* sampling a new sample as soon as the read function returned with a
- * success we will save the current pts and assign the current pts to
+ * success we will save the current pts and assign the current pts to
* that sample when we read it
*/
-
+
/* Assign start pts to sample */
if (buf)
buf->pts = this->pts_aud_start;
-
+
/* Save start pts */
this->pts_aud_start = get_time(); /* this->stream->xine->clock->get_current_time(this->stream->xine->clock); */
-
+
if (!buf)
/* Skip first sample as we don't have a good pts for this one */
return NULL;
-
+
lprintf("Audio: Data read: %d [%d, %d]. Pos: %d\n",
pcmreturn, (int) (*this->pcm_data), (int) (*(this->pcm_data + this->periodsize - 3)),
(int) this->curpos);
-
-
+
+
/* Tell decoder the number of bytes we have read */
- buf->size = pcmreturn<<2;
-
+ buf->size = pcmreturn<<2;
+
this->curpos++;
-
+
xine_fast_memcpy(buf->content, this->pcm_data, buf->size);
}
}
#endif
-
+
lprintf("read block done\n");
-
+
return buf;
}
@@ -1451,7 +1451,7 @@ static buf_element_t *v4l_plugin_read_block (input_plugin_t *this_gen, fifo_buff
*/
static off_t v4l_plugin_seek (input_plugin_t *this_gen, off_t offset, int origin) {
v4l_input_plugin_t *this = (v4l_input_plugin_t *) this_gen;
-
+
lprintf("seek %lld bytes, origin %d\n", offset, origin);
return this->curpos;
}
@@ -1462,10 +1462,10 @@ static off_t v4l_plugin_seek (input_plugin_t *this_gen, off_t offset, int origin
*/
static off_t v4l_plugin_get_length (input_plugin_t *this_gen) {
/*
- v4l_input_plugin_t *this = (v4l_input_plugin_t *) this_gen;
+ v4l_input_plugin_t *this = (v4l_input_plugin_t *) this_gen;
off_t length;
*/
-
+
return -1;
}
@@ -1475,8 +1475,8 @@ static off_t v4l_plugin_get_length (input_plugin_t *this_gen) {
*/
static uint32_t v4l_plugin_get_capabilities (input_plugin_t *this_gen)
{
- v4l_input_plugin_t *this = (v4l_input_plugin_t *) this_gen;
-
+ v4l_input_plugin_t *this = (v4l_input_plugin_t *) this_gen;
+
if (this->audio_only)
return 0x10;
else
@@ -1498,26 +1498,26 @@ static uint32_t v4l_plugin_get_blocksize (input_plugin_t *this_gen)
*/
static off_t v4l_plugin_get_current_pos (input_plugin_t *this_gen){
v4l_input_plugin_t *this = (v4l_input_plugin_t *) this_gen;
-
+
/*
printf ("current pos is %lld\n", this->curpos);
*/
-
+
return this->curpos;
}
/**
* Event handler.
- *
+ *
* Processes events from a frontend. This way frequencies can be changed
* without closing the v4l plugin.
*/
static void v4l_event_handler (v4l_input_plugin_t *this) {
xine_event_t *event;
-
+
while ((event = xine_event_get (this->event_queue))) {
xine_set_v4l2_data_t *v4l2_data = event->data;
-
+
switch (event->type) {
case XINE_EVENT_SET_V4L2:
if( v4l2_data->input != this->input ||
@@ -1527,25 +1527,25 @@ static void v4l_event_handler (v4l_input_plugin_t *this) {
this->input = v4l2_data->input;
this->channel = v4l2_data->channel;
this->frequency = v4l2_data->frequency;
-
+
lprintf("Switching to input:%d chan:%d freq:%.2f\n",
v4l2_data->input,
v4l2_data->channel,
(float)v4l2_data->frequency);
set_frequency(this, this->frequency);
- _x_demux_flush_engine(this->stream);
+ _x_demux_flush_engine(this->stream);
}
break;
/* default:
-
+
lprintf("Got an event, type 0x%08x\n", event->type);
*/
}
-
+
xine_event_free (event);
}
-}
+}
/**
* Dispose plugin.
@@ -1555,69 +1555,69 @@ static void v4l_event_handler (v4l_input_plugin_t *this) {
*/
static void v4l_plugin_dispose (input_plugin_t *this_gen) {
v4l_input_plugin_t *this = (v4l_input_plugin_t *) this_gen;
-
+
if(this->mrl)
free(this->mrl);
-
+
if (this->scr) {
this->stream->xine->clock->unregister_scr(this->stream->xine->clock, &this->scr->scr);
this->scr->scr.exit(&this->scr->scr);
}
-
+
/* Close and free video device */
if (this->tuner_name)
free(this->tuner_name);
-
+
/* Close video device only if device was openend */
if (this->video_fd > 0) {
-
+
/* Restore v4l audio volume */
- lprintf("Restoring v4l audio volume %d\n",
+ lprintf("Restoring v4l audio volume %d\n",
ioctl(this->video_fd, VIDIOCSAUDIO, &this->audio_saved));
ioctl(this->video_fd, VIDIOCSAUDIO, &this->audio_saved);
-
+
/* Unmap memory */
- if (this->video_buf != NULL &&
+ if (this->video_buf != NULL &&
munmap(this->video_buf, this->gb_buffers.size) != 0) {
- xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
"input_v4l: Could not unmap video memory: %s\n", strerror(errno));
} else
lprintf("Succesfully unmapped video memory (size %d)\n", this->gb_buffers.size);
-
+
lprintf("Closing video filehandler %d\n", this->video_fd);
-
+
/* Now close the video device */
if (close(this->video_fd) != 0)
- xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
"input_v4l: Error while closing video file handler: %s\n", strerror(errno));
else
lprintf("Video device succesfully closed\n");
-
- /* Restore zoom setting */
+
+ /* Restore zoom setting */
xine_set_param(this->stream, XINE_PARAM_VO_ZOOM_X, this->old_zoomx);
xine_set_param(this->stream, XINE_PARAM_VO_ZOOM_Y, this->old_zoomy);
}
-
+
if (this->radio_fd > 0) {
close(this->radio_fd);
}
-
+
#ifdef HAVE_ALSA
/* Close audio device */
if (this->pcm_handle) {
snd_pcm_drop(this->pcm_handle);
snd_pcm_close(this->pcm_handle);
}
-
+
if (this->pcm_data) {
free(this->pcm_data);
}
-
+
if (this->pcm_name) {
free(this->pcm_name);
}
#endif
-
+
if (this->event_queue)
xine_event_dispose_queue (this->event_queue);
@@ -1636,9 +1636,9 @@ static void v4l_plugin_dispose (input_plugin_t *this_gen) {
#ifdef LOG
printf("\n");
#endif
-
+
free (this);
-
+
lprintf("plugin Bye bye! \n");
}
@@ -1649,11 +1649,11 @@ static void v4l_plugin_dispose (input_plugin_t *this_gen) {
*/
static const char* v4l_plugin_get_mrl (input_plugin_t *this_gen) {
v4l_input_plugin_t *this = (v4l_input_plugin_t *) this_gen;
-
+
return this->mrl;
}
-static int v4l_plugin_get_optional_data (input_plugin_t *this_gen,
+static int v4l_plugin_get_optional_data (input_plugin_t *this_gen,
void *data, int data_type) {
/* v4l_input_plugin_t *this = (v4l_input_plugin_t *) this_gen; */
@@ -1663,19 +1663,19 @@ static int v4l_plugin_get_optional_data (input_plugin_t *this_gen,
static int v4l_plugin_radio_open (input_plugin_t *this_gen)
{
v4l_input_plugin_t *this = (v4l_input_plugin_t *) this_gen;
-
+
if(open_radio_capture_device(this) != 1)
return 0;
-
+
open_audio_capture_device(this);
-
+
#ifdef HAVE_ALSA
this->start_time = 0;
this->pts_aud_start = 0;
this->curpos = 0;
this->event_queue = xine_event_new_queue (this->stream);
-#endif
-
+#endif
+
return 1;
}
@@ -1684,30 +1684,30 @@ static int v4l_plugin_video_open (input_plugin_t *this_gen)
{
v4l_input_plugin_t *this = (v4l_input_plugin_t *) this_gen;
int64_t time;
-
+
if(!open_video_capture_device(this))
return 0;
-
+
open_audio_capture_device(this);
-
+
#ifdef HAVE_ALSA
this->pts_aud_start = 0;
#endif
this->start_time = 0;
this->curpos = 0;
-
+
/* Register our own scr provider */
time = this->stream->xine->clock->get_current_time(this->stream->xine->clock);
this->scr = pvrscr_init();
this->scr->scr.start(&this->scr->scr, time);
this->stream->xine->clock->register_scr(this->stream->xine->clock, &this->scr->scr);
this->scr_tuning = 0;
-
+
/* enable resample method */
this->stream->xine->config->update_num(this->stream->xine->config, "audio.synchronization.av_sync_method", 1);
-
+
this->event_queue = xine_event_new_queue (this->stream);
-
+
return 1;
}
@@ -1726,19 +1726,19 @@ static input_plugin_t *v4l_class_get_instance (input_class_t *cls_gen,
cfg_entry_t *entry;
#endif
char *mrl = strdup(data);
-
+
/* Example mrl: v4l:/Television/62500 */
if(!mrl || strncasecmp(mrl, "v4l:/", 5)) {
free(mrl);
return NULL;
}
-
+
this = calloc(1, sizeof (v4l_input_plugin_t));
-
+
extract_mrl(this, mrl);
-
- this->stream = stream;
- this->mrl = mrl;
+
+ this->stream = stream;
+ this->mrl = mrl;
this->video_buf = NULL;
this->video_fd = -1;
this->radio_fd = -1;
@@ -1747,7 +1747,7 @@ static input_plugin_t *v4l_class_get_instance (input_class_t *cls_gen,
#ifdef HAVE_ALSA
this->pcm_data = NULL;
this->pcm_hwparams = NULL;
-
+
/* Audio */
this->pcm_stream = SND_PCM_STREAM_CAPTURE;
entry = this->stream->xine->config->lookup_entry(this->stream->xine->config,
@@ -1759,13 +1759,13 @@ static input_plugin_t *v4l_class_get_instance (input_class_t *cls_gen,
this->periods = 2;
this->periodsize = 2 * 8192;
this->bits = 16;
-
+
pthread_mutex_init (&this->aud_frames_lock, NULL);
pthread_cond_init (&this->aud_frame_freed, NULL);
-
+
pthread_mutex_init (&this->vid_frames_lock, NULL);
pthread_cond_init (&this->vid_frame_freed, NULL);
-
+
this->input_plugin.get_capabilities = v4l_plugin_get_capabilities;
this->input_plugin.read = v4l_plugin_read;
this->input_plugin.read_block = v4l_plugin_read_block;
@@ -1777,7 +1777,7 @@ static input_plugin_t *v4l_class_get_instance (input_class_t *cls_gen,
this->input_plugin.dispose = v4l_plugin_dispose;
this->input_plugin.get_optional_data = v4l_plugin_get_optional_data;
this->input_plugin.input_class = cls_gen;
-
+
return &this->input_plugin;
}
@@ -1787,57 +1787,57 @@ static input_plugin_t *v4l_class_get_video_instance (input_class_t *cls_gen,
v4l_input_plugin_t *this = NULL;
int is_ok = 1;
cfg_entry_t *entry;
-
+
this = (v4l_input_plugin_t *) v4l_class_get_instance (cls_gen, stream, data);
-
+
if (this)
this->input_plugin.open = v4l_plugin_video_open;
else
return NULL;
-
- entry = this->stream->xine->config->lookup_entry(this->stream->xine->config,
+
+ entry = this->stream->xine->config->lookup_entry(this->stream->xine->config,
"media.video4linux.video_device");
-
+
/* Try to open the video device */
if((this->video_fd = open(entry->str_value, O_RDWR)) < 0) {
xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
- "input_v4l: error opening v4l device (%s): %s\n",
+ "input_v4l: error opening v4l device (%s): %s\n",
entry->str_value, strerror(errno));
is_ok = 0;
} else
lprintf("Device opened, tv %d\n", this->video_fd);
-
+
/* Get capabilities */
if (is_ok && ioctl(this->video_fd, VIDIOCGCAP, &this->video_cap) < 0) {
xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
"input_v4l: v4l card doesn't support some features needed by xine\n");
is_ok = 0;;
}
-
+
if (is_ok && !(this->video_cap.type & VID_TYPE_CAPTURE)) {
/* Capture is not supported by the device. This is a must though! */
xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
"input_v4l: v4l card doesn't support frame grabbing\n");
is_ok = 0;
}
-
+
if (is_ok && set_input_source(this, this->tuner_name) <= 0) {
xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
"input_v4l: unable to locate the tuner name (%s) on your v4l card\n",
this->tuner_name);
is_ok = 0;
}
-
+
if (this->video_fd > 0) {
close(this->video_fd);
this->video_fd = -1;
}
-
+
if (!is_ok) {
v4l_plugin_dispose((input_plugin_t *) this);
return NULL;
}
-
+
return &this->input_plugin;
}
@@ -1848,45 +1848,45 @@ static input_plugin_t *v4l_class_get_radio_instance (input_class_t *cls_gen,
v4l_input_plugin_t *this = NULL;
int is_ok = 1;
cfg_entry_t *entry;
-
+
if (strstr(data, "Radio") == NULL)
return NULL;
-
+
this = (v4l_input_plugin_t *) v4l_class_get_instance (cls_gen, stream, data);
-
+
if (this)
this->input_plugin.open = v4l_plugin_radio_open;
else
return NULL;
-
- entry = this->stream->xine->config->lookup_entry(this->stream->xine->config,
+
+ entry = this->stream->xine->config->lookup_entry(this->stream->xine->config,
"media.video4linux.radio_device");
-
+
if((this->radio_fd = open(entry->str_value, O_RDWR)) < 0) {
xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
- "input_v4l: error opening v4l device (%s): %s\n",
+ "input_v4l: error opening v4l device (%s): %s\n",
entry->str_value, strerror(errno));
is_ok = 0;
} else
lprintf("Device opened, radio %d\n", this->radio_fd);
-
+
if (is_ok && set_input_source(this, this->tuner_name) <= 0) {
xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
"input_v4l: unable to locate the tuner name (%s) on your v4l card\n",
this->tuner_name);
is_ok = 0;
}
-
+
if (this->radio_fd > 0) {
close(this->radio_fd);
this->radio_fd = -1;
}
-
+
if (!is_ok) {
v4l_plugin_dispose((input_plugin_t *) this);
return NULL;
}
-
+
return &this->input_plugin;
}
@@ -1898,11 +1898,11 @@ static void *init_video_class (xine_t *xine, void *data)
{
v4l_input_class_t *this;
config_values_t *config = xine->config;
-
+
this = calloc(1, sizeof (v4l_input_class_t));
-
+
this->xine = xine;
-
+
this->input_class.get_instance = v4l_class_get_video_instance;
this->input_class.identifier = "v4l";
this->input_class.description = N_("v4l tv input plugin");
@@ -1910,7 +1910,7 @@ static void *init_video_class (xine_t *xine, void *data)
this->input_class.get_autoplay_list = NULL;
this->input_class.dispose = default_input_class_dispose;
this->input_class.eject_media = NULL;
-
+
config->register_filename (config, "media.video4linux.video_device",
VIDEO_DEV, XINE_CONFIG_STRING_IS_DEVICE_NAME,
_("v4l video device"),
@@ -1936,11 +1936,11 @@ static void *init_radio_class (xine_t *xine, void *data)
{
v4l_input_class_t *this;
config_values_t *config = xine->config;
-
+
this = calloc(1, sizeof (v4l_input_class_t));
-
+
this->xine = xine;
-
+
this->input_class.get_instance = v4l_class_get_radio_instance;
this->input_class.identifier = "v4l";
this->input_class.description = N_("v4l radio input plugin");
@@ -1948,13 +1948,13 @@ static void *init_radio_class (xine_t *xine, void *data)
this->input_class.get_autoplay_list = NULL;
this->input_class.dispose = default_input_class_dispose;
this->input_class.eject_media = NULL;
-
+
config->register_filename (config, "media.video4linux.radio_device",
RADIO_DEV, XINE_CONFIG_STRING_IS_DEVICE_NAME,
_("v4l radio device"),
_("The path to your Video4Linux radio device."),
10, NULL, NULL);
-
+
return this;
}
@@ -1963,12 +1963,12 @@ static void *init_radio_class (xine_t *xine, void *data)
*/
const plugin_info_t xine_plugin_info[] EXPORTED = {
- /* type, API, "name", version, special_info, init_function */
+ /* type, API, "name", version, special_info, init_function */
{ PLUGIN_INPUT | PLUGIN_MUST_PRELOAD, 18, "v4l_radio", XINE_VERSION_CODE, NULL, init_radio_class },
{ PLUGIN_INPUT | PLUGIN_MUST_PRELOAD, 18, "v4l_tv", XINE_VERSION_CODE, NULL, init_video_class },
{ PLUGIN_NONE, 0, "", 0, NULL, NULL }
};
/*
- * vim:sw=3:sts=3:
+ * vim:sw=3:sts=3:
*/
diff --git a/src/input/input_vcd.c b/src/input/input_vcd.c
index ccc75a45a..8f780de29 100644
--- a/src/input/input_vcd.c
+++ b/src/input/input_vcd.c
@@ -1,18 +1,18 @@
-/*
+/*
* Copyright (C) 2000-2008 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -105,11 +105,11 @@ typedef struct {
typedef struct {
input_plugin_t input_plugin;
-
+
vcd_input_class_t *cls;
-
+
xine_stream_t *stream;
-
+
char *mrl;
config_values_t *config;
@@ -136,7 +136,7 @@ typedef struct {
*/
static void device_change_cb (void *data, xine_cfg_entry_t *cfg) {
vcd_input_class_t *this = (vcd_input_class_t *) data;
-
+
this->device = cfg->str_value;
}
@@ -146,7 +146,7 @@ static int input_vcd_read_toc (vcd_input_class_t *this, int fd) {
/* read TOC header */
if ( ioctl(fd, CDROMREADTOCHDR, &this->tochdr) == -1 ) {
- xprintf (this->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->xine, XINE_VERBOSITY_DEBUG,
"input_vcd : error in ioctl CDROMREADTOCHDR\n");
return -1;
}
@@ -156,7 +156,7 @@ static int input_vcd_read_toc (vcd_input_class_t *this, int fd) {
this->tocent[i-1].cdte_track = i;
this->tocent[i-1].cdte_format = CDROM_MSF;
if ( ioctl(fd, CDROMREADTOCENTRY, &this->tocent[i-1]) == -1 ) {
- xprintf (this->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->xine, XINE_VERBOSITY_DEBUG,
"input_vcd: error in ioctl CDROMREADTOCENTRY for track %d\n", i);
return -1;
}
@@ -166,9 +166,9 @@ static int input_vcd_read_toc (vcd_input_class_t *this, int fd) {
this->tocent[this->tochdr.cdth_trk1].cdte_track = CDROM_LEADOUT;
this->tocent[this->tochdr.cdth_trk1].cdte_format = CDROM_MSF;
- if (ioctl(fd, CDROMREADTOCENTRY,
+ if (ioctl(fd, CDROMREADTOCENTRY,
&this->tocent[this->tochdr.cdth_trk1]) == -1 ) {
- xprintf (this->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->xine, XINE_VERBOSITY_DEBUG,
"input_vcd: error in ioctl CDROMREADTOCENTRY for lead-out\n");
return -1;
}
@@ -185,23 +185,23 @@ static int input_vcd_read_toc (vcd_input_class_t *this, int fd) {
/* read TOC header */
if ( ioctl(fd, CDIOREADTOCHEADER, &this->tochdr) == -1 ) {
- xprintf (this->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->xine, XINE_VERBOSITY_DEBUG,
"input_vcd : error in ioctl CDROMREADTOCHDR\n");
return -1;
}
- ntracks = this->tochdr.ending_track
+ ntracks = this->tochdr.ending_track
- this->tochdr.starting_track + 2;
this->tocent = (struct cd_toc_entry *)
xine_xmalloc(sizeof(*this->tocent) * ntracks);
-
+
te.address_format = CD_LBA_FORMAT;
te.starting_track = 0;
te.data_len = ntracks * sizeof(struct cd_toc_entry);
te.data = this->tocent;
-
+
if ( ioctl(fd, CDIOREADTOCENTRYS, &te) == -1 ){
- xprintf (this->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->xine, XINE_VERBOSITY_DEBUG,
"input_vcd: error in ioctl CDROMREADTOCENTRY\n");
return -1;
}
@@ -232,11 +232,11 @@ static int sun_vcd_read(vcd_input_plugin_t *this, long lba, cdsector_t *data)
*/
if (this->controller_type == 0) {
if ( ioctl(this->fd, DKIOCINFO, &cinfo) == 0
- && ((strcmp(cinfo.dki_cname, "ide") == 0)
+ && ((strcmp(cinfo.dki_cname, "ide") == 0)
|| (strncmp(cinfo.dki_cname, "pci", 3) == 0)) )
this->controller_type = SUN_CTRL_ATAPI;
else
- this->controller_type = SUN_CTRL_SCSI;
+ this->controller_type = SUN_CTRL_SCSI;
}
switch (this->controller_type) {
case SUN_CTRL_SCSI:
@@ -247,7 +247,7 @@ static int sun_vcd_read(vcd_input_plugin_t *this, long lba, cdsector_t *data)
cdxa.cdxa_length = 1;
cdxa.cdxa_data = data->subheader;
cdxa.cdxa_format = CDROM_XA_SECTOR_DATA;
-
+
if(ioctl(this->fd,CDROMCDXA,&cdxa)==-1) {
xprintf(this->cls->xine, XINE_VERBOSITY_DEBUG, "CDROMCDXA: %s\n", strerror(errno));
return -1;
@@ -304,12 +304,12 @@ static int sun_vcd_read(vcd_input_plugin_t *this, long lba, cdsector_t *data)
cdb.cdb_opaque[7] = (blocks >> 8) & 0xff;
cdb.cdb_opaque[8] = blocks & 0xff;
cdb.cdb_opaque[9] = (sync << 7) |
- (header_code << 5) |
- (user_data << 4) |
- (edc_ecc << 3) |
- (error_field << 1);
+ (header_code << 5) |
+ (user_data << 4) |
+ (edc_ecc << 3) |
+ (error_field << 1);
cdb.cdb_opaque[10] = sub_channel;
-
+
sc.uscsi_cdb = (caddr_t)&cdb;
sc.uscsi_cdblen = 12;
sc.uscsi_bufaddr = (caddr_t)data->subheader;
@@ -321,7 +321,7 @@ static int sun_vcd_read(vcd_input_plugin_t *this, long lba, cdsector_t *data)
return -1;
}
if (sc.uscsi_status) {
- xprintf (this->cls->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->cls->xine, XINE_VERBOSITY_DEBUG,
"scsi command failed with status %d\n", sc.uscsi_status);
return -1;
}
@@ -336,9 +336,9 @@ static int sun_vcd_read(vcd_input_plugin_t *this, long lba, cdsector_t *data)
/* ***************************************************************** */
#if defined (__linux__)
-static off_t vcd_plugin_read (input_plugin_t *this_gen,
+static off_t vcd_plugin_read (input_plugin_t *this_gen,
void *buf_gen, off_t nlen) {
-
+
vcd_input_plugin_t *this = (vcd_input_plugin_t *) this_gen;
char *buf = (char *)buf_gen;
static struct cdrom_msf msf ;
@@ -349,14 +349,14 @@ static off_t vcd_plugin_read (input_plugin_t *this_gen,
return 0;
do
- {
+ {
end_msf = (struct cdrom_msf0 *)
&this->cls->tocent[this->cur_track+1].cdte_addr.msf;
/*
printf ("cur: %02d:%02d:%02d end: %02d:%02d:%02d\n",
- this->cur_min, this->cur_sec, this->cur_frame,
- end_msf->minute, end_msf->second, end_msf->frame);
+ this->cur_min, this->cur_sec, this->cur_frame,
+ end_msf->minute, end_msf->second, end_msf->frame);
*/
if ( (this->cur_min>=end_msf->minute) && (this->cur_sec>=end_msf->second)
@@ -370,7 +370,7 @@ static off_t vcd_plugin_read (input_plugin_t *this_gen,
memcpy (&data, &msf, sizeof (msf));
if (ioctl (this->fd, CDROMREADRAW, &data) == -1) {
- xprintf (this->cls->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->cls->xine, XINE_VERBOSITY_DEBUG,
"input_vcd: error in CDROMREADRAW\n");
return 0;
}
@@ -385,17 +385,17 @@ static off_t vcd_plugin_read (input_plugin_t *this_gen,
this->cur_min++;
}
}
-
+
/* Header ID check for padding sector. VCD uses this to keep constant
bitrate so the CD doesn't stop/start */
}
while((data.subheader[2]&~0x01)==0x60);
-
+
memcpy (buf, data.data, VCDSECTORSIZE); /* FIXME */
return VCDSECTORSIZE;
}
#elif defined (__FreeBSD_kernel__) || defined (__OpenBSD__)
-static off_t vcd_plugin_read (input_plugin_t *this_gen,
+static off_t vcd_plugin_read (input_plugin_t *this_gen,
void *buf_gen, off_t nlen) {
vcd_input_plugin_t *this = (vcd_input_plugin_t *) this_gen;
char *buf = (char *)buf_gen;
@@ -420,9 +420,9 @@ static off_t vcd_plugin_read (input_plugin_t *this_gen,
return VCDSECTORSIZE;
}
#elif defined (__sun)
-static off_t vcd_plugin_read (input_plugin_t *this_gen,
+static off_t vcd_plugin_read (input_plugin_t *this_gen,
void *buf_gen, off_t nlen) {
-
+
vcd_input_plugin_t *this = (vcd_input_plugin_t *) this_gen;
char *buf = (char *)buf_gen;
static cdsector_t data;
@@ -433,14 +433,14 @@ static off_t vcd_plugin_read (input_plugin_t *this_gen,
return 0;
do
- {
- end_msf = (struct cdrom_msf0 *)
+ {
+ end_msf = (struct cdrom_msf0 *)
&this->cls->tocent[this->cur_track+1].cdte_addr.msf;
/*
printf ("cur: %02d:%02d:%02d end: %02d:%02d:%02d\n",
- this->cur_min, this->cur_sec, this->cur_frame,
- end_msf->minute, end_msf->second, end_msf->frame);
+ this->cur_min, this->cur_sec, this->cur_frame,
+ end_msf->minute, end_msf->second, end_msf->frame);
*/
if ( (this->cur_min>=end_msf->minute) && (this->cur_sec>=end_msf->second)
@@ -463,21 +463,21 @@ static off_t vcd_plugin_read (input_plugin_t *this_gen,
this->cur_min++;
}
}
-
+
/* Header ID check for padding sector. VCD uses this to keep constant
bitrate so the CD doesn't stop/start */
}
while((data.subheader[2]&~0x01)==0x60);
-
+
memcpy (buf, data.data, VCDSECTORSIZE); /* FIXME */
return VCDSECTORSIZE;
}
#endif
#if defined (__linux__)
-static buf_element_t *vcd_plugin_read_block (input_plugin_t *this_gen,
+static buf_element_t *vcd_plugin_read_block (input_plugin_t *this_gen,
fifo_buffer_t *fifo, off_t nlen) {
-
+
vcd_input_plugin_t *this = (vcd_input_plugin_t *) this_gen;
buf_element_t *buf;
static struct cdrom_msf msf ;
@@ -488,13 +488,13 @@ static buf_element_t *vcd_plugin_read_block (input_plugin_t *this_gen,
return NULL;
do
- {
+ {
end_msf = &this->cls->tocent[this->cur_track+1].cdte_addr.msf;
/*
printf ("cur: %02d:%02d:%02d end: %02d:%02d:%02d\n",
- this->cur_min, this->cur_sec, this->cur_frame,
- end_msf->minute, end_msf->second, end_msf->frame);
+ this->cur_min, this->cur_sec, this->cur_frame,
+ end_msf->minute, end_msf->second, end_msf->frame);
*/
if ( (this->cur_min>=end_msf->minute) && (this->cur_sec>=end_msf->second)
@@ -522,12 +522,12 @@ static buf_element_t *vcd_plugin_read_block (input_plugin_t *this_gen,
this->cur_min++;
}
}
-
+
/* Header ID check for padding sector. VCD uses this to keep constant
bitrate so the CD doesn't stop/start */
}
while((data.subheader[2]&~0x01)==0x60);
-
+
buf = fifo->buffer_pool_alloc (fifo);
buf->content = buf->mem;
buf->type = BUF_DEMUX_BLOCK;
@@ -535,9 +535,9 @@ static buf_element_t *vcd_plugin_read_block (input_plugin_t *this_gen,
return buf;
}
#elif defined (__FreeBSD_kernel__) || defined (__OpenBSD__)
-static buf_element_t *vcd_plugin_read_block (input_plugin_t *this_gen,
+static buf_element_t *vcd_plugin_read_block (input_plugin_t *this_gen,
fifo_buffer_t *fifo, off_t nlen) {
-
+
vcd_input_plugin_t *this = (vcd_input_plugin_t *) this_gen;
buf_element_t *buf;
static cdsector_t data;
@@ -565,9 +565,9 @@ static buf_element_t *vcd_plugin_read_block (input_plugin_t *this_gen,
return buf;
}
#elif defined(__sun)
-static buf_element_t *vcd_plugin_read_block (input_plugin_t *this_gen,
+static buf_element_t *vcd_plugin_read_block (input_plugin_t *this_gen,
fifo_buffer_t *fifo, off_t nlen) {
-
+
vcd_input_plugin_t *this = (vcd_input_plugin_t *) this_gen;
buf_element_t *buf;
static cdsector_t data;
@@ -578,14 +578,14 @@ static buf_element_t *vcd_plugin_read_block (input_plugin_t *this_gen,
return NULL;
do
- {
- end_msf = (struct cdrom_msf0 *)
+ {
+ end_msf = (struct cdrom_msf0 *)
&this->cls->tocent[this->cur_track+1].cdte_addr.msf;
/*
printf ("cur: %02d:%02d:%02d end: %02d:%02d:%02d\n",
- this->cur_min, this->cur_sec, this->cur_frame,
- end_msf->minute, end_msf->second, end_msf->frame);
+ this->cur_min, this->cur_sec, this->cur_frame,
+ end_msf->minute, end_msf->second, end_msf->frame);
*/
if ( (this->cur_min>=end_msf->minute) && (this->cur_sec>=end_msf->second)
@@ -609,12 +609,12 @@ static buf_element_t *vcd_plugin_read_block (input_plugin_t *this_gen,
this->cur_min++;
}
}
-
+
/* Header ID check for padding sector. VCD uses this to keep constant
bitrate so the CD doesn't stop/start */
}
while((data.subheader[2]&~0x01)==0x60);
-
+
buf = fifo->buffer_pool_alloc (fifo);
buf->content = buf->mem;
buf->type = BUF_DEMUX_BLOCK;
@@ -628,17 +628,17 @@ static off_t vcd_time_to_offset (int min, int sec, int frame) {
return min * 60 * 75 + sec * 75 + frame;
}
-static void vcd_offset_to_time (off_t offset, uint8_t *min, uint8_t *sec,
+static void vcd_offset_to_time (off_t offset, uint8_t *min, uint8_t *sec,
uint8_t *frame) {
*min = offset / (60*75);
offset %= (60*75);
- *sec = offset / 75;
- *frame = offset % 75;
+ *sec = offset / 75;
+ *frame = offset % 75;
}
-static off_t vcd_plugin_seek (input_plugin_t *this_gen,
+static off_t vcd_plugin_seek (input_plugin_t *this_gen,
off_t offset, int origin) {
vcd_input_plugin_t *this = (vcd_input_plugin_t *) this_gen;
@@ -650,11 +650,11 @@ static off_t vcd_plugin_seek (input_plugin_t *this_gen,
switch (origin) {
case SEEK_SET:
- sector_pos = (offset / VCDSECTORSIZE)
+ sector_pos = (offset / VCDSECTORSIZE)
+ vcd_time_to_offset (start_msf->minute,
start_msf->second,
start_msf->frame);
-
+
vcd_offset_to_time (sector_pos, &this->cur_min,
&this->cur_sec, &this->cur_frame);
@@ -666,8 +666,8 @@ static off_t vcd_plugin_seek (input_plugin_t *this_gen,
break;
case SEEK_CUR:
- if (offset)
- xprintf (this->cls->xine, XINE_VERBOSITY_DEBUG,
+ if (offset)
+ xprintf (this->cls->xine, XINE_VERBOSITY_DEBUG,
"input_vcd: SEEK_CUR not implemented for offset != 0\n");
/*
@@ -686,7 +686,7 @@ static off_t vcd_plugin_seek (input_plugin_t *this_gen,
break;
default:
- xprintf (this->cls->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->cls->xine, XINE_VERBOSITY_DEBUG,
"input_vcd: error seek to origin %d not implemented!\n", origin);
return 0;
}
@@ -694,7 +694,7 @@ static off_t vcd_plugin_seek (input_plugin_t *this_gen,
return offset ; /* FIXME */
}
#elif defined (__FreeBSD_kernel__) || defined (__OpenBSD__)
-static off_t vcd_plugin_seek (input_plugin_t *this_gen,
+static off_t vcd_plugin_seek (input_plugin_t *this_gen,
off_t offset, int origin) {
@@ -703,11 +703,11 @@ static off_t vcd_plugin_seek (input_plugin_t *this_gen,
uint32_t dist ;
off_t sector_pos;
- start =
+ start =
ntohl(this->cls->tocent
[this->cur_track+1 - this->cls->tochdr.starting_track].addr.lba);
- /* printf("seek: start sector:%lu, origin: %d, offset:%qu\n",
+ /* printf("seek: start sector:%lu, origin: %d, offset:%qu\n",
start, origin, offset);
*/
@@ -718,7 +718,7 @@ static off_t vcd_plugin_seek (input_plugin_t *this_gen,
break;
case SEEK_CUR:
- if (offset)
+ if (offset)
xprintf (this->cls->xine, XINE_VERBOSITY_DEBUG, "input_vcd: SEEK_CUR not implemented for offset != 0\n");
sector_pos = this->cur_sec;
@@ -727,7 +727,7 @@ static off_t vcd_plugin_seek (input_plugin_t *this_gen,
break;
default:
- xprintf (this->cls->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->cls->xine, XINE_VERBOSITY_DEBUG,
"input_vcd: error seek to origin %d not implemented!\n", origin);
return 0;
}
@@ -741,27 +741,27 @@ static off_t vcd_plugin_get_length (input_plugin_t *this_gen) {
vcd_input_plugin_t *this = (vcd_input_plugin_t *) this_gen;
struct cdrom_msf0 *end_msf, *start_msf;
off_t len ;
-
+
if(this->cls->total_tracks) {
-
+
start_msf = (struct cdrom_msf0 *)
&this->cls->tocent[this->cur_track].cdte_addr.msf;
end_msf = (struct cdrom_msf0 *)
&this->cls->tocent[this->cur_track+1].cdte_addr.msf;
-
+
len = 75 - start_msf->frame;
-
+
if (start_msf->second<60)
len += (59 - start_msf->second) * 75;
-
+
if (end_msf->minute > start_msf->minute) {
len += (end_msf->minute - start_msf->minute-1) * 60 * 75;
-
+
len += end_msf->second * 60;
-
+
len += end_msf->frame ;
}
-
+
return len * VCDSECTORSIZE;
}
@@ -773,14 +773,14 @@ static off_t vcd_plugin_get_length (input_plugin_t *this_gen) {
off_t len ;
- len =
+ len =
ntohl(this->cls->tocent
- [this->cur_track+2
+ [this->cur_track+2
- this->cls->tochdr.starting_track].addr.lba)
- ntohl(this->cls->tocent
- [this->cur_track+1
+ [this->cur_track+1
- this->cls->tochdr.starting_track].addr.lba);
-
+
return len * 2352; /*VCDSECTORSIZE;*/
}
@@ -793,7 +793,7 @@ static off_t vcd_plugin_get_current_pos (input_plugin_t *this_gen){
}
static uint32_t vcd_plugin_get_capabilities (input_plugin_t *this_gen) {
-
+
return INPUT_CAP_SEEKABLE | INPUT_CAP_BLOCK ;
}
@@ -819,7 +819,7 @@ static const char* vcd_plugin_get_mrl (input_plugin_t *this_gen) {
return this->mrl;
}
-static int vcd_plugin_get_optional_data (input_plugin_t *this_gen,
+static int vcd_plugin_get_optional_data (input_plugin_t *this_gen,
void *data, int data_type) {
return INPUT_OPTIONAL_UNSUPPORTED;
@@ -846,13 +846,13 @@ static int vcd_plugin_open (input_plugin_t *this_gen) {
while (*filename == '/') filename++;
if (sscanf (filename, "%d", &this->cur_track) != 1) {
- xprintf (cls->xine, XINE_VERBOSITY_LOG,
+ xprintf (cls->xine, XINE_VERBOSITY_LOG,
_("input_vcd: malformed MRL. Use vcdo:/<track #>\n"));
return 0;
}
if (this->cur_track>=this->cls->total_tracks) {
- xprintf (cls->xine, XINE_VERBOSITY_LOG,
+ xprintf (cls->xine, XINE_VERBOSITY_LOG,
_("input_vcd: invalid track %d (valid range: 0 .. %d)\n"),
this->cur_track, this->cls->total_tracks-1);
return 0;
@@ -873,21 +873,21 @@ static int vcd_plugin_open (input_plugin_t *this_gen) {
xprintf (cls->xine, XINE_VERBOSITY_DEBUG, "input_vcd: error in CDRIOCSETBLOCKSIZE %d\n", errno);
return 0;
}
-
- this->cur_sec =
+
+ this->cur_sec =
ntohl(this->cls->tocent
[this->cur_track+1 - this->cls->tochdr.starting_track].addr.lba);
-
+
}
#endif
-
+
return 1;
}
-static input_plugin_t *vcd_class_get_instance (input_class_t *cls_gen, xine_stream_t *stream,
+static input_plugin_t *vcd_class_get_instance (input_class_t *cls_gen, xine_stream_t *stream,
const char *data) {
- vcd_input_class_t *cls = (vcd_input_class_t *) cls_gen;
+ vcd_input_class_t *cls = (vcd_input_class_t *) cls_gen;
vcd_input_plugin_t *this;
char *mrl = strdup(data);
@@ -895,7 +895,7 @@ static input_plugin_t *vcd_class_get_instance (input_class_t *cls_gen, xine_stre
free (mrl);
return 0;
}
-
+
this = calloc(1, sizeof(vcd_input_plugin_t));
this->stream = stream;
@@ -953,7 +953,7 @@ static int vcd_class_eject_media (input_class_t *this_gen) {
return media_eject_media (this->xine, this->device);
}
-static xine_mrl_t **vcd_class_get_dir (input_class_t *this_gen, const char *filename,
+static xine_mrl_t **vcd_class_get_dir (input_class_t *this_gen, const char *filename,
int *num_files) {
vcd_input_class_t *this = (vcd_input_class_t *) this_gen;
@@ -964,7 +964,7 @@ static xine_mrl_t **vcd_class_get_dir (input_class_t *this_gen, const char *file
if (filename)
return NULL;
-
+
fd = open (this->device, O_RDONLY|O_EXCL);
if (fd == -1) {
@@ -998,9 +998,9 @@ static xine_mrl_t **vcd_class_get_dir (input_class_t *this_gen, const char *file
else {
memset(this->mrls[(i-1)], 0, sizeof(xine_mrl_t));
}
-
+
asprintf(&(this->mrls[i-1]->mrl), "vcdo:/%d", i);
-
+
this->mrls[i-1]->type = mrl_vcd;
/* hack */
@@ -1017,13 +1017,13 @@ static xine_mrl_t **vcd_class_get_dir (input_class_t *this_gen, const char *file
}
this->mrls[*num_files] = NULL;
-
+
return this->mrls;
}
static char ** vcd_class_get_autoplay_list (input_class_t *this_gen, int *num_files) {
- vcd_input_class_t *this = (vcd_input_class_t *) this_gen;
+ vcd_input_class_t *this = (vcd_input_class_t *) this_gen;
int i, fd;
@@ -1095,7 +1095,7 @@ static void *init_class (xine_t *xine, void *data) {
*/
const plugin_info_t xine_plugin_info[] EXPORTED = {
- /* type, API, "name", version, special_info, init_function */
+ /* type, API, "name", version, special_info, init_function */
{ PLUGIN_INPUT | PLUGIN_MUST_PRELOAD, 18, "VCDO", XINE_VERSION_CODE, NULL, init_class },
{ PLUGIN_NONE, 0, "", 0, NULL, NULL }
};
diff --git a/src/input/libreal/asmrp.c b/src/input/libreal/asmrp.c
index 5eb25d7b4..070d9cb34 100644
--- a/src/input/libreal/asmrp.c
+++ b/src/input/libreal/asmrp.c
@@ -2,7 +2,7 @@
* Copyright (C) 2002-2004 the xine project
*
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
@@ -85,7 +85,7 @@ typedef struct {
int sym;
int num;
-
+
char str[ASMRP_MAX_ID];
/* private part */
@@ -115,7 +115,7 @@ static void asmrp_dispose (asmrp_t *p) {
int i;
- for (i=0; i<p->sym_tab_num; i++)
+ for (i=0; i<p->sym_tab_num; i++)
free (p->sym_tab[i].id);
free (p);
@@ -133,7 +133,7 @@ static void asmrp_init (asmrp_t *p, const char *str) {
p->buf = strdup (str);
p->pos = 0;
-
+
asmrp_getch (p);
}
@@ -167,10 +167,10 @@ static void asmrp_string (asmrp_t *p) {
asmrp_getch (p);
}
p->str[l]=0;
-
+
if (p->ch=='"')
asmrp_getch (p);
-
+
p->sym = ASMRP_SYM_STRING;
}
@@ -189,7 +189,7 @@ static void asmrp_identifier (asmrp_t *p) {
asmrp_getch (p);
}
p->str[l]=0;
-
+
p->sym = ASMRP_SYM_ID;
}
@@ -387,10 +387,10 @@ static int asmrp_set_id (asmrp_t *p, char *s, int v) {
lprintf ("new symbol '%s'\n", s);
- }
+ }
p->sym_tab[i].v = v;
-
+
lprintf ("symbol '%s' assigned %d\n", s, v);
return i;
@@ -401,7 +401,7 @@ static int asmrp_condition (asmrp_t *p) ;
static int asmrp_operand (asmrp_t *p) {
int i, ret;
-
+
lprintf ("operand\n");
ret = 0;
@@ -411,7 +411,7 @@ static int asmrp_operand (asmrp_t *p) {
case ASMRP_SYM_DOLLAR:
asmrp_get_sym (p);
-
+
if (p->sym != ASMRP_SYM_ID) {
printf ("error: identifier expected.\n");
_x_abort();
@@ -453,7 +453,7 @@ static int asmrp_operand (asmrp_t *p) {
}
lprintf ("operand done, =%d\n", ret);
-
+
return ret;
}
@@ -503,7 +503,7 @@ static int asmrp_comp_expression (asmrp_t *p) {
}
static int asmrp_condition (asmrp_t *p) {
-
+
int a;
lprintf ("condition\n");
@@ -542,7 +542,7 @@ static void asmrp_assignment (asmrp_t *p) {
lprintf ("empty assignment\n");
return;
}
-
+
if (p->sym != ASMRP_SYM_ID) {
printf ("error: identifier expected\n");
_x_abort ();
@@ -555,7 +555,7 @@ static void asmrp_assignment (asmrp_t *p) {
}
asmrp_get_sym (p);
- if ( (p->sym != ASMRP_SYM_NUM) && (p->sym != ASMRP_SYM_STRING)
+ if ( (p->sym != ASMRP_SYM_NUM) && (p->sym != ASMRP_SYM_STRING)
&& (p->sym != ASMRP_SYM_ID)) {
printf ("error: number or string expected\n");
_x_abort ();
@@ -566,22 +566,22 @@ static void asmrp_assignment (asmrp_t *p) {
}
static int asmrp_rule (asmrp_t *p) {
-
+
int ret;
lprintf ("rule\n");
ret = 1;
-
+
if (p->sym == ASMRP_SYM_HASH) {
asmrp_get_sym (p);
ret = asmrp_condition (p);
while (p->sym == ASMRP_SYM_COMMA) {
-
+
asmrp_get_sym (p);
-
+
asmrp_assignment (p);
}
diff --git a/src/input/libreal/real.c b/src/input/libreal/real.c
index 7fa64cc15..7ce345717 100644
--- a/src/input/libreal/real.c
+++ b/src/input/libreal/real.c
@@ -55,20 +55,20 @@ static const unsigned char xor_table[] = {
static void hash(char *field, char *param) {
uint32_t a, b, c, d;
-
+
/* fill variables */
a = _X_LE_32(field);
b = _X_LE_32(field+4);
c = _X_LE_32(field+8);
d = _X_LE_32(field+12);
-
+
lprintf("hash input: %x %x %x %x\n", a, b, c, d);
lprintf("hash parameter:\n");
#ifdef LOG
xine_hexdump(param, 64);
#endif
-
+
a = ((b & c) | (~b & d)) + _X_LE_32((param+0x00)) + a - 0x28955B88;
a = ((a << 0x07) | (a >> 0x19)) + b;
d = ((a & b) | (~a & c)) + _X_LE_32((param+0x04)) + d - 0x173848AA;
@@ -101,7 +101,7 @@ static void hash(char *field, char *param) {
c = ((c << 0x11) | (c >> 0x0f)) + d;
b = ((c & d) | (~c & a)) + _X_LE_32((param+0x3c)) + b + 0x49B40821;
b = ((b << 0x16) | (b >> 0x0a)) + c;
-
+
a = ((b & d) | (~d & c)) + _X_LE_32((param+0x04)) + a - 0x09E1DA9E;
a = ((a << 0x05) | (a >> 0x1b)) + b;
d = ((a & c) | (~c & b)) + _X_LE_32((param+0x18)) + d - 0x3FBF4CC0;
@@ -134,7 +134,7 @@ static void hash(char *field, char *param) {
c = ((c << 0x0e) | (c >> 0x12)) + d;
b = ((c & a) | (~a & d)) + _X_LE_32((param+0x30)) + b - 0x72D5B376;
b = ((b << 0x14) | (b >> 0x0c)) + c;
-
+
a = (b ^ c ^ d) + _X_LE_32((param+0x14)) + a - 0x0005C6BE;
a = ((a << 0x04) | (a >> 0x1c)) + b;
d = (a ^ b ^ c) + _X_LE_32((param+0x20)) + d - 0x788E097F;
@@ -167,42 +167,42 @@ static void hash(char *field, char *param) {
c = ((c << 0x10) | (c >> 0x10)) + d;
b = (c ^ d ^ a) + _X_LE_32((param+0x08)) + b - 0x3B53A99B;
b = ((b << 0x17) | (b >> 0x09)) + c;
-
+
a = ((~d | b) ^ c) + _X_LE_32((param+0x00)) + a - 0x0BD6DDBC;
- a = ((a << 0x06) | (a >> 0x1a)) + b;
+ a = ((a << 0x06) | (a >> 0x1a)) + b;
d = ((~c | a) ^ b) + _X_LE_32((param+0x1c)) + d + 0x432AFF97;
- d = ((d << 0x0a) | (d >> 0x16)) + a;
+ d = ((d << 0x0a) | (d >> 0x16)) + a;
c = ((~b | d) ^ a) + _X_LE_32((param+0x38)) + c - 0x546BDC59;
- c = ((c << 0x0f) | (c >> 0x11)) + d;
+ c = ((c << 0x0f) | (c >> 0x11)) + d;
b = ((~a | c) ^ d) + _X_LE_32((param+0x14)) + b - 0x036C5FC7;
- b = ((b << 0x15) | (b >> 0x0b)) + c;
+ b = ((b << 0x15) | (b >> 0x0b)) + c;
a = ((~d | b) ^ c) + _X_LE_32((param+0x30)) + a + 0x655B59C3;
- a = ((a << 0x06) | (a >> 0x1a)) + b;
+ a = ((a << 0x06) | (a >> 0x1a)) + b;
d = ((~c | a) ^ b) + _X_LE_32((param+0x0C)) + d - 0x70F3336E;
- d = ((d << 0x0a) | (d >> 0x16)) + a;
+ d = ((d << 0x0a) | (d >> 0x16)) + a;
c = ((~b | d) ^ a) + _X_LE_32((param+0x28)) + c - 0x00100B83;
- c = ((c << 0x0f) | (c >> 0x11)) + d;
+ c = ((c << 0x0f) | (c >> 0x11)) + d;
b = ((~a | c) ^ d) + _X_LE_32((param+0x04)) + b - 0x7A7BA22F;
- b = ((b << 0x15) | (b >> 0x0b)) + c;
+ b = ((b << 0x15) | (b >> 0x0b)) + c;
a = ((~d | b) ^ c) + _X_LE_32((param+0x20)) + a + 0x6FA87E4F;
- a = ((a << 0x06) | (a >> 0x1a)) + b;
+ a = ((a << 0x06) | (a >> 0x1a)) + b;
d = ((~c | a) ^ b) + _X_LE_32((param+0x3c)) + d - 0x01D31920;
- d = ((d << 0x0a) | (d >> 0x16)) + a;
+ d = ((d << 0x0a) | (d >> 0x16)) + a;
c = ((~b | d) ^ a) + _X_LE_32((param+0x18)) + c - 0x5CFEBCEC;
- c = ((c << 0x0f) | (c >> 0x11)) + d;
+ c = ((c << 0x0f) | (c >> 0x11)) + d;
b = ((~a | c) ^ d) + _X_LE_32((param+0x34)) + b + 0x4E0811A1;
- b = ((b << 0x15) | (b >> 0x0b)) + c;
+ b = ((b << 0x15) | (b >> 0x0b)) + c;
a = ((~d | b) ^ c) + _X_LE_32((param+0x10)) + a - 0x08AC817E;
- a = ((a << 0x06) | (a >> 0x1a)) + b;
+ a = ((a << 0x06) | (a >> 0x1a)) + b;
d = ((~c | a) ^ b) + _X_LE_32((param+0x2c)) + d - 0x42C50DCB;
- d = ((d << 0x0a) | (d >> 0x16)) + a;
+ d = ((d << 0x0a) | (d >> 0x16)) + a;
c = ((~b | d) ^ a) + _X_LE_32((param+0x08)) + c + 0x2AD7D2BB;
- c = ((c << 0x0f) | (c >> 0x11)) + d;
+ c = ((c << 0x0f) | (c >> 0x11)) + d;
b = ((~a | c) ^ d) + _X_LE_32((param+0x24)) + b - 0x14792C6F;
- b = ((b << 0x15) | (b >> 0x0b)) + c;
+ b = ((b << 0x15) | (b >> 0x0b)) + c;
lprintf("hash output: %x %x %x %x\n", a, b, c, d);
-
+
a += _X_LE_32(field);
b += _X_LE_32(field+4);
c += _X_LE_32(field+8);
@@ -218,15 +218,15 @@ static void call_hash (char *key, char *challenge, unsigned int len) {
char *ptr1, *ptr2;
uint32_t a, b, c, d, tmp;
-
+
ptr1=(key+16);
ptr2=(key+20);
-
+
a = _X_LE_32(ptr1);
b = (a >> 3) & 0x3f;
a += len * 8;
_X_LE_32C(ptr1, a);
-
+
if (a < (len << 3))
{
lprintf("not verified: (len << 3) > a true\n");
@@ -236,7 +236,7 @@ static void call_hash (char *key, char *challenge, unsigned int len) {
tmp = _X_LE_32(ptr2) + (len >> 0x1d);
_X_LE_32C(ptr2, tmp);
a = 64 - b;
- c = 0;
+ c = 0;
if (a <= len)
{
@@ -244,7 +244,7 @@ static void call_hash (char *key, char *challenge, unsigned int len) {
hash(key, key+24);
c = a;
d = c + 0x3f;
-
+
while ( d < len ) {
lprintf("not verified: while ( d < len )\n");
hash(key, challenge+d-0x3f);
@@ -253,7 +253,7 @@ static void call_hash (char *key, char *challenge, unsigned int len) {
}
b = 0;
}
-
+
memcpy(key+b+24, challenge+c, len-c);
}
@@ -265,11 +265,11 @@ static void calc_response (char *result, char *field) {
memset (buf1, 0, 64);
*buf1 = 128;
-
+
memcpy (buf2, field+16, 8);
-
+
i = ( _X_LE_32((buf2)) >> 3 ) & 0x3f;
-
+
if (i < 56) {
i = 56 - i;
} else {
@@ -286,7 +286,7 @@ static void calc_response (char *result, char *field) {
static void calc_response_string (char *result, char *challenge) {
-
+
char field[128] = {
0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF,
0xFE, 0xDC, 0xBA, 0x98, 0x76, 0x54, 0x32, 0x10,
@@ -295,15 +295,15 @@ static void calc_response_string (char *result, char *challenge) {
};
char zres[20];
int i;
-
+
/* calculate response */
call_hash(field, challenge, 64);
calc_response(zres,field);
-
+
/* convert zres to ascii string */
for (i=0; i<16; i++ ) {
char a, b;
-
+
a = (zres[i] >> 4) & 15;
b = zres[i] & 15;
@@ -341,11 +341,11 @@ void real_calc_response_and_checksum (char *response, char *chksum, char *challe
ch_len=32;
}
if ( ch_len > 56 ) ch_len=56;
-
+
/* copy challenge to buf */
memcpy(ptr, challenge, ch_len);
}
-
+
/* xor challenge bytewise with xor_table */
for (i=0; i<XOR_TABLE_LEN; i++)
ptr[i] = ptr[i] ^ xor_table[i];
@@ -371,7 +371,7 @@ static int select_mlti_data(const char *mlti_chunk, int mlti_size, int selection
int numrules, codec, size;
int i;
-
+
/* MLTI chunk should begin with MLTI */
if ((mlti_chunk[0] != 'M')
@@ -409,13 +409,13 @@ static int select_mlti_data(const char *mlti_chunk, int mlti_size, int selection
}
mlti_chunk+=2;
-
+
/* now seek to selected codec */
for (i=0; i<codec; i++) {
size=_X_BE_32(mlti_chunk);
mlti_chunk+=size+4;
}
-
+
size=_X_BE_32(mlti_chunk);
#ifdef LOG
@@ -440,14 +440,14 @@ rmff_header_t *real_parse_sdp(char *data, char **stream_rules, uint32_t bandwidt
int max_packet_size=0;
int avg_packet_size=0;
int duration=0;
-
+
if (!data) return NULL;
desc=sdpplin_parse(data);
if (!desc) return NULL;
-
+
buf=xine_buffer_init(2048);
header = calloc(1, sizeof(rmff_header_t));
@@ -483,7 +483,7 @@ rmff_header_t *real_parse_sdp(char *data, char **stream_rules, uint32_t bandwidt
}
else
len=select_mlti_data(desc->stream[i]->mlti_data, desc->stream[i]->mlti_data_size, rulematches[0], &buf);
-
+
header->streams[i]=rmff_new_mdpr(
desc->stream[i]->stream_id,
desc->stream[i]->max_bit_rate,
@@ -507,7 +507,7 @@ rmff_header_t *real_parse_sdp(char *data, char **stream_rules, uint32_t bandwidt
else
avg_packet_size=desc->stream[i]->avg_packet_size;
}
-
+
if (*stream_rules && strlen(*stream_rules) && (*stream_rules)[strlen(*stream_rules)-1] == ',')
(*stream_rules)[strlen(*stream_rules)-1]=0; /* delete last ',' in stream_rules */
@@ -576,12 +576,12 @@ int real_get_rdt_chunk(rtsp_t *rtsp_session, unsigned char **buffer) {
n=rtsp_read_data(rtsp_session, header, 6);
if (n<6) return 0;
ts=_X_BE_32(header);
-
- lprintf("ts: %u size: %u, flags: 0x%02x, unknown values: %u 0x%02x 0x%02x\n",
+
+ lprintf("ts: %u size: %u, flags: 0x%02x, unknown values: %u 0x%02x 0x%02x\n",
ts, size, flags1, unknown1, header[4], header[5]);
size+=2;
-
+
ph.object_version=0;
ph.length=size;
ph.stream_number=(flags1>>1)&1;
@@ -592,7 +592,7 @@ int real_get_rdt_chunk(rtsp_t *rtsp_session, unsigned char **buffer) {
rmff_dump_pheader(&ph, *buffer);
size-=12;
n=rtsp_read_data(rtsp_session, (*buffer)+12, size);
-
+
return (n <= 0) ? 0 : n+12;
}
@@ -611,11 +611,11 @@ rmff_header_t *real_setup_and_get_header(rtsp_t *rtsp_session, uint32_t bandwid
char *mrl=rtsp_get_mrl(rtsp_session);
unsigned int size;
int status;
-
+
/* get challenge */
challenge1=strdup(rtsp_search_answers(rtsp_session,"RealChallenge1"));
lprintf("Challenge1: %s\n", challenge1);
-
+
/* request stream description */
rtsp_schedule_field(rtsp_session, "Accept: application/sdp");
sprintf(buf, "Bandwidth: %u", bandwidth);
@@ -657,7 +657,7 @@ rmff_header_t *real_setup_and_get_header(rtsp_t *rtsp_session, uint32_t bandwid
lprintf("real: got no ETag!\n");
else
session_id=strdup(rtsp_search_answers(rtsp_session,"ETag"));
-
+
lprintf("Stream description size: %i\n", size);
description = malloc(size+1);
@@ -681,7 +681,7 @@ rmff_header_t *real_setup_and_get_header(rtsp_t *rtsp_session, uint32_t bandwid
lprintf("Title: %s\nCopyright: %s\nAuthor: %s\nStreams: %i\n",
h->cont->title, h->cont->copyright, h->cont->author, h->prop->num_streams);
-
+
/* setup our streams */
real_calc_response_and_checksum (challenge2, checksum, challenge1);
xine_buffer_ensure_size(buf, strlen(challenge2) + strlen(checksum) + 32);
diff --git a/src/input/libreal/real.h b/src/input/libreal/real.h
index edcd170f8..f299b909b 100644
--- a/src/input/libreal/real.h
+++ b/src/input/libreal/real.h
@@ -20,7 +20,7 @@
* special functions for real streams.
* adopted from joschkas real tools.
*/
-
+
#ifndef HAVE_REAL_H
#define HAVE_REAL_H
diff --git a/src/input/libreal/rmff.c b/src/input/libreal/rmff.c
index d4b6ad2e1..f330e4844 100644
--- a/src/input/libreal/rmff.c
+++ b/src/input/libreal/rmff.c
@@ -51,7 +51,7 @@ static int rmff_dump_fileheader(rmff_fileheader_t *fileheader, uint8_t *buffer,
fileheader->object_version=_X_BE_16(&fileheader->object_version);
fileheader->file_version=_X_BE_32(&fileheader->file_version);
fileheader->num_headers=_X_BE_32(&fileheader->num_headers);
-
+
memcpy(buffer, fileheader, 8);
memcpy(&buffer[8], &fileheader->object_version, 2);
memcpy(&buffer[10], &fileheader->file_version, 8);
@@ -92,7 +92,7 @@ static int rmff_dump_prop(rmff_prop_t *prop, uint8_t *buffer, int bufsize) {
memcpy(&buffer[10], &prop->max_bit_rate, 36);
memcpy(&buffer[46], &prop->num_streams, 2);
memcpy(&buffer[48], &prop->flags, 2);
-
+
prop->size=_X_BE_32(&prop->size);
prop->object_version=_X_BE_16(&prop->object_version);
prop->max_bit_rate=_X_BE_32(&prop->max_bit_rate);
@@ -143,7 +143,7 @@ static int rmff_dump_mdpr(rmff_mdpr_t *mdpr, uint8_t *buffer, int bufsize) {
memcpy(&buffer[41+s1], &mdpr->mime_type_size, 1);
s2=mdpr->mime_type_size;
memcpy(&buffer[42+s1], mdpr->mime_type, s2);
-
+
mdpr->type_specific_len=_X_BE_32(&mdpr->type_specific_len);
memcpy(&buffer[42+s1+s2], &mdpr->type_specific_len, 4);
mdpr->type_specific_len=_X_BE_32(&mdpr->type_specific_len);
@@ -180,7 +180,7 @@ static int rmff_dump_cont(rmff_cont_t *cont, uint8_t *buffer, int bufsize) {
memcpy(buffer, cont, 8);
memcpy(&buffer[8], &cont->object_version, 2);
-
+
cont->title_len=_X_BE_16(&cont->title_len);
memcpy(&buffer[10], &cont->title_len, 2);
cont->title_len=_X_BE_16(&cont->title_len);
@@ -228,7 +228,7 @@ static int rmff_dump_dataheader(rmff_data_t *data, uint8_t *buffer, int bufsize)
memcpy(buffer, data, 8);
memcpy(&buffer[8], &data->object_version, 2);
memcpy(&buffer[10], &data->num_packets, 8);
-
+
data->num_packets=_X_BE_32(&data->num_packets);
data->next_data_header=_X_BE_32(&data->next_data_header);
data->size=_X_BE_32(&data->size);
@@ -267,7 +267,7 @@ int rmff_dump_header(rmff_header_t *h, void *buf_gen, int max) {
stream++;
}
}
-
+
if ((size=rmff_dump_dataheader(h->data, &buffer[written], max)) < 0)
return -1;
written+=size;
@@ -355,28 +355,28 @@ static rmff_mdpr_t *rmff_scan_mdpr(const char *data)
mdpr->start_time=_X_BE_32(&data[28]);
mdpr->preroll=_X_BE_32(&data[32]);
mdpr->duration=_X_BE_32(&data[36]);
-
+
mdpr->stream_name_size=data[40];
if (mdpr->size < 46 + mdpr->stream_name_size)
goto fail;
mdpr->stream_name = xine_memdup0(&data[41], mdpr->stream_name_size);
if (!mdpr->stream_name)
goto fail;
-
+
mdpr->mime_type_size=data[41+mdpr->stream_name_size];
if (mdpr->size < 46 + mdpr->stream_name_size + mdpr->mime_type_size)
goto fail;
mdpr->mime_type = xine_memdup0(&data[42+mdpr->stream_name_size], mdpr->mime_type_size);
if (!mdpr->mime_type)
goto fail;
-
+
mdpr->type_specific_len=_X_BE_32(&data[42+mdpr->stream_name_size+mdpr->mime_type_size]);
if (mdpr->size < 46 + mdpr->stream_name_size + mdpr->mime_type_size + mdpr->type_specific_data)
goto fail;
mdpr->type_specific_data = xine_memdup(&data[46+mdpr->stream_name_size+mdpr->mime_type_size], mdpr->type_specific_len);
if (!mdpr->type_specific_data)
goto fail;
-
+
return mdpr;
fail:
@@ -431,7 +431,7 @@ static rmff_data_t *rmff_scan_dataheader(const char *data) {
return dh;
}
-
+
rmff_header_t *rmff_scan_header(const char *data) {
rmff_header_t *header = malloc(sizeof(rmff_header_t));
@@ -455,18 +455,18 @@ rmff_header_t *rmff_scan_header(const char *data) {
}
header->fileheader=rmff_scan_fileheader(ptr);
ptr += header->fileheader->size;
-
+
header->streams = calloc(header->fileheader->num_headers, sizeof(rmff_mdpr_t*));
-
+
for (i=1; i<header->fileheader->num_headers; i++) {
chunk_type = _X_BE_32(ptr);
-
+
if (ptr[0] == 0)
{
lprintf("rmff: warning: only %d of %d header found.\n", i, header->fileheader->num_headers);
break;
}
-
+
chunk_size=1;
switch (chunk_type) {
case PROP_TAG:
@@ -596,7 +596,7 @@ rmff_prop_t *rmff_new_prop (
prop->data_offset=data_offset;
prop->num_streams=num_streams;
prop->flags=flags;
-
+
return prop;
}
@@ -615,7 +615,7 @@ rmff_mdpr_t *rmff_new_mdpr(
const char *type_specific_data ) {
rmff_mdpr_t *mdpr = malloc(sizeof(rmff_mdpr_t));
-
+
mdpr->object_id=MDPR_TAG;
mdpr->object_version=0;
@@ -640,7 +640,7 @@ rmff_mdpr_t *rmff_new_mdpr(
mdpr->type_specific_len=type_specific_len;
mdpr->type_specific_data = xine_memdup(type_specific_data,type_specific_len);
mdpr->mlti_data=NULL;
-
+
mdpr->size=mdpr->stream_name_size+mdpr->mime_type_size+mdpr->type_specific_len+46;
return mdpr;
@@ -657,7 +657,7 @@ rmff_cont_t *rmff_new_cont(const char *title, const char *author, const char *co
cont->author=NULL;
cont->copyright=NULL;
cont->comment=NULL;
-
+
cont->title_len=0;
cont->author_len=0;
cont->copyright_len=0;
@@ -696,12 +696,12 @@ rmff_data_t *rmff_new_dataheader(uint32_t num_packets, uint32_t next_data_header
return data;
}
-
+
#if 0
void rmff_print_header(rmff_header_t *h) {
rmff_mdpr_t **stream;
-
+
if(!h) {
printf("rmff_print_header: NULL given\n");
return;
@@ -762,7 +762,7 @@ void rmff_print_header(rmff_header_t *h) {
printf("size : %i\n", h->data->size);
printf("packets : %i\n", h->data->num_packets);
printf("next DATA : 0x%08x\n", h->data->next_data_header);
- }
+ }
}
#endif
@@ -791,7 +791,7 @@ void rmff_fix_header(rmff_header_t *h) {
streams++;
}
}
-
+
if (h->prop) {
if (h->prop->size != 50)
{
@@ -828,7 +828,7 @@ void rmff_fix_header(rmff_header_t *h) {
}
num_headers++;
-
+
if (!h->fileheader) {
lprintf("rmff_fix_header: no fileheader, creating one");
@@ -843,31 +843,31 @@ void rmff_fix_header(rmff_header_t *h) {
num_headers++;
if(h->fileheader->num_headers != num_headers) {
- lprintf("rmff_fix_header: setting num_headers from %i to %i\n", h->fileheader->num_headers, num_headers);
+ lprintf("rmff_fix_header: setting num_headers from %i to %i\n", h->fileheader->num_headers, num_headers);
h->fileheader->num_headers=num_headers;
}
if(h->prop) {
if (h->prop->data_offset != header_size) {
- lprintf("rmff_fix_header: setting prop.data_offset from %i to %i\n", h->prop->data_offset, header_size);
+ lprintf("rmff_fix_header: setting prop.data_offset from %i to %i\n", h->prop->data_offset, header_size);
h->prop->data_offset=header_size;
}
if (h->prop->num_packets == 0) {
int p=(int)(h->prop->avg_bit_rate/8.0*(h->prop->duration/1000.0)/h->prop->avg_packet_size);
- lprintf("rmff_fix_header: assuming prop.num_packets=%i\n", p);
+ lprintf("rmff_fix_header: assuming prop.num_packets=%i\n", p);
h->prop->num_packets=p;
}
if (h->data->num_packets == 0) {
- lprintf("rmff_fix_header: assuming data.num_packets=%i\n", h->prop->num_packets);
+ lprintf("rmff_fix_header: assuming data.num_packets=%i\n", h->prop->num_packets);
h->data->num_packets=h->prop->num_packets;
}
-
- lprintf("rmff_fix_header: assuming data.size=%i\n", h->prop->num_packets*h->prop->avg_packet_size);
+
+ lprintf("rmff_fix_header: assuming data.size=%i\n", h->prop->num_packets*h->prop->avg_packet_size);
h->data->size=h->prop->num_packets*h->prop->avg_packet_size;
}
@@ -880,7 +880,7 @@ int rmff_get_header_size(rmff_header_t *h) {
if (!h->prop) return -1;
return h->prop->data_offset+18;
-
+
}
void rmff_free_header(rmff_header_t *h) {
diff --git a/src/input/libreal/rmff.h b/src/input/libreal/rmff.h
index 285d8c978..996adc77d 100644
--- a/src/input/libreal/rmff.h
+++ b/src/input/libreal/rmff.h
@@ -98,7 +98,7 @@ typedef struct {
uint32_t data_offset;
uint16_t num_streams;
uint16_t flags;
-
+
} rmff_prop_t;
typedef struct {
@@ -141,11 +141,11 @@ typedef struct {
char *copyright;
uint16_t comment_len;
char *comment;
-
+
} rmff_cont_t;
typedef struct {
-
+
uint32_t object_id;
uint32_t size;
uint16_t object_version;
@@ -178,7 +178,7 @@ typedef struct {
/*
* constructors for header structs
*/
-
+
rmff_fileheader_t *rmff_new_fileheader(uint32_t num_headers);
rmff_prop_t *rmff_new_prop (
@@ -251,7 +251,7 @@ void rmff_fix_header(rmff_header_t *h);
*/
int rmff_get_header_size(rmff_header_t *h);
#endif
-
+
/*
* dumps the header <h> to <buffer>. <max> is the size of <buffer>
*/
diff --git a/src/input/libreal/sdpplin.c b/src/input/libreal/sdpplin.c
index 0ca20b04d..c9f5afa93 100644
--- a/src/input/libreal/sdpplin.c
+++ b/src/input/libreal/sdpplin.c
@@ -23,7 +23,7 @@
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
-
+
#define LOG_MODULE "sdpplin"
#define LOG_VERBOSE
/*
@@ -51,10 +51,10 @@ static int filter(const char *in, const char *filter, char **out) {
size_t flen=strlen(filter);
size_t len;
-
+
if (!in)
return 0;
-
+
len = (strchr(in,'\n')) ? (size_t)(strchr(in,'\n')-in) : strlen(in);
if (!strncmp(in,filter,flen))
@@ -67,7 +67,7 @@ static int filter(const char *in, const char *filter, char **out) {
return len-flen;
}
-
+
return 0;
}
static sdpplin_stream_t *XINE_MALLOC sdpplin_parse_stream(char **data) {
@@ -75,7 +75,7 @@ static sdpplin_stream_t *XINE_MALLOC sdpplin_parse_stream(char **data) {
sdpplin_stream_t *desc = calloc(1, sizeof(sdpplin_stream_t));
char *buf=xine_buffer_init(32);
int handled;
-
+
if (filter(*data, "m=", &buf)) {
desc->id = strdup(buf);
} else
@@ -90,7 +90,7 @@ static sdpplin_stream_t *XINE_MALLOC sdpplin_parse_stream(char **data) {
while (*data && **data && *data[0]!='m') {
handled=0;
-
+
if(filter(*data,"a=control:streamid=",&buf)) {
/* This way negative values are mapped to unfeasibly high
* values, and will be discarded afterward
@@ -119,7 +119,7 @@ static sdpplin_stream_t *XINE_MALLOC sdpplin_parse_stream(char **data) {
handled=1;
*data=nl(*data);
}
-
+
if(filter(*data,"a=StartTime:integer;",&buf)) {
desc->start_time=atoi(buf);
handled=1;
@@ -162,7 +162,7 @@ static sdpplin_stream_t *XINE_MALLOC sdpplin_parse_stream(char **data) {
lprintf("mlti_data_size: %i\n", desc->mlti_data_size);
}
}
-
+
if(filter(*data,"a=ASMRuleBook:string;",&buf)) {
desc->asm_rule_book=strdup(buf);
handled=1;
@@ -181,7 +181,7 @@ static sdpplin_stream_t *XINE_MALLOC sdpplin_parse_stream(char **data) {
}
xine_buffer_free(buf);
-
+
return desc;
}
@@ -199,7 +199,7 @@ sdpplin_t *sdpplin_parse(char *data) {
while (data && *data) {
handled=0;
-
+
if (filter(data, "m=", &buf)) {
if ( ! desc->stream ) {
fprintf(stderr, "sdpplin.c: stream identifier found before stream count, skipping.");
@@ -222,7 +222,7 @@ sdpplin_t *sdpplin_parse(char *data) {
data=nl(data);
}
}
-
+
if(filter(data,"a=Author:buffer;",&buf)) {
len = av_base64_decode(decoded, buf, 32);
if ( len > 0 ) {
@@ -231,7 +231,7 @@ sdpplin_t *sdpplin_parse(char *data) {
data=nl(data);
}
}
-
+
if(filter(data,"a=Copyright:buffer;",&buf)) {
len = av_base64_decode(decoded, buf, 32);
if ( len > 0 ) {
@@ -240,7 +240,7 @@ sdpplin_t *sdpplin_parse(char *data) {
data=nl(data);
}
}
-
+
if(filter(data,"a=Abstract:buffer;",&buf)) {
len = av_base64_decode(decoded, buf, 32);
if ( len > 0 ) {
@@ -249,7 +249,7 @@ sdpplin_t *sdpplin_parse(char *data) {
data=nl(data);
}
}
-
+
if(filter(data,"a=StreamCount:integer;",&buf)) {
/* This way negative values are mapped to unfeasibly high
* values, and will be discarded afterward
@@ -282,7 +282,7 @@ sdpplin_t *sdpplin_parse(char *data) {
}
xine_buffer_free(buf);
-
+
return desc;
}
diff --git a/src/input/libreal/sdpplin.h b/src/input/libreal/sdpplin.h
index 1604ee38c..2296c31e7 100644
--- a/src/input/libreal/sdpplin.h
+++ b/src/input/libreal/sdpplin.h
@@ -19,7 +19,7 @@
*
* sdp/sdpplin parser.
*/
-
+
#ifndef HAVE_SDPPLIN_H
#define HAVE_SDPPLIN_H
@@ -98,7 +98,7 @@ typedef struct {
int duration;
sdpplin_stream_t **stream;
-
+
} sdpplin_t;
sdpplin_t *sdpplin_parse(char *data) XINE_MALLOC;
diff --git a/src/input/librtsp/rtsp.c b/src/input/librtsp/rtsp.c
index 710ab8711..c8c5c4126 100644
--- a/src/input/librtsp/rtsp.c
+++ b/src/input/librtsp/rtsp.c
@@ -46,7 +46,7 @@
#define LOG_VERBOSE
/*
#define LOG
-*/
+*/
#include "rtsp.h"
#include <xine/io_helper.h>
@@ -71,7 +71,7 @@ struct rtsp_s {
char *server;
unsigned int server_state;
uint32_t server_caps;
-
+
unsigned int cseq;
char *session;
@@ -107,16 +107,16 @@ static const char rtsp_protocol_version[]="RTSP/1.0";
* rtsp_get gets a line from stream
* and returns a null terminated string (must be freed).
*/
-
+
static char *rtsp_get(rtsp_t *s) {
char buffer[BUF_SIZE];
char *string = NULL;
-
+
if ( _x_io_tcp_read_line(s->stream, s->s, buffer, BUF_SIZE) >= 0 ) {
lprintf("<< '%s'\n", buffer);
string = strdup( buffer );
}
-
+
return string;
}
@@ -124,7 +124,7 @@ static char *rtsp_get(rtsp_t *s) {
/*
* rtsp_put puts a line on stream
*/
-
+
static void rtsp_put(rtsp_t *s, const char *string) {
size_t len=strlen(string);
@@ -137,7 +137,7 @@ static void rtsp_put(rtsp_t *s, const char *string) {
buf[len+1]=0x0a;
_x_io_tcp_write(s->stream, s->s, buf, len+2);
-
+
lprintf("done.\n");
}
@@ -149,7 +149,7 @@ static int rtsp_get_code(rtsp_t *s, const char *string) {
char buf[4];
int code=0;
-
+
if (!strncmp(string, rtsp_protocol_version, strlen(rtsp_protocol_version)))
{
memcpy(buf, string+strlen(rtsp_protocol_version)+1, 3);
@@ -160,7 +160,7 @@ static int rtsp_get_code(rtsp_t *s, const char *string) {
return RTSP_STATUS_SET_PARAMETER;
}
- if(code != 200)
+ if(code != 200)
xprintf(s->stream->xine, XINE_VERBOSITY_DEBUG, "librtsp: server responds: '%s'\n", string);
return code;
@@ -174,7 +174,7 @@ static void rtsp_send_request(rtsp_t *s, const char *type, const char *what) {
char **payload=s->scheduled;
char *buf;
-
+
asprintf(&buf,"%s %s %s",type, what, rtsp_protocol_version);
rtsp_put(s,buf);
@@ -194,10 +194,10 @@ static void rtsp_send_request(rtsp_t *s, const char *type, const char *what) {
static void rtsp_schedule_standard(rtsp_t *s) {
char tmp[17];
-
+
sprintf(tmp, "Cseq: %u", s->cseq);
rtsp_schedule_field(s, tmp);
-
+
if (s->session) {
char *buf;
asprintf(&buf, "Session: %s", s->session);
@@ -207,7 +207,7 @@ static void rtsp_schedule_standard(rtsp_t *s) {
/*
* get the answers, if server responses with something != 200, return NULL
*/
-
+
static int rtsp_get_answers(rtsp_t *s) {
char *answer=NULL;
@@ -215,7 +215,7 @@ static int rtsp_get_answers(rtsp_t *s) {
char **answer_ptr=s->answers;
int code;
int ans_count = 0;
-
+
answer=rtsp_get(s);
if (!answer)
return 0;
@@ -223,13 +223,13 @@ static int rtsp_get_answers(rtsp_t *s) {
free(answer);
rtsp_free_answers(s);
-
+
do { /* while we get answer lines */
-
+
answer=rtsp_get(s);
if (!answer)
return 0;
-
+
if (!strncasecmp(answer,"Cseq: ",6)) {
sscanf(answer+6,"%u",&answer_seq);
if (s->cseq != answer_seq) {
@@ -246,7 +246,7 @@ static int rtsp_get_answers(rtsp_t *s) {
char *tmp = answer + 9;
if (s->session) {
if (strcmp(tmp, s->session)) {
- xprintf(s->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(s->stream->xine, XINE_VERBOSITY_DEBUG,
"rtsp: warning: setting NEW session: %s\n", tmp);
s->session=strdup(tmp);
}
@@ -260,12 +260,12 @@ static int rtsp_get_answers(rtsp_t *s) {
*answer_ptr=answer;
answer_ptr++;
} while ((strlen(answer)!=0) && (++ans_count < MAX_FIELDS));
-
+
s->cseq++;
-
+
*answer_ptr=NULL;
rtsp_schedule_standard(s);
-
+
return code;
}
@@ -275,7 +275,7 @@ static int rtsp_get_answers(rtsp_t *s) {
int rtsp_send_ok(rtsp_t *s) {
char cseq[16];
-
+
rtsp_put(s, "RTSP/1.0 200 OK");
sprintf(cseq,"CSeq: %u", s->cseq);
rtsp_put(s, cseq);
@@ -316,14 +316,14 @@ int rtsp_request_describe(rtsp_t *s, const char *what) {
}
rtsp_send_request(s,"DESCRIBE",buf);
free(buf);
-
+
return rtsp_get_answers(s);
}
int rtsp_request_setup(rtsp_t *s, const char *what) {
rtsp_send_request(s,"SETUP",what);
-
+
return rtsp_get_answers(s);
}
@@ -339,7 +339,7 @@ int rtsp_request_setparameter(rtsp_t *s, const char *what) {
}
rtsp_send_request(s,"SET_PARAMETER",buf);
free(buf);
-
+
return rtsp_get_answers(s);
}
@@ -355,7 +355,7 @@ int rtsp_request_play(rtsp_t *s, const char *what) {
}
rtsp_send_request(s,"PLAY",buf);
free(buf);
-
+
return rtsp_get_answers(s);
}
@@ -363,7 +363,7 @@ int rtsp_request_play(rtsp_t *s, const char *what) {
int rtsp_request_tearoff(rtsp_t *s, const char *what) {
rtsp_send_request(s,"TEAROFF",what);
-
+
return rtsp_get_answers(s);
}
#endif
@@ -384,7 +384,7 @@ int rtsp_read_data(rtsp_t *s, void *buffer_gen, unsigned int size) {
char *rest=rtsp_get(s);
if (!rest)
return -1;
-
+
seq=-1;
do {
free(rest);
@@ -431,14 +431,14 @@ rtsp_t *rtsp_connect(xine_stream_t *stream, const char *mrl, const char *user_ag
char *slash, *colon;
int hostend, i;
size_t pathbegin;
-
+
if (strncmp(mrl,"rtsp://",7))
{
xprintf(stream->xine, XINE_VERBOSITY_LOG, _("rtsp: bad mrl: %s\n"), mrl);
free(s);
return NULL;
}
-
+
mrl_ptr+=7;
for (i=0; i<MAX_FIELDS; i++) {
@@ -452,14 +452,14 @@ rtsp_t *rtsp_connect(xine_stream_t *stream, const char *mrl, const char *user_ag
s->path=NULL;
s->mrl=NULL;
s->mrl=strdup(mrl);
-
+
s->server=NULL;
s->server_state=0;
s->server_caps=0;
-
+
s->cseq=0;
s->session=NULL;
-
+
if (user_agent)
s->user_agent=strdup(user_agent);
else
@@ -469,7 +469,7 @@ rtsp_t *rtsp_connect(xine_stream_t *stream, const char *mrl, const char *user_ag
colon=strchr(mrl_ptr,':');
if(!slash) slash=mrl_ptr+strlen(mrl_ptr)+1;
- if(!colon) colon=slash;
+ if(!colon) colon=slash;
if(colon > slash) colon=slash;
pathbegin=slash-mrl_ptr;
@@ -480,7 +480,7 @@ rtsp_t *rtsp_connect(xine_stream_t *stream, const char *mrl, const char *user_ag
if (pathbegin < strlen(mrl_ptr)) s->path=strdup(mrl_ptr+pathbegin+1);
if (colon != slash) {
char buffer[pathbegin-hostend];
-
+
strncpy(buffer,mrl_ptr+hostend+1, pathbegin-hostend-1);
buffer[pathbegin-hostend-1]=0;
s->port=atoi(buffer);
@@ -516,7 +516,7 @@ rtsp_t *rtsp_connect(xine_stream_t *stream, const char *mrl, const char *user_ag
/*
- * closes an rtsp connection
+ * closes an rtsp connection
*/
void rtsp_close(rtsp_t *s) {
@@ -529,7 +529,7 @@ void rtsp_close(rtsp_t *s) {
if (s->user_agent) free(s->user_agent);
rtsp_free_answers(s);
rtsp_unschedule_all(s);
- free(s);
+ free(s);
}
/*
@@ -541,7 +541,7 @@ char *rtsp_search_answers(rtsp_t *s, const char *tag) {
char **answer;
char *ptr;
-
+
if (!s->answers) return NULL;
answer=s->answers;
@@ -592,7 +592,7 @@ char *rtsp_get_mrl(rtsp_t *s) {
void rtsp_schedule_field(rtsp_t *s, const char *string) {
int i=0;
-
+
if (!string) return;
while(s->scheduled[i]) {
@@ -603,13 +603,13 @@ void rtsp_schedule_field(rtsp_t *s, const char *string) {
#if 0
/*
- * removes the first scheduled field which prefix matches string.
+ * removes the first scheduled field which prefix matches string.
*/
void rtsp_unschedule_field(rtsp_t *s, const char *string) {
char **ptr=s->scheduled;
-
+
if (!string) return;
while(*ptr) {
@@ -631,7 +631,7 @@ void rtsp_unschedule_field(rtsp_t *s, const char *string) {
void rtsp_unschedule_all(rtsp_t *s) {
char **ptr;
-
+
if (!s->scheduled) return;
ptr=s->scheduled;
@@ -648,7 +648,7 @@ void rtsp_unschedule_all(rtsp_t *s) {
void rtsp_free_answers(rtsp_t *s) {
char **answer;
-
+
if (!s->answers) return;
answer=s->answers;
diff --git a/src/input/librtsp/rtsp.h b/src/input/librtsp/rtsp.h
index 8aee8e049..98a87fb80 100644
--- a/src/input/librtsp/rtsp.h
+++ b/src/input/librtsp/rtsp.h
@@ -20,7 +20,7 @@
* a minimalistic implementation of rtsp protocol,
* *not* RFC 2326 compilant yet.
*/
-
+
#ifndef HAVE_RTSP_H
#define HAVE_RTSP_H
diff --git a/src/input/librtsp/rtsp_session.c b/src/input/librtsp/rtsp_session.c
index 0194af3fd..a4b4c83c4 100644
--- a/src/input/librtsp/rtsp_session.c
+++ b/src/input/librtsp/rtsp_session.c
@@ -89,7 +89,7 @@ rtsp_session_t *rtsp_session_start(xine_stream_t *stream, char *mrl) {
rmff_header_t *h;
int bandwidth_id;
uint32_t bandwidth;
-
+
bandwidth_id = xine->config->register_enum(xine->config, "media.network.bandwidth", 10,
rtsp_bandwidth_strs,
_("network bandwidth"),
@@ -100,7 +100,7 @@ rtsp_session_t *rtsp_session_start(xine_stream_t *stream, char *mrl) {
bandwidth = rtsp_bandwidths[bandwidth_id];
rtsp_session->recv = xine_buffer_init(BUF_SIZE);
-
+
connect:
/* connect to server */
@@ -149,8 +149,8 @@ connect:
return NULL;
}
}
-
- rtsp_session->header_left =
+
+ rtsp_session->header_left =
rtsp_session->header_len = rmff_dump_header(h,rtsp_session->header,HEADER_SIZE);
if (rtsp_session->header_len < 0) {
xprintf (stream->xine, XINE_VERBOSITY_LOG,
@@ -161,7 +161,7 @@ connect:
xine_buffer_copyin(rtsp_session->recv, 0, rtsp_session->header, rtsp_session->header_len);
rtsp_session->recv_size = rtsp_session->header_len;
rtsp_session->recv_read = 0;
-
+
} else
{
xprintf(stream->xine, XINE_VERBOSITY_LOG,
@@ -174,29 +174,29 @@ connect:
return NULL;
}
free(server);
-
+
return rtsp_session;
}
void rtsp_session_set_start_time (rtsp_session_t *this, int start_time) {
-
+
if (start_time >= 0)
this->start_time = start_time;
}
static void rtsp_session_play (rtsp_session_t *this) {
-
+
char buf[256];
-
- snprintf (buf, sizeof(buf), "Range: npt=%d.%03d-",
+
+ snprintf (buf, sizeof(buf), "Range: npt=%d.%03d-",
this->start_time/1000, this->start_time%1000);
-
+
rtsp_schedule_field (this->s, buf);
rtsp_request_play (this->s,NULL);
}
int rtsp_session_read (rtsp_session_t *this, char *data, int len) {
-
+
int to_copy;
char *dest=data;
uint8_t *source=this->recv + this->recv_read;
@@ -204,22 +204,22 @@ int rtsp_session_read (rtsp_session_t *this, char *data, int len) {
if (len < 0)
return 0;
-
+
if (this->header_left) {
if (len > this->header_left)
len = this->header_left;
-
+
this->header_left -= len;
}
-
+
to_copy = len;
while (to_copy > fill) {
-
+
if (!this->playing) {
rtsp_session_play (this);
this->playing = 1;
}
-
+
memcpy(dest, source, fill);
to_copy -= fill;
dest += fill;
@@ -234,7 +234,7 @@ int rtsp_session_read (rtsp_session_t *this, char *data, int len) {
return len-to_copy;
}
}
-
+
memcpy(dest, source, to_copy);
this->recv_read += to_copy;
diff --git a/src/input/media_helper.c b/src/input/media_helper.c
index 288ed4205..e19ca63e6 100644
--- a/src/input/media_helper.c
+++ b/src/input/media_helper.c
@@ -1,18 +1,18 @@
-/*
- * Copyright (C) 2000-2003 the xine project,
- *
+/*
+ * Copyright (C) 2000-2003 the xine project,
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -66,14 +66,14 @@ static int media_umount_media(const char *device)
if(waitpid(pid, &status, 0) == -1) {
if (errno != EINTR)
return -1;
- }
+ }
else {
return WEXITSTATUS(status);
}
} while(1);
-
+
return -1;
-}
+}
#endif
int media_eject_media (xine_t *xine, const char *device)
@@ -91,7 +91,7 @@ int media_eject_media (xine_t *xine, const char *device)
return 0;
-#else
+#else
int fd;
@@ -109,14 +109,14 @@ int media_eject_media (xine_t *xine, const char *device)
case CDS_TRAY_OPEN:
if((ret = ioctl(fd, CDROMCLOSETRAY)) != 0) {
#ifdef LOG_MEDIA_EJECT
- printf("input_dvd: CDROMCLOSETRAY failed: %s\n", strerror(errno));
+ printf("input_dvd: CDROMCLOSETRAY failed: %s\n", strerror(errno));
#endif
}
break;
case CDS_DISC_OK:
if((ret = ioctl(fd, CDROMEJECT)) != 0) {
#ifdef LOG_MEDIA_EJECT
- printf("input_dvd: CDROMEJECT failed: %s\n", strerror(errno));
+ printf("input_dvd: CDROMEJECT failed: %s\n", strerror(errno));
#endif
}
break;
diff --git a/src/input/mms.c b/src/input/mms.c
index b94d986d3..67f8775a7 100644
--- a/src/input/mms.c
+++ b/src/input/mms.c
@@ -1,18 +1,18 @@
/*
* Copyright (C) 2002-2004 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -54,7 +54,7 @@
#define LOG_MODULE "mms"
#define LOG_VERBOSE
/*
-#define LOG
+#define LOG
*/
#include <xine/xine_internal.h>
#include <xine/xineutils.h>
@@ -65,8 +65,8 @@
#include "../demuxers/asfheader.h"
-/*
- * mms specific types
+/*
+ * mms specific types
*/
#define MMST_PORT 1755
@@ -107,9 +107,9 @@ struct mms_packet_header_s {
struct mms_s {
xine_stream_t *stream;
-
+
int s;
-
+
/* url parsing */
char *url;
char *proto;
@@ -123,12 +123,12 @@ struct mms_s {
char scmd[CMD_HEADER_LEN + CMD_BODY_LEN];
char *scmd_body; /* pointer to &scmd[CMD_HEADER_LEN] */
int scmd_len; /* num bytes written in header */
-
+
/* receive buffer */
uint8_t buf[BUF_SIZE];
int buf_size;
int buf_read;
-
+
asf_header_t *asf_header;
uint8_t asf_header_buffer[ASF_HEADER_LEN];
uint32_t asf_header_len;
@@ -137,13 +137,13 @@ struct mms_s {
int seq_num;
char guid[37];
int bandwidth;
-
+
off_t current_pos;
int eos;
uint8_t live_flag;
-
- uint8_t playing;
+
+ uint8_t playing;
double start_time;
};
@@ -230,12 +230,12 @@ static void print_command (char *data, int len) {
for (i = (CMD_HEADER_LEN + CMD_PREFIX_LEN); i < (CMD_HEADER_LEN + CMD_PREFIX_LEN + len); i += 1) {
unsigned char c = data[i];
-
+
if ((c >= 32) && (c < 128))
printf ("%c", c);
else
printf (" %02x ", c);
-
+
}
if (len > CMD_HEADER_LEN)
printf ("\n");
@@ -271,7 +271,7 @@ static int send_command (mms_t *this, int command,
mms_buffer_put_32 (&command_buffer, len8 + 2);
mms_buffer_put_32 (&command_buffer, 0x00030000 | command); /* dir | command */
/* end of the 40 byte command header */
-
+
mms_buffer_put_32 (&command_buffer, prefix1);
mms_buffer_put_32 (&command_buffer, prefix2);
@@ -354,14 +354,14 @@ static int get_packet_header (mms_t *this, mms_packet_header_t *header) {
len = _x_io_tcp_read (this->stream, this->s, (char*)this->buf, 8);
if (len != 8)
goto error;
-
+
if (_X_LE_32(this->buf + 4) == 0xb00bface) {
/* command packet */
header->flags = this->buf[3];
len = _x_io_tcp_read (this->stream, this->s, (char*)(this->buf + 8), 4);
if (len != 4)
goto error;
-
+
header->packet_len = _X_LE_32(this->buf + 8) + 4;
if (header->packet_len > BUF_SIZE - 12) {
header->packet_len = 0;
@@ -383,7 +383,7 @@ static int get_packet_header (mms_t *this, mms_packet_header_t *header) {
}
}
return packet_type;
-
+
error:
lprintf("read error, len=%zd\n", len);
return MMS_PACKET_ERR;
@@ -395,7 +395,7 @@ static int get_packet_command (mms_t *this, uint32_t packet_len) {
int command = 0;
size_t len;
-
+
/* always enter this loop */
lprintf("packet_len: %d bytes\n", packet_len);
@@ -405,18 +405,18 @@ static int get_packet_command (mms_t *this, uint32_t packet_len) {
}
print_command ((char*)this->buf, len);
-
+
/* check protocol type ("MMS ") */
if (_X_LE_32(this->buf + 12) != 0x20534D4D) {
lprintf("unknown protocol type: %c%c%c%c (0x%08X)\n",
this->buf[12], this->buf[13], this->buf[14], this->buf[15],
- _X_LE_32(this->buf + 12));
+ _X_LE_32(this->buf + 12));
return 0;
}
command = _X_LE_32 (this->buf + 36) & 0xFFFF;
lprintf("command = 0x%2x\n", command);
-
+
return command;
}
@@ -431,9 +431,9 @@ static int get_answer (mms_t *this) {
break;
case MMS_PACKET_COMMAND:
command = get_packet_command (this, header.packet_len);
-
+
if (command == 0x1b) {
-
+
if (!send_command (this, 0x1b, 0, 0, 0)) {
xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
"libmms: failed to send command\n");
@@ -452,7 +452,7 @@ static int get_answer (mms_t *this) {
"libmms: unexpected asf packet\n");
break;
}
-
+
return command;
}
@@ -461,7 +461,7 @@ static int get_asf_header (mms_t *this) {
off_t len;
int stop = 0;
-
+
this->asf_header_read = 0;
this->asf_header_len = 0;
@@ -477,9 +477,9 @@ static int get_asf_header (mms_t *this) {
break;
case MMS_PACKET_COMMAND:
command = get_packet_command (this, header.packet_len);
-
+
if (command == 0x1b) {
-
+
if (!send_command (this, 0x1b, 0, 0, 0)) {
xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
"libmms: failed to send command\n");
@@ -560,11 +560,11 @@ static void report_progress (xine_stream_t *stream, int p) {
prg.description = _("Connecting MMS server (over tcp)...");
prg.percent = p;
-
+
event.type = XINE_EVENT_PROGRESS;
event.data = &prg;
event.data_length = sizeof (xine_progress_data_t);
-
+
xine_event_send (stream, &event);
}
@@ -574,11 +574,11 @@ static void report_progress (xine_stream_t *stream, int p) {
*/
static int mms_tcp_connect(mms_t *this) {
int progress, res;
-
+
if (!this->port) this->port = MMST_PORT;
- /*
- * try to connect
+ /*
+ * try to connect
*/
lprintf("try to connect to %s on port %d \n", this->host, this->port);
this->s = _x_io_tcp_connect (this->stream, this->host, this->port);
@@ -626,7 +626,7 @@ static int mms_choose_best_streams(mms_t *this) {
/* choose the best quality for the audio stream */
asf_header_choose_streams (this->asf_header, this->bandwidth, &video_stream, &audio_stream);
-
+
lprintf("selected streams: audio %d, video %d\n", audio_stream, video_stream);
lprintf("disabling other streams\n");
memset (this->scmd_body, 0, 40);
@@ -647,8 +647,8 @@ static int mms_choose_best_streams(mms_t *this) {
}
/* command 0x33 */
- if (!send_command (this, 0x33, this->asf_header->stream_count,
- 0xFFFF | this->asf_header->streams[0]->stream_number << 16,
+ if (!send_command (this, 0x33, this->asf_header->stream_count,
+ 0xFFFF | this->asf_header->streams[0]->stream_number << 16,
this->asf_header->stream_count * 6 + 2)) {
xprintf (this->stream->xine, XINE_VERBOSITY_LOG,
"libmms: mms_choose_best_streams failed\n");
@@ -676,7 +676,7 @@ mms_t *mms_connect (xine_stream_t *stream, const char *url, int bandwidth) {
mms_t *this;
char str[1024];
int res;
-
+
if (!url)
return NULL;
@@ -696,23 +696,23 @@ mms_t *mms_connect (xine_stream_t *stream, const char *url, int bandwidth) {
this->eos = 0;
report_progress (stream, 0);
-
+
if (!_x_parse_url (this->url, &this->proto, &this->host, &this->port,
&this->user, &this->password, &this->uri, NULL)) {
lprintf ("invalid url\n");
goto fail;
}
-
+
if (!mmst_valid_proto(this->proto)) {
lprintf ("unsupported protocol\n");
goto fail;
}
-
+
if (mms_tcp_connect(this)) {
goto fail;
}
report_progress (stream, 30);
-
+
#ifdef USE_ICONV
url_conv = string_utf16_open();
#endif
@@ -732,13 +732,13 @@ mms_t *mms_connect (xine_stream_t *stream, const char *url, int bandwidth) {
"libmms: failed to send command 0x01\n");
goto fail;
}
-
+
if ((res = get_answer (this)) != 0x01) {
xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
"libmms: unexpected response: %02x (0x01)\n", res);
goto fail;
}
-
+
report_progress (stream, 40);
/* TODO: insert network timing request here */
@@ -786,7 +786,7 @@ mms_t *mms_connect (xine_stream_t *stream, const char *url, int bandwidth) {
path++;
pathlen--;
}
-
+
lprintf("send command 0x05\n");
mms_buffer_init(&command_buffer, this->scmd_body);
mms_buffer_put_32 (&command_buffer, 0x00000000); /* ?? */
@@ -796,13 +796,13 @@ mms_t *mms_connect (xine_stream_t *stream, const char *url, int bandwidth) {
if (!send_command (this, 5, 1, 0xffffffff, pathlen * 2 + 12))
goto fail;
}
-
+
switch (res = get_answer (this)) {
case 0x06:
{
int xx, yy;
/* no authentication required */
-
+
/* Warning: sdp is not right here */
xx = this->buf[62];
yy = this->buf[63];
@@ -845,7 +845,7 @@ mms_t *mms_connect (xine_stream_t *stream, const char *url, int bandwidth) {
goto fail;
}
}
-
+
if ((res = get_answer (this)) != 0x11) {
xprintf (this->stream->xine, XINE_VERBOSITY_LOG,
"libmms: unexpected response: %02x (0x11)\n", res);
@@ -898,7 +898,7 @@ mms_t *mms_connect (xine_stream_t *stream, const char *url, int bandwidth) {
#endif
lprintf("mms_connect: passed\n" );
-
+
return this;
fail:
@@ -924,19 +924,19 @@ fail:
static int get_media_packet (mms_t *this) {
mms_packet_header_t header;
off_t len;
-
+
switch (get_packet_header (this, &header)) {
case MMS_PACKET_ERR:
xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
"libmms: failed to read mms packet header\n");
return 0;
break;
-
+
case MMS_PACKET_COMMAND:
{
int command;
command = get_packet_command (this, header.packet_len);
-
+
switch (command) {
case 0x1e:
{
@@ -950,10 +950,10 @@ static int get_media_packet (mms_t *this) {
this->eos = 1;
return 0;
}
-
+
}
break;
-
+
case 0x20:
{
lprintf ("new stream.\n");
@@ -976,7 +976,7 @@ static int get_media_packet (mms_t *this) {
mms_buffer_t command_buffer;
mms_buffer_init(&command_buffer, this->scmd_body);
mms_buffer_put_32 (&command_buffer, 0x00000000); /* 64 byte float timestamp */
- mms_buffer_put_32 (&command_buffer, 0x00000000);
+ mms_buffer_put_32 (&command_buffer, 0x00000000);
mms_buffer_put_32 (&command_buffer, 0xFFFFFFFF); /* ?? */
mms_buffer_put_32 (&command_buffer, 0xFFFFFFFF); /* first packet sequence */
mms_buffer_put_8 (&command_buffer, 0xFF); /* max stream time limit (3 bytes) */
@@ -1003,10 +1003,10 @@ static int get_media_packet (mms_t *this) {
}
}
break;
-
+
case 0x05:
break;
-
+
default:
xprintf (this->stream->xine, XINE_VERBOSITY_LOG,
"unexpected mms command %02x\n", command);
@@ -1047,7 +1047,7 @@ static int get_media_packet (mms_t *this) {
}
break;
}
-
+
lprintf ("get media packet succ\n");
return 1;
@@ -1085,13 +1085,13 @@ int mms_read (mms_t *this, char *data, int len) {
this->asf_header_read += n;
total += n;
this->current_pos += n;
-
+
if (this->asf_header_read == this->asf_header_len)
break;
} else {
int n, bytes_left ;
-
+
if (!this->playing) {
/* send command 0x07 with initial timestamp */
mms_buffer_t command_buffer;
diff --git a/src/input/mms.h b/src/input/mms.h
index 67ea5ba0b..2fdfdac9b 100644
--- a/src/input/mms.h
+++ b/src/input/mms.h
@@ -1,18 +1,18 @@
/*
* Copyright (C) 2002-2003 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
diff --git a/src/input/mmsh.c b/src/input/mmsh.c
index 95ab64d10..2a65dd7d3 100644
--- a/src/input/mmsh.c
+++ b/src/input/mmsh.c
@@ -138,8 +138,8 @@
#endif
-/*
- * mmsh specific types
+/*
+ * mmsh specific types
*/
@@ -161,10 +161,10 @@ struct mmsh_s {
char str[SCRATCH_SIZE]; /* scratch buffer to built strings */
asf_header_t *asf_header;
- int stream_type;
+ int stream_type;
/* receive buffer */
-
+
/* chunk */
uint16_t chunk_type;
uint16_t chunk_length;
@@ -178,13 +178,13 @@ struct mmsh_s {
uint32_t asf_header_len;
uint32_t asf_header_read;
int seq_num;
-
+
int video_stream;
int audio_stream;
off_t current_pos;
int user_bandwidth;
-
+
int playing;
unsigned int start_time;
};
@@ -201,7 +201,7 @@ static int send_command (mmsh_t *this, char *cmd) {
}
static int get_answer (mmsh_t *this) {
-
+
int done, len, linenum;
char *features;
@@ -222,14 +222,14 @@ static int get_answer (mmsh_t *this) {
this->buf[len] = '\0';
len--;
-
+
if ((len >= 0) && (this->buf[len] == '\015')) {
this->buf[len] = '\0';
len--;
}
linenum++;
-
+
lprintf ("answer: >%s<\n", this->buf);
if (linenum == 1) {
@@ -263,7 +263,7 @@ static int get_answer (mmsh_t *this) {
_("libmmsh: Location redirection not implemented\n"));
return 0;
}
-
+
if (!strncasecmp((char*)this->buf, "Pragma:", 7)) {
features = strstr((char*)(this->buf + 7), "features=");
if (features) {
@@ -279,7 +279,7 @@ static int get_answer (mmsh_t *this) {
}
}
}
-
+
if (len == -1) {
done = 1;
} else {
@@ -314,7 +314,7 @@ static int get_chunk_header (mmsh_t *this) {
}
this->chunk_type = _X_LE_16 (&chunk_header[0]);
this->chunk_length = _X_LE_16 (&chunk_header[2]);
-
+
switch (this->chunk_type) {
case CHUNK_TYPE_DATA:
ext_header_len = 8;
@@ -340,7 +340,7 @@ static int get_chunk_header (mmsh_t *this) {
return 0;
}
}
-
+
switch (this->chunk_type) {
case CHUNK_TYPE_DATA:
this->chunk_seq_number = _X_LE_32 (&ext_header[0]);
@@ -384,7 +384,7 @@ static int get_header (mmsh_t *this) {
lprintf("get_header\n");
this->asf_header_len = 0;
-
+
/* read chunk */
while (1) {
if (get_chunk_header(this)) {
@@ -484,11 +484,11 @@ static void report_progress (xine_stream_t *stream, int p) {
*/
static int mmsh_tcp_connect(mmsh_t *this) {
int progress, res;
-
+
if (!this->port) this->port = MMSH_PORT;
-
- /*
- * try to connect
+
+ /*
+ * try to connect
*/
lprintf("try to connect to %s on port %d \n", this->host, this->port);
@@ -522,24 +522,24 @@ static int mmsh_connect_int(mmsh_t *this, int bandwidth) {
/*
* let the negotiations begin...
*/
-
+
/* first request */
lprintf("first http request\n");
-
+
snprintf (this->str, SCRATCH_SIZE, mmsh_FirstRequest, this->uri,
this->host, this->port, 1);
if (!send_command (this, this->str))
return 0;
- if (!get_answer (this))
+ if (!get_answer (this))
return 0;
get_header (this); /* FIXME: it returns 0 */
if (!interp_header (this))
return 0;
-
+
close (this->s);
report_progress (this->stream, 20);
@@ -548,13 +548,13 @@ static int mmsh_connect_int(mmsh_t *this, int bandwidth) {
lprintf("audio stream %d, video stream %d\n",
this->audio_stream, this->video_stream);
-
+
asf_header_disable_streams (this->asf_header,
this->video_stream, this->audio_stream);
-
+
if (mmsh_tcp_connect(this))
return 0;
-
+
return 1;
}
@@ -565,7 +565,7 @@ static int mmsh_connect_int2(mmsh_t *this, int bandwidth) {
int i;
char stream_selection[10 * ASF_MAX_NUM_STREAMS]; /* 10 chars per stream */
int offset;
-
+
/* second request */
lprintf("second http request\n");
@@ -606,7 +606,7 @@ static int mmsh_connect_int2(mmsh_t *this, int bandwidth) {
if (!send_command (this, this->str))
return 0;
-
+
lprintf("before read \n");
if (!get_answer (this))
@@ -614,11 +614,11 @@ static int mmsh_connect_int2(mmsh_t *this, int bandwidth) {
if (!get_header (this))
return 0;
-
+
#if 0
if (!interp_header (this))
return 0;
-
+
asf_header_disable_streams (this->asf_header,
this->video_stream, this->audio_stream);
#endif
@@ -628,7 +628,7 @@ static int mmsh_connect_int2(mmsh_t *this, int bandwidth) {
mmsh_t *mmsh_connect (xine_stream_t *stream, const char *url, int bandwidth) {
mmsh_t *this;
-
+
if (!url)
return NULL;
@@ -647,28 +647,28 @@ mmsh_t *mmsh_connect (xine_stream_t *stream, const char *url, int bandwidth) {
this->user_bandwidth = bandwidth;
report_progress (stream, 0);
-
+
if (!_x_parse_url (this->url, &this->proto, &this->host, &this->port,
&this->user, &this->password, &this->uri, NULL)) {
xine_log (this->stream->xine, XINE_LOG_MSG, _("invalid url\n"));
goto fail;
}
-
+
if (!mmsh_valid_proto(this->proto)) {
xine_log (this->stream->xine, XINE_LOG_MSG, _("unsupported protocol\n"));
goto fail;
}
-
+
if (mmsh_tcp_connect(this))
goto fail;
-
+
report_progress (stream, 30);
if (!mmsh_connect_int(this, this->user_bandwidth))
goto fail;
report_progress (stream, 100);
-
+
lprintf("mmsh_connect: passed\n" );
return this;
@@ -717,7 +717,7 @@ static int get_media_packet (mmsh_t *this) {
*/
if (this->chunk_seq_number == 0)
return 0;
-
+
close(this->s);
if (mmsh_tcp_connect(this))
@@ -725,20 +725,20 @@ static int get_media_packet (mmsh_t *this) {
if (!mmsh_connect_int(this, this->user_bandwidth))
return 0;
-
+
this->playing = 0;
/* mmsh_connect_int reads the first data packet */
- /* this->buf_size is set by mmsh_connect_int */
+ /* this->buf_size is set by mmsh_connect_int */
return 2;
case CHUNK_TYPE_DATA:
/* nothing to do */
break;
-
+
case CHUNK_TYPE_RESET:
/* next chunk is an ASF header */
-
+
if (this->chunk_length != 0) {
/* that's strange, don't know what to do */
return 0;
@@ -747,7 +747,7 @@ static int get_media_packet (mmsh_t *this) {
return 0;
interp_header(this);
return 2;
-
+
default:
xprintf (this->stream->xine, XINE_VERBOSITY_LOG,
"libmmsh: unexpected chunk type\n");
@@ -755,7 +755,7 @@ static int get_media_packet (mmsh_t *this) {
}
len = _x_io_tcp_read (this->stream, this->s, (char*)this->buf, this->chunk_length);
-
+
if (len == this->chunk_length) {
/* explicit padding with 0 */
if (this->chunk_length > this->asf_header->file->packet_size) {
@@ -812,13 +812,13 @@ int mmsh_read (mmsh_t *this, char *data, int len) {
this->asf_header_read += n;
total += n;
this->current_pos += n;
-
+
if (this->asf_header_read == this->asf_header_len)
- break;
+ break;
} else {
int n, bytes_left ;
-
+
if (!this->playing) {
if (!mmsh_connect_int2 (this, this->user_bandwidth))
break;
diff --git a/src/input/mmsh.h b/src/input/mmsh.h
index eeceb030b..1e337a2d5 100644
--- a/src/input/mmsh.h
+++ b/src/input/mmsh.h
@@ -1,18 +1,18 @@
/*
* Copyright (C) 2002-2003 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
diff --git a/src/input/net_buf_ctrl.c b/src/input/net_buf_ctrl.c
index 1883a9462..e14897699 100644
--- a/src/input/net_buf_ctrl.c
+++ b/src/input/net_buf_ctrl.c
@@ -116,7 +116,7 @@ static void nbc_set_speed_normal (nbc_t *this) {
static void display_stats (nbc_t *this) {
static const char buffering[2][4] = {" ", "buf"};
static const char enabled[2][4] = {"off", "on "};
-
+
printf("bufing: %d, enb: %d\n", this->buffering, this->enabled);
printf("net_buf_ctrl: vid %3d%% %4.1fs %4" PRId64 "kbps %1d, "\
"aud %3d%% %4.1fs %4" PRId64 "kbps %1d, %s %s\r",
@@ -164,7 +164,7 @@ static void nbc_compute_fifo_length(nbc_t *this,
this->video_fifo_free = fifo_free;
this->video_fifo_fill = (100 * fifo_fill) / fifo_div;
this->video_fifo_size = fifo->fifo_data_size;
-
+
if (buf->pts && (this->video_in_disc == 0)) {
if (action == FIFO_PUT) {
this->video_last_pts = buf->pts;
@@ -176,7 +176,7 @@ static void nbc_compute_fifo_length(nbc_t *this,
this->video_first_pts = buf->pts;
}
}
-
+
if (video_br) {
this->video_br = video_br;
this->video_fifo_length_int = (8000 * this->video_fifo_size) / this->video_br;
@@ -197,7 +197,7 @@ static void nbc_compute_fifo_length(nbc_t *this,
this->audio_fifo_free = fifo_free;
this->audio_fifo_fill = (100 * fifo_fill) / fifo_div;
this->audio_fifo_size = fifo->fifo_data_size;
-
+
if (buf->pts && (this->audio_in_disc == 0)) {
if (action == FIFO_PUT) {
this->audio_last_pts = buf->pts;
@@ -209,7 +209,7 @@ static void nbc_compute_fifo_length(nbc_t *this,
this->audio_first_pts = buf->pts;
}
}
-
+
if (audio_br) {
this->audio_br = audio_br;
this->audio_fifo_length_int = (8000 * this->audio_fifo_size) / this->audio_br;
@@ -226,7 +226,7 @@ static void nbc_compute_fifo_length(nbc_t *this,
}
}
}
-
+
/* decoder buffer compensation */
if (has_audio && has_video) {
diff = this->video_first_pts - this->audio_first_pts;
@@ -267,7 +267,7 @@ static void nbc_alloc_cb (fifo_buffer_t *fifo, void *this_gen) {
/* Put callback
* the fifo mutex is locked */
-static void nbc_put_cb (fifo_buffer_t *fifo,
+static void nbc_put_cb (fifo_buffer_t *fifo,
buf_element_t *buf, void *this_gen) {
nbc_t *this = (nbc_t*)this_gen;
int64_t progress = 0;
@@ -281,7 +281,7 @@ static void nbc_put_cb (fifo_buffer_t *fifo,
if ((buf->type & BUF_MAJOR_MASK) != BUF_CONTROL_BASE) {
if (this->enabled) {
-
+
nbc_compute_fifo_length(this, fifo, buf, FIFO_PUT);
if (this->buffering) {
@@ -307,8 +307,8 @@ static void nbc_put_cb (fifo_buffer_t *fifo,
xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG, "\nnet_buf_ctrl: nbc_put_cb: stops buffering\n");
nbc_set_speed_normal(this);
-
- this->high_water_mark += this->high_water_mark / 2;
+
+ this->high_water_mark += this->high_water_mark / 2;
} else {
/* compute the buffering progress
@@ -435,7 +435,7 @@ static void nbc_get_cb (fifo_buffer_t *fifo,
if (this->enabled) {
nbc_compute_fifo_length(this, fifo, buf, FIFO_GET);
-
+
if (!this->buffering) {
/* start buffering if one fifo is empty
*/
@@ -450,7 +450,7 @@ static void nbc_get_cb (fifo_buffer_t *fifo,
this->progress = 0;
report_progress (this->stream, 0);
- xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"\nnet_buf_ctrl: nbc_get_cb: starts buffering, vid: %d, aud: %d\n",
this->video_fifo_fill, this->audio_fifo_fill);
nbc_set_speed_pause(this);
@@ -491,7 +491,7 @@ static void nbc_get_cb (fifo_buffer_t *fifo,
}
nbc_t *nbc_init (xine_stream_t *stream) {
-
+
nbc_t *this = calloc(1, sizeof (nbc_t));
fifo_buffer_t *video_fifo = stream->video_fifo;
fifo_buffer_t *audio_fifo = stream->audio_fifo;
@@ -504,7 +504,7 @@ nbc_t *nbc_init (xine_stream_t *stream) {
this->stream = stream;
this->video_fifo = video_fifo;
this->audio_fifo = audio_fifo;
-
+
/* when the FIFO sizes are increased compared to the default configuration,
* apply a factor to the high water mark */
entry = stream->xine->config->lookup_entry(stream->xine->config, "engine.buffers.video_num_buffers");
diff --git a/src/input/net_buf_ctrl.h b/src/input/net_buf_ctrl.h
index e71cbedde..0e5ff3f70 100644
--- a/src/input/net_buf_ctrl.h
+++ b/src/input/net_buf_ctrl.h
@@ -1,18 +1,18 @@
/*
* Copyright (C) 2000-2003 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
diff --git a/src/input/pnm.c b/src/input/pnm.c
index 6e63b9f58..f44b7dcaa 100644
--- a/src/input/pnm.c
+++ b/src/input/pnm.c
@@ -17,7 +17,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
*
- * pnm protocol implementation
+ * pnm protocol implementation
* based upon code from joschka
*/
@@ -146,26 +146,26 @@ static const unsigned char pnm_header[] = {
#define PNM_CLIENT_CAPS_SIZE 126
static const unsigned char pnm_client_caps[] = {
- 0x07, 0x8a, 'p','n','r','v',
- 0, 0x90, 'p','n','r','v',
- 0, 0x64, 'd','n','e','t',
- 0, 0x46, 'p','n','r','v',
- 0, 0x32, 'd','n','e','t',
- 0, 0x2b, 'p','n','r','v',
- 0, 0x28, 'd','n','e','t',
- 0, 0x24, 'p','n','r','v',
- 0, 0x19, 'd','n','e','t',
- 0, 0x18, 'p','n','r','v',
- 0, 0x14, 's','i','p','r',
- 0, 0x14, 'd','n','e','t',
- 0, 0x24, '2','8','_','8',
- 0, 0x12, 'p','n','r','v',
- 0, 0x0f, 'd','n','e','t',
- 0, 0x0a, 's','i','p','r',
- 0, 0x0a, 'd','n','e','t',
- 0, 0x08, 's','i','p','r',
- 0, 0x06, 's','i','p','r',
- 0, 0x12, 'l','p','c','J',
+ 0x07, 0x8a, 'p','n','r','v',
+ 0, 0x90, 'p','n','r','v',
+ 0, 0x64, 'd','n','e','t',
+ 0, 0x46, 'p','n','r','v',
+ 0, 0x32, 'd','n','e','t',
+ 0, 0x2b, 'p','n','r','v',
+ 0, 0x28, 'd','n','e','t',
+ 0, 0x24, 'p','n','r','v',
+ 0, 0x19, 'd','n','e','t',
+ 0, 0x18, 'p','n','r','v',
+ 0, 0x14, 's','i','p','r',
+ 0, 0x14, 'd','n','e','t',
+ 0, 0x24, '2','8','_','8',
+ 0, 0x12, 'p','n','r','v',
+ 0, 0x0f, 'd','n','e','t',
+ 0, 0x0a, 's','i','p','r',
+ 0, 0x0a, 'd','n','e','t',
+ 0, 0x08, 's','i','p','r',
+ 0, 0x06, 's','i','p','r',
+ 0, 0x12, 'l','p','c','J',
0, 0x07, '0','5','_','6' };
static const uint32_t pnm_default_bandwidth=10485800;
@@ -181,7 +181,7 @@ static const unsigned char pnm_twentyfour[]={
static const int after_chunks_length=6;
static const unsigned char after_chunks[]={
0x00, 0x00, /* mark */
-
+
0x50, 0x84, /* seems to be fixated */
0x1f, 0x3a /* varies on each request (checksum ?)*/
};
@@ -203,7 +203,7 @@ static const unsigned char after_chunks[]={
* if we have an PNA_TAG, we need a different parsing; see below.
*/
-static unsigned int pnm_get_chunk(pnm_t *p,
+static unsigned int pnm_get_chunk(pnm_t *p,
unsigned int max,
unsigned int *chunk_type,
char *data, int *need_response) {
@@ -214,7 +214,7 @@ static unsigned int pnm_get_chunk(pnm_t *p,
if( max < PREAMBLE_SIZE )
return -1;
-
+
/* get first PREAMBLE_SIZE bytes and ignore checksum */
_x_io_tcp_read (p->stream, p->s, data, CHECKSUM_SIZE);
if (data[0] == 0x72)
@@ -223,7 +223,7 @@ static unsigned int pnm_get_chunk(pnm_t *p,
_x_io_tcp_read (p->stream, p->s, data+CHECKSUM_SIZE, PREAMBLE_SIZE-CHECKSUM_SIZE);
max -= PREAMBLE_SIZE;
-
+
*chunk_type = be2me_32(*((uint32_t *)data));
chunk_size = be2me_32(*((uint32_t *)(data+4)));
@@ -239,10 +239,10 @@ static unsigned int pnm_get_chunk(pnm_t *p,
while(1) {
/* The pna chunk is devided into subchunks.
- * expecting following chunk format (in big endian):
- * 0x4f
- * uint8_t chunk_size
- * uint8_t data[chunk_size]
+ * expecting following chunk format (in big endian):
+ * 0x4f
+ * uint8_t chunk_size
+ * uint8_t data[chunk_size]
*
* if first byte is 'X', we got a message from server
* if first byte is 'F', we got an error
@@ -252,7 +252,7 @@ static unsigned int pnm_get_chunk(pnm_t *p,
return -1;
_x_io_tcp_read (p->stream, p->s, ptr, 2);
max -= 2;
-
+
if (*ptr == 'X') /* checking for server message */
{
xprintf(p->stream->xine, XINE_VERBOSITY_DEBUG, "input_pnm: got a message from server:\n");
@@ -275,7 +275,7 @@ static unsigned int pnm_get_chunk(pnm_t *p,
xprintf(p->stream->xine, XINE_VERBOSITY_DEBUG, "%s\n", ptr+3);
return -1;
}
-
+
if (*ptr == 'F') /* checking for server error */
{
/* some error codes after 'F' were ignored */
@@ -321,7 +321,7 @@ static unsigned int pnm_get_chunk(pnm_t *p,
break;
default:
*chunk_type = 0;
- chunk_size = PREAMBLE_SIZE;
+ chunk_size = PREAMBLE_SIZE;
break;
}
@@ -336,7 +336,7 @@ static unsigned int pnm_get_chunk(pnm_t *p,
* uint8_t data[length]
*/
-static int pnm_write_chunk(uint16_t chunk_id, uint16_t length,
+static int pnm_write_chunk(uint16_t chunk_id, uint16_t length,
const char *chunk, char *data) {
uint16_t be_id, be_len;
@@ -347,7 +347,7 @@ static int pnm_write_chunk(uint16_t chunk_id, uint16_t length,
memcpy(data , &be_id , 2);
memcpy(data+2, &be_len, 2);
memcpy(data+4, chunk , length);
-
+
return length+4;
}
@@ -385,7 +385,7 @@ static void pnm_send_request(pnm_t *p, uint32_t bandwidth) {
pnm_guid,&p->buffer[c]);
c+=pnm_write_chunk(PNA_TWENTYFOUR,PNM_TWENTYFOUR_SIZE,
(char*)pnm_twentyfour,&p->buffer[c]);
-
+
/* data after chunks */
memcpy(&p->buffer[c],after_chunks,after_chunks_length);
c+=after_chunks_length;
@@ -408,7 +408,7 @@ static void pnm_send_request(pnm_t *p, uint32_t bandwidth) {
/* some trailing bytes */
p->buffer[c]='y';
p->buffer[c+1]='B';
-
+
_x_io_tcp_write(p->stream,p->s,p->buffer,c+2);
}
@@ -478,7 +478,7 @@ static int pnm_get_headers(pnm_t *p, int *need_response) {
xprintf(p->stream->xine, XINE_VERBOSITY_DEBUG, "input_pnm: error while parsing headers.\n");
return 0;
}
-
+
/* set data offset */
{
uint32_t be_size;
@@ -486,7 +486,7 @@ static int pnm_get_headers(pnm_t *p, int *need_response) {
be_size = be2me_32(size-1);
memcpy(prop_hdr+42, &be_size, 4);
}
-
+
/* read challenge */
memcpy (p->buffer, ptr, PREAMBLE_SIZE);
_x_io_tcp_read (p->stream, p->s, &p->buffer[PREAMBLE_SIZE], 64);
@@ -494,18 +494,18 @@ static int pnm_get_headers(pnm_t *p, int *need_response) {
/* now write a data header */
memcpy(ptr, pnm_data_header, PNM_DATA_HEADER_SIZE);
size+=PNM_DATA_HEADER_SIZE;
-/*
+/*
h=rmff_scan_header(p->header);
rmff_fix_header(h);
p->header_len=rmff_get_header_size(h);
rmff_dump_header(h, p->header, HEADER_SIZE);
*/
p->header_len=size;
-
+
return 1;
}
-/*
+/*
* determine correct stream number by looking at indices
* FIXME: this doesn't work with all streams! There must be
* another way to determine correct stream numbers!
@@ -571,7 +571,7 @@ static int pnm_calc_stream(pnm_t *p) {
return 0;
break;
}
- xprintf(p->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(p->stream->xine, XINE_VERBOSITY_DEBUG,
"input_pnm: wow, something very nasty happened in pnm_calc_stream\n");
return 2;
}
@@ -588,7 +588,7 @@ static int pnm_get_stream_chunk(pnm_t *p) {
/* send a keepalive */
/* realplayer seems to do that every 43th package */
- if ((p->packet%43) == 42)
+ if ((p->packet%43) == 42)
{
_x_io_tcp_write(p->stream,p->s,&keepalive,1);
}
@@ -598,10 +598,10 @@ static int pnm_get_stream_chunk(pnm_t *p) {
* <i1> is a 16 bit index (big endian)
* <i2> is a 8 bit index which counts from 0x10 to somewhere
*/
-
+
n = _x_io_tcp_read (p->stream, p->s, p->buffer, 8);
if (n<8) return 0;
-
+
/* skip 8 bytes if 0x62 is read */
if (p->buffer[0] == 0x62)
{
@@ -609,7 +609,7 @@ static int pnm_get_stream_chunk(pnm_t *p) {
if (n<8) return 0;
lprintf("had to seek 8 bytes on 0x62\n");
}
-
+
/* a server message */
if (p->buffer[0] == 'X')
{
@@ -617,7 +617,7 @@ static int pnm_get_stream_chunk(pnm_t *p) {
_x_io_tcp_read (p->stream, p->s, &p->buffer[8], size-5);
p->buffer[size+3]=0;
- xprintf(p->stream->xine, XINE_VERBOSITY_LOG,
+ xprintf(p->stream->xine, XINE_VERBOSITY_LOG,
_("input_pnm: got message from server while reading stream:\n%s\n"), &p->buffer[3]);
return 0;
}
@@ -657,14 +657,14 @@ static int pnm_get_stream_chunk(pnm_t *p) {
fof2=be2me_16(*(uint16_t*)(&p->buffer[3]));
if (fof1 != fof2)
{
- xprintf(p->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(p->stream->xine, XINE_VERBOSITY_DEBUG,
"input_pnm: frame offsets are different: 0x%04x 0x%04x\n", fof1, fof2);
return 0;
}
/* get first index */
p->seq_current[0]=be2me_16(*(uint16_t*)(&p->buffer[5]));
-
+
/* now read the rest of stream chunk */
n = _x_io_tcp_read (p->stream, p->s, (char*)&p->recv[5], fof1-5);
if (n<(fof1-5)) return 0;
@@ -674,15 +674,15 @@ static int pnm_get_stream_chunk(pnm_t *p) {
/* get timestamp */
p->ts_current=be2me_32(*(uint32_t*)(&p->recv[6]));
-
+
/* get stream number */
stream=pnm_calc_stream(p);
/* saving timestamp */
p->ts_last[stream]=p->ts_current;
-
+
/* constructing a data packet header */
-
+
p->recv[0]=0; /* object version */
p->recv[1]=0;
@@ -693,7 +693,7 @@ static int pnm_get_stream_chunk(pnm_t *p) {
p->recv[4]=0; /* stream number */
p->recv[5]=stream;
-
+
p->recv[10]=p->recv[10] & 0xfe; /* streambox seems to do that... */
p->packet++;
@@ -704,19 +704,19 @@ static int pnm_get_stream_chunk(pnm_t *p) {
}
pnm_t *pnm_connect(xine_stream_t *stream, const char *mrl) {
-
+
char *mrl_ptr=strdup(mrl);
char *slash, *colon;
size_t pathbegin, hostend;
pnm_t *p;
int fd;
int need_response=0;
-
+
if (strncmp(mrl,"pnm://",6))
{
return NULL;
}
-
+
mrl_ptr+=6;
p = calloc(1, sizeof(pnm_t));
@@ -729,7 +729,7 @@ pnm_t *pnm_connect(xine_stream_t *stream, const char *mrl) {
colon=strchr(mrl_ptr,':');
if(!slash) slash=mrl_ptr+strlen(mrl_ptr)+1;
- if(!colon) colon=slash;
+ if(!colon) colon=slash;
if(colon > slash) colon=slash;
pathbegin=slash-mrl_ptr;
@@ -747,7 +747,7 @@ pnm_t *pnm_connect(xine_stream_t *stream, const char *mrl) {
free(mrl_ptr-6);
lprintf("got mrl: %s %i %s\n",p->host,p->port,p->path);
-
+
fd = _x_io_tcp_connect (stream, p->host, p->port);
if (fd == -1) {
@@ -773,7 +773,7 @@ pnm_t *pnm_connect(xine_stream_t *stream, const char *mrl) {
pnm_send_response(p, pnm_response);
p->ts_last[0]=0;
p->ts_last[1]=0;
-
+
/* copy header to recv */
memcpy(p->recv, p->header, p->header_len);
@@ -784,15 +784,15 @@ pnm_t *pnm_connect(xine_stream_t *stream, const char *mrl) {
}
int pnm_read (pnm_t *this, char *data, int len) {
-
+
int to_copy=len;
char *dest=data;
char *source=(char*)(this->recv + this->recv_read);
int fill=this->recv_size - this->recv_read;
-
+
if (len < 0) return 0;
while (to_copy > fill) {
-
+
memcpy(dest, source, fill);
to_copy -= fill;
dest += fill;
diff --git a/src/input/pnm.h b/src/input/pnm.h
index bf3514bae..cf547f505 100644
--- a/src/input/pnm.h
+++ b/src/input/pnm.h
@@ -19,7 +19,7 @@
*
* pnm util functions header by joschka
*/
-
+
#ifndef HAVE_PNM_H
#define HAVE_PNM_H
diff --git a/src/input/vcd/vcdio.c b/src/input/vcd/vcdio.c
index b3194e281..993a9f9ff 100644
--- a/src/input/vcd/vcdio.c
+++ b/src/input/vcd/vcdio.c
@@ -1,22 +1,22 @@
/*
$Id: vcdio.c,v 1.9 2007/03/23 21:47:31 dsalt Exp $
-
+
Copyright (C) 2002, 2003, 2004, 2005 Rocky Bernstein <rocky@panix.com>
-
+
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
-
+
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
-
+
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
-
+
*/
#ifdef HAVE_CONFIG_H
@@ -63,30 +63,30 @@
#define FREE_AND_NULL(ptr) if (NULL != ptr) free(ptr); ptr = NULL;
-/*! Closes VCD device specified via "this", and also wipes memory of it
+/*! Closes VCD device specified via "this", and also wipes memory of it
from it inside "this". */
int
-vcdio_close(vcdplayer_t *p_vcdplayer)
+vcdio_close(vcdplayer_t *p_vcdplayer)
{
p_vcdplayer->b_opened = false;
FREE_AND_NULL(p_vcdplayer->psz_source);
FREE_AND_NULL(p_vcdplayer->track);
FREE_AND_NULL(p_vcdplayer->segment);
- FREE_AND_NULL(p_vcdplayer->entry);
-
+ FREE_AND_NULL(p_vcdplayer->entry);
+
return vcdinfo_close(p_vcdplayer->vcd);
}
/*! Opens VCD device and initializes things.
- - do nothing if the device had already been open and is the same device.
+ - do nothing if the device had already been open and is the same device.
- if the device had been open and is a different, close it before trying
- to open new device.
+ to open new device.
*/
bool
-vcdio_open(vcdplayer_t *p_vcdplayer, char *intended_vcd_device)
+vcdio_open(vcdplayer_t *p_vcdplayer, char *intended_vcd_device)
{
vcdinfo_obj_t *p_vcdinfo = p_vcdplayer->vcd;
unsigned int i;
@@ -137,60 +137,60 @@ vcdio_open(vcdplayer_t *p_vcdplayer, char *intended_vcd_device)
}
}
- /*
- Save summary info on tracks, segments and entries...
+ /*
+ Save summary info on tracks, segments and entries...
*/
if ( 0 < (p_vcdplayer->i_tracks = vcdinfo_get_num_tracks(p_vcdinfo)) ) {
- p_vcdplayer->track = (vcdplayer_play_item_info_t *)
+ p_vcdplayer->track = (vcdplayer_play_item_info_t *)
calloc(p_vcdplayer->i_tracks, sizeof(vcdplayer_play_item_info_t));
-
- for (i=0; i<p_vcdplayer->i_tracks; i++) {
+
+ for (i=0; i<p_vcdplayer->i_tracks; i++) {
track_t i_track=i+1;
- p_vcdplayer->track[i].size
+ p_vcdplayer->track[i].size
= vcdinfo_get_track_sect_count(p_vcdinfo, i_track);
- p_vcdplayer->track[i].start_LSN
+ p_vcdplayer->track[i].start_LSN
= vcdinfo_get_track_lsn(p_vcdinfo, i_track);
}
- } else
+ } else
p_vcdplayer->track = NULL;
-
+
if ( 0 < (p_vcdplayer->i_entries = vcdinfo_get_num_entries(p_vcdinfo)) ) {
- p_vcdplayer->entry = (vcdplayer_play_item_info_t *)
+ p_vcdplayer->entry = (vcdplayer_play_item_info_t *)
calloc(p_vcdplayer->i_entries, sizeof(vcdplayer_play_item_info_t));
- for (i=0; i<p_vcdplayer->i_entries; i++) {
+ for (i=0; i<p_vcdplayer->i_entries; i++) {
p_vcdplayer->entry[i].size
= vcdinfo_get_entry_sect_count(p_vcdinfo, i);
- p_vcdplayer->entry[i].start_LSN
+ p_vcdplayer->entry[i].start_LSN
= vcdinfo_get_entry_lsn(p_vcdinfo, i);
}
- } else
+ } else
p_vcdplayer->entry = NULL;
-
+
if ( 0 < (p_vcdplayer->i_segments = vcdinfo_get_num_segments(p_vcdinfo)) ) {
- p_vcdplayer->segment = (vcdplayer_play_item_info_t *)
+ p_vcdplayer->segment = (vcdplayer_play_item_info_t *)
calloc(p_vcdplayer->i_segments, sizeof(vcdplayer_play_item_info_t));
-
- for (i=0; i<p_vcdplayer->i_segments; i++) {
- p_vcdplayer->segment[i].size
+
+ for (i=0; i<p_vcdplayer->i_segments; i++) {
+ p_vcdplayer->segment[i].size
= vcdinfo_get_seg_sector_count(p_vcdinfo, i);
- p_vcdplayer->segment[i].start_LSN
+ p_vcdplayer->segment[i].start_LSN
= vcdinfo_get_seg_lsn(p_vcdinfo, i);
}
- } else
+ } else
p_vcdplayer->segment = NULL;
-
+
return true;
}
/*!
- seek position, return new position
+ seek position, return new position
if seeking failed, -1 is returned
*/
-off_t
-vcdio_seek (vcdplayer_t *p_vcdplayer, off_t offset, int origin)
+off_t
+vcdio_seek (vcdplayer_t *p_vcdplayer, off_t offset, int origin)
{
switch (origin) {
@@ -198,54 +198,54 @@ vcdio_seek (vcdplayer_t *p_vcdplayer, off_t offset, int origin)
{
lsn_t old_lsn = p_vcdplayer->i_lsn;
p_vcdplayer->i_lsn = p_vcdplayer->origin_lsn + (offset / M2F2_SECTOR_SIZE);
-
- dbg_print(INPUT_DBG_SEEK_SET, "seek_set to %ld => %u (start is %u)\n",
+
+ dbg_print(INPUT_DBG_SEEK_SET, "seek_set to %ld => %u (start is %u)\n",
(long int) offset, p_vcdplayer->i_lsn, p_vcdplayer->origin_lsn);
/* Seek was successful. Invalidate entry location by setting
- entry number back to 1. Over time it will adjust upward
+ entry number back to 1. Over time it will adjust upward
to the correct value. */
- if ( !vcdplayer_pbc_is_on(p_vcdplayer)
- && p_vcdplayer->play_item.type != VCDINFO_ITEM_TYPE_TRACK
+ if ( !vcdplayer_pbc_is_on(p_vcdplayer)
+ && p_vcdplayer->play_item.type != VCDINFO_ITEM_TYPE_TRACK
&& p_vcdplayer->i_lsn < old_lsn) {
dbg_print(INPUT_DBG_SEEK_SET, "seek_set entry backwards\n");
p_vcdplayer->next_entry = 1;
}
break;
}
-
- case SEEK_CUR:
+
+ case SEEK_CUR:
{
off_t diff;
if (offset) {
LOG_ERR(p_vcdplayer, "%s: %d\n",
- _("SEEK_CUR not implemented for non-zero offset"),
+ _("SEEK_CUR not implemented for non-zero offset"),
(int) offset);
return (off_t) -1;
}
-
+
if (p_vcdplayer->slider_length == VCDPLAYER_SLIDER_LENGTH_TRACK) {
diff = p_vcdplayer->i_lsn - p_vcdplayer->track_lsn;
- dbg_print(INPUT_DBG_SEEK_CUR,
- "current pos: %u, track diff %ld\n",
+ dbg_print(INPUT_DBG_SEEK_CUR,
+ "current pos: %u, track diff %ld\n",
p_vcdplayer->i_lsn, (long int) diff);
} else {
diff = p_vcdplayer->i_lsn - p_vcdplayer->origin_lsn;
- dbg_print(INPUT_DBG_SEEK_CUR,
- "current pos: %u, entry diff %ld\n",
+ dbg_print(INPUT_DBG_SEEK_CUR,
+ "current pos: %u, entry diff %ld\n",
p_vcdplayer->i_lsn, (long int) diff);
}
-
+
if (diff < 0) {
dbg_print(INPUT_DBG_SEEK_CUR, "Error: diff < 0\n");
return (off_t) 0;
} else {
return (off_t)diff * M2F2_SECTOR_SIZE;
}
-
+
break;
}
-
+
case SEEK_END:
LOG_ERR(p_vcdplayer, "%s\n", _("SEEK_END not implemented yet."));
return (off_t) -1;
@@ -258,7 +258,7 @@ vcdio_seek (vcdplayer_t *p_vcdplayer, off_t offset, int origin)
return offset ; /* FIXME */
}
-/*
+/*
* Local variables:
* c-file-style: "gnu"
* tab-width: 8
diff --git a/src/input/vcd/vcdio.h b/src/input/vcd/vcdio.h
index 145bb4d7f..854ba5333 100644
--- a/src/input/vcd/vcdio.h
+++ b/src/input/vcd/vcdio.h
@@ -1,22 +1,22 @@
-/*
+/*
$Id: vcdio.h,v 1.3 2005/01/08 15:12:42 rockyb Exp $
Copyright (C) 2002, 2004, 2005 Rocky Bernstein <rocky@panix.com>
-
+
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
-
+
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
-
+
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
-
+
*/
#ifndef _VCDIO_H_
@@ -27,37 +27,37 @@
read nlen bytes, return number of bytes read.
*/
-off_t
+off_t
vcdio_read (vcdplayer_t *p_vcdplayer, char *psz_buf, const off_t nlen);
/*! Opens VCD device and initializes things.
- - do nothing if the device had already been open and is the same device.
+ - do nothing if the device had already been open and is the same device.
- if the device had been open and is a different, close it before trying
- to open new device.
+ to open new device.
*/
bool
vcdio_open(vcdplayer_t *p_vcdplayer, char *psz_device);
-/*! Closes VCD device specified via "this", and also wipes memory of it
+/*! Closes VCD device specified via "this", and also wipes memory of it
from it inside "this". */
/* FIXME Move player stuff to player. */
-int
+int
vcdio_close(vcdplayer_t *p_vcdplayer);
/*!
From xine plugin spec:
- seek position, return new position
+ seek position, return new position
if seeking failed, -1 is returned
*/
-off_t
+off_t
vcdio_seek (vcdplayer_t *p_vcdplayer, off_t offset, int origin);
#endif /* _VCDIO_H_ */
-/*
+/*
* Local variables:
* c-file-style: "gnu"
* tab-width: 8
diff --git a/src/input/vcd/vcdplayer.c b/src/input/vcd/vcdplayer.c
index 7f9189cba..5e36e125e 100644
--- a/src/input/vcd/vcdplayer.c
+++ b/src/input/vcd/vcdplayer.c
@@ -1,22 +1,22 @@
-/*
+/*
$Id: vcdplayer.c,v 1.20 2007/02/21 23:17:14 dgp85 Exp $
-
+
Copyright (C) 2002, 2003, 2004, 2005 Rocky Bernstein <rocky@panix.com>
-
+
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
-
+
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
-
+
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
-
+
*/
#ifdef HAVE_CONFIG_H
@@ -64,15 +64,15 @@ static void _vcdplayer_set_origin(vcdplayer_t *p_vcdplayer);
Return true if playback control (PBC) is on
*/
bool
-vcdplayer_pbc_is_on(const vcdplayer_t *p_vcdplayer)
+vcdplayer_pbc_is_on(const vcdplayer_t *p_vcdplayer)
{
- return VCDINFO_INVALID_ENTRY != p_vcdplayer->i_lid;
+ return VCDINFO_INVALID_ENTRY != p_vcdplayer->i_lid;
}
/* Given an itemid, return the size for the object (via information
previously stored when opening the vcd). */
static size_t
-_vcdplayer_get_item_size(vcdplayer_t *p_vcdplayer, vcdinfo_itemid_t itemid)
+_vcdplayer_get_item_size(vcdplayer_t *p_vcdplayer, vcdinfo_itemid_t itemid)
{
switch (itemid.type) {
case VCDINFO_ITEM_TYPE_ENTRY:
@@ -125,17 +125,17 @@ _vcdplayer_get_item_size(vcdplayer_t *p_vcdplayer, vcdinfo_itemid_t itemid)
/*!
Take a format string and expand escape sequences, that is sequences that
- begin with %, with information from the current VCD.
+ begin with %, with information from the current VCD.
The expanded string is returned. Here is a list of escape sequences:
- %A : The album information
+ %A : The album information
%C : The VCD volume count - the number of CD's in the collection.
- %c : The VCD volume num - the number of the CD in the collection.
+ %c : The VCD volume num - the number of the CD in the collection.
%F : The VCD Format, e.g. VCD 1.0, VCD 1.1, VCD 2.0, or SVCD
%I : The current entry/segment/playback type, e.g. ENTRY, TRACK, SEGMENT...
%L : The playlist ID prefixed with " LID" if it exists
%N : The current number of the above - a decimal number
- %P : The publisher ID
+ %P : The publisher ID
%p : The preparer ID
%S : If we are in a segment (menu), the kind of segment
%T : The track number
@@ -174,7 +174,7 @@ vcdplayer_format_str(vcdplayer_t *p_vcdplayer, const char format_str[])
saw_control_prefix = !saw_control_prefix;
break;
case 'A':
- add_format_str_info(vcdinfo_strip_trail(vcdinfo_get_album_id(p_vcdinfo),
+ add_format_str_info(vcdinfo_strip_trail(vcdinfo_get_album_id(p_vcdinfo),
MAX_ALBUM_LEN));
break;
@@ -197,19 +197,19 @@ vcdplayer_format_str(vcdplayer_t *p_vcdplayer, const char format_str[])
strncat(tp, "Track", TEMP_STR_LEN-(tp-temp_str));
tp += strlen("Track");
break;
- case VCDINFO_ITEM_TYPE_ENTRY:
+ case VCDINFO_ITEM_TYPE_ENTRY:
strncat(tp, "Entry", TEMP_STR_LEN-(tp-temp_str));
tp += strlen("Entry");
break;
- case VCDINFO_ITEM_TYPE_SEGMENT:
+ case VCDINFO_ITEM_TYPE_SEGMENT:
strncat(tp, "Segment", TEMP_STR_LEN-(tp-temp_str));
tp += strlen("Segment");
break;
- case VCDINFO_ITEM_TYPE_LID:
+ case VCDINFO_ITEM_TYPE_LID:
strncat(tp, "List ID", TEMP_STR_LEN-(tp-temp_str));
tp += strlen("List ID");
break;
- case VCDINFO_ITEM_TYPE_SPAREID2:
+ case VCDINFO_ITEM_TYPE_SPAREID2:
strncat(tp, "Navigation", TEMP_STR_LEN-(tp-temp_str));
tp += strlen("Navigation");
break;
@@ -247,7 +247,7 @@ vcdplayer_format_str(vcdplayer_t *p_vcdplayer, const char format_str[])
if ( VCDINFO_ITEM_TYPE_SEGMENT==p_vcdplayer->play_item.type ) {
char seg_type_str[30];
- snprintf(seg_type_str, sizeof(seg_type_str), " %s",
+ snprintf(seg_type_str, sizeof(seg_type_str), " %s",
vcdinfo_video_type2str(p_vcdinfo, p_vcdplayer->play_item.num));
strncat(tp, seg_type_str, TEMP_STR_LEN-(tp-temp_str));
tp += strlen(seg_type_str);
@@ -268,7 +268,7 @@ vcdplayer_format_str(vcdplayer_t *p_vcdplayer, const char format_str[])
break;
default:
- *tp++ = '%';
+ *tp++ = '%';
*tp++ = format_str[i];
saw_control_prefix = false;
}
@@ -277,7 +277,7 @@ vcdplayer_format_str(vcdplayer_t *p_vcdplayer, const char format_str[])
}
static void
-_vcdplayer_update_entry(vcdinfo_obj_t *p_vcdinfo, uint16_t ofs,
+_vcdplayer_update_entry(vcdinfo_obj_t *p_vcdinfo, uint16_t ofs,
uint16_t *entry, const char *label)
{
if ( ofs == VCDINFO_INVALID_OFFSET ) {
@@ -293,8 +293,8 @@ _vcdplayer_update_entry(vcdinfo_obj_t *p_vcdinfo, uint16_t ofs,
}
/*!
- Update next/prev/return/default navigation buttons
- (via p_vcdplayer->i_lid). Update size of play-item
+ Update next/prev/return/default navigation buttons
+ (via p_vcdplayer->i_lid). Update size of play-item
(via p_vcdplayer->play_item).
*/
void
@@ -307,51 +307,51 @@ vcdplayer_update_nav(vcdplayer_t *p_vcdplayer)
int max_entry = 0;
if (vcdplayer_pbc_is_on(p_vcdplayer)) {
-
+
vcdinfo_lid_get_pxd(p_vcdinfo, &(p_vcdplayer->pxd), p_vcdplayer->i_lid);
-
+
switch (p_vcdplayer->pxd.descriptor_type) {
case PSD_TYPE_SELECTION_LIST:
case PSD_TYPE_EXT_SELECTION_LIST:
if (p_vcdplayer->pxd.psd == NULL) return;
- _vcdplayer_update_entry(p_vcdinfo,
+ _vcdplayer_update_entry(p_vcdinfo,
vcdinf_psd_get_prev_offset(p_vcdplayer->pxd.psd),
&(p_vcdplayer->prev_entry), "prev");
-
- _vcdplayer_update_entry(p_vcdinfo,
+
+ _vcdplayer_update_entry(p_vcdinfo,
vcdinf_psd_get_next_offset(p_vcdplayer->pxd.psd),
&(p_vcdplayer->next_entry), "next");
-
- _vcdplayer_update_entry(p_vcdinfo,
+
+ _vcdplayer_update_entry(p_vcdinfo,
vcdinf_psd_get_return_offset(p_vcdplayer->pxd.psd),
&(p_vcdplayer->return_entry), "return");
- _vcdplayer_update_entry(p_vcdinfo,
- vcdinfo_get_default_offset(p_vcdinfo,
+ _vcdplayer_update_entry(p_vcdinfo,
+ vcdinfo_get_default_offset(p_vcdinfo,
p_vcdplayer->i_lid),
&(p_vcdplayer->default_entry), "default");
break;
case PSD_TYPE_PLAY_LIST:
if (p_vcdplayer->pxd.pld == NULL) return;
- _vcdplayer_update_entry(p_vcdinfo,
+ _vcdplayer_update_entry(p_vcdinfo,
vcdinf_pld_get_prev_offset(p_vcdplayer->pxd.pld),
&(p_vcdplayer->prev_entry), "prev");
-
- _vcdplayer_update_entry(p_vcdinfo,
+
+ _vcdplayer_update_entry(p_vcdinfo,
vcdinf_pld_get_next_offset(p_vcdplayer->pxd.pld),
&(p_vcdplayer->next_entry), "next");
-
- _vcdplayer_update_entry(p_vcdinfo,
+
+ _vcdplayer_update_entry(p_vcdinfo,
vcdinf_pld_get_return_offset(p_vcdplayer->pxd.pld),
&(p_vcdplayer->return_entry), "return");
p_vcdplayer->default_entry = VCDINFO_INVALID_ENTRY;
break;
case PSD_TYPE_END_LIST:
- p_vcdplayer->origin_lsn = p_vcdplayer->i_lsn = p_vcdplayer->end_lsn
+ p_vcdplayer->origin_lsn = p_vcdplayer->i_lsn = p_vcdplayer->end_lsn
= VCDINFO_NULL_LSN;
/* Fall through */
case PSD_TYPE_COMMAND_LIST:
- p_vcdplayer->next_entry = p_vcdplayer->prev_entry
+ p_vcdplayer->next_entry = p_vcdplayer->prev_entry
= p_vcdplayer->return_entry = VCDINFO_INVALID_ENTRY;
p_vcdplayer->default_entry = VCDINFO_INVALID_ENTRY;
break;
@@ -363,53 +363,53 @@ vcdplayer_update_nav(vcdplayer_t *p_vcdplayer)
}
/* PBC is not on. Set up for simplified next, prev, and return. */
-
+
switch (p_vcdplayer->play_item.type) {
- case VCDINFO_ITEM_TYPE_ENTRY:
- case VCDINFO_ITEM_TYPE_SEGMENT:
- case VCDINFO_ITEM_TYPE_TRACK:
+ case VCDINFO_ITEM_TYPE_ENTRY:
+ case VCDINFO_ITEM_TYPE_SEGMENT:
+ case VCDINFO_ITEM_TYPE_TRACK:
switch (p_vcdplayer->play_item.type) {
- case VCDINFO_ITEM_TYPE_ENTRY:
+ case VCDINFO_ITEM_TYPE_ENTRY:
max_entry = p_vcdplayer->i_entries;
min_entry = 0; /* Can remove when Entries start at 1. */
p_vcdplayer->i_track = vcdinfo_get_track(p_vcdinfo, play_item);
- p_vcdplayer->track_lsn = vcdinfo_get_track_lsn(p_vcdinfo,
+ p_vcdplayer->track_lsn = vcdinfo_get_track_lsn(p_vcdinfo,
p_vcdplayer->i_track);
break;
- case VCDINFO_ITEM_TYPE_SEGMENT:
+ case VCDINFO_ITEM_TYPE_SEGMENT:
max_entry = p_vcdplayer->i_segments;
p_vcdplayer->i_track = VCDINFO_INVALID_TRACK;
-
+
break;
- case VCDINFO_ITEM_TYPE_TRACK:
+ case VCDINFO_ITEM_TYPE_TRACK:
max_entry = p_vcdplayer->i_tracks;
p_vcdplayer->i_track = p_vcdplayer->play_item.num;
- p_vcdplayer->track_lsn = vcdinfo_get_track_lsn(p_vcdinfo,
+ p_vcdplayer->track_lsn = vcdinfo_get_track_lsn(p_vcdinfo,
p_vcdplayer->i_track);
break;
default: ; /* Handle exceptional cases below */
}
-
+
_vcdplayer_set_origin(p_vcdplayer);
/* Set next, prev, return and default to simple and hopefully
useful values.
*/
- if (play_item+1 >= max_entry)
+ if (play_item+1 >= max_entry)
p_vcdplayer->next_entry = VCDINFO_INVALID_ENTRY;
- else
+ else
p_vcdplayer->next_entry = play_item+1;
-
- if (play_item-1 >= min_entry)
+
+ if (play_item-1 >= min_entry)
p_vcdplayer->prev_entry = play_item-1;
- else
+ else
p_vcdplayer->prev_entry = VCDINFO_INVALID_ENTRY;
-
+
p_vcdplayer->default_entry = play_item;
p_vcdplayer->return_entry = min_entry;
break;
- case VCDINFO_ITEM_TYPE_LID:
+ case VCDINFO_ITEM_TYPE_LID:
{
/* Should have handled above. */
break;
@@ -423,9 +423,9 @@ vcdplayer_update_nav(vcdplayer_t *p_vcdplayer)
Set reading to play an entire track.
*/
static void
-_vcdplayer_set_track(vcdplayer_t *p_vcdplayer, unsigned int i_track)
+_vcdplayer_set_track(vcdplayer_t *p_vcdplayer, unsigned int i_track)
{
- if (i_track < 1 || i_track > p_vcdplayer->i_tracks)
+ if (i_track < 1 || i_track > p_vcdplayer->i_tracks)
return;
else {
vcdinfo_obj_t *p_vcdinfo = p_vcdplayer->vcd;
@@ -449,7 +449,7 @@ _vcdplayer_set_track(vcdplayer_t *p_vcdplayer, unsigned int i_track)
Set reading to play an entry
*/
static void
-_vcdplayer_set_entry(vcdplayer_t *p_vcdplayer, unsigned int num)
+_vcdplayer_set_entry(vcdplayer_t *p_vcdplayer, unsigned int num)
{
vcdinfo_obj_t *p_vcdinfo = p_vcdplayer->vcd;
const unsigned int i_entries = vcdinfo_get_num_entries(p_vcdinfo);
@@ -466,14 +466,14 @@ _vcdplayer_set_entry(vcdplayer_t *p_vcdplayer, unsigned int num)
p_vcdplayer->i_lsn = vcdinfo_get_entry_lsn(p_vcdinfo, num);
p_vcdplayer->play_item = itemid;
p_vcdplayer->i_track = vcdinfo_get_track(p_vcdinfo, num);
- p_vcdplayer->track_lsn = vcdinfo_get_track_lsn(p_vcdinfo,
+ p_vcdplayer->track_lsn = vcdinfo_get_track_lsn(p_vcdinfo,
p_vcdplayer->i_track);
- p_vcdplayer->track_end_lsn = p_vcdplayer->track_lsn +
+ p_vcdplayer->track_end_lsn = p_vcdplayer->track_lsn +
p_vcdplayer->track[p_vcdplayer->i_track-1].size;
_vcdplayer_set_origin(p_vcdplayer);
- dbg_print((INPUT_DBG_LSN|INPUT_DBG_PBC), "LSN: %u, track_end LSN: %u\n",
+ dbg_print((INPUT_DBG_LSN|INPUT_DBG_PBC), "LSN: %u, track_end LSN: %u\n",
p_vcdplayer->i_lsn, p_vcdplayer->track_end_lsn);
}
}
@@ -482,7 +482,7 @@ _vcdplayer_set_entry(vcdplayer_t *p_vcdplayer, unsigned int num)
Set reading to play an segment (e.g. still frame)
*/
static void
-_vcdplayer_set_segment(vcdplayer_t *p_vcdplayer, unsigned int num)
+_vcdplayer_set_segment(vcdplayer_t *p_vcdplayer, unsigned int num)
{
vcdinfo_obj_t *p_vcdinfo = p_vcdplayer->vcd;
segnum_t i_segs = vcdinfo_get_num_segments(p_vcdinfo);
@@ -497,17 +497,17 @@ _vcdplayer_set_segment(vcdplayer_t *p_vcdplayer, unsigned int num)
p_vcdplayer->i_track = 0;
if (VCDINFO_NULL_LSN==p_vcdplayer->i_lsn) {
- LOG_ERR(p_vcdplayer, "%s %d\n",
+ LOG_ERR(p_vcdplayer, "%s %d\n",
_("Error in getting current segment number"), num);
return;
}
-
+
itemid.num = num;
itemid.type = VCDINFO_ITEM_TYPE_SEGMENT;
p_vcdplayer->play_item = itemid;
_vcdplayer_set_origin(p_vcdplayer);
-
+
dbg_print(INPUT_DBG_LSN, "LSN: %u\n", p_vcdplayer->i_lsn);
}
}
@@ -519,29 +519,29 @@ vcdplayer_play_single_item(vcdplayer_t *p_vcdplayer, vcdinfo_itemid_t itemid)
{
vcdinfo_obj_t *p_vcdinfo = p_vcdplayer->vcd;
- dbg_print(INPUT_DBG_CALL, "called itemid.num: %d, itemid.type: %d\n",
+ dbg_print(INPUT_DBG_CALL, "called itemid.num: %d, itemid.type: %d\n",
itemid.num, itemid.type);
p_vcdplayer->i_still = 0;
switch (itemid.type) {
- case VCDINFO_ITEM_TYPE_SEGMENT:
+ case VCDINFO_ITEM_TYPE_SEGMENT:
{
- vcdinfo_video_segment_type_t segtype
+ vcdinfo_video_segment_type_t segtype
= vcdinfo_get_video_type(p_vcdinfo, itemid.num);
segnum_t i_segs = vcdinfo_get_num_segments(p_vcdinfo);
- dbg_print(INPUT_DBG_PBC, "%s (%d), itemid.num: %d\n",
- vcdinfo_video_type2str(p_vcdinfo, itemid.num),
+ dbg_print(INPUT_DBG_PBC, "%s (%d), itemid.num: %d\n",
+ vcdinfo_video_type2str(p_vcdinfo, itemid.num),
(int) segtype, itemid.num);
if (itemid.num >= i_segs) return;
_vcdplayer_set_segment(p_vcdplayer, itemid.num);
vcdinfo_get_seg_resolution(p_vcdinfo, itemid.num,
- &(p_vcdplayer->max_x),
+ &(p_vcdplayer->max_x),
&(p_vcdplayer->max_y));
-
+
switch (segtype) {
case VCDINFO_FILES_VIDEO_NTSC_STILL:
case VCDINFO_FILES_VIDEO_NTSC_STILL2:
@@ -558,7 +558,7 @@ vcdplayer_play_single_item(vcdplayer_t *p_vcdplayer, vcdinfo_itemid_t itemid)
case VCD_TYPE_VCD:
case VCD_TYPE_VCD11:
case VCD_TYPE_VCD2:
- /* aspect ratio for VCD's is known to be 4:3 for any
+ /* aspect ratio for VCD's is known to be 4:3 for any
type of VCD's */
p_vcdplayer->set_aspect_ratio(1);
break;
@@ -566,17 +566,17 @@ vcdplayer_play_single_item(vcdplayer_t *p_vcdplayer, vcdinfo_itemid_t itemid)
}
p_vcdplayer->i_still = 0;
}
-
+
break;
}
-
+
case VCDINFO_ITEM_TYPE_TRACK:
dbg_print(INPUT_DBG_PBC, "track %d\n", itemid.num);
if (itemid.num < 1 || itemid.num > p_vcdplayer->i_tracks) return;
_vcdplayer_set_track(p_vcdplayer, itemid.num);
break;
-
- case VCDINFO_ITEM_TYPE_ENTRY:
+
+ case VCDINFO_ITEM_TYPE_ENTRY:
{
unsigned int i_entries = vcdinfo_get_num_entries(p_vcdinfo);
dbg_print(INPUT_DBG_PBC, "entry %d\n", itemid.num);
@@ -584,7 +584,7 @@ vcdplayer_play_single_item(vcdplayer_t *p_vcdplayer, vcdinfo_itemid_t itemid)
_vcdplayer_set_entry(p_vcdplayer, itemid.num);
break;
}
-
+
case VCDINFO_ITEM_TYPE_LID:
LOG_ERR(p_vcdplayer, "%s\n", _("Should have converted this above"));
break;
@@ -598,7 +598,7 @@ vcdplayer_play_single_item(vcdplayer_t *p_vcdplayer, vcdinfo_itemid_t itemid)
LOG_ERR(p_vcdplayer, "item type %d not implemented.\n", itemid.type);
return;
}
-
+
p_vcdplayer->play_item = itemid;
vcdplayer_update_nav(p_vcdplayer);
@@ -613,7 +613,7 @@ vcdplayer_play_single_item(vcdplayer_t *p_vcdplayer, vcdinfo_itemid_t itemid)
/*
Get the next play-item in the list given in the LIDs. Note play-item
here refers to list of play-items for a single LID It shouldn't be
- confused with a user's list of favorite things to play or the
+ confused with a user's list of favorite things to play or the
"next" field of a LID which moves us to a different LID.
*/
static bool
@@ -626,9 +626,9 @@ _vcdplayer_inc_play_item(vcdplayer_t *p_vcdplayer)
if ( NULL == p_vcdplayer || NULL == p_vcdplayer->pxd.pld ) return false;
noi = vcdinf_pld_get_noi(p_vcdplayer->pxd.pld);
-
+
if ( noi <= 0 ) return false;
-
+
/* Handle delays like autowait or wait here? */
p_vcdplayer->pdi++;
@@ -636,12 +636,12 @@ _vcdplayer_inc_play_item(vcdplayer_t *p_vcdplayer)
if ( p_vcdplayer->pdi < 0 || p_vcdplayer->pdi >= noi ) return false;
else {
- uint16_t trans_itemid_num=vcdinf_pld_get_play_item(p_vcdplayer->pxd.pld,
+ uint16_t trans_itemid_num=vcdinf_pld_get_play_item(p_vcdplayer->pxd.pld,
p_vcdplayer->pdi);
vcdinfo_itemid_t trans_itemid;
if (VCDINFO_INVALID_ITEMID == trans_itemid_num) return false;
-
+
vcdinfo_classify_itemid(trans_itemid_num, &trans_itemid);
dbg_print(INPUT_DBG_PBC, " play-item[%d]: %s\n",
p_vcdplayer->pdi, vcdinfo_pin2str (trans_itemid_num));
@@ -653,7 +653,7 @@ _vcdplayer_inc_play_item(vcdplayer_t *p_vcdplayer)
void
vcdplayer_play(vcdplayer_t *p_vcdplayer, vcdinfo_itemid_t itemid)
{
- dbg_print(INPUT_DBG_CALL, "called itemid.num: %d itemid.type: %d\n",
+ dbg_print(INPUT_DBG_CALL, "called itemid.num: %d itemid.type: %d\n",
itemid.num, itemid.type);
if (!vcdplayer_pbc_is_on(p_vcdplayer)) {
@@ -667,9 +667,9 @@ vcdplayer_play(vcdplayer_t *p_vcdplayer, vcdinfo_itemid_t itemid)
p_vcdplayer->i_lid = itemid.num;
vcdinfo_lid_get_pxd(p_vcdinfo, &(p_vcdplayer->pxd), itemid.num);
-
+
switch (p_vcdplayer->pxd.descriptor_type) {
-
+
case PSD_TYPE_SELECTION_LIST:
case PSD_TYPE_EXT_SELECTION_LIST: {
vcdinfo_itemid_t trans_itemid;
@@ -683,29 +683,29 @@ vcdplayer_play(vcdplayer_t *p_vcdplayer, vcdinfo_itemid_t itemid)
vcdplayer_play_single_item(p_vcdplayer, trans_itemid);
break;
}
-
+
case PSD_TYPE_PLAY_LIST: {
if (p_vcdplayer->pxd.pld == NULL) return;
p_vcdplayer->pdi = -1;
_vcdplayer_inc_play_item(p_vcdplayer);
break;
}
-
+
case PSD_TYPE_END_LIST:
case PSD_TYPE_COMMAND_LIST:
-
+
default:
;
}
}
}
-/*
- Set's start origin and size for subsequent seeks.
+/*
+ Set's start origin and size for subsequent seeks.
input: p_vcdplayer->i_lsn, p_vcdplayer->play_item
changed: p_vcdplayer->origin_lsn, p_vcdplayer->end_lsn
*/
-static void
+static void
_vcdplayer_set_origin(vcdplayer_t *p_vcdplayer)
{
size_t size = _vcdplayer_get_item_size(p_vcdplayer, p_vcdplayer->play_item);
@@ -713,7 +713,7 @@ _vcdplayer_set_origin(vcdplayer_t *p_vcdplayer)
p_vcdplayer->end_lsn = p_vcdplayer->i_lsn + size;
p_vcdplayer->origin_lsn = p_vcdplayer->i_lsn;
- dbg_print((INPUT_DBG_CALL|INPUT_DBG_LSN), "end LSN: %u\n",
+ dbg_print((INPUT_DBG_CALL|INPUT_DBG_LSN), "end LSN: %u\n",
p_vcdplayer->end_lsn);
}
@@ -730,29 +730,29 @@ vcdplayer_pbc_nav (vcdplayer_t *p_vcdplayer, uint8_t *p_buf)
/* We are in playback control. */
vcdinfo_itemid_t itemid;
- /* The end of an entry is really the end of the associated
+ /* The end of an entry is really the end of the associated
sequence (or track). */
-
- if ( (VCDINFO_ITEM_TYPE_ENTRY == p_vcdplayer->play_item.type) &&
+
+ if ( (VCDINFO_ITEM_TYPE_ENTRY == p_vcdplayer->play_item.type) &&
(p_vcdplayer->i_lsn < p_vcdplayer->track_end_lsn) ) {
/* Set up to just continue to the next entry */
p_vcdplayer->play_item.num++;
- dbg_print( (INPUT_DBG_LSN|INPUT_DBG_PBC),
+ dbg_print( (INPUT_DBG_LSN|INPUT_DBG_PBC),
"continuing into next entry: %u\n", p_vcdplayer->play_item.num);
vcdplayer_play_single_item(p_vcdplayer, p_vcdplayer->play_item);
p_vcdplayer->update_title();
return READ_BLOCK;
}
-
+
switch (p_vcdplayer->pxd.descriptor_type) {
case PSD_TYPE_END_LIST:
return READ_END;
break;
case PSD_TYPE_PLAY_LIST: {
int wait_time = vcdinf_get_wait_time(p_vcdplayer->pxd.pld);
-
+
dbg_print(INPUT_DBG_PBC, "playlist wait_time: %d\n", wait_time);
-
+
if (_vcdplayer_inc_play_item(p_vcdplayer))
return READ_BLOCK;
@@ -773,18 +773,18 @@ vcdplayer_pbc_nav (vcdplayer_t *p_vcdplayer, uint8_t *p_buf)
int wait_time = vcdinf_get_timeout_time(p_vcdplayer->pxd.psd);
uint16_t timeout_offs = vcdinf_get_timeout_offset(p_vcdplayer->pxd.psd);
uint16_t max_loop = vcdinf_get_loop_count(p_vcdplayer->pxd.psd);
- vcdinfo_offset_t *offset_timeout_LID =
+ vcdinfo_offset_t *offset_timeout_LID =
vcdinfo_get_offset_t(p_vcdplayer->vcd, timeout_offs);
-
- dbg_print(INPUT_DBG_PBC, "wait_time: %d, looped: %d, max_loop %d\n",
+
+ dbg_print(INPUT_DBG_PBC, "wait_time: %d, looped: %d, max_loop %d\n",
wait_time, p_vcdplayer->i_loop, max_loop);
-
+
/* Set caller to handle wait time given. */
if (STILL_READING == p_vcdplayer->i_still && wait_time > 0) {
p_vcdplayer->i_still = wait_time;
return READ_STILL_FRAME;
}
-
+
/* Handle any looping given. */
if ( max_loop == 0 || p_vcdplayer->i_loop < max_loop ) {
p_vcdplayer->i_loop++;
@@ -793,10 +793,10 @@ vcdplayer_pbc_nav (vcdplayer_t *p_vcdplayer, uint8_t *p_buf)
if (p_vcdplayer->i_still) p_vcdplayer->force_redisplay();
return READ_BLOCK;
}
-
+
/* Looping finished and wait finished. Move to timeout
entry or next entry, or handle still. */
-
+
if (NULL != offset_timeout_LID) {
/* Handle timeout_LID */
itemid.num = offset_timeout_LID->lid;
@@ -811,12 +811,12 @@ vcdplayer_pbc_nav (vcdplayer_t *p_vcdplayer, uint8_t *p_buf)
unsigned int bsn=vcdinf_get_bsn(p_vcdplayer->pxd.psd);
int rand_selection=bsn +
(int) ((i_selections+0.0)*rand()/(RAND_MAX+1.0));
- lid_t rand_lid=vcdinfo_selection_get_lid(p_vcdplayer->vcd,
+ lid_t rand_lid=vcdinfo_selection_get_lid(p_vcdplayer->vcd,
p_vcdplayer->i_lid,
rand_selection);
itemid.num = rand_lid;
itemid.type = VCDINFO_ITEM_TYPE_LID;
- dbg_print(INPUT_DBG_PBC, "random selection %d, lid: %d\n",
+ dbg_print(INPUT_DBG_PBC, "random selection %d, lid: %d\n",
rand_selection - bsn, rand_lid);
vcdplayer_play(p_vcdplayer, itemid);
return READ_BLOCK;
@@ -825,19 +825,19 @@ vcdplayer_pbc_nav (vcdplayer_t *p_vcdplayer, uint8_t *p_buf)
RETURN_NULL_STILL ;
}
}
-
+
break;
}
- case VCDINFO_ITEM_TYPE_NOTFOUND:
+ case VCDINFO_ITEM_TYPE_NOTFOUND:
LOG_ERR(p_vcdplayer, "NOTFOUND in PBC -- not supposed to happen\n");
break;
- case VCDINFO_ITEM_TYPE_SPAREID2:
+ case VCDINFO_ITEM_TYPE_SPAREID2:
LOG_ERR(p_vcdplayer, "SPAREID2 in PBC -- not supposed to happen\n");
break;
- case VCDINFO_ITEM_TYPE_LID:
+ case VCDINFO_ITEM_TYPE_LID:
LOG_ERR(p_vcdplayer, "LID in PBC -- not supposed to happen\n");
break;
-
+
default:
;
}
@@ -848,8 +848,8 @@ vcdplayer_pbc_nav (vcdplayer_t *p_vcdplayer, uint8_t *p_buf)
return READ_BLOCK;
}
-/* Handles navigation when NOT in PBC reaching the end of a play item.
- The navigations rules here we are sort of made up, but the intent
+/* Handles navigation when NOT in PBC reaching the end of a play item.
+ The navigations rules here we are sort of made up, but the intent
is to do something that's probably right or helpful.
*/
static vcdplayer_read_status_t
@@ -859,22 +859,22 @@ vcdplayer_non_pbc_nav (vcdplayer_t *p_vcdplayer, uint8_t *p_buf)
switch (p_vcdplayer->play_item.type) {
case VCDINFO_ITEM_TYPE_TRACK:
case VCDINFO_ITEM_TYPE_ENTRY:
- if (p_vcdplayer->autoadvance
+ if (p_vcdplayer->autoadvance
&& p_vcdplayer->next_entry != VCDINFO_INVALID_ENTRY) {
p_vcdplayer->play_item.num=p_vcdplayer->next_entry;
vcdplayer_update_nav(p_vcdplayer);
- } else
+ } else
return READ_END;
break;
- case VCDINFO_ITEM_TYPE_SPAREID2:
+ case VCDINFO_ITEM_TYPE_SPAREID2:
RETURN_NULL_STILL ;
- case VCDINFO_ITEM_TYPE_NOTFOUND:
+ case VCDINFO_ITEM_TYPE_NOTFOUND:
LOG_ERR(p_vcdplayer, "NOTFOUND outside PBC -- not supposed to happen\n");
return READ_END;
break;
- case VCDINFO_ITEM_TYPE_LID:
+ case VCDINFO_ITEM_TYPE_LID:
LOG_ERR(p_vcdplayer, "LID outside PBC -- not supposed to happen\n");
return READ_END;
break;
@@ -890,26 +890,26 @@ vcdplayer_non_pbc_nav (vcdplayer_t *p_vcdplayer, uint8_t *p_buf)
/*!
Read i_len bytes into buf and return the status back.
- This routine is a bit complicated because on reaching the end of
- a track or entry we may automatically advance to the item, or
+ This routine is a bit complicated because on reaching the end of
+ a track or entry we may automatically advance to the item, or
interpret the next item in the playback-control list.
*/
vcdplayer_read_status_t
-vcdplayer_read (vcdplayer_t *p_vcdplayer, uint8_t *p_buf,
- const off_t i_len)
+vcdplayer_read (vcdplayer_t *p_vcdplayer, uint8_t *p_buf,
+ const off_t i_len)
{
if ( p_vcdplayer->i_lsn >= p_vcdplayer->end_lsn ) {
vcdplayer_read_status_t read_status;
-
+
/* We've run off of the end of this entry. Do we continue or stop? */
- dbg_print( (INPUT_DBG_LSN|INPUT_DBG_PBC),
- "end reached, cur: %u, end: %u\n",
+ dbg_print( (INPUT_DBG_LSN|INPUT_DBG_PBC),
+ "end reached, cur: %u, end: %u\n",
p_vcdplayer->i_lsn, p_vcdplayer->end_lsn);
handle_item_continuation:
- read_status = vcdplayer_pbc_is_on(p_vcdplayer)
- ? vcdplayer_pbc_nav(p_vcdplayer, p_buf)
+ read_status = vcdplayer_pbc_is_on(p_vcdplayer)
+ ? vcdplayer_pbc_nav(p_vcdplayer, p_buf)
: vcdplayer_non_pbc_nav(p_vcdplayer, p_buf);
if (READ_STILL_FRAME == read_status) {
@@ -919,11 +919,11 @@ vcdplayer_read (vcdplayer_t *p_vcdplayer, uint8_t *p_buf,
if (READ_BLOCK != read_status) return read_status;
}
- /* Read the next block.
-
+ /* Read the next block.
+
Important note: we probably speed things up by removing "data"
and the memcpy to it by extending vcd_image_source_read_mode2
- to allow a mode to do what's below in addition to its
+ to allow a mode to do what's below in addition to its
"raw" and "block" mode. It also would probably improve the modularity
a little bit as well.
*/
@@ -938,7 +938,7 @@ vcdplayer_read (vcdplayer_t *p_vcdplayer, uint8_t *p_buf,
vcdsector_t vcd_sector;
do {
- if (cdio_read_mode2_sector(p_img, &vcd_sector,
+ if (cdio_read_mode2_sector(p_img, &vcd_sector,
p_vcdplayer->i_lsn, true)!=0) {
dbg_print(INPUT_DBG_LSN, "read error\n");
p_vcdplayer->i_lsn++;
@@ -948,36 +948,36 @@ vcdplayer_read (vcdplayer_t *p_vcdplayer, uint8_t *p_buf,
if ( p_vcdplayer->i_lsn >= p_vcdplayer->end_lsn ) {
/* We've run off of the end of this entry. Do we continue or stop? */
- dbg_print( (INPUT_DBG_LSN|INPUT_DBG_PBC),
- "end reached in reading, cur: %u, end: %u\n",
+ dbg_print( (INPUT_DBG_LSN|INPUT_DBG_PBC),
+ "end reached in reading, cur: %u, end: %u\n",
p_vcdplayer->i_lsn, p_vcdplayer->end_lsn);
break;
}
-
+
/* Check header ID for a padding sector and simply discard
these. It is alleged that VCD's put these in to keep the
bitrate constant.
*/
} while((vcd_sector.subheader[2]&~0x01)==0x60);
- if ( p_vcdplayer->i_lsn >= p_vcdplayer->end_lsn )
+ if ( p_vcdplayer->i_lsn >= p_vcdplayer->end_lsn )
/* We've run off of the end of this entry. Do we continue or stop? */
goto handle_item_continuation;
-
+
memcpy (p_buf, vcd_sector.data, M2F2_SECTOR_SIZE);
return READ_BLOCK;
}
}
/* Do if needed */
-void
+void
vcdplayer_send_button_update(vcdplayer_t *p_vcdplayer, const int mode)
{
/* dbg_print(INPUT_DBG_CALL, "Called\n"); */
return;
}
-/*
+/*
* Local variables:
* c-file-style: "gnu"
* tab-width: 8
diff --git a/src/input/vcd/vcdplayer.h b/src/input/vcd/vcdplayer.h
index 868ca32e4..8a51ced7b 100644
--- a/src/input/vcd/vcdplayer.h
+++ b/src/input/vcd/vcdplayer.h
@@ -1,22 +1,22 @@
-/*
+/*
$Id: vcdplayer.h,v 1.12 2006/06/10 17:38:47 dgp85 Exp $
Copyright (C) 2002, 2003, 2004, 2005 Rocky Bernstein <rocky@panix.com>
-
+
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
-
+
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
-
+
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
-
+
*/
#ifndef _VCDPLAYER_H_
@@ -70,7 +70,7 @@ extern unsigned long int vcdplayer_debug;
if (vcdplayer_debug & mask) \
fprintf(stderr, "%s: "s, __func__ , ##args)
#else
-#define dbg_print(mask, s, args...)
+#define dbg_print(mask, s, args...)
#endif
/*------------------------------------------------------------------
@@ -83,14 +83,14 @@ extern unsigned long int vcdplayer_debug;
typedef enum {
VCDPLAYER_SLIDER_LENGTH_AUTO,
VCDPLAYER_SLIDER_LENGTH_TRACK,
- VCDPLAYER_SLIDER_LENGTH_ENTRY,
+ VCDPLAYER_SLIDER_LENGTH_ENTRY,
} vcdplayer_slider_length_t;
typedef enum {
VCDPLAYER_AUTOPLAY_TRACK = VCDINFO_ITEM_TYPE_TRACK,
VCDPLAYER_AUTOPLAY_ENTRY = VCDINFO_ITEM_TYPE_ENTRY,
VCDPLAYER_AUTOPLAY_SEGMENT = VCDINFO_ITEM_TYPE_SEGMENT,
- VCDPLAYER_AUTOPLAY_PBC = VCDINFO_ITEM_TYPE_LID,
+ VCDPLAYER_AUTOPLAY_PBC = VCDINFO_ITEM_TYPE_LID,
} vcdplayer_autoplay_t;
typedef struct {
@@ -104,7 +104,7 @@ typedef int (*generic_fn)();
2,000 seconds (33.33 minutes). We'll use a number larger than this
to signal indefinite wait.
*/
-#define STILL_INDEFINITE_WAIT 3000
+#define STILL_INDEFINITE_WAIT 3000
/* Value when we have yet to finish reading blocks of a frame. */
#define STILL_READING -5
@@ -114,7 +114,7 @@ typedef struct vcdplayer_s {
vcdinfo_obj_t *vcd; /* Pointer to libvcd structures. */
/*------------------------------------------------------------------
- User-settable options
+ User-settable options
--------------------------------------------------------------*/
unsigned int i_debug; /* Debugging mask */
unsigned int i_blocks_per_read; /* number of blocks per read */
@@ -122,7 +122,7 @@ typedef struct vcdplayer_s {
/*------------------------------------------------------------------
Callback functions - players and higher-level routines can use
this to customize their behavior when using this player-independent
- code.
+ code.
---------------------------------------------------------------------*/
generic_fn log_msg; /* function to log a message in the player */
@@ -130,36 +130,36 @@ typedef struct vcdplayer_s {
/* Function to flush any audio or video buffers */
- void (*flush_buffers) (void);
+ void (*flush_buffers) (void);
/* Function to force a redisplay. */
- void (*force_redisplay) (void);
+ void (*force_redisplay) (void);
/* Function to set aspect ratio. */
- void (*set_aspect_ratio) (int);
+ void (*set_aspect_ratio) (int);
/* Function to update title of selection. */
void (*update_title) ();
/*-------------------------------------------------------------
- Playback control fields
+ Playback control fields
--------------------------------------------------------------*/
- int i_still; /* 0 if not in still,
+ int i_still; /* 0 if not in still,
STILL_INDEFINITE_WAIT if indefinite time,
STILL_READING if don't have full picture,
else number of seconds yet to wait */
int i_lid; /* LID that play item is in. Implies PBC is.
- on. VCDPLAYER_BAD_ENTRY if not none or
+ on. VCDPLAYER_BAD_ENTRY if not none or
not in PBC */
PsdListDescriptor pxd; /* If PBC is on, the relevant PSD/PLD */
- int pdi; /* current pld index of pxd. -1 if
+ int pdi; /* current pld index of pxd. -1 if
no index*/
vcdinfo_itemid_t play_item; /* play-item, VCDPLAYER_BAD_ENTRY if none */
vcdinfo_itemid_t loop_item; /* Where do we loop back to? Meaningful only
in a selection list */
- int i_loop; /* # of times play-item has been played.
+ int i_loop; /* # of times play-item has been played.
Meaningful only in a selection list.
*/
track_t i_track; /* current track number */
@@ -167,16 +167,16 @@ typedef struct vcdplayer_s {
/*-----------------------------------
Navigation and location fields
------------------------------------*/
- uint16_t next_entry; /* where to go if next is pressed,
+ uint16_t next_entry; /* where to go if next is pressed,
VCDPLAYER_BAD_ENTRY if none */
- uint16_t prev_entry; /* where to fo if prev is pressed,
+ uint16_t prev_entry; /* where to fo if prev is pressed,
VCDPLAYER_BAD_ENTRY if none */
uint16_t return_entry; /* Entry index to use if return is pressed */
uint16_t default_entry; /* Default selection entry. */
lsn_t i_lsn; /* LSN of where we are right now */
lsn_t end_lsn; /* LSN of end of current entry/segment/track.
- entry/segment/track. This block can be read
+ entry/segment/track. This block can be read
(and is not one after the "end"). */
lsn_t origin_lsn; /* LSN of start of seek/slider position. */
@@ -192,8 +192,8 @@ typedef struct vcdplayer_s {
char *psz_source; /* VCD device currently open */
bool b_opened; /* true if initialized */
vcd_type_t vcd_format; /* VCD 2.0, 1,1, SVCD, HQVCD? */
-
- track_t i_tracks; /* # of playable MPEG tracks. This is
+
+ track_t i_tracks; /* # of playable MPEG tracks. This is
generally one less than the number
of CD tracks as the first CD track
is an ISO-9660 track and is not
@@ -213,20 +213,20 @@ typedef struct vcdplayer_s {
---------------------------------------------------------------*/
/* What type to use on autoplay */
- vcdplayer_autoplay_t default_autoplay;
+ vcdplayer_autoplay_t default_autoplay;
- /* When hitting end of entry or track do we advance automatically
+ /* When hitting end of entry or track do we advance automatically
to next entry/track or stop? Only valid if PBC is off. */
- bool autoadvance;
+ bool autoadvance;
- /* Do next/prev wrap around? Only valid if PBC is off. */
- bool wrap_next_prev;
+ /* Do next/prev wrap around? Only valid if PBC is off. */
+ bool wrap_next_prev;
/* Show and be able to select rejected LIDs? */
- bool show_rejected;
+ bool show_rejected;
/* Whether GUI slider is track size or entry size. */
- vcdplayer_slider_length_t slider_length;
+ vcdplayer_slider_length_t slider_length;
} vcdplayer_t;
@@ -240,7 +240,7 @@ typedef enum {
/* ----------------------------------------------------------------------
- Function Prototypes
+ Function Prototypes
-----------------------------------------------------------------------*/
/*!
@@ -250,17 +250,17 @@ bool vcdplayer_pbc_is_on(const vcdplayer_t *p_vcdplayer);
/*!
Take a format string and expand escape sequences, that is sequences that
- begin with %, with information from the current VCD.
+ begin with %, with information from the current VCD.
The expanded string is returned. Here is a list of escape sequences:
- %A : The album information
+ %A : The album information
%C : The VCD volume count - the number of CD's in the collection.
- %c : The VCD volume num - the number of the CD in the collection.
+ %c : The VCD volume num - the number of the CD in the collection.
%F : The VCD Format, e.g. VCD 1.0, VCD 1.1, VCD 2.0, or SVCD
%I : The current entry/segment/playback type, e.g. ENTRY, TRACK, SEGMENT...
%L : The playlist ID prefixed with " LID" if it exists
%N : The current number of the above - a decimal number
- %P : The publisher ID
+ %P : The publisher ID
%p : The preparer ID
%V : The volume set ID
%v : The volume ID
@@ -271,13 +271,13 @@ char *
vcdplayer_format_str(vcdplayer_t *p_vcdplayer, const char format_str[]);
/*!
- Update next/prev/return/default navigation buttons.
+ Update next/prev/return/default navigation buttons.
*/
void
vcdplayer_update_nav(vcdplayer_t *p_vcdplayer);
/*! Update the player title text. */
-void
+void
vcdplayer_update_title_display(vcdplayer_t *p_vcdplayer);
/*! Play title part. If part is -1, use the first title. */
@@ -294,22 +294,22 @@ vcdplayer_read_status_t
vcdplayer_read (vcdplayer_t *p_vcdplayer, uint8_t *p_buf, const off_t nlen);
/*!
- seek position, return new position
+ seek position, return new position
if seeking failed, -1 is returned
*/
-off_t
+off_t
vcdplayer_seek (vcdplayer_t *p_vcdplayer, off_t offset, int origin);
/*!
Get the number of tracks or titles of the VCD. The result is stored
in "titles".
*/
-void
+void
vcdplayer_send_button_update(vcdplayer_t *p_vcdplayer, int mode);
#endif /* _VCDPLAYER_H_ */
-/*
+/*
* Local variables:
* c-file-style: "gnu"
* tab-width: 8
diff --git a/src/input/vcd/xine-extra.c b/src/input/vcd/xine-extra.c
index e3b6da912..d211f46a4 100644
--- a/src/input/vcd/xine-extra.c
+++ b/src/input/vcd/xine-extra.c
@@ -1,23 +1,23 @@
-/*
-
+/*
+
Copyright (C) 2002 Rocky Bernstein <rocky@panix.com>
-
+
Program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
-
+
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
-
+
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
-
+
These are routines that probably should be in xine, but for whatever
- reason aren't - yet.
+ reason aren't - yet.
*/
#ifdef HAVE_CONFIG_H
@@ -42,7 +42,7 @@ static xine_t *my_xine = NULL;
In short this writes a message to buffer 'buf' and to stdout.
*/
-void
+void
xine_vlog_msg(xine_t *this, int buf, const char *format, va_list args)
{
va_list copy;
@@ -58,7 +58,7 @@ xine_vlog_msg(xine_t *this, int buf, const char *format, va_list args)
In short this writes a message to buffer 'buf' and to stderr.
*/
-void
+void
xine_vlog_err(xine_t *this, int buf, const char *format, va_list args)
{
va_list copy;
@@ -69,7 +69,7 @@ xine_vlog_err(xine_t *this, int buf, const char *format, va_list args)
/*! Call this before calling any of the xine_log_msg or xine_log_err
routines. It sets up the xine buffer that will be used in error
- logging.
+ logging.
\return true if everything went okay; false is returned if
logging was already initialized, in which case nothing is done.
@@ -85,12 +85,12 @@ xine_log_init(xine_t *this)
/*! This routine is like xine_log without any xine-specific paramenters.
Before calling this routine you should have set up a xine log buffer via
- xine_log_init().
+ xine_log_init().
In short this writes a message to buffer 'buf' and to stdout.
- \return true if everything went okay; false is there was
- an error, such as logging wasn't initialized. On error, nothing is
+ \return true if everything went okay; false is there was
+ an error, such as logging wasn't initialized. On error, nothing is
logged.
*/
bool
@@ -107,12 +107,12 @@ xine_log_msg(const char *format, ...)
/*! This routine is like xine_log without any xine-specific paramenters.
Before calling this routine you should have set up a xine log buffer via
- xine_log_init().
+ xine_log_init().
In short this writes a message to buffer 'buf' and to stdout.
- \return true if everything went okay; false is there was
- an error, such as logging wasn't initialized. On error, nothing is
+ \return true if everything went okay; false is there was
+ an error, such as logging wasn't initialized. On error, nothing is
logged.
*/
bool
@@ -128,7 +128,7 @@ xine_log_err(const char *format, ...)
}
void
-xine_free_mrls(int *num_mrls, xine_mrl_t **mrls)
+xine_free_mrls(int *num_mrls, xine_mrl_t **mrls)
{
(*num_mrls)--;
for ( ; *num_mrls >= 0; (*num_mrls)-- ) {
diff --git a/src/input/vcd/xine-extra.h b/src/input/vcd/xine-extra.h
index 59f562cbd..5037e68ad 100644
--- a/src/input/vcd/xine-extra.h
+++ b/src/input/vcd/xine-extra.h
@@ -1,23 +1,23 @@
-/*
-
+/*
+
Copyright (C) 2002 Rocky Bernstein <rocky@panix.com>
-
+
Program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
-
+
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
-
+
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
-
+
These are routines that probably should be in xine, but for whatever
- reason aren't - yet.
+ reason aren't - yet.
*/
#ifndef XINE_EXTRA_H
@@ -47,7 +47,7 @@
In short this writes a message to buffer 'buf' and to stdout.
*/
-void
+void
xine_vlog_msg(xine_t *this, int buf, const char *format, va_list args) XINE_FORMAT_PRINTF(3, 0);
/*! This routine is like xine_log, except it takes a va_list instead
@@ -61,7 +61,7 @@ void xine_vlog_err(xine_t *this, int buf, const char *format, va_list args) XINE
/*! Call this before calling any of the xine_log_msg or xine_log_err
routines. It sets up the xine buffer that will be used in error
- logging.
+ logging.
\return true if everything went okay; false is returned if
logging was already initialized, in which case nothing is done.
@@ -71,24 +71,24 @@ bool xine_log_init(xine_t *this);
/*! This routine is like xine_log without any xine-specific paramenters.
Before calling this routine you should have set up a xine log buffer via
- xine_log_init().
+ xine_log_init().
In short this writes a message to buffer 'buf' and to stdout.
- \return true if everything went okay; false is there was
- an error, such as logging wasn't initialized. On error, nothing is
+ \return true if everything went okay; false is there was
+ an error, such as logging wasn't initialized. On error, nothing is
logged.
*/
bool xine_log_msg(const char *format, ...) XINE_FORMAT_PRINTF(1, 2);
/*! This routine is like xine_log without any xine-specific paramenters.
Before calling this routine you should have set up a xine log buffer via
- xine_log_init().
+ xine_log_init().
In short this writes a message to buffer 'buf' and to stdout.
- \return true if everything went okay; false is there was
- an error, such as logging wasn't initialized. On error, nothing is
+ \return true if everything went okay; false is there was
+ an error, such as logging wasn't initialized. On error, nothing is
logged.
*/
bool xine_log_err(const char *format, ...) XINE_FORMAT_PRINTF(1, 2);
diff --git a/src/input/vcd/xineplug_inp_vcd.c b/src/input/vcd/xineplug_inp_vcd.c
index 8b12ca459..acd4775f4 100644
--- a/src/input/vcd/xineplug_inp_vcd.c
+++ b/src/input/vcd/xineplug_inp_vcd.c
@@ -1,23 +1,23 @@
/*
-
+
Copyright (C) 2002, 2003, 2004, 2005 Rocky Bernstein <rocky@panix.com>
-
+
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
-
+
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
-
+
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
*/
-/*
+/*
These are plugin routines called by the xine engine. See
Chapter 4. Extending xine's input
http://www.xine-project.org/hackersguide#INPUT
@@ -83,8 +83,8 @@
#define BUF_DEMUX_BLOCK 0x05000000
#endif
-/*
- Convert an autoplay enumeration into an vcdinfo itemtype enumeration.
+/*
+ Convert an autoplay enumeration into an vcdinfo itemtype enumeration.
See definitions in vcdplayer.h and vcdinfo.h to get the below correct.
*/
static const vcdinfo_item_enum_t autoplay2itemtype[]={
@@ -94,7 +94,7 @@ static const vcdinfo_item_enum_t autoplay2itemtype[]={
VCDINFO_ITEM_TYPE_LID /* VCDPLAYER_AUTOPLAY_PBC */
};
-typedef struct vcd_config_s
+typedef struct vcd_config_s
{
char *title_format; /* Format string of GUI display title */
char *comment_format; /* Format string of stream comment meta */
@@ -106,7 +106,7 @@ typedef struct vcd_input_class_s {
input_class_t input_class;
xine_t *xine;
config_values_t *config; /* Pointer to XineRC config file. */
- vcd_input_plugin_t *ip;
+ vcd_input_plugin_t *ip;
vcd_config_t v_config; /* config stuff passed to child */
xine_mrl_t **mrls; /* list of mrl entries for medium */
@@ -114,10 +114,10 @@ typedef struct vcd_input_class_s {
char *vcd_device;/* Device name to use when
none specified in MRL */
/*--------------------------------------------------------------
- Media resource locator (MRL) info.
+ Media resource locator (MRL) info.
For the below offsets, use play_item + mrl_xxx_offset to get index
- into "mrls" array
+ into "mrls" array
---------------------------------------------------------------*/
int mrl_track_offset; /* perhaps -1 for tracks staring with 1*/
int mrl_entry_offset; /* i_tracks for entries starting with 0 */
@@ -130,10 +130,10 @@ typedef struct vcd_input_class_s {
vcd_input_class_t *vcd_class;
struct vcd_input_plugin_tag {
- input_plugin_t input_plugin; /* input plugin interface as defined by
- by player. For xine it contains a
+ input_plugin_t input_plugin; /* input plugin interface as defined by
+ by player. For xine it contains a
structure of functions that need
- to be implemented.
+ to be implemented.
*/
xine_stream_t *stream;
xine_event_queue_t *event_queue;
@@ -155,7 +155,7 @@ struct vcd_input_plugin_tag {
the mouse is not in any "button"
region then this has value -1.
*/
- bool b_mouse_in; /* True if mouse is inside a "button"
+ bool b_mouse_in; /* True if mouse is inside a "button"
region; false otherwise */
vcdplayer_t player ;
@@ -168,13 +168,13 @@ vcd_input_plugin_t my_vcd;
static bool vcd_handle_events (void);
static void vcd_close(vcd_input_class_t *class);
#if LIBVCD_VERSION_NUM >= 23
-static void send_mouse_enter_leave_event(vcd_input_plugin_t *p_this,
+static void send_mouse_enter_leave_event(vcd_input_plugin_t *p_this,
bool b_mouse_in);
#endif
-/*
- If class->vcd_device is NULL or the empty string,
- Use libcdio to find a CD drive with a VCD in it.
+/*
+ If class->vcd_device is NULL or the empty string,
+ Use libcdio to find a CD drive with a VCD in it.
*/
static bool
vcd_get_default_device(vcd_input_class_t *class, bool log_msg_if_fail)
@@ -184,7 +184,7 @@ vcd_get_default_device(vcd_input_class_t *class, bool log_msg_if_fail)
if (NULL == class->vcd_device || strlen(class->vcd_device)==0) {
char **cd_drives=NULL;
- cd_drives = cdio_get_devices_with_cap(NULL,
+ cd_drives = cdio_get_devices_with_cap(NULL,
(CDIO_FS_ANAL_SVCD|CDIO_FS_ANAL_CVD|CDIO_FS_ANAL_VIDEOCD|CDIO_FS_UNKNOWN),
true);
if (NULL == cd_drives || NULL == cd_drives[0]) {
@@ -201,8 +201,8 @@ vcd_get_default_device(vcd_input_class_t *class, bool log_msg_if_fail)
}
-static void
-meta_info_assign(int field, xine_stream_t *stream, const char * info)
+static void
+meta_info_assign(int field, xine_stream_t *stream, const char * info)
{
if (NULL != info) {
dbg_print(INPUT_DBG_META, "meta[%d]: %s\n", field, info);
@@ -215,10 +215,10 @@ meta_info_assign(int field, xine_stream_t *stream, const char * info)
/* Set stream information. */
static void
-vcd_set_meta_info (vcd_input_plugin_t *xine_vcd)
+vcd_set_meta_info (vcd_input_plugin_t *xine_vcd)
{
vcdinfo_obj_t *p_vcdinfo= xine_vcd->player.vcd;
- meta_info_assign(XINE_META_INFO_ALBUM, xine_vcd->stream,
+ meta_info_assign(XINE_META_INFO_ALBUM, xine_vcd->stream,
vcdinfo_get_album_id(p_vcdinfo));
meta_info_assign(XINE_META_INFO_ARTIST, xine_vcd->stream,
vcdinfo_get_preparer_id(p_vcdinfo));
@@ -230,40 +230,40 @@ vcd_set_meta_info (vcd_input_plugin_t *xine_vcd)
}
static void
-vcd_force_redisplay (void)
+vcd_force_redisplay (void)
{
#if 1
my_vcd.stream->xine->clock->adjust_clock(my_vcd.stream->xine->clock,
- my_vcd.stream->xine->clock->get_current_time(my_vcd.stream->xine->clock)
+ my_vcd.stream->xine->clock->get_current_time(my_vcd.stream->xine->clock)
+ 30 * 90000 );
#else
/* Alternate method that causes too much disruption... */
- xine_set_param(my_vcd.stream, XINE_PARAM_VO_ASPECT_RATIO,
+ xine_set_param(my_vcd.stream, XINE_PARAM_VO_ASPECT_RATIO,
(xine_get_param(my_vcd.stream, XINE_PARAM_VO_ASPECT_RATIO)));
#endif
}
static void
-vcd_set_aspect_ratio (int i_aspect_ratio)
+vcd_set_aspect_ratio (int i_aspect_ratio)
{
/* Alternate method that causes too much disruption... */
xine_set_param(my_vcd.stream, XINE_PARAM_VO_ASPECT_RATIO, i_aspect_ratio);
}
-/*! Add another MRL to the MRL list inside "this" to be displayed.
- mrl is the string name to add; size is the size of the entry in bytes.
- The number of mrls in "this" is incremented.
+/*! Add another MRL to the MRL list inside "this" to be displayed.
+ mrl is the string name to add; size is the size of the entry in bytes.
+ The number of mrls in "this" is incremented.
*/
static void
-vcd_add_mrl_slot(vcd_input_class_t *this, const char *mrl, off_t size,
+vcd_add_mrl_slot(vcd_input_class_t *this, const char *mrl, off_t size,
unsigned int *i)
{
- dbg_print(INPUT_DBG_MRL, "called to add slot %d: %s, size %u\n",
+ dbg_print(INPUT_DBG_MRL, "called to add slot %d: %s, size %u\n",
*i, mrl, (unsigned int) size);
-
+
this->mrls[*i] = malloc(sizeof(xine_mrl_t));
if (NULL==this->mrls[*i]) {
- LOG_ERR("Can't malloc %zu bytes for MRL slot %u (%s)",
+ LOG_ERR("Can't malloc %zu bytes for MRL slot %u (%s)",
sizeof(xine_mrl_t), *i, mrl);
return;
}
@@ -271,7 +271,7 @@ vcd_add_mrl_slot(vcd_input_class_t *this, const char *mrl, off_t size,
this->mrls[*i]->origin = NULL;
this->mrls[*i]->type = mrl_vcd;
this->mrls[*i]->size = size * M2F2_SECTOR_SIZE;
-
+
this->mrls[*i]->mrl = strdup(mrl);
if (NULL==this->mrls[*i]->mrl) {
LOG_ERR("Can't strndup %zu bytes for MRL name %s", strlen(mrl), mrl);
@@ -282,9 +282,9 @@ vcd_add_mrl_slot(vcd_input_class_t *this, const char *mrl, off_t size,
/*!
Return the associated mrl_offset for the given type.
*/
-static int
-vcd_get_mrl_type_offset(vcd_input_plugin_t *inp,
- vcdinfo_item_enum_t type, int *size)
+static int
+vcd_get_mrl_type_offset(vcd_input_plugin_t *inp,
+ vcdinfo_item_enum_t type, int *size)
{
switch (type) {
case VCDINFO_ITEM_TYPE_ENTRY:
@@ -297,7 +297,7 @@ vcd_get_mrl_type_offset(vcd_input_plugin_t *inp,
case VCDINFO_ITEM_TYPE_TRACK:
*size = inp->class->mrl_entry_offset;
return inp->class->mrl_track_offset;
- case VCDINFO_ITEM_TYPE_LID:
+ case VCDINFO_ITEM_TYPE_LID:
/* Play list number (LID) */
*size = (inp->player.i_lids > 0) ? 1 : 0;
return inp->class->mrl_play_offset;
@@ -338,10 +338,10 @@ vcd_build_mrl_list(vcd_input_class_t *class, char *vcd_device)
if (!vcd_get_default_device(class, true)) return false;
vcd_device = class->vcd_device;
}
-
+
if (!vcdio_open(vcdplayer, vcd_device)) {
/* Error should have been logged in vcdio_open. If not do the below:
- LOG_ERR(vcdplayer, "%s: %s.\n", _("unable to open"),
+ LOG_ERR(vcdplayer, "%s: %s.\n", _("unable to open"),
class->vcd_device, strerror(errno));
*/
return false;
@@ -359,13 +359,13 @@ vcd_build_mrl_list(vcd_input_class_t *class, char *vcd_device)
didn't have to possibly remove rejected LIDs from list done in the
loop below.
*/
- class->num_mrls = vcdplayer->i_tracks + vcdplayer->i_entries
+ class->num_mrls = vcdplayer->i_tracks + vcdplayer->i_entries
+ vcdplayer->i_segments + vcdplayer->i_lids;
if (!vcdplayer->show_rejected && vcdinfo_get_lot(vcdplayer->vcd)) {
/* Remove rejected LIDs from count. */
for (n=0; n<vcdplayer->i_lids; n++) {
- if ( vcdinf_get_lot_offset(vcdinfo_get_lot(vcdplayer->vcd), n)
+ if ( vcdinf_get_lot_offset(vcdinfo_get_lot(vcdplayer->vcd), n)
== PSD_OFS_DISABLED )
class->num_mrls--;
}
@@ -381,24 +381,24 @@ vcd_build_mrl_list(vcd_input_class_t *class, char *vcd_device)
}
/* Record MRL's for tracks */
- for (n=1; n<=vcdplayer->i_tracks; n++) {
+ for (n=1; n<=vcdplayer->i_tracks; n++) {
memset(&mrl, 0, sizeof (mrl));
snprintf(mrl, sizeof(mrl), "%s%s@T%u", MRL_PREFIX, vcd_device, n);
vcd_add_mrl_slot(class, mrl, vcdplayer->track[n-1].size, &i);
}
-
+
class->mrl_entry_offset = vcdplayer->i_tracks;
class->mrl_play_offset = class->mrl_entry_offset + i_entries - 1;
/* Record MRL's for entries */
if (i_entries > 0) {
- for (n=0; n<i_entries; n++) {
+ for (n=0; n<i_entries; n++) {
memset(&mrl, 0, sizeof (mrl));
snprintf(mrl, sizeof(mrl), "%s%s@E%u", MRL_PREFIX, vcd_device, n);
vcd_add_mrl_slot(class, mrl, vcdplayer->entry[n].size, &i);
}
}
-
+
/* Record MRL's for LID entries or selection entries*/
class->mrl_segment_offset = class->mrl_play_offset;
if (vcdinfo_get_lot(vcdplayer->vcd)) {
@@ -406,7 +406,7 @@ vcd_build_mrl_list(vcd_input_class_t *class, char *vcd_device)
uint16_t ofs = vcdinf_get_lot_offset(vcdinfo_get_lot(vcdplayer->vcd), n);
if (ofs != PSD_OFS_DISABLED || vcdplayer->show_rejected) {
memset(&mrl, 0, sizeof (mrl));
- snprintf(mrl, sizeof(mrl), "%s%s@P%u%s", MRL_PREFIX, vcd_device, n+1,
+ snprintf(mrl, sizeof(mrl), "%s%s@P%u%s", MRL_PREFIX, vcd_device, n+1,
ofs == PSD_OFS_DISABLED ? "*" : "");
vcd_add_mrl_slot(class, mrl, 0, &i);
class->mrl_segment_offset++;
@@ -418,7 +418,7 @@ vcd_build_mrl_list(vcd_input_class_t *class, char *vcd_device)
{
segnum_t i_segments = vcdplayer->i_segments;
for (n=0; n<i_segments; n++) {
- vcdinfo_video_segment_type_t segtype
+ vcdinfo_video_segment_type_t segtype
= vcdinfo_get_video_type(p_vcdinfo, n);
char c='S';
switch (segtype) {
@@ -442,10 +442,10 @@ vcd_build_mrl_list(vcd_input_class_t *class, char *vcd_device)
vcd_add_mrl_slot(class, mrl, vcdplayer->segment[n].size, &i);
}
}
-
- dbg_print(INPUT_DBG_MRL,
- "offsets are track: %d, entry: %d, play: %d seg: %d\n",
- class->mrl_track_offset, class->mrl_entry_offset,
+
+ dbg_print(INPUT_DBG_MRL,
+ "offsets are track: %d, entry: %d, play: %d seg: %d\n",
+ class->mrl_track_offset, class->mrl_entry_offset,
class->mrl_play_offset, class->mrl_segment_offset);
return true;
@@ -453,9 +453,9 @@ vcd_build_mrl_list(vcd_input_class_t *class, char *vcd_device)
/*!
parses a MRL which has the format
-
+
vcd://[vcd_path][@[EPTS]?number]\*?
-
+
Examples
vcd:// - Play (navigate) default device: /dev/cdrom
vcd://@ - same as above
@@ -467,7 +467,7 @@ vcd_build_mrl_list(vcd_input_class_t *class, char *vcd_device)
vcd://dev/cdrom@E0 - Play Entry id 0 from default device
vcd://@P1 - probably same as above.
If there is no playback control, MRL will
- get converted into vcd://@E0
+ get converted into vcd://@E0
vcd://@P1* - probably same as above.
vcd://@S0 - Play segment 0 from default device
vcd://@3 - Play track 3 from default device
@@ -475,7 +475,7 @@ vcd_build_mrl_list(vcd_input_class_t *class, char *vcd_device)
vcd:///tmp/ntsc.bin@ - Play default item from /tmp/ntsc.bin
vcd:///tmp/ntsc.bin/@E0 - Play entry 0 of /tmp/ntsc.bin
-parameters:
+parameters:
mrl : mrl to parse
default_vcd_device: name of device to use when none given
auto_type : type of selection (entry, track, LID) when none given
@@ -483,10 +483,10 @@ parameters:
*/
static bool
-vcd_parse_mrl(/*in*/ const char *default_vcd_device, /*in*/ char *mrl,
+vcd_parse_mrl(/*in*/ const char *default_vcd_device, /*in*/ char *mrl,
/*out*/ char *device_str, /*out*/ vcdinfo_itemid_t *itemid,
- /*in */ vcdplayer_autoplay_t auto_type,
- /*out*/ bool *used_default)
+ /*in */ vcdplayer_autoplay_t auto_type,
+ /*out*/ bool *used_default)
{
char type_str[2];
int count;
@@ -507,15 +507,15 @@ vcd_parse_mrl(/*in*/ const char *default_vcd_device, /*in*/ char *mrl,
device_str[0] = '/';
device_str[1] = 0;
- count = sscanf (p, "%1023[^@]@%1[EePpSsTt]%u",
+ count = sscanf (p, "%1023[^@]@%1[EePpSsTt]%u",
device_str + 1, type_str, &num);
itemid->num = num;
-
+
switch (count) {
case 1:
/* Matched device, but nothing beyond that */
if (strlen(device_str)!=0 && device_str[0] != ':') {
- /* See if we have old-style MRL with no type specifier.
+ /* See if we have old-style MRL with no type specifier.
If so, we assume "track". */
count = sscanf (p, "%u", &num);
itemid->num = num;
@@ -534,7 +534,7 @@ vcd_parse_mrl(/*in*/ const char *default_vcd_device, /*in*/ char *mrl,
_x_mrl_unescape (device_str);
case 0:
- case EOF:
+ case EOF:
{
/* No device/file given, so use the default device and try again. */
if (NULL == default_vcd_device) return false;
@@ -543,16 +543,16 @@ vcd_parse_mrl(/*in*/ const char *default_vcd_device, /*in*/ char *mrl,
count = sscanf (p, "%1[EePpSsTt]%u", type_str, &num);
type_str[0] = toupper(type_str[0]);
itemid->num = num;
-
+
switch (count) {
case EOF:
/* Default PBC navigation. */
return true;
case 0:
- /* See if we have old-style MRL with no type specifier.
+ /* See if we have old-style MRL with no type specifier.
If so, we assume "track". */
count = sscanf (p, "%u", &num);
- if (1==count) {
+ if (1==count) {
type_str[0] = 'T';
break;
}
@@ -568,45 +568,45 @@ vcd_parse_mrl(/*in*/ const char *default_vcd_device, /*in*/ char *mrl,
/* We have some sort of track/selection/entry number */
switch (type_str[0]) {
- case 'E':
+ case 'E':
itemid->type = VCDINFO_ITEM_TYPE_ENTRY;
break;
- case '\0':
+ case '\0':
/* None specified, use config value. */
itemid->type = (vcdinfo_item_enum_t) auto_type;
*used_default = true;
break;
- case 'P':
+ case 'P':
itemid->type = VCDINFO_ITEM_TYPE_LID;
break;
- case 'S':
+ case 'S':
itemid->type = VCDINFO_ITEM_TYPE_SEGMENT;
break;
- case 'T':
+ case 'T':
itemid->type = VCDINFO_ITEM_TYPE_TRACK;
break;
default: ;
}
-
- if ( 0==itemid->num
- && ( (VCDINFO_ITEM_TYPE_LID == itemid->type)
+
+ if ( 0==itemid->num
+ && ( (VCDINFO_ITEM_TYPE_LID == itemid->type)
|| (VCDINFO_ITEM_TYPE_TRACK == itemid->type) ) )
itemid->num = 1;
return true;
}
-/*!
+/*!
From xine plugin spec:
return capabilities of input source
*/
-static uint32_t
+static uint32_t
vcd_plugin_get_capabilities (input_plugin_t *this_gen)
{
- uint32_t ret =
- INPUT_CAP_AUDIOLANG | INPUT_CAP_BLOCK |
+ uint32_t ret =
+ INPUT_CAP_AUDIOLANG | INPUT_CAP_BLOCK |
INPUT_CAP_CHAPTERS | INPUT_CAP_PREVIEW |
(my_vcd.player.i_still ? 0: INPUT_CAP_SEEKABLE) |
INPUT_CAP_SPULANG;
@@ -618,14 +618,14 @@ vcd_plugin_get_capabilities (input_plugin_t *this_gen)
# if FINISHED
/* If needed, will fill out later... */
-static void
+static void
vcd_read_ahead_cb(void *this_gen, xine_cfg_entry_t *entry)
{
return;
}
#endif
-static void
+static void
vcd_flush_buffers(void)
{
_x_demux_flush_engine(my_vcd.stream);
@@ -636,11 +636,11 @@ vcd_flush_buffers(void)
read nlen bytes, return number of bytes read.
*/
-static off_t
+static off_t
vcd_plugin_read (input_plugin_t *this_gen, char *buf, const off_t nlen)
{
- dbg_print((INPUT_DBG_CALL|INPUT_DBG_EXT),
+ dbg_print((INPUT_DBG_CALL|INPUT_DBG_EXT),
"Called with nlen %u\n", (unsigned int) nlen);
/* FIXME: Tricking the demux_mpeg_block plugin */
@@ -652,7 +652,7 @@ vcd_plugin_read (input_plugin_t *this_gen, char *buf, const off_t nlen)
}
/* Allocate and return a no-op buffer. This signals the outside
- to do nothing, but in contrast to returning NULL, it doesn't
+ to do nothing, but in contrast to returning NULL, it doesn't
mean the stream has ended. We use this say for still frames.
*/
#define RETURN_NOOP_BUF \
@@ -677,8 +677,8 @@ vcd_plugin_read (input_plugin_t *this_gen, char *buf, const off_t nlen)
function
*/
static buf_element_t *
-vcd_plugin_read_block (input_plugin_t *this_gen, fifo_buffer_t *fifo,
- const off_t i_len)
+vcd_plugin_read_block (input_plugin_t *this_gen, fifo_buffer_t *fifo,
+ const off_t i_len)
{
vcd_input_plugin_t *vcd_input_plugin= (vcd_input_plugin_t *) this_gen;
vcdplayer_t *p_vcdplayer = &my_vcd.player;
@@ -718,7 +718,7 @@ vcd_plugin_read_block (input_plugin_t *this_gen, fifo_buffer_t *fifo,
SLEEP_AND_HANDLE_EVENTS;
}
}
-
+
read_block:
switch (vcdplayer_read(p_vcdplayer, data, i_len)) {
@@ -728,37 +728,37 @@ vcd_plugin_read_block (input_plugin_t *this_gen, fifo_buffer_t *fifo,
case READ_ERROR:
/* Some sort of error. */
return NULL;
- case READ_STILL_FRAME:
+ case READ_STILL_FRAME:
{
dbg_print(INPUT_DBG_STILL, "Handled still event wait time %u\n",
p_vcdplayer->i_still);
vcd_input_plugin->pause_end_time = time(NULL) + p_vcdplayer->i_still;
RETURN_NOOP_BUF;
}
-
+
default:
case READ_BLOCK:
/* Read buffer */
p_buf = fifo->buffer_pool_alloc (fifo);
p_buf->type = BUF_DEMUX_BLOCK;
}
-
+
p_buf->content = p_buf->mem;
if (STILL_READING == p_vcdplayer->i_still && 0 == my_vcd.i_old_still) {
- my_vcd.i_old_deinterlace = xine_get_param(my_vcd.stream,
+ my_vcd.i_old_deinterlace = xine_get_param(my_vcd.stream,
XINE_PARAM_VO_DEINTERLACE);
xine_set_param(my_vcd.stream, XINE_PARAM_VO_DEINTERLACE, 0);
- dbg_print(INPUT_DBG_STILL, "going into still, saving deinterlace %d\n",
+ dbg_print(INPUT_DBG_STILL, "going into still, saving deinterlace %d\n",
my_vcd.i_old_deinterlace);
} else if (0 == p_vcdplayer->i_still && 0 != my_vcd.i_old_still) {
- dbg_print(INPUT_DBG_STILL,
+ dbg_print(INPUT_DBG_STILL,
"going out of still, restoring deinterlace\n");
xine_set_param(my_vcd.stream, XINE_PARAM_VO_DEINTERLACE,
my_vcd.i_old_deinterlace);
}
my_vcd.i_old_still = p_vcdplayer->i_still;
-
+
/* Ideally this should probably be i_len. */
memcpy (p_buf->mem, data, M2F2_SECTOR_SIZE);
@@ -768,12 +768,12 @@ vcd_plugin_read_block (input_plugin_t *this_gen, fifo_buffer_t *fifo,
/*!
From xine plugin spec:
- seek position, return new position
+ seek position, return new position
if seeking failed, -1 is returned
*/
-static off_t
-vcd_plugin_seek (input_plugin_t *this_gen, off_t offset, int origin)
+static off_t
+vcd_plugin_seek (input_plugin_t *this_gen, off_t offset, int origin)
{
return vcdio_seek (&my_vcd.player, offset, origin);
}
@@ -792,7 +792,7 @@ static off_t old_get_length = 0;
static vcdplayer_slider_length_t old_slider_length;
/* This routine is called a bit. Make reasonably fast. */
-static off_t
+static off_t
vcd_plugin_get_length (input_plugin_t *this_gen) {
vcd_input_plugin_t *ip= (vcd_input_plugin_t *) this_gen;
@@ -801,7 +801,7 @@ vcd_plugin_get_length (input_plugin_t *this_gen) {
int n = vcdplayer->play_item.num;
if (vcdplayer->play_item.num == old_play_item.num
- && vcdplayer->play_item.type == old_play_item.type
+ && vcdplayer->play_item.type == old_play_item.type
&& vcdplayer->slider_length == old_slider_length)
return old_get_length;
@@ -833,7 +833,7 @@ vcd_plugin_get_length (input_plugin_t *this_gen) {
/* This is the only situation where the size of the current play item
is not static. It depends what the current play-item is.
*/
- old_get_length = (vcdplayer->end_lsn - vcdplayer->origin_lsn) *
+ old_get_length = (vcdplayer->end_lsn - vcdplayer->origin_lsn) *
M2F2_SECTOR_SIZE;
return old_get_length;
break;
@@ -843,11 +843,11 @@ vcd_plugin_get_length (input_plugin_t *this_gen) {
/* FIXME? */
return -1;
}
-
+
if (n >= 0 && n < ip->class->num_mrls) {
old_get_length = ip->class->mrls[n]->size;
- dbg_print(INPUT_DBG_MRL, "item: %u, slot %u, size %ld\n",
- vcdplayer->play_item.num,
+ dbg_print(INPUT_DBG_MRL, "item: %u, slot %u, size %ld\n",
+ vcdplayer->play_item.num,
(unsigned int) n, (long int) old_get_length);
}
return old_get_length;
@@ -858,7 +858,7 @@ vcd_plugin_get_length (input_plugin_t *this_gen) {
* get current position in stream.
*
*/
-static off_t
+static off_t
vcd_plugin_get_current_pos (input_plugin_t *this_gen){
// trace_print("Called\n");
return (vcd_plugin_seek (this_gen, 0, SEEK_CUR));
@@ -869,7 +869,7 @@ vcd_plugin_get_current_pos (input_plugin_t *this_gen){
* From xine plugin spec:
* return block size of input source (if supported, 0 otherwise)
*/
-static uint32_t
+static uint32_t
vcd_plugin_get_blocksize (input_plugin_t *this_gen) {
dbg_print((INPUT_DBG_CALL|INPUT_DBG_EXT), "called\n");
@@ -885,7 +885,7 @@ vcd_plugin_get_blocksize (input_plugin_t *this_gen) {
*/
static xine_mrl_t **
-vcd_class_get_dir (input_class_t *this_gen, const char *filename,
+vcd_class_get_dir (input_class_t *this_gen, const char *filename,
int *num_files) {
char intended_vcd_device[MAX_DEVICE_LEN+1]= { '\0', };
@@ -897,7 +897,7 @@ vcd_class_get_dir (input_class_t *this_gen, const char *filename,
bool used_default;
if (filename == NULL) {
- dbg_print((INPUT_DBG_CALL|INPUT_DBG_EXT),
+ dbg_print((INPUT_DBG_CALL|INPUT_DBG_EXT),
"called with NULL\n");
if ( class->mrls != NULL && NULL != class->mrls[0] ) goto have_mrls;
@@ -906,12 +906,12 @@ vcd_class_get_dir (input_class_t *this_gen, const char *filename,
}
} else {
char *mrl = strdup(filename);
- dbg_print((INPUT_DBG_CALL|INPUT_DBG_EXT),
+ dbg_print((INPUT_DBG_CALL|INPUT_DBG_EXT),
"called with %s\n", filename);
if (!vcd_get_default_device(class, true)) goto no_mrls;
- if (!vcd_parse_mrl(class->vcd_device, mrl,
- intended_vcd_device, &itemid,
- vcdplayer->default_autoplay, &used_default)) {
+ if (!vcd_parse_mrl(class->vcd_device, mrl,
+ intended_vcd_device, &itemid,
+ vcdplayer->default_autoplay, &used_default)) {
free (mrl);
goto no_mrls;
}
@@ -923,17 +923,17 @@ vcd_class_get_dir (input_class_t *this_gen, const char *filename,
return class->mrls;
no_mrls:
- *num_files = 0;
- return NULL;
+ *num_files = 0;
+ return NULL;
}
#define FREE_AND_NULL(ptr) if (NULL != ptr) free(ptr); ptr = NULL;
static void
-vcd_close(vcd_input_class_t *class)
+vcd_close(vcd_input_class_t *class)
{
xine_free_mrls(&(class->num_mrls), class->mrls);
- FREE_AND_NULL(my_vcd.mrl);
+ FREE_AND_NULL(my_vcd.mrl);
if (my_vcd.player.b_opened)
vcdio_close(&my_vcd.player);
}
@@ -945,15 +945,15 @@ vcd_close(vcd_input_class_t *class)
*
* returns 0 for temporary failures
*/
-static int
-vcd_class_eject_media (input_class_t *this_gen)
+static int
+vcd_class_eject_media (input_class_t *this_gen)
{
int ret;
CdIo_t *cdio=vcdinfo_get_cd_image(my_vcd.player.vcd);
-
+
dbg_print((INPUT_DBG_CALL|INPUT_DBG_EXT), "called\n");
if (NULL == cdio) return 0;
-
+
ret = cdio_eject_media(&cdio);
if ((ret == 0) || (ret == 2)) {
if (my_vcd.player.b_opened)
@@ -966,8 +966,8 @@ vcd_class_eject_media (input_class_t *this_gen)
* From spec:
* return current MRL
*/
-static const char *
-vcd_plugin_get_mrl (input_plugin_t *this_gen)
+static const char *
+vcd_plugin_get_mrl (input_plugin_t *this_gen)
{
vcd_input_plugin_t *t = (vcd_input_plugin_t *) this_gen;
vcdplayer_t *vcdplayer = &my_vcd.player;
@@ -985,13 +985,13 @@ vcd_plugin_get_mrl (input_plugin_t *this_gen)
if (-2 == offset) {
/* Bad type. */
- LOG_ERR("%s %d", _("Invalid current entry type"),
+ LOG_ERR("%s %d", _("Invalid current entry type"),
vcdplayer->play_item.type);
return "";
} else {
n += offset;
if (n < t->class->num_mrls) {
- dbg_print(INPUT_DBG_CALL, "Called, returning %s\n",
+ dbg_print(INPUT_DBG_CALL, "Called, returning %s\n",
t->class->mrls[n]->mrl);
return t->class->mrls[n]->mrl;
} else {
@@ -1000,12 +1000,12 @@ vcd_plugin_get_mrl (input_plugin_t *this_gen)
}
}
-/*
+/*
Handle all queued keyboard/mouse events. Return TRUE if this causes
a change in the play item.
*/
static bool
-vcd_handle_events (void)
+vcd_handle_events (void)
{
vcdplayer_t *p_vcdplayer = &my_vcd.player;
xine_event_t *p_event;
@@ -1013,7 +1013,7 @@ vcd_handle_events (void)
/* What you add to the last input number entry. It accumulates all of
the 10_ADD keypresses */
- static unsigned int number_addend = 0;
+ static unsigned int number_addend = 0;
while ((p_event = xine_event_get(my_vcd.event_queue))) {
@@ -1023,14 +1023,14 @@ vcd_handle_events (void)
switch(p_event->type) {
case XINE_EVENT_INPUT_NUMBER_10_ADD:
- number_addend += 10;
- dbg_print(INPUT_DBG_EVENT, "10 added to number. Is now: %d\n",
+ number_addend += 10;
+ dbg_print(INPUT_DBG_EVENT, "10 added to number. Is now: %d\n",
number_addend);
break;
/* The method used below is oblivious to XINE_EVENT_INPUT encodings
- In particular, it does not assume XINE_EVENT_INPUT_NUMBE_9 =
- XINE_EVENT_INPUT_NUMBER_0 + 9.
+ In particular, it does not assume XINE_EVENT_INPUT_NUMBE_9 =
+ XINE_EVENT_INPUT_NUMBER_0 + 9.
*/
case XINE_EVENT_INPUT_NUMBER_9:
digit_entered++;
@@ -1054,7 +1054,7 @@ vcd_handle_events (void)
{
number_addend *= 10;
number_addend += digit_entered;
- dbg_print(INPUT_DBG_EVENT,
+ dbg_print(INPUT_DBG_EVENT,
"digit added number is now: %d\n", number_addend);
break;
}
@@ -1063,65 +1063,65 @@ vcd_handle_events (void)
vcdplayer_debug = number_addend;
number_addend = 0;
break;
- case XINE_EVENT_INPUT_MENU1:
+ case XINE_EVENT_INPUT_MENU1:
case XINE_EVENT_INPUT_MENU2:
- case XINE_EVENT_INPUT_NEXT:
+ case XINE_EVENT_INPUT_NEXT:
case XINE_EVENT_INPUT_PREVIOUS:
{
int num = number_addend;
vcdinfo_itemid_t itemid;
-
+
number_addend = 0;
-
+
/* If no number was given it's really the same as 1, not 0. */
if (num == 0) num++;
-
- dbg_print(INPUT_DBG_EVENT,
- "RETURN/NEXT/PREV/DEFAULT (%d) iteration count %d\n",
+
+ dbg_print(INPUT_DBG_EVENT,
+ "RETURN/NEXT/PREV/DEFAULT (%d) iteration count %d\n",
p_event->type, num);
for ( ; num > 0; num--) {
itemid = p_vcdplayer->play_item;
switch (p_event->type) {
- case XINE_EVENT_INPUT_MENU1:
+ case XINE_EVENT_INPUT_MENU1:
if (p_vcdplayer->return_entry == VCDINFO_INVALID_ENTRY) {
LOG_MSG("%s\n", _("selection has no RETURN entry"));
return false;
}
itemid.num = p_vcdplayer->return_entry;
- dbg_print((INPUT_DBG_PBC|INPUT_DBG_EVENT),
+ dbg_print((INPUT_DBG_PBC|INPUT_DBG_EVENT),
"RETURN to %d\n", itemid.num);
/* Don't loop around -- doesn't make sense to loop a return*/
- num = 0;
+ num = 0;
break;
- case XINE_EVENT_INPUT_MENU2:
+ case XINE_EVENT_INPUT_MENU2:
if (vcdplayer_pbc_is_on(p_vcdplayer)) {
- lid_t lid=vcdinfo_get_multi_default_lid(p_vcdplayer->vcd,
+ lid_t lid=vcdinfo_get_multi_default_lid(p_vcdplayer->vcd,
p_vcdplayer->i_lid,
p_vcdplayer->i_lsn);
if (VCDINFO_INVALID_LID != lid) {
itemid.num = lid;
- dbg_print((INPUT_DBG_PBC|INPUT_DBG_EVENT),
+ dbg_print((INPUT_DBG_PBC|INPUT_DBG_EVENT),
"DEFAULT to %d\n", itemid.num);
} else {
- dbg_print((INPUT_DBG_PBC|INPUT_DBG_EVENT),
- "no DEFAULT for LID %d\n",
+ dbg_print((INPUT_DBG_PBC|INPUT_DBG_EVENT),
+ "no DEFAULT for LID %d\n",
p_vcdplayer->i_lid);
}
-
+
/* Don't loop around -- doesn't make sense to loop a return*/
- num = 0;
+ num = 0;
} else {
- /* PBC is not on. "default" selection beginning of current
+ /* PBC is not on. "default" selection beginning of current
selection . Alternative: */
LOG_MSG("%s\n", _("DEFAULT selected, but PBC is not on."));
}
break;
- case XINE_EVENT_INPUT_NEXT:
+ case XINE_EVENT_INPUT_NEXT:
if (p_vcdplayer->next_entry == VCDINFO_INVALID_ENTRY) {
LOG_MSG("%s\n", _("selection has no NEXT entry"));
return false;
- }
+ }
itemid.num = p_vcdplayer->next_entry;
dbg_print(INPUT_DBG_PBC, "NEXT to %d\n", itemid.num);
break;
@@ -1133,7 +1133,7 @@ vcd_handle_events (void)
itemid.num = p_vcdplayer->prev_entry;
dbg_print(INPUT_DBG_PBC, "PREVIOUS to %d\n", itemid.num);
break;
- default:
+ default:
LOG_MSG("%s %d\n", _("Unknown event type: "), p_event->type);
}
_x_demux_flush_engine(my_vcd.stream);
@@ -1147,13 +1147,13 @@ vcd_handle_events (void)
/* In the future will have to test to see if we are in a menu
selection. But if not... */
vcdinfo_itemid_t itemid = p_vcdplayer->play_item;
-
+
itemid.num = number_addend;
number_addend = 0;
-
+
if (vcdplayer_pbc_is_on(p_vcdplayer)) {
- lid_t i_next=vcdinfo_selection_get_lid(p_vcdplayer->vcd,
- p_vcdplayer->i_lid,
+ lid_t i_next=vcdinfo_selection_get_lid(p_vcdplayer->vcd,
+ p_vcdplayer->i_lid,
itemid.num);
if (VCDINFO_INVALID_LID != i_next) {
itemid.num = i_next;
@@ -1164,30 +1164,30 @@ vcd_handle_events (void)
}
break;
}
- case XINE_EVENT_INPUT_MOUSE_BUTTON:
+ case XINE_EVENT_INPUT_MOUSE_BUTTON:
if (my_vcd.stream)
{
xine_input_data_t *p_input = p_event->data;
- if (p_input->button == 1)
+ if (p_input->button == 1)
{
#if LIBVCD_VERSION_NUM >= 23
int i_selection;
#endif
- dbg_print(INPUT_DBG_EVENT,
- "Button to x: %d, y: %d, scaled x: %d, scaled y %d\n",
+ dbg_print(INPUT_DBG_EVENT,
+ "Button to x: %d, y: %d, scaled x: %d, scaled y %d\n",
p_input->x, p_input->y,
p_input->x * 255 / p_vcdplayer->max_x,
p_input->y * 255 / p_vcdplayer->max_y);
-
+
#if LIBVCD_VERSION_NUM >= 23
/* xine_dvd_send_button_update(this, 1); */
-
+
if (my_vcd.b_mouse_in)
send_mouse_enter_leave_event(&my_vcd, false);
- i_selection = vcdinfo_get_area_selection(p_vcdplayer->vcd,
- p_vcdplayer->i_lid,
+ i_selection = vcdinfo_get_area_selection(p_vcdplayer->vcd,
+ p_vcdplayer->i_lid,
p_input->x,
p_input->y,
p_vcdplayer->max_x,
@@ -1196,8 +1196,8 @@ vcd_handle_events (void)
if (vcdplayer_pbc_is_on(p_vcdplayer)) {
vcdinfo_itemid_t itemid = p_vcdplayer->play_item;
- lid_t i_next=vcdinfo_selection_get_lid(p_vcdplayer->vcd,
- p_vcdplayer->i_lid,
+ lid_t i_next=vcdinfo_selection_get_lid(p_vcdplayer->vcd,
+ p_vcdplayer->i_lid,
i_selection);
if (VCDINFO_INVALID_LID != i_next) {
itemid.num = i_next;
@@ -1210,33 +1210,33 @@ vcd_handle_events (void)
}
}
break;
- case XINE_EVENT_INPUT_BUTTON_FORCE:
+ case XINE_EVENT_INPUT_BUTTON_FORCE:
break;
- case XINE_EVENT_INPUT_MOUSE_MOVE:
- if (my_vcd.stream)
+ case XINE_EVENT_INPUT_MOUSE_MOVE:
+ if (my_vcd.stream)
{
xine_input_data_t *p_input = p_event->data;
#if LIBVCD_VERSION_NUM >= 23
- int32_t i_selection = vcdinfo_get_area_selection(p_vcdplayer->vcd,
- p_vcdplayer->i_lid,
+ int32_t i_selection = vcdinfo_get_area_selection(p_vcdplayer->vcd,
+ p_vcdplayer->i_lid,
p_input->x,
p_input->y,
p_vcdplayer->max_x,
p_vcdplayer->max_y);
- dbg_print(INPUT_DBG_EVENT, "Move to x: %d, y: %d\n",
+ dbg_print(INPUT_DBG_EVENT, "Move to x: %d, y: %d\n",
p_input->x, p_input->y);
-
+
if (my_vcd.i_mouse_button != i_selection) {
- dbg_print(INPUT_DBG_EVENT, "Old selection: %d, selection: %d\n",
+ dbg_print(INPUT_DBG_EVENT, "Old selection: %d, selection: %d\n",
my_vcd.i_mouse_button, i_selection);
my_vcd.i_mouse_button = i_selection;
- if (i_selection < 0)
+ if (i_selection < 0)
send_mouse_enter_leave_event(&my_vcd, false);
- else
+ else
send_mouse_enter_leave_event(&my_vcd, true);
}
#else
- dbg_print(INPUT_DBG_EVENT, "Move to x: %d, y: %d\n",
+ dbg_print(INPUT_DBG_EVENT, "Move to x: %d, y: %d\n",
p_input->x, p_input->y);
#endif
}
@@ -1267,19 +1267,19 @@ vcd_handle_events (void)
request optional data from input plugin.
*/
-static int
-vcd_get_optional_data (input_plugin_t *this_gen,
+static int
+vcd_get_optional_data (input_plugin_t *this_gen,
void *data, int data_type) {
- dbg_print( (INPUT_DBG_CALL|INPUT_DBG_EXT),
+ dbg_print( (INPUT_DBG_CALL|INPUT_DBG_EXT),
"called with %d\n", data_type);
if (NULL == my_vcd.stream) return INPUT_OPTIONAL_UNSUPPORTED;
/* Fill this out more fully... */
switch(data_type) {
-
- case INPUT_OPTIONAL_DATA_AUDIOLANG:
+
+ case INPUT_OPTIONAL_DATA_AUDIOLANG:
{
uint8_t channel;
channel = _x_get_audio_channel(my_vcd.stream);
@@ -1303,8 +1303,8 @@ vcd_get_optional_data (input_plugin_t *this_gen,
}
return INPUT_OPTIONAL_SUCCESS;
}
-
- case INPUT_OPTIONAL_DATA_SPULANG:
+
+ case INPUT_OPTIONAL_DATA_SPULANG:
{
/*uint16_t lang;*/
int8_t channel;
@@ -1315,12 +1315,12 @@ vcd_get_optional_data (input_plugin_t *this_gen,
} else {
sprintf(data, "%1d", channel);
}
-
+
}
default: ;
}
-
+
return INPUT_OPTIONAL_UNSUPPORTED;
}
@@ -1338,7 +1338,7 @@ vcd_get_optional_data (input_plugin_t *this_gen,
*/
static char **
-vcd_class_get_autoplay_list (input_class_t *this_gen, int *num_files)
+vcd_class_get_autoplay_list (input_class_t *this_gen, int *num_files)
{
vcd_input_class_t *class = (vcd_input_class_t *) this_gen;
static char *filelist[MAX_DIR_ENTRIES];
@@ -1351,9 +1351,9 @@ vcd_class_get_autoplay_list (input_class_t *this_gen, int *num_files)
} else {
int i;
int size = 0;
- vcdinfo_item_enum_t itemtype =
+ vcdinfo_item_enum_t itemtype =
autoplay2itemtype[my_vcd.player.default_autoplay];
-
+
int offset = vcd_get_mrl_type_offset(&my_vcd, itemtype, &size);
/* A VCD is not required to have PBC or LID's, default to entry if
@@ -1364,7 +1364,7 @@ vcd_class_get_autoplay_list (input_class_t *this_gen, int *num_files)
offset = vcd_get_mrl_type_offset(&my_vcd, itemtype, &size);
}
- /* This is because entries start at 0 while other playable units
+ /* This is because entries start at 0 while other playable units
start at 1. Can remove the below when everything has the same
origin.
*/
@@ -1385,14 +1385,14 @@ vcd_class_get_autoplay_list (input_class_t *this_gen, int *num_files)
}
/*!
- Things that need to be done when a stream is closed.
+ Things that need to be done when a stream is closed.
*/
-static void
-vcd_plugin_dispose(input_plugin_t *this_gen)
+static void
+vcd_plugin_dispose(input_plugin_t *this_gen)
{
/* Not sure there's much more to do here...
- In open_plugin we are given a stream which
+ In open_plugin we are given a stream which
we save...
*/
dbg_print((INPUT_DBG_CALL|INPUT_DBG_EXT), "called\n");
@@ -1408,10 +1408,10 @@ vcd_plugin_dispose(input_plugin_t *this_gen)
static vcd_log_handler_t gl_default_vcd_log_handler = NULL;
static cdio_log_handler_t gl_default_cdio_log_handler = NULL;
-/*! This routine is called by libvcd routines on error.
+/*! This routine is called by libvcd routines on error.
Setup is done by init_input_plugin.
*/
-static void
+static void
vcd_log_handler (vcd_log_level_t level, const char message[])
{
switch (level) {
@@ -1428,19 +1428,19 @@ vcd_log_handler (vcd_log_level_t level, const char message[])
LOG_ERR("%s", message);
break;
default:
- LOG_ERR("%s\n%s %d",
- message,
- _("The above message had unknown vcdimager log level"),
+ LOG_ERR("%s\n%s %d",
+ message,
+ _("The above message had unknown vcdimager log level"),
level);
}
-
+
/* gl_default_vcd_log_handler (level, message); */
}
-/*! This routine is called by libcdio routines on error.
+/*! This routine is called by libcdio routines on error.
Setup is done by init_input_plugin.
*/
-static void
+static void
cdio_log_handler (cdio_log_level_t level, const char message[])
{
switch (level) {
@@ -1453,10 +1453,10 @@ cdio_log_handler (cdio_log_level_t level, const char message[])
}
}
-/*! This routine is when xine is not around.
+/*! This routine is when xine is not around.
Setup is done by vcd_class_dispose.
*/
-static void
+static void
uninit_log_handler (vcd_log_level_t level, const char message[])
{
switch (level) {
@@ -1476,25 +1476,25 @@ uninit_log_handler (vcd_log_level_t level, const char message[])
break;
default:
fprintf(stderr, "UNKNOWN ERROR: %s\n%s %d",
- message,
- _("The above message had unknown vcdimager log level"),
+ message,
+ _("The above message had unknown vcdimager log level"),
level);
}
-
+
/* gl_default_vcd_log_handler (level, message); */
}
/*!
- Things that need to be done the vcd plugin is closed.
+ Things that need to be done the vcd plugin is closed.
*/
-static void
+static void
vcd_class_dispose (input_class_t *this_gen) {
vcd_input_class_t *class = (vcd_input_class_t *) this_gen;
class->xine->config->unregister_callback(class->xine->config,
"media.vcd.device");
gl_default_vcd_log_handler = vcd_log_set_handler (uninit_log_handler);
- gl_default_cdio_log_handler =
+ gl_default_cdio_log_handler =
cdio_log_set_handler ((cdio_log_handler_t) uninit_log_handler);
dbg_print((INPUT_DBG_CALL|INPUT_DBG_EXT), "called\n");
@@ -1503,22 +1503,22 @@ vcd_class_dispose (input_class_t *this_gen) {
}
/* Update the xine player title text. */
-static void
-vcd_update_title_display(void)
+static void
+vcd_update_title_display(void)
{
xine_event_t uevent;
xine_ui_data_t data;
char *title_str;
-
- title_str = vcdplayer_format_str(&my_vcd.player,
+
+ title_str = vcdplayer_format_str(&my_vcd.player,
my_vcd.v_config.title_format);
meta_info_assign(XINE_META_INFO_TITLE, my_vcd.stream, title_str);
meta_info_assign(XINE_META_INFO_COMMENT, my_vcd.stream,
- vcdplayer_format_str(&my_vcd.player,
+ vcdplayer_format_str(&my_vcd.player,
my_vcd.v_config.comment_format));
- stream_info_assign(XINE_STREAM_INFO_VIDEO_HAS_STILL, my_vcd.stream,
+ stream_info_assign(XINE_STREAM_INFO_VIDEO_HAS_STILL, my_vcd.stream,
my_vcd.player.i_still);
/* Set_str title/chapter display */
@@ -1536,8 +1536,8 @@ vcd_update_title_display(void)
}
#if LIBVCD_VERSION_NUM >= 23
-static void
-send_mouse_enter_leave_event(vcd_input_plugin_t *p_this, bool b_mouse_in)
+static void
+send_mouse_enter_leave_event(vcd_input_plugin_t *p_this, bool b_mouse_in)
{
if (b_mouse_in && p_this->b_mouse_in) {
/* Set up to enter the following "if" statement. */
@@ -1547,16 +1547,16 @@ send_mouse_enter_leave_event(vcd_input_plugin_t *p_this, bool b_mouse_in)
if (b_mouse_in != p_this->b_mouse_in) {
xine_event_t event;
xine_spu_button_t spu_event;
-
+
spu_event.direction = b_mouse_in ? 1 : 0;
spu_event.button = p_this->i_mouse_button;
-
+
event.type = XINE_EVENT_SPU_BUTTON;
event.stream = p_this->stream;
event.data = &spu_event;
event.data_length = sizeof(spu_event);
xine_event_send(p_this->stream, &event);
-
+
p_this->b_mouse_in = b_mouse_in;
}
@@ -1564,22 +1564,22 @@ send_mouse_enter_leave_event(vcd_input_plugin_t *p_this, bool b_mouse_in)
p_this->i_mouse_button = -1;
}
#endif
-
-/*
- Not much special initialization needed here. All of the initialization
+
+/*
+ Not much special initialization needed here. All of the initialization
is either done in the class or when we have an actual MRL we want
to deal with.
*/
-static int
+static int
vcd_plugin_open (input_plugin_t *this_gen ) {
vcd_input_class_t *class = (vcd_input_class_t *) this_gen->input_class;
gl_default_vcd_log_handler = vcd_log_set_handler (vcd_log_handler);
gl_default_cdio_log_handler = cdio_log_set_handler (cdio_log_handler);
- /* actually, this is also done by class initialization. But just in
+ /* actually, this is also done by class initialization. But just in
case... */
- class->ip = &my_vcd;
+ class->ip = &my_vcd;
my_vcd.i_old_still = 0;
return 1;
@@ -1590,17 +1590,17 @@ vcd_plugin_open (input_plugin_t *this_gen ) {
routine is called, xine-lib can read blocks from the thing
specified by the MRL, set the position of the thing specified by the
MRL, get its size or read its current position...
-
+
See vcdplayer_parses_mrl for the for the format that a valid MRL can take.
- Return values:
+ Return values:
pointer to input plugin
NULL on failure
*/
static input_plugin_t *
vcd_class_get_instance (input_class_t *class_gen, xine_stream_t *stream,
- const char *mrl)
+ const char *mrl)
{
vcd_input_class_t *class = (vcd_input_class_t *) class_gen;
@@ -1609,9 +1609,9 @@ vcd_class_get_instance (input_class_t *class_gen, xine_stream_t *stream,
char *check_mrl=NULL;
bool used_default;
- if (mrl == NULL)
+ if (mrl == NULL)
check_mrl = strdup(MRL_PREFIX);
- else
+ else
check_mrl = strdup(mrl);
dbg_print((INPUT_DBG_CALL|INPUT_DBG_EXT), "called with %s\n", mrl);
@@ -1622,7 +1622,7 @@ vcd_class_get_instance (input_class_t *class_gen, xine_stream_t *stream,
vcd_get_default_device(class, false);
- if (!vcd_parse_mrl(class->vcd_device, check_mrl,
+ if (!vcd_parse_mrl(class->vcd_device, check_mrl,
intended_vcd_device, &itemid,
my_vcd.player.default_autoplay, &used_default)) {
dbg_print(INPUT_DBG_MRL, "parsing MRL %s failed\n", check_mrl);
@@ -1642,32 +1642,32 @@ vcd_class_get_instance (input_class_t *class_gen, xine_stream_t *stream,
my_vcd.player.user_data = (void *) class;
/* Do we set PBC (via LID) on? */
- my_vcd.player.i_lid =
- ( VCDINFO_ITEM_TYPE_LID == itemid.type
+ my_vcd.player.i_lid =
+ ( VCDINFO_ITEM_TYPE_LID == itemid.type
&& my_vcd.player.i_lids > itemid.num )
? itemid.num
: VCDINFO_INVALID_ENTRY;
if ( VCDINFO_ITEM_TYPE_LID == itemid.type && used_default) {
- /* LID was selected automatically but we don't have PBC for this VCD.
+ /* LID was selected automatically but we don't have PBC for this VCD.
So silently change LID to track and continue.
*/
itemid.type=VCDINFO_ITEM_TYPE_TRACK;
}
- if ( 0==itemid.num
- && ( (VCDINFO_ITEM_TYPE_LID == itemid.type)
+ if ( 0==itemid.num
+ && ( (VCDINFO_ITEM_TYPE_LID == itemid.type)
|| (VCDINFO_ITEM_TYPE_TRACK == itemid.type) ) )
itemid.num = 1;
- dbg_print(INPUT_DBG_PBC, "Jumping to NUM >%i<, type >%i<\n",
+ dbg_print(INPUT_DBG_PBC, "Jumping to NUM >%i<, type >%i<\n",
itemid.num, itemid.type);
vcd_set_meta_info(&my_vcd);
vcdplayer_play(&my_vcd.player, itemid);
-
- dbg_print(INPUT_DBG_MRL, "Successfully opened MRL %s.\n",
+
+ dbg_print(INPUT_DBG_MRL, "Successfully opened MRL %s.\n",
my_vcd.mrl);
free (check_mrl);
@@ -1706,30 +1706,30 @@ vcd_class_get_instance (input_class_t *class_gen, xine_stream_t *stream,
var = strdup(entry->str_value); \
}
-VCD_STR_CALLBACK(vcd_default_dev_changed_cb,
+VCD_STR_CALLBACK(vcd_default_dev_changed_cb,
my_vcd.class->vcd_device)
-VCD_STR_CALLBACK(vcd_title_format_changed_cb,
+VCD_STR_CALLBACK(vcd_title_format_changed_cb,
my_vcd.v_config.title_format)
-VCD_STR_CALLBACK(vcd_comment_format_changed_cb,
+VCD_STR_CALLBACK(vcd_comment_format_changed_cb,
my_vcd.v_config.comment_format)
VCD_NUM_CALLBACK(vcd_show_rejected_cb, show_rejected)
VCD_NUM_CALLBACK(vcd_autoadvance_cb, autoadvance)
-VCD_ENUM_CALLBACK(vcd_slider_length_cb, vcdplayer_slider_length_t,
+VCD_ENUM_CALLBACK(vcd_slider_length_cb, vcdplayer_slider_length_t,
slider_length)
VCD_ENUM_CALLBACK(vcd_default_autoplay_cb, vcdinfo_item_enum_t,
default_autoplay)
-static void
-vcd_debug_cb(void *this_gen, xine_cfg_entry_t *entry)
+static void
+vcd_debug_cb(void *this_gen, xine_cfg_entry_t *entry)
{
dbg_print(INPUT_DBG_CALL, "Called setting %d\n", entry->num_value);
- vcdplayer_debug = entry->num_value;
+ vcdplayer_debug = entry->num_value;
}
static void *
@@ -1751,7 +1751,7 @@ vcd_init (xine_t *xine, void *data)
class->input_class.get_instance = vcd_class_get_instance;
class->input_class.identifier = SHORT_PLUGIN_NAME;
class->input_class.description = N_("Video CD plugin with PBC and support for: (X)VCD, (X)SVCD, HQVCD, CVD ... ");
- class->input_class.get_dir = vcd_class_get_dir;
+ class->input_class.get_dir = vcd_class_get_dir;
class->input_class.get_autoplay_list = vcd_class_get_autoplay_list;
class->input_class.dispose = vcd_class_dispose;
class->input_class.eject_media = vcd_class_eject_media;
@@ -1767,9 +1767,9 @@ vcd_init (xine_t *xine, void *data)
my_vcd.player.log_msg = (generic_fn) &xine_log_msg;
my_vcd.player.force_redisplay = &vcd_force_redisplay;
my_vcd.player.set_aspect_ratio = &vcd_set_aspect_ratio;
-
+
/*-------------------------------------------------------------
- Playback control-specific fields
+ Playback control-specific fields
--------------------------------------------------------------*/
my_vcd.player.i_lid = VCDINFO_INVALID_ENTRY;
@@ -1785,58 +1785,58 @@ vcd_init (xine_t *xine, void *data)
my_vcd.player.prev_entry = -1;
my_vcd.player.return_entry = -1;
my_vcd.player.default_entry = -1;
-
+
/*--------------------------------------------------------------
Configuration variables
---------------------------------------------------------------*/
- {
+ {
/*Note: these labels have to be listed in the same order as the
- enumeration vcdplayer_autoplay_t in vcdplayer.h.
+ enumeration vcdplayer_autoplay_t in vcdplayer.h.
*/
- static const char *const autoplay_modes[] =
+ static const char *const autoplay_modes[] =
{ "MPEG track", "entry", "segment", "playback-control item", NULL };
-
+
/*Note: these labels have to be listed in the same order as the
- enumeration vcdplayer_slider_length_t in vcdplayer.h.
+ enumeration vcdplayer_slider_length_t in vcdplayer.h.
*/
- static const char *const length_reporting_modes[] =
+ static const char *const length_reporting_modes[] =
{ "auto", "track", "entry", NULL };
-
- my_vcd.player.default_autoplay =
- config->register_enum(config,
+
+ my_vcd.player.default_autoplay =
+ config->register_enum(config,
"media.vcd.autoplay",
VCDPLAYER_AUTOPLAY_PBC,
(char **) autoplay_modes,
_("VCD default type to use on autoplay"),
_("The VCD play unit to use when none is specified in an MRL, e.g. "
"vcd:// or vcd:///dev/dvd:"),
- 10,
+ 10,
vcd_default_autoplay_cb, class);
-
-
- class->vcd_device =
- strdup (config->register_filename(config,
+
+
+ class->vcd_device =
+ strdup (config->register_filename(config,
"media.vcd.device",
"", XINE_CONFIG_STRING_IS_DEVICE_NAME,
_("CD-ROM drive used for VCD when none given"),
-_("What to use if no drive specified. If the setting is empty, xine will scan for CD drives."),
+_("What to use if no drive specified. If the setting is empty, xine will scan for CD drives."),
20,
- vcd_default_dev_changed_cb,
+ vcd_default_dev_changed_cb,
(void *) class));
my_vcd.player.slider_length =
- config->register_enum(config,
+ config->register_enum(config,
"media.vcd.length_reporting",
- VCDPLAYER_SLIDER_LENGTH_AUTO,
+ VCDPLAYER_SLIDER_LENGTH_AUTO,
(char **) length_reporting_modes,
_("VCD position slider range"),
_("range that the stream playback position slider represents playing a VCD."),
- 10,
+ 10,
vcd_slider_length_cb, NULL);
#if READAHEAD_FINISHED
- my_vcd.player.readahead =
+ my_vcd.player.readahead =
config->register_bool(config, "vcd.use_readahead",
(int) false,
_("VCD read-ahead caching?"),
@@ -1846,29 +1846,29 @@ _("range that the stream playback position slider represents playing a VCD."),
vcd_read_ahead_cb, NULL);
#endif
- my_vcd.player.autoadvance =
- config->register_bool(config,
+ my_vcd.player.autoadvance =
+ config->register_bool(config,
"media.vcd.autoadvance",
(int) true,
_("automatically advance VCD track/entry"),
_("If enabled, we should automatically advance to the next entry or track. Used only when playback control (PBC) is disabled."),
- 10,
- vcd_autoadvance_cb,
- NULL);
+ 10,
+ vcd_autoadvance_cb,
+ NULL);
- my_vcd.player.show_rejected =
- config->register_bool(config,
+ my_vcd.player.show_rejected =
+ config->register_bool(config,
"media.vcd.show_rejected",
(int) false,
_("show 'rejected' VCD LIDs"),
_("Some playback list IDs (LIDs) are marked not showable, "
"but you can see them in the MRL list if this is set. Rejected entries "
"are marked with an asterisk (*) appended to the MRL."),
- 10,
- vcd_show_rejected_cb,
- NULL);
+ 10,
+ vcd_show_rejected_cb,
+ NULL);
- my_vcd.v_config.title_format =
+ my_vcd.v_config.title_format =
strdup(config->register_string(config,
"media.vcd.title_format",
"%F - %I %N%L%S, disk %c of %C - %v %A",
@@ -1894,7 +1894,7 @@ _("VCD format used in the GUI Title. Similar to the Unix date "
vcd_title_format_changed_cb,
NULL));
- my_vcd.v_config.comment_format =
+ my_vcd.v_config.comment_format =
strdup(config->register_string(config,
"media.vcd.comment_format",
"%P - Track %T",
@@ -1907,8 +1907,8 @@ _("VCD format used in the GUI Title. Similar to the Unix date "
vcd_comment_format_changed_cb,
NULL));
- vcdplayer_debug =
- config->register_num(config,
+ vcdplayer_debug =
+ config->register_num(config,
"media.vcd.debug",
0,
_("VCD debug flag mask"),
@@ -1927,12 +1927,12 @@ _("For tracking down bugs in the VCD plugin. Mask values are:\n"
"2048: Debugging from VCDINFO\n"
),
20,
- vcd_debug_cb,
- class);
+ vcd_debug_cb,
+ class);
}
-
+
gl_default_vcd_log_handler = vcd_log_set_handler (uninit_log_handler);
- gl_default_cdio_log_handler =
+ gl_default_cdio_log_handler =
cdio_log_set_handler ((cdio_log_handler_t) uninit_log_handler);
my_vcd.input_plugin.open = vcd_plugin_open;
@@ -1952,7 +1952,7 @@ _("For tracking down bugs in the VCD plugin. Mask values are:\n"
my_vcd.class = class;
my_vcd.i_mouse_button = -1;
my_vcd.b_mouse_in = false;
-
+
my_vcd.player.psz_source = NULL;
my_vcd.player.b_opened = false;
@@ -1964,11 +1964,11 @@ _("For tracking down bugs in the VCD plugin. Mask values are:\n"
return class;
}
-/*
+/*
Exported plugin catalog entries.
All plugins listing only the current API number break when the API
- number is increased. This is by design.
+ number is increased. This is by design.
Sometimes in the rush to get out a buggy release, the API number is
increased without communication let alone a concern for whether it
@@ -1985,13 +1985,13 @@ _("For tracking down bugs in the VCD plugin. Mask values are:\n"
*/
const plugin_info_t xine_plugin_info[] EXPORTED = {
- /* type, API, "name", version, special_info, init_function */
+ /* type, API, "name", version, special_info, init_function */
{ PLUGIN_INPUT | PLUGIN_MUST_PRELOAD, 18, (char *) SHORT_PLUGIN_NAME,
XINE_VERSION_CODE, NULL, vcd_init },
{ PLUGIN_NONE, 0, (char *) "", 0, NULL, NULL }
};
-/*
+/*
* Local variables:
* c-file-style: "gnu"
* tab-width: 8
diff --git a/src/libreal/real_common.c b/src/libreal/real_common.c
index 6cc1d8785..8f2fcab6b 100644
--- a/src/libreal/real_common.c
+++ b/src/libreal/real_common.c
@@ -1,18 +1,18 @@
/*
* Copyright (C) 2000-2007 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -132,8 +132,8 @@ void _x_real_codecs_init(xine_t *const xine) {
#endif
- real_codecs_path =
- xine->config->register_filename (xine->config, "decoder.external.real_codecs_path",
+ real_codecs_path =
+ xine->config->register_filename (xine->config, "decoder.external.real_codecs_path",
default_real_codecs_path,
XINE_CONFIG_STRING_IS_DIRECTORY_NAME,
_("path to RealPlayer codecs"),
@@ -154,7 +154,7 @@ void *_x_real_codec_open(xine_stream_t *const stream, const char *const path,
const char *const codec_alternate) {
char *codecpath = NULL;
void *codecmodule = NULL;
-
+
asprintf(&codecpath, "%s/%s", path, codec_name);
if ( (codecmodule = dlopen(codecpath, RTLD_NOW)) ) {
free(codecpath);
@@ -178,12 +178,12 @@ void *_x_real_codec_open(xine_stream_t *const stream, const char *const path,
}
_x_message(stream, XINE_MSG_LIBRARY_LOAD_ERROR, codec_name, NULL);
-
+
return NULL;
}
const plugin_info_t xine_plugin_info[] EXPORTED = {
- /* type, API, "name", version, special_info, init_function */
+ /* type, API, "name", version, special_info, init_function */
{ PLUGIN_VIDEO_DECODER | PLUGIN_MUST_PRELOAD, 19, "realvdec", XINE_VERSION_CODE, &dec_info_realvideo, init_realvdec },
{ PLUGIN_AUDIO_DECODER | PLUGIN_MUST_PRELOAD, 16, "realadec", XINE_VERSION_CODE, &dec_info_realaudio, init_realadec },
{ PLUGIN_NONE, 0, "", 0, NULL, NULL }
diff --git a/src/libreal/real_common.h b/src/libreal/real_common.h
index 74dc5e6e2..fb1e103df 100644
--- a/src/libreal/real_common.h
+++ b/src/libreal/real_common.h
@@ -1,18 +1,18 @@
/*
* Copyright (C) 2000-2007 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -26,7 +26,7 @@
#include <xine/xine_internal.h>
/*
- * some fake functions to make real codecs happy
+ * some fake functions to make real codecs happy
* These are, on current date (20070316) needed only for Alpha
* codecs.
* As they are far from being proper replacements, define them only there
diff --git a/src/libreal/xine_real_audio_decoder.c b/src/libreal/xine_real_audio_decoder.c
index 3a4a6a506..50c5268da 100644
--- a/src/libreal/xine_real_audio_decoder.c
+++ b/src/libreal/xine_real_audio_decoder.c
@@ -1,25 +1,25 @@
-/*
+/*
* Copyright (C) 2000-2008 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
*
* thin layer to use real binary-only codecs in xine
*
- * code inspired by work from Florian Schneider for the MPlayer Project
+ * code inspired by work from Florian Schneider for the MPlayer Project
*/
#ifdef HAVE_CONFIG_H
@@ -92,7 +92,7 @@ typedef struct realdec_decoder_s {
uint64_t pts;
int output_open;
-
+
int decoder_ok;
} realdec_decoder_t;
@@ -130,7 +130,7 @@ static int load_syms_linux (realdec_decoder_t *this, const char *const codec_nam
if (!this->raCloseCodec || !this->raDecode || !this->raFlush || !this->raFreeDecoder ||
!this->raGetFlavorProperty || !this->raOpenCodec2 || !this->raSetFlavor ||
/*!raSetDLLAccessPath ||*/ !this->raInitDecoder){
- xprintf (this->stream->xine, XINE_VERBOSITY_LOG,
+ xprintf (this->stream->xine, XINE_VERBOSITY_LOG,
_("libareal: (audio) Cannot resolve symbols - incompatible dll: %s\n"), codec_name);
return 0;
}
@@ -162,7 +162,7 @@ static int init_codec (realdec_decoder_t *this, buf_element_t *buf) {
int coded_frame_size2, data_len, flavor;
int mode;
void *extras;
-
+
/*
* extract header data
*/
@@ -173,13 +173,13 @@ static int init_codec (realdec_decoder_t *this, buf_element_t *buf) {
#ifdef LOG
xine_hexdump (buf->content, buf->size);
#endif
-
+
flavor = _X_BE_16 (buf->content+22);
coded_frame_size = _X_BE_32 (buf->content+24);
codec_data_length= _X_BE_16 (buf->content+40);
coded_frame_size2= _X_BE_16 (buf->content+42);
subpacket_size = _X_BE_16 (buf->content+44);
-
+
this->sps = subpacket_size;
this->w = coded_frame_size2;
this->h = codec_data_length;
@@ -191,8 +191,8 @@ static int init_codec (realdec_decoder_t *this, buf_element_t *buf) {
/* FIXME: */
if (buf->type==BUF_AUDIO_COOK) {
-
- xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
+
+ xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
"libareal: audio header version 4 for COOK audio not supported.\n");
return 0;
}
@@ -210,7 +210,7 @@ static int init_codec (realdec_decoder_t *this, buf_element_t *buf) {
this->block_align= coded_frame_size2;
lprintf ("0x%04x 0x%04x 0x%04x 0x%04x data_len 0x%04x\n",
- subpacket_size, coded_frame_size, codec_data_length,
+ subpacket_size, coded_frame_size, codec_data_length,
coded_frame_size2, data_len);
lprintf ("%d samples/sec, %d bits/sample, %d channels\n",
samples_per_sec, bits_per_sample, num_channels);
@@ -224,7 +224,7 @@ static int init_codec (realdec_decoder_t *this, buf_element_t *buf) {
return 0;
this->block_align = subpacket_size;
break;
-
+
case BUF_AUDIO_ATRK:
_x_meta_info_set_utf8(this->stream, XINE_META_INFO_AUDIOCODEC, "Atrac");
if (!load_syms_linux (this, "atrc.so", "atrc.so.6.0"))
@@ -252,7 +252,7 @@ static int init_codec (realdec_decoder_t *this, buf_element_t *buf) {
break;
default:
- xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
"libareal: error, i don't handle buf type 0x%08x\n", buf->type);
return 0;
}
@@ -267,7 +267,7 @@ static int init_codec (realdec_decoder_t *this, buf_element_t *buf) {
return 0;
}
- {
+ {
ra_init_t init_data;
init_data.samplerate = samples_per_sec;
@@ -285,10 +285,10 @@ static int init_codec (realdec_decoder_t *this, buf_element_t *buf) {
printf ("libareal: extras :\n");
xine_hexdump (init_data.extras, data_len);
#endif
-
+
result = this->raInitDecoder (this->context, &init_data);
if(result){
- xprintf (this->stream->xine, XINE_VERBOSITY_LOG,
+ xprintf (this->stream->xine, XINE_VERBOSITY_LOG,
_("libareal: decoder init failed, error code: 0x%x\n"), result);
return 0;
}
@@ -344,7 +344,7 @@ static int init_codec (realdec_decoder_t *this, buf_element_t *buf) {
return 0;
}
- (this->stream->audio_out->open) (this->stream->audio_out,
+ (this->stream->audio_out->open) (this->stream->audio_out,
this->stream,
bits_per_sample,
samples_per_sec,
@@ -360,7 +360,7 @@ static int init_codec (realdec_decoder_t *this, buf_element_t *buf) {
static void realdec_decode_data (audio_decoder_t *this_gen, buf_element_t *buf) {
realdec_decoder_t *this = (realdec_decoder_t *) this_gen;
- lprintf ("decode_data %d bytes, flags=0x%08x, pts=%"PRId64" ...\n",
+ lprintf ("decode_data %d bytes, flags=0x%08x, pts=%"PRId64" ...\n",
buf->size, buf->decoder_flags, buf->pts);
if (buf->decoder_flags & BUF_FLAG_PREVIEW) {
@@ -407,20 +407,20 @@ static void realdec_decode_data (audio_decoder_t *this_gen, buf_element_t *buf)
audio_buffer = this->stream->audio_out->get_buffer (this->stream->audio_out);
- result = this->raDecode (this->context,
+ result = this->raDecode (this->context,
this->frame_buffer + n,
this->block_align,
(char *) audio_buffer->mem, &len, -1);
lprintf ("raDecode result %d, len=%d\n", result, len);
- audio_buffer->vpts = this->pts;
+ audio_buffer->vpts = this->pts;
this->pts = 0;
audio_buffer->num_frames = len/this->sample_size;;
-
- this->stream->audio_out->put_buffer (this->stream->audio_out,
+
+ this->stream->audio_out->put_buffer (this->stream->audio_out,
audio_buffer, this->stream);
n += this->block_align;
}
@@ -433,13 +433,13 @@ static void realdec_decode_data (audio_decoder_t *this_gen, buf_element_t *buf)
static void realdec_reset (audio_decoder_t *this_gen) {
realdec_decoder_t *this = (realdec_decoder_t *) this_gen;
-
+
this->frame_num_bytes = 0;
}
static void realdec_discontinuity (audio_decoder_t *this_gen) {
realdec_decoder_t *this = (realdec_decoder_t *) this_gen;
-
+
this->pts = 0;
}
@@ -475,7 +475,7 @@ static void realdec_dispose (audio_decoder_t *this_gen) {
lprintf ("dispose done\n");
}
-static audio_decoder_t *open_plugin (audio_decoder_class_t *class_gen,
+static audio_decoder_t *open_plugin (audio_decoder_class_t *class_gen,
xine_stream_t *stream) {
real_class_t *cls = (real_class_t *) class_gen;
@@ -518,7 +518,7 @@ void *init_realadec (xine_t *xine, void *data) {
* exported plugin catalog entry
*/
-static const uint32_t audio_types[] = {
+static const uint32_t audio_types[] = {
BUF_AUDIO_COOK, BUF_AUDIO_ATRK, /* BUF_AUDIO_14_4, BUF_AUDIO_28_8, */ BUF_AUDIO_SIPRO, 0
};
diff --git a/src/libreal/xine_real_video_decoder.c b/src/libreal/xine_real_video_decoder.c
index b02a83953..a4c40668b 100644
--- a/src/libreal/xine_real_video_decoder.c
+++ b/src/libreal/xine_real_video_decoder.c
@@ -1,25 +1,25 @@
/*
* Copyright (C) 2000-2008 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
*
* thin layer to use real binary-only codecs in xine
*
- * code inspired by work from Florian Schneider for the MPlayer Project
+ * code inspired by work from Florian Schneider for the MPlayer Project
*/
#ifdef HAVE_CONFIG_H
@@ -149,12 +149,12 @@ static int load_syms_linux (realdec_decoder_t *this, const char *codec_name, con
this->rvyuv_hive_message = dlsym (this->rv_handle, "RV20toYUV420HiveMessage");
this->rvyuv_init = dlsym (this->rv_handle, "RV20toYUV420Init");
this->rvyuv_transform = dlsym (this->rv_handle, "RV20toYUV420Transform");
-
+
if (this->rvyuv_custom_message &&
this->rvyuv_free &&
this->rvyuv_hive_message &&
this->rvyuv_init &&
- this->rvyuv_transform)
+ this->rvyuv_transform)
return 1;
this->rvyuv_custom_message = dlsym (this->rv_handle, "RV40toYUV420CustomMessage");
@@ -162,15 +162,15 @@ static int load_syms_linux (realdec_decoder_t *this, const char *codec_name, con
this->rvyuv_hive_message = dlsym (this->rv_handle, "RV40toYUV420HiveMessage");
this->rvyuv_init = dlsym (this->rv_handle, "RV40toYUV420Init");
this->rvyuv_transform = dlsym (this->rv_handle, "RV40toYUV420Transform");
-
+
if (this->rvyuv_custom_message &&
this->rvyuv_free &&
this->rvyuv_hive_message &&
this->rvyuv_init &&
- this->rvyuv_transform)
+ this->rvyuv_transform)
return 1;
- xprintf (this->stream->xine, XINE_VERBOSITY_LOG,
+ xprintf (this->stream->xine, XINE_VERBOSITY_LOG,
_("libreal: Error resolving symbols! (version incompatibility?)\n"));
return 0;
}
@@ -198,17 +198,17 @@ static int init_codec (realdec_decoder_t *this, buf_element_t *buf) {
return 0;
break;
default:
- xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
"libreal: error, i don't handle buf type 0x%08x\n", buf->type);
_x_abort();
}
init_data.w = _X_BE_16(&buf->content[12]);
init_data.h = _X_BE_16(&buf->content[14]);
-
+
this->width = (init_data.w + 1) & (~1);
this->height = (init_data.h + 1) & (~1);
-
+
if(buf->decoder_flags & BUF_FLAG_ASPECT)
this->ratio = (double)buf->decoder_info[1] / (double)buf->decoder_info[2];
else
@@ -216,15 +216,15 @@ static int init_codec (realdec_decoder_t *this, buf_element_t *buf) {
/* While the framerate is stored in the header it sometimes doesn't bear
* much resemblence to the actual frequency of frames in the file. Hence
- * it's better to just let the engine estimate the frame duration for us */
+ * it's better to just let the engine estimate the frame duration for us */
#if 0
- this->fps = (double) _X_BE_16(&buf->content[22]) +
+ this->fps = (double) _X_BE_16(&buf->content[22]) +
((double) _X_BE_16(&buf->content[24]) / 65536.0);
this->duration = 90000.0 / this->fps;
#endif
-
+
lprintf("this->ratio=%f\n", this->ratio);
-
+
lprintf ("init_data.w=%d(0x%x), init_data.h=%d(0x%x),"
"this->width=%d(0x%x), this->height=%d(0x%x)\n",
init_data.w, init_data.w,
@@ -238,22 +238,22 @@ static int init_codec (realdec_decoder_t *this, buf_element_t *buf) {
init_data.subformat = _X_BE_32(&buf->content[26]);
init_data.format = _X_BE_32(&buf->content[30]);
-
+
#ifdef LOG
printf ("libreal: init_data for rvyuv_init:\n");
xine_hexdump ((char *) &init_data, sizeof (init_data));
-
+
printf ("libreal: buf->content\n");
xine_hexdump (buf->content, buf->size);
-#endif
- lprintf ("init codec %dx%d... %x %x\n",
+#endif
+ lprintf ("init codec %dx%d... %x %x\n",
init_data.w, init_data.h,
init_data.subformat, init_data.format );
-
+
this->context = NULL;
-
- result = this->rvyuv_init (&init_data, &this->context);
-
+
+ result = this->rvyuv_init (&init_data, &this->context);
+
lprintf ("init result: %d\n", result);
/* setup rv30 codec (codec sub-type and image dimensions): */
@@ -266,42 +266,42 @@ static int init_codec (realdec_decoder_t *this, buf_element_t *buf) {
cmsg24[1] = this->height;
for(i = 2, j = 34; j < buf->size; i++, j++)
cmsg24[i] = 4 * buf->content[j];
-
+
#ifdef LOG
printf ("libreal: CustomMessage cmsg_data:\n");
xine_hexdump ((uint8_t *) &cmsg_data, sizeof (cmsg_data));
printf ("libreal: cmsg24:\n");
xine_hexdump ((uint8_t *) cmsg24, (buf->size - 34 + 2) * sizeof(uint32_t));
#endif
-
+
this->rvyuv_custom_message (&cmsg_data, this->context);
}
-
+
(this->stream->video_out->open) (this->stream->video_out, this->stream);
-
+
this->frame_size = this->width * this->height;
this->frame_buffer = xine_xmalloc (this->width * this->height * 3 / 2);
-
+
this->chunk_buffer = calloc(1, BUF_SIZE);
this->chunk_buffer_max = BUF_SIZE;
-
+
return 1;
}
static void realdec_decode_data (video_decoder_t *this_gen, buf_element_t *buf) {
realdec_decoder_t *this = (realdec_decoder_t *) this_gen;
- lprintf ("decode_data, flags=0x%08x, len=%d, pts=%"PRId64" ...\n",
+ lprintf ("decode_data, flags=0x%08x, len=%d, pts=%"PRId64" ...\n",
buf->decoder_flags, buf->size, buf->pts);
if (buf->decoder_flags & BUF_FLAG_PREVIEW) {
/* real_find_sequence_header (&this->real, buf->content, buf->content + buf->size);*/
return;
}
-
+
if (buf->decoder_flags & BUF_FLAG_FRAMERATE) {
this->duration = buf->decoder_info[0];
- _x_stream_info_set(this->stream, XINE_STREAM_INFO_FRAME_DURATION,
+ _x_stream_info_set(this->stream, XINE_STREAM_INFO_FRAME_DURATION,
this->duration);
}
@@ -312,14 +312,14 @@ static void realdec_decode_data (video_decoder_t *this_gen, buf_element_t *buf)
_x_stream_info_set(this->stream, XINE_STREAM_INFO_VIDEO_HANDLED, 0);
} else if (this->decoder_ok && this->context) {
-
+
/* Each frame starts with BUF_FLAG_FRAME_START and ends with
* BUF_FLAG_FRAME_END.
* The last buffer contains the chunk offset table.
*/
if (!(buf->decoder_flags & BUF_FLAG_SPECIAL)) {
-
+
lprintf ("buffer (%d bytes)\n", buf->size);
if (buf->decoder_flags & BUF_FLAG_FRAME_START) {
@@ -329,10 +329,10 @@ static void realdec_decode_data (video_decoder_t *this_gen, buf_element_t *buf)
this->pts = buf->pts;
lprintf ("new frame starting, pts=%"PRId64"\n", this->pts);
}
-
+
if ((this->chunk_buffer_size + buf->size) > this->chunk_buffer_max) {
lprintf("increasing chunk buffer size\n");
-
+
this->chunk_buffer_max *= 2;
this->chunk_buffer = realloc(this->chunk_buffer, this->chunk_buffer_max);
}
@@ -345,9 +345,9 @@ static void realdec_decode_data (video_decoder_t *this_gen, buf_element_t *buf)
} else {
/* end of frame, chunk table */
-
+
lprintf ("special buffer (%d bytes)\n", buf->size);
-
+
if (buf->decoder_info[1] == BUF_SPECIAL_RV_CHUNK_TABLE) {
int result;
@@ -383,7 +383,7 @@ static void realdec_decode_data (video_decoder_t *this_gen, buf_element_t *buf)
xine_hexdump ((uint8_t *) &transform_in, sizeof(rv_xform_in_t));
printf ("libreal: chunk_table:\n");
- xine_hexdump ((uint8_t *) buf->decoder_info_ptr[2],
+ xine_hexdump ((uint8_t *) buf->decoder_info_ptr[2],
2*(buf->decoder_info[2]+1)*sizeof(uint32_t));
#endif
@@ -458,13 +458,13 @@ static void realdec_flush (video_decoder_t *this_gen) {
static void realdec_reset (video_decoder_t *this_gen) {
realdec_decoder_t *this = (realdec_decoder_t *) this_gen;
-
+
this->chunk_buffer_size = 0;
}
static void realdec_discontinuity (video_decoder_t *this_gen) {
realdec_decoder_t *this = (realdec_decoder_t *) this_gen;
-
+
this->pts = 0;
}
@@ -480,21 +480,21 @@ static void realdec_dispose (video_decoder_t *this_gen) {
if (this->rvyuv_free && this->context)
this->rvyuv_free (this->context);
- if (this->rv_handle)
+ if (this->rv_handle)
dlclose (this->rv_handle);
if (this->frame_buffer)
free (this->frame_buffer);
-
+
if (this->chunk_buffer)
free (this->chunk_buffer);
-
+
free (this);
lprintf ("dispose done\n");
}
-static video_decoder_t *open_plugin (video_decoder_class_t *class_gen,
+static video_decoder_t *open_plugin (video_decoder_class_t *class_gen,
xine_stream_t *stream) {
real_class_t *cls = (real_class_t *) class_gen;
diff --git a/src/libw32dll/DirectShow/DS_AudioDecoder.c b/src/libw32dll/DirectShow/DS_AudioDecoder.c
index 2dcf21f9e..84e84747e 100644
--- a/src/libw32dll/DirectShow/DS_AudioDecoder.c
+++ b/src/libw32dll/DirectShow/DS_AudioDecoder.c
@@ -15,7 +15,7 @@
#include "DS_Filter.h"
struct _DS_AudioDecoder
-{
+{
WAVEFORMATEX in_fmt;
AM_MEDIA_TYPE m_sOurType, m_sDestType;
DS_Filter* m_pDS_Filter;
@@ -46,20 +46,20 @@ DS_AudioDecoder * DS_AudioDecoder_Open(char* dllname, GUID* guid, WAVEFORMATEX*
#endif
this = malloc(sizeof(DS_AudioDecoder));
-
+
sz = 18 + wf->cbSize;
this->m_sVhdr = malloc(sz);
memcpy(this->m_sVhdr, wf, sz);
this->m_sVhdr2 = malloc(18);
memcpy(this->m_sVhdr2, this->m_sVhdr, 18);
-
+
pWF = (WAVEFORMATEX*)this->m_sVhdr2;
pWF->wFormatTag = 1;
pWF->wBitsPerSample = 16;
pWF->nBlockAlign = pWF->nChannels * (pWF->wBitsPerSample + 7) / 8;
pWF->cbSize = 0;
pWF->nAvgBytesPerSec = pWF->nBlockAlign * pWF->nSamplesPerSec;
-
+
memcpy(&this->in_fmt,wf,sizeof(WAVEFORMATEX));
memset(&this->m_sOurType, 0, sizeof(this->m_sOurType));
@@ -105,7 +105,7 @@ print_wave_header(this->m_sVhdr2);
free(this);
return NULL;
}
-
+
this->m_pDS_Filter->Start(this->m_pDS_Filter);
props.cBuffers=1;
@@ -141,7 +141,7 @@ int DS_AudioDecoder_Convert(DS_AudioDecoder *this, const void* in_data, unsigned
{
unsigned int written = 0;
unsigned int read = 0;
-
+
if (!in_data || !out_data)
return -1;
@@ -157,7 +157,7 @@ int DS_AudioDecoder_Convert(DS_AudioDecoder *this, const void* in_data, unsigned
IMediaSample* sample=0;
char* ptr;
int result;
-
+
// this->m_pOurOutput->SetFramePointer(out_data+written);
this->m_pDS_Filter->m_pOurOutput->SetFramePointer(this->m_pDS_Filter->m_pOurOutput,&frame_pointer);
this->m_pDS_Filter->m_pOurOutput->SetFrameSizePointer(this->m_pDS_Filter->m_pOurOutput,(long*)&frame_size);
@@ -198,7 +198,7 @@ int DS_AudioDecoder_GetSrcSize(DS_AudioDecoder *this, int dest_size)
double efficiency =(double) this->in_fmt.nAvgBytesPerSec
/ (this->in_fmt.nSamplesPerSec*this->in_fmt.nBlockAlign);
int frames = (int)(dest_size*efficiency);;
-
+
if (frames < 1)
frames = 1;
return frames * this->in_fmt.nBlockAlign;
diff --git a/src/libw32dll/DirectShow/DS_VideoDecoder.c b/src/libw32dll/DirectShow/DS_VideoDecoder.c
index c0a08d5e3..f88e480e3 100644
--- a/src/libw32dll/DirectShow/DS_VideoDecoder.c
+++ b/src/libw32dll/DirectShow/DS_VideoDecoder.c
@@ -18,7 +18,7 @@
struct _DS_VideoDecoder
{
IVideoDecoder iv;
-
+
DS_Filter* m_pDS_Filter;
AM_MEDIA_TYPE m_sOurType, m_sDestType;
VIDEOINFOHEADER* m_sVhdr;
@@ -59,7 +59,7 @@ struct _DS_VideoDecoder
int DS_VideoDecoder_GetCapabilities(DS_VideoDecoder *this)
{return this->m_Caps;}
-
+
typedef struct _ct ct;
struct _ct {
@@ -68,7 +68,7 @@ struct _ct {
const GUID *subtype;
int cap;
};
-
+
static ct check[] = {
{16, fccYUY2, &MEDIASUBTYPE_YUY2, CAP_YUY2},
{12, fccIYUV, &MEDIASUBTYPE_IYUV, CAP_IYUV},
@@ -87,10 +87,10 @@ DS_VideoDecoder * DS_VideoDecoder_Open(char* dllname, GUID* guid, BITMAPINFOHEAD
DS_VideoDecoder *this;
HRESULT result;
ct* c;
-
+
this = malloc(sizeof(DS_VideoDecoder));
memset( this, 0, sizeof(DS_VideoDecoder));
-
+
this->m_sVhdr2 = 0;
this->m_iLastQuality = -1;
this->m_iMaxAuto = maxauto;
@@ -104,10 +104,10 @@ DS_VideoDecoder * DS_VideoDecoder_Open(char* dllname, GUID* guid, BITMAPINFOHEAD
/*try*/
{
unsigned int bihs;
-
+
bihs = (format->biSize < (int) sizeof(BITMAPINFOHEADER)) ?
sizeof(BITMAPINFOHEADER) : format->biSize;
-
+
this->iv.m_bh = (BITMAPINFOHEADER*)malloc(bihs);
memcpy(this->iv.m_bh, format, bihs);
this->iv.m_bh->biSize = bihs;
@@ -119,7 +119,7 @@ DS_VideoDecoder * DS_VideoDecoder_Open(char* dllname, GUID* guid, BITMAPINFOHEAD
this->iv.m_iPlaypos = -1;
this->iv.m_fQuality = 0.0f;
this->iv.m_bCapable16b = true;
-
+
bihs += sizeof(VIDEOINFOHEADER) - sizeof(BITMAPINFOHEADER);
this->m_sVhdr = (VIDEOINFOHEADER*)malloc(bihs);
memset(this->m_sVhdr, 0, bihs);
@@ -159,7 +159,7 @@ DS_VideoDecoder * DS_VideoDecoder_Open(char* dllname, GUID* guid, BITMAPINFOHEAD
this->m_sDestType.pUnk = 0;
this->m_sDestType.cbFormat = sizeof(VIDEOINFOHEADER);
this->m_sDestType.pbFormat = (char*)this->m_sVhdr2;
-
+
memset(&this->iv.m_obh, 0, sizeof(this->iv.m_obh));
memcpy(&this->iv.m_obh, this->iv.m_bh, sizeof(this->iv.m_obh) < (unsigned) this->iv.m_bh->biSize
? sizeof(this->iv.m_obh) : (unsigned) this->iv.m_bh->biSize);
@@ -172,7 +172,7 @@ DS_VideoDecoder * DS_VideoDecoder_Open(char* dllname, GUID* guid, BITMAPINFOHEAD
this->m_pDS_Filter = DS_FilterCreate(dllname, guid, &this->m_sOurType, &this->m_sDestType);
-
+
if (!this->m_pDS_Filter)
{
printf("Failed to create DirectShow filter\n");
@@ -216,7 +216,7 @@ DS_VideoDecoder * DS_VideoDecoder_Open(char* dllname, GUID* guid, BITMAPINFOHEAD
break;
#endif
default:
-
+
this->m_Caps = CAP_NONE;
printf("Decoder supports the following YUV formats: ");
@@ -278,7 +278,7 @@ void DS_VideoDecoder_StartInternal(DS_VideoDecoder *this)
Debug printf("DS_VideoDecoder_StartInternal\n");
//cout << "DSSTART" << endl;
this->m_pDS_Filter->Start(this->m_pDS_Filter);
-
+
props.cBuffers = 1;
props.cbBuffer = this->m_sDestType.lSampleSize;
@@ -286,7 +286,7 @@ void DS_VideoDecoder_StartInternal(DS_VideoDecoder *this)
props.cbAlign = props.cbPrefix = 0;
this->m_pDS_Filter->m_pAll->vt->SetProperties(this->m_pDS_Filter->m_pAll, &props, &props1);
this->m_pDS_Filter->m_pAll->vt->Commit(this->m_pDS_Filter->m_pAll);
-
+
this->iv.m_State = START;
}
@@ -301,17 +301,17 @@ int DS_VideoDecoder_DecodeInternal(DS_VideoDecoder *this, const void* src, int s
IMediaSample* sample = 0;
char* ptr;
int result;
-
+
Debug printf("DS_VideoDecoder_DecodeInternal(%p,%p,%d,%d,%p)\n",this,src,size,is_keyframe,pImage);
-
+
this->m_pDS_Filter->m_pAll->vt->GetBuffer(this->m_pDS_Filter->m_pAll, &sample, 0, 0, 0);
-
+
if (!sample)
{
Debug printf("ERROR: null sample\n");
return -1;
}
-
+
//cout << "DECODE " << (void*) pImage << " d: " << (void*) pImage->Data() << endl;
if (pImage)
{
@@ -425,15 +425,15 @@ int DS_VideoDecoder_SetDestFmt(DS_VideoDecoder *this, int bits, unsigned int csp
{
HRESULT result;
int should_test=1;
- int stoped = 0;
-
+ int stoped = 0;
+
Debug printf("DS_VideoDecoder_SetDestFmt (%p, %d, %d)\n",this,bits,(int)csp);
-
+
/* if (!CImage::Supported(csp, bits))
return -1;
*/
// BitmapInfo temp = m_obh;
-
+
if (!csp) // RGB
{
int ok = true;
@@ -442,7 +442,7 @@ int DS_VideoDecoder_SetDestFmt(DS_VideoDecoder *this, int bits, unsigned int csp
{
case 15:
this->m_sDestType.subtype = MEDIASUBTYPE_RGB555;
- break;
+ break;
case 16:
this->m_sDestType.subtype = MEDIASUBTYPE_RGB565;
break;
@@ -464,7 +464,7 @@ int DS_VideoDecoder_SetDestFmt(DS_VideoDecoder *this, int bits, unsigned int csp
this->iv.m_obh.biCompression=3;//BI_BITFIELDS
this->iv.m_obh.biSizeImage=abs((int)(2*this->iv.m_obh.biWidth*this->iv.m_obh.biHeight));
}
-
+
if( bits == 16 ) {
this->iv.m_obh.colors[0]=0xF800;
this->iv.m_obh.colors[1]=0x07E0;
@@ -514,7 +514,7 @@ int DS_VideoDecoder_SetDestFmt(DS_VideoDecoder *this, int bits, unsigned int csp
if (ok) {
if (csp != 0 && csp != 3 && this->iv.m_obh.biHeight > 0)
- this->iv.m_obh.biHeight *= -1; // YUV formats uses should have height < 0
+ this->iv.m_obh.biHeight *= -1; // YUV formats uses should have height < 0
this->iv.m_obh.biSize = sizeof(BITMAPINFOHEADER);
this->iv.m_obh.biCompression=csp;
this->iv.m_obh.biBitCount=bits;
@@ -578,9 +578,9 @@ int DS_VideoDecoder_SetDestFmt(DS_VideoDecoder *this, int bits, unsigned int csp
memcpy(&(this->m_sVhdr2->bmiHeader), &this->iv.m_decoder, sizeof(this->iv.m_decoder));
this->m_sVhdr2->bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
if (this->m_sVhdr2->bmiHeader.biCompression == 3)
- this->m_sDestType.cbFormat = sizeof(VIDEOINFOHEADER) + 12;
+ this->m_sDestType.cbFormat = sizeof(VIDEOINFOHEADER) + 12;
else
- this->m_sDestType.cbFormat = sizeof(VIDEOINFOHEADER);
+ this->m_sDestType.cbFormat = sizeof(VIDEOINFOHEADER);
return -1;
}
@@ -624,7 +624,7 @@ int DS_VideoDecoder_SetDestFmt(DS_VideoDecoder *this, int bits, unsigned int csp
if (stoped)
{
DS_VideoDecoder_StartInternal(this);
- this->iv.m_State = START;
+ this->iv.m_State = START;
}
return 0;
@@ -789,7 +789,7 @@ int DS_VideoDecoder_SetValue(DS_VideoDecoder *this, const char* name, int value)
// get4=set3 73
// get5=set4 19
// get6=set5 23
- hidden = (IHidden*)((int)this->m_pDS_Filter->m_pFilter + 0xb8);
+ hidden = (IHidden*)((int)this->m_pDS_Filter->m_pFilter + 0xb8);
// printf("DS_SetValue for DIVX, name=%s value=%d\n",name,value);
if (strcmp(name, "Quality") == 0)
{
@@ -810,7 +810,7 @@ int DS_VideoDecoder_SetValue(DS_VideoDecoder *this, const char* name, int value)
}
return 0;
}
-#if 0
+#if 0
if (strcmp((const char*)record.dll, "ir50_32.dll") == 0)
{
IHidden2* hidden = 0;
@@ -844,7 +844,7 @@ int DS_VideoDecoder_SetValue(DS_VideoDecoder *this, const char* name, int value)
if(!recordpar[5])
{
hidden->vt->Release((IUnknown*)hidden);
- return -1;
+ return -1;
}
HRESULT result = hidden->vt->DecodeSet(hidden, recordpar);
hidden->vt->Release((IUnknown*)hidden);
@@ -865,28 +865,28 @@ int DS_SetAttr_DivX(char* attribute, int value){
int result, status, newkey, count;
if(strcmp(attribute, "Quality")==0){
char* keyname="SOFTWARE\\Microsoft\\Scrunch";
- result=RegCreateKeyExA(HKEY_CURRENT_USER, keyname, 0, 0, 0, 0, 0, &newkey, &status);
+ result=RegCreateKeyExA(HKEY_CURRENT_USER, keyname, 0, 0, 0, 0, 0, &newkey, &status);
if(result!=0)
{
printf("VideoDecoder::SetExtAttr: registry failure\n");
return -1;
- }
+ }
result=RegSetValueExA(newkey, "Current Post Process Mode", 0, REG_DWORD, &value, 4);
if(result!=0)
{
printf("VideoDecoder::SetExtAttr: error writing value\n");
return -1;
- }
+ }
value=-1;
result=RegSetValueExA(newkey, "Force Post Process Mode", 0, REG_DWORD, &value, 4);
if(result!=0)
{
printf("VideoDecoder::SetExtAttr: error writing value\n");
- return -1;
- }
- RegCloseKey(newkey);
- return 0;
- }
+ return -1;
+ }
+ RegCloseKey(newkey);
+ return 0;
+ }
if(
(strcmp(attribute, "Saturation")==0) ||
@@ -896,21 +896,21 @@ int DS_SetAttr_DivX(char* attribute, int value){
)
{
char* keyname="SOFTWARE\\Microsoft\\Scrunch\\Video";
- result=RegCreateKeyExA(HKEY_CURRENT_USER, keyname, 0, 0, 0, 0, 0, &newkey, &status);
+ result=RegCreateKeyExA(HKEY_CURRENT_USER, keyname, 0, 0, 0, 0, 0, &newkey, &status);
if(result!=0)
{
printf("VideoDecoder::SetExtAttr: registry failure\n");
return -1;
- }
+ }
result=RegSetValueExA(newkey, attribute, 0, REG_DWORD, &value, 4);
if(result!=0)
{
printf("VideoDecoder::SetExtAttr: error writing value\n");
return -1;
- }
- RegCloseKey(newkey);
- return 0;
- }
+ }
+ RegCloseKey(newkey);
+ return 0;
+ }
printf("Unknown attribute!\n");
return -200;
diff --git a/src/libw32dll/DirectShow/iunk.h b/src/libw32dll/DirectShow/iunk.h
index 7998011cd..e571176df 100644
--- a/src/libw32dll/DirectShow/iunk.h
+++ b/src/libw32dll/DirectShow/iunk.h
@@ -11,39 +11,39 @@
#define DECLARE_IUNKNOWN() \
int refcount;
-#define IMPLEMENT_IUNKNOWN(CLASSNAME) \
+#define IMPLEMENT_IUNKNOWN(CLASSNAME) \
static long STDCALL CLASSNAME ## _QueryInterface(IUnknown * This, \
const GUID* riid, void **ppvObject) \
{ \
CLASSNAME * me = (CLASSNAME *)This; \
const GUID* r; unsigned int i = 0; \
Debug printf(#CLASSNAME "_QueryInterface(%p) called\n", This);\
- if (!ppvObject) return E_POINTER; \
+ if (!ppvObject) return E_POINTER; \
for(r=me->interfaces; i<sizeof(me->interfaces)/sizeof(me->interfaces[0]); r++, i++) \
if(!memcmp(r, riid, sizeof(*r))) \
- { \
- me->vt->AddRef((IUnknown*)This); \
- *ppvObject=This; \
- return 0; \
- } \
+ { \
+ me->vt->AddRef((IUnknown*)This); \
+ *ppvObject=This; \
+ return 0; \
+ } \
Debug printf("Query failed! (GUID: 0x%x)\n", *(const unsigned int*)riid); \
return E_NOINTERFACE; \
-} \
+} \
\
static long STDCALL CLASSNAME ## _AddRef(IUnknown * This) \
{ \
CLASSNAME * me=( CLASSNAME *)This; \
Debug printf(#CLASSNAME "_AddRef(%p) called (ref:%d)\n", This, me->refcount); \
- return ++(me->refcount); \
-} \
+ return ++(me->refcount); \
+} \
\
static long STDCALL CLASSNAME ## _Release(IUnknown * This) \
-{ \
- CLASSNAME* me=( CLASSNAME *)This; \
+{ \
+ CLASSNAME* me=( CLASSNAME *)This; \
Debug printf(#CLASSNAME "_Release(%p) called (new ref:%d)\n", This, me->refcount - 1); \
if(--(me->refcount) == 0) \
- CLASSNAME ## _Destroy(me); \
- return 0; \
+ CLASSNAME ## _Destroy(me); \
+ return 0; \
}
#endif /* DS_IUNK_H */
diff --git a/src/libw32dll/Makefile.am b/src/libw32dll/Makefile.am
index dfc877126..7e535afd2 100644
--- a/src/libw32dll/Makefile.am
+++ b/src/libw32dll/Makefile.am
@@ -5,7 +5,7 @@ AM_CFLAGS = $(DEFAULT_OCFLAGS) $(VISIBILITY_FLAG)
AM_CPPFLAGS = -I$(srcdir)/wine -DWIN32_PATH=\"$(w32_path)\"
AM_LDFLAGS = $(xineplug_ldflags)
-SUBDIRS =
+SUBDIRS =
if ENABLE_W32DLL
SUBDIRS += wine DirectShow dmo qtx
endif
diff --git a/src/libw32dll/common.c b/src/libw32dll/common.c
index 35fe41941..76c114bca 100644
--- a/src/libw32dll/common.c
+++ b/src/libw32dll/common.c
@@ -6,7 +6,7 @@ static char *get_win32_codecs_path(config_values_t *cfg) {
DIR *dir;
char *path, *cfgpath;
char *listpath[] = { "",
- "/usr/lib/codecs",
+ "/usr/lib/codecs",
"/usr/local/lib/codecs",
"/usr/lib/win32",
"/usr/local/lib/win32",
@@ -35,5 +35,5 @@ static char *get_win32_codecs_path(config_values_t *cfg) {
i++;
}
- return NULL;
+ return NULL;
}
diff --git a/src/libw32dll/dmo/DMO_AudioDecoder.c b/src/libw32dll/dmo/DMO_AudioDecoder.c
index faf49e266..f2a1bfb5c 100644
--- a/src/libw32dll/dmo/DMO_AudioDecoder.c
+++ b/src/libw32dll/dmo/DMO_AudioDecoder.c
@@ -19,7 +19,7 @@
#include "DMO_AudioDecoder.h"
struct _DMO_AudioDecoder
-{
+{
DMO_MEDIA_TYPE m_sOurType, m_sDestType;
DMO_Filter* m_pDMO_Filter;
char* m_sVhdr;
@@ -49,17 +49,17 @@ DMO_AudioDecoder * DMO_AudioDecoder_Open(char* dllname, GUID* guid, WAVEFORMATEX
Setup_LDT_Keeper();
Setup_FS_Segment();
#endif
-
+
this = malloc(sizeof(DMO_AudioDecoder));
-
+
this->m_iFlushed=1;
-
+
sz = 18 + wf->cbSize;
this->m_sVhdr = malloc(sz);
memcpy(this->m_sVhdr, wf, sz);
this->m_sVhdr2 = malloc(18);
memcpy(this->m_sVhdr2, this->m_sVhdr, 18);
-
+
pWF = (WAVEFORMATEX*)this->m_sVhdr2;
pWF->wFormatTag = 1;
pWF->wBitsPerSample = 16;
@@ -67,7 +67,7 @@ DMO_AudioDecoder * DMO_AudioDecoder_Open(char* dllname, GUID* guid, WAVEFORMATEX
pWF->nBlockAlign = 2*pWF->nChannels; //pWF->nChannels * (pWF->wBitsPerSample + 7) / 8;
pWF->nAvgBytesPerSec = pWF->nBlockAlign * pWF->nSamplesPerSec;
pWF->cbSize = 0;
-
+
memset(&this->m_sOurType, 0, sizeof(this->m_sOurType));
this->m_sOurType.majortype=MEDIATYPE_Audio;
this->m_sOurType.subtype=MEDIASUBTYPE_PCM;
@@ -101,7 +101,7 @@ print_wave_header((WAVEFORMATEX *)this->m_sVhdr2);
free(this);
return NULL;
}
-
+
return this;
}
@@ -129,7 +129,7 @@ int DMO_AudioDecoder_Convert(DMO_AudioDecoder *this, const void* in_data, unsign
#ifdef LDT_paranoia
Setup_FS_Segment();
#endif
-
+
//m_pDMO_Filter->m_pMedia->vt->Lock(m_pDMO_Filter->m_pMedia, 1);
bufferin = CMediaBufferCreate(in_size, (void*)in_data, in_size, 1);
r = this->m_pDMO_Filter->m_pMedia->vt->ProcessInput(this->m_pDMO_Filter->m_pMedia, 0,
@@ -157,7 +157,7 @@ int DMO_AudioDecoder_Convert(DMO_AudioDecoder *this, const void* in_data, unsign
((IMediaBuffer*)db.pBuffer)->vt->GetBufferAndLength((IMediaBuffer*)db.pBuffer, 0, &written);
((IMediaBuffer*)db.pBuffer)->vt->Release((IUnknown*)db.pBuffer);
-
+
//printf("RESULTB: %d 0x%x %ld\n", r, r, written);
//printf("Converted %d -> %d\n", in_size, out_size);
}
diff --git a/src/libw32dll/dmo/DMO_VideoDecoder.c b/src/libw32dll/dmo/DMO_VideoDecoder.c
index 7b25085f0..64b0ef78c 100644
--- a/src/libw32dll/dmo/DMO_VideoDecoder.c
+++ b/src/libw32dll/dmo/DMO_VideoDecoder.c
@@ -24,7 +24,7 @@
struct _DMO_VideoDecoder
{
IVideoDecoder iv;
-
+
DMO_Filter* m_pDMO_Filter;
AM_MEDIA_TYPE m_sOurType, m_sDestType;
VIDEOINFOHEADER* m_sVhdr;
@@ -72,7 +72,7 @@ struct _ct {
const GUID* subtype;
int cap;
};
-
+
static ct check[] = {
{ fccI420, 12, &MEDIASUBTYPE_I420, CAP_I420 },
{ fccYV12, 12, &MEDIASUBTYPE_YV12, CAP_YV12 },
@@ -95,10 +95,10 @@ DMO_VideoDecoder * DMO_VideoDecoder_Open(char* dllname, GUID* guid, BITMAPINFOHE
DMO_VideoDecoder *this;
HRESULT result;
ct* c;
-
+
this = malloc(sizeof(DMO_VideoDecoder));
memset( this, 0, sizeof(DMO_VideoDecoder));
-
+
this->m_sVhdr2 = 0;
this->m_iLastQuality = -1;
this->m_iMaxAuto = maxauto;
@@ -112,10 +112,10 @@ DMO_VideoDecoder * DMO_VideoDecoder_Open(char* dllname, GUID* guid, BITMAPINFOHE
/*try*/
{
unsigned int bihs;
-
+
bihs = (format->biSize < (int) sizeof(BITMAPINFOHEADER)) ?
sizeof(BITMAPINFOHEADER) : format->biSize;
-
+
this->iv.m_bh = (BITMAPINFOHEADER*)malloc(bihs);
memcpy(this->iv.m_bh, format, bihs);
this->iv.m_bh->biSize = bihs;
@@ -127,7 +127,7 @@ DMO_VideoDecoder * DMO_VideoDecoder_Open(char* dllname, GUID* guid, BITMAPINFOHE
this->iv.m_iPlaypos = -1;
this->iv.m_fQuality = 0.0f;
this->iv.m_bCapable16b = true;
-
+
bihs += sizeof(VIDEOINFOHEADER) - sizeof(BITMAPINFOHEADER);
this->m_sVhdr = (VIDEOINFOHEADER*)malloc(bihs);
memset(this->m_sVhdr, 0, bihs);
@@ -171,7 +171,7 @@ DMO_VideoDecoder * DMO_VideoDecoder_Open(char* dllname, GUID* guid, BITMAPINFOHE
this->m_sDestType.pUnk = 0;
this->m_sDestType.cbFormat = sizeof(VIDEOINFOHEADER);
this->m_sDestType.pbFormat = (char*)this->m_sVhdr2;
-
+
memset(&this->iv.m_obh, 0, sizeof(this->iv.m_obh));
memcpy(&this->iv.m_obh, this->iv.m_bh, sizeof(this->iv.m_obh) < (unsigned) this->iv.m_bh->biSize
? sizeof(this->iv.m_obh) : (unsigned) this->iv.m_bh->biSize);
@@ -184,7 +184,7 @@ DMO_VideoDecoder * DMO_VideoDecoder_Open(char* dllname, GUID* guid, BITMAPINFOHE
this->m_pDMO_Filter = DMO_FilterCreate(dllname, guid, &this->m_sOurType, &this->m_sDestType);
-
+
if (!this->m_pDMO_Filter)
{
printf("Failed to create DMO filter\n");
@@ -229,7 +229,7 @@ DMO_VideoDecoder * DMO_VideoDecoder_Open(char* dllname, GUID* guid, BITMAPINFOHE
break;
#endif
default:
-
+
this->m_Caps = CAP_NONE;
printf("Decoder supports the following YUV formats: ");
@@ -284,7 +284,7 @@ void DMO_VideoDecoder_StartInternal(DMO_VideoDecoder *this)
Debug printf("DMO_VideoDecoder_StartInternal\n");
//cout << "DSSTART" << endl;
this->m_pDMO_Filter->Start(this->m_pDMO_Filter);
-
+
props.cBuffers = 1;
props.cbBuffer = this->m_sDestType.lSampleSize;
@@ -292,7 +292,7 @@ void DMO_VideoDecoder_StartInternal(DMO_VideoDecoder *this)
props.cbAlign = props.cbPrefix = 0;
this->m_pDMO_Filter->m_pAll->vt->SetProperties(this->m_pDMO_Filter->m_pAll, &props, &props1);
this->m_pDMO_Filter->m_pAll->vt->Commit(this->m_pDMO_Filter->m_pAll);
-#endif
+#endif
this->iv.m_State = START;
}
@@ -310,7 +310,7 @@ int DMO_VideoDecoder_DecodeInternal(DMO_VideoDecoder *this, const void* src, int
DMO_OUTPUT_DATA_BUFFER db;
CMediaBuffer* bufferin;
//+ uint8_t* imdata = dest ? dest->Data() : 0;
-
+
Debug printf("DMO_VideoDecoder_DecodeInternal(%p,%p,%d,%d,%p)\n",this,src,size,is_keyframe,imdata);
// this->m_pDMO_Filter->m_pAll->vt->GetBuffer(this->m_pDMO_Filter->m_pAll, &sample, 0, 0, 0);
@@ -371,14 +371,14 @@ int DMO_VideoDecoder_SetDestFmt(DMO_VideoDecoder *this, int bits, unsigned int c
{
HRESULT result;
int should_test=1;
-
+
Debug printf("DMO_VideoDecoder_SetDestFmt (%p, %d, %d)\n",this,bits,(int)csp);
-
+
/* if (!CImage::Supported(csp, bits))
return -1;
*/
// BitmapInfo temp = m_obh;
-
+
if (!csp) // RGB
{
int ok = true;
@@ -387,7 +387,7 @@ int DMO_VideoDecoder_SetDestFmt(DMO_VideoDecoder *this, int bits, unsigned int c
{
case 15:
this->m_sDestType.subtype = MEDIASUBTYPE_RGB555;
- break;
+ break;
case 16:
this->m_sDestType.subtype = MEDIASUBTYPE_RGB565;
break;
@@ -409,7 +409,7 @@ int DMO_VideoDecoder_SetDestFmt(DMO_VideoDecoder *this, int bits, unsigned int c
this->iv.m_obh.biCompression=3;//BI_BITFIELDS
this->iv.m_obh.biSizeImage=abs((int)(2*this->iv.m_obh.biWidth*this->iv.m_obh.biHeight));
}
-
+
if( bits == 16 ) {
this->iv.m_obh.colors[0]=0xF800;
this->iv.m_obh.colors[1]=0x07E0;
@@ -459,7 +459,7 @@ int DMO_VideoDecoder_SetDestFmt(DMO_VideoDecoder *this, int bits, unsigned int c
if (ok) {
if (csp != 0 && csp != 3 && this->iv.m_obh.biHeight > 0)
- this->iv.m_obh.biHeight *= -1; // YUV formats uses should have height < 0
+ this->iv.m_obh.biHeight *= -1; // YUV formats uses should have height < 0
this->iv.m_obh.biSize = sizeof(BITMAPINFOHEADER);
this->iv.m_obh.biCompression=csp;
this->iv.m_obh.biBitCount=bits;
@@ -532,9 +532,9 @@ int DMO_VideoDecoder_SetDestFmt(DMO_VideoDecoder *this, int bits, unsigned int c
memcpy(&(this->m_sVhdr2->bmiHeader), &this->iv.m_decoder, sizeof(this->iv.m_decoder));
this->m_sVhdr2->bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
if (this->m_sVhdr2->bmiHeader.biCompression == 3)
- this->m_sDestType.cbFormat = sizeof(VIDEOINFOHEADER) + 12;
+ this->m_sDestType.cbFormat = sizeof(VIDEOINFOHEADER) + 12;
else
- this->m_sDestType.cbFormat = sizeof(VIDEOINFOHEADER);
+ this->m_sDestType.cbFormat = sizeof(VIDEOINFOHEADER);
return -1;
}
diff --git a/src/libw32dll/dmo/Makefile.am b/src/libw32dll/dmo/Makefile.am
index 531a4559a..c5b683c6f 100644
--- a/src/libw32dll/dmo/Makefile.am
+++ b/src/libw32dll/dmo/Makefile.am
@@ -2,7 +2,7 @@ include $(top_srcdir)/misc/Makefile.common
AM_CFLAGS = $(X_CFLAGS) -fno-omit-frame-pointer
AM_CPPFLAGS = -DWIN32_PATH=\"$(w32_path)\" -DNOAVIFILE_HEADERS -I$(srcdir)/.. -I$(srcdir)/../wine
-
+
noinst_HEADERS = \
DMO_AudioDecoder.h \
dmo_guids.h \
diff --git a/src/libw32dll/dmo/dmo.c b/src/libw32dll/dmo/dmo.c
index 98cfbad40..103105040 100644
--- a/src/libw32dll/dmo/dmo.c
+++ b/src/libw32dll/dmo/dmo.c
@@ -61,7 +61,7 @@ DMO_Filter* DMO_FilterCreate(const char* dllname, const GUID* id,
//trapbug();
hr = func(id, &IID_IClassFactory, (void**)&factory);
if (hr || !factory)
- {
+ {
em = "no such class object";
break;
}
diff --git a/src/libw32dll/libwin32.h b/src/libw32dll/libwin32.h
index e256ebf47..a8cc8504f 100644
--- a/src/libw32dll/libwin32.h
+++ b/src/libw32dll/libwin32.h
@@ -38,7 +38,7 @@ typedef struct _CodecInfo
typedef struct _CImage // public your_libvo_mem
{
char* ptr;
-
+
/*char* (*Data)();
{
return 0;
@@ -47,7 +47,7 @@ typedef struct _CImage // public your_libvo_mem
/*int (*Supported)(fourcc_t csp, int bits);
{
return true;
- // if you support such surface
+ // if you support such surface
}*/
}CImage;
@@ -105,18 +105,18 @@ struct IAudioEncoder
typedef struct _BitmapInfo
{
- long biSize;
- long biWidth;
- long biHeight;
- short biPlanes;
- short biBitCount;
- long biCompression;
- long biSizeImage;
- long biXPelsPerMeter;
- long biYPelsPerMeter;
- long biClrUsed;
- long biClrImportant;
- int colors[3];
+ long biSize;
+ long biWidth;
+ long biHeight;
+ short biPlanes;
+ short biBitCount;
+ long biCompression;
+ long biSizeImage;
+ long biXPelsPerMeter;
+ long biYPelsPerMeter;
+ long biClrUsed;
+ long biClrImportant;
+ int colors[3];
} BitmapInfo;
typedef struct _IVideoDecoder
diff --git a/src/libw32dll/qt_decoder.c b/src/libw32dll/qt_decoder.c
index 94ec86e7f..9b20672ab 100644
--- a/src/libw32dll/qt_decoder.c
+++ b/src/libw32dll/qt_decoder.c
@@ -1,18 +1,18 @@
/*
* Copyright (C) 2000-2006 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -110,19 +110,19 @@ typedef struct SoundComponentData {
typedef int (__cdecl* LPFUNC1)(long flag);
-typedef int (__cdecl* LPFUNC2)(const SoundComponentData *,
+typedef int (__cdecl* LPFUNC2)(const SoundComponentData *,
const SoundComponentData *,
SoundConverter *);
typedef int (__cdecl* LPFUNC3)(SoundConverter sc);
typedef int (__cdecl* LPFUNC4)(void);
typedef int (__cdecl* LPFUNC5)(SoundConverter sc, OSType selector,void * infoPtr);
-typedef int (__cdecl* LPFUNC6)(SoundConverter sc,
+typedef int (__cdecl* LPFUNC6)(SoundConverter sc,
unsigned long inputBytesTarget,
unsigned long *inputFrames,
unsigned long *inputBytes,
unsigned long *outputBytes );
-typedef int (__cdecl* LPFUNC7)(SoundConverter sc,
- const void *inputPtr,
+typedef int (__cdecl* LPFUNC7)(SoundConverter sc,
+ const void *inputPtr,
unsigned long inputFrames,
void *outputPtr,
unsigned long *outputFrames,
@@ -131,7 +131,7 @@ typedef int (__cdecl* LPFUNC8)(SoundConverter sc,
void *outputPtr,
unsigned long *outputFrames,
unsigned long *outputBytes);
-typedef int (__cdecl* LPFUNC9)(SoundConverter sc) ;
+typedef int (__cdecl* LPFUNC9)(SoundConverter sc) ;
typedef struct {
@@ -146,7 +146,7 @@ typedef struct qta_decoder_s {
xine_stream_t *stream;
- HINSTANCE qtml_dll;
+ HINSTANCE qtml_dll;
xine_waveformatex wave;
uint8_t out_buf[1000000];
@@ -173,7 +173,7 @@ typedef struct qta_decoder_s {
uint8_t data[BUFSIZE];
int data_len;
int num_frames;
-
+
ldt_fs_t *ldt_fs;
} qta_decoder_t;
@@ -227,9 +227,9 @@ static void qta_init_driver (qta_decoder_t *this, buf_element_t *buf) {
lprintf ("audio: init_driver... (mutex locked)\n");
this->ldt_fs = Setup_LDT_Keeper();
-
+
this->qtml_dll = LoadLibraryA("qtmlClient.dll");
-
+
if (this->qtml_dll == NULL ) {
xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG, "qt_audio: failed to load dll\n" );
pthread_mutex_unlock(&win32_codec_mutex);
@@ -240,63 +240,63 @@ static void qta_init_driver (qta_decoder_t *this, buf_element_t *buf) {
this->InitializeQTML = (LPFUNC1)GetProcAddress (this->qtml_dll, "InitializeQTML");
if ( this->InitializeQTML == NULL ) {
- xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
"qt_audio: failed geting proc address InitializeQTML\n");
pthread_mutex_unlock(&win32_codec_mutex);
return;
}
this->SoundConverterOpen = (LPFUNC2)GetProcAddress (this->qtml_dll, "SoundConverterOpen");
if ( this->SoundConverterOpen == NULL ) {
- xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
"qt_audio: failed getting proc address SoundConverterOpen\n");
pthread_mutex_unlock(&win32_codec_mutex);
return;
}
this->SoundConverterClose = (LPFUNC3)GetProcAddress (this->qtml_dll, "SoundConverterClose");
if ( this->SoundConverterClose == NULL ) {
- xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
"qt_audio: failed getting proc address SoundConverterClose\n");
pthread_mutex_unlock(&win32_codec_mutex);
return;
}
this->TerminateQTML = (LPFUNC4)GetProcAddress (this->qtml_dll, "TerminateQTML");
if ( this->TerminateQTML == NULL ) {
- xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
"qt_audio: failed getting proc address TerminateQTML\n");
pthread_mutex_unlock(&win32_codec_mutex);
return;
}
this->SoundConverterSetInfo = (LPFUNC5)GetProcAddress (this->qtml_dll, "SoundConverterSetInfo");
if ( this->SoundConverterSetInfo == NULL ) {
- xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
"qt_audio: failed getting proc address SoundConverterSetInfo\n");
pthread_mutex_unlock(&win32_codec_mutex);
return;
}
this->SoundConverterGetBufferSizes = (LPFUNC6)GetProcAddress (this->qtml_dll, "SoundConverterGetBufferSizes");
if ( this->SoundConverterGetBufferSizes == NULL ) {
- xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
"qt_audio: failed getting proc address SoundConverterGetBufferSizes\n");
pthread_mutex_unlock(&win32_codec_mutex);
return;
}
this->SoundConverterConvertBuffer = (LPFUNC7)GetProcAddress (this->qtml_dll, "SoundConverterConvertBuffer");
if ( this->SoundConverterConvertBuffer == NULL ) {
- xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
"qt_audio: failed getting proc address SoundConverterConvertBuffer1\n");
pthread_mutex_unlock(&win32_codec_mutex);
return;
}
this->SoundConverterEndConversion = (LPFUNC8)GetProcAddress (this->qtml_dll, "SoundConverterEndConversion");
if ( this->SoundConverterEndConversion == NULL ) {
- xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
"qt_audio: failed getting proc address SoundConverterEndConversion\n");
pthread_mutex_unlock(&win32_codec_mutex);
return;
}
this->SoundConverterBeginConversion = (LPFUNC9)GetProcAddress (this->qtml_dll, "SoundConverterBeginConversion");
if ( this->SoundConverterBeginConversion == NULL ) {
- xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
"qt_audio: failed getting proc address SoundConverterBeginConversion\n");
pthread_mutex_unlock(&win32_codec_mutex);
return;
@@ -323,17 +323,17 @@ static void qta_init_driver (qta_decoder_t *this, buf_element_t *buf) {
switch (buf->type) {
case BUF_AUDIO_QDESIGN1:
this->InputFormatInfo.format = FOUR_CHAR_CODE('Q','D','M','C');
- _x_meta_info_set_utf8(this->stream, XINE_META_INFO_AUDIOCODEC,
+ _x_meta_info_set_utf8(this->stream, XINE_META_INFO_AUDIOCODEC,
"QDesign Music Codec v1 (QT DLL)");
break;
case BUF_AUDIO_QDESIGN2:
this->InputFormatInfo.format = FOUR_CHAR_CODE('Q','D','M','2');
- _x_meta_info_set_utf8(this->stream, XINE_META_INFO_AUDIOCODEC,
+ _x_meta_info_set_utf8(this->stream, XINE_META_INFO_AUDIOCODEC,
"QDesign Music Codec v2 (QT DLL)");
break;
case BUF_AUDIO_QCLP:
this->InputFormatInfo.format = FOUR_CHAR_CODE('Q','c','l','p');
- _x_meta_info_set_utf8(this->stream, XINE_META_INFO_AUDIOCODEC,
+ _x_meta_info_set_utf8(this->stream, XINE_META_INFO_AUDIOCODEC,
"Qualcomm Purevoice Codec (QT DLL)");
break;
default:
@@ -352,8 +352,8 @@ static void qta_init_driver (qta_decoder_t *this, buf_element_t *buf) {
qta_hexdump ((unsigned char *)buf->decoder_info_ptr[2], buf->decoder_info[2]);
#endif
- error = this->SoundConverterOpen (&this->InputFormatInfo,
- &this->OutputFormatInfo,
+ error = this->SoundConverterOpen (&this->InputFormatInfo,
+ &this->OutputFormatInfo,
&this->myConverter);
lprintf ("audio: SoundConverterOpen:%i\n",error);
@@ -392,7 +392,7 @@ static void qta_init_driver (qta_decoder_t *this, buf_element_t *buf) {
error = this->SoundConverterBeginConversion (this->myConverter);
lprintf ("audio: SoundConverterBeginConversion:%i\n",error);
- if (error) {
+ if (error) {
pthread_mutex_unlock(&win32_codec_mutex);
return;
}
@@ -403,7 +403,7 @@ static void qta_init_driver (qta_decoder_t *this, buf_element_t *buf) {
this->frame_size = this->wave.nChannels * this->wave.wBitsPerSample / 8;
- this->output_open = (this->stream->audio_out->open) (this->stream->audio_out,
+ this->output_open = (this->stream->audio_out->open) (this->stream->audio_out,
this->stream,
this->wave.wBitsPerSample,
this->wave.nSamplesPerSec,
@@ -433,17 +433,17 @@ static void qta_decode_data (audio_decoder_t *this_gen, buf_element_t *buf) {
this->wave.nSamplesPerSec = buf->decoder_info[1];
lprintf ("audio: header copied\n");
-
+
} else if (buf->decoder_flags & BUF_FLAG_SPECIAL) {
lprintf ("audio: special buffer\n");
-
+
if (buf->decoder_info[1] == BUF_SPECIAL_STSD_ATOM) {
lprintf ("audio: got stsd atom -> init codec\n");
if (!this->codec_initialized) {
qta_init_driver (this, buf);
}
-
+
if (!this->codec_initialized)
_x_stream_info_set(this->stream, XINE_STREAM_INFO_AUDIO_HANDLED, 0);
}
@@ -457,13 +457,13 @@ static void qta_decode_data (audio_decoder_t *this_gen, buf_element_t *buf) {
int num_frames = this->data_len / this->InFrameSize;
long out_frames, out_bytes;
int error, frames_left, bytes_sent;
-
+
Check_FS_Segment(this->ldt_fs);
pthread_mutex_lock(&win32_codec_mutex);
error = this->SoundConverterConvertBuffer (this->myConverter,
this->data,
- num_frames,
+ num_frames,
this->out_buf,
&out_frames, &out_bytes);
pthread_mutex_unlock(&win32_codec_mutex);
@@ -474,7 +474,7 @@ static void qta_decode_data (audio_decoder_t *this_gen, buf_element_t *buf) {
this->data_len -= this->InFrameSize * num_frames;
if (this->data_len>0)
memmove (this->data, this->data+num_frames*this->InFrameSize, this->data_len);
-
+
frames_left = out_frames;
bytes_sent = 0;
@@ -498,21 +498,21 @@ static void qta_decode_data (audio_decoder_t *this_gen, buf_element_t *buf) {
lprintf ("audio: sending %d frames, %d frames left\n", nframes, frames_left);
- this->stream->audio_out->put_buffer (this->stream->audio_out,
+ this->stream->audio_out->put_buffer (this->stream->audio_out,
audio_buffer, this->stream);
-
+
bytes_sent += nframes*this->frame_size;
frames_left -= nframes;
}
}
-
+
}
}
static void qta_reset (audio_decoder_t *this_gen) {
qta_decoder_t *this = (qta_decoder_t *) this_gen;
-
+
this->data_len = 0;
}
@@ -522,7 +522,7 @@ static void qta_discontinuity (audio_decoder_t *this_gen) {
static void qta_dispose (audio_decoder_t *this_gen) {
- qta_decoder_t *this = (qta_decoder_t *) this_gen;
+ qta_decoder_t *this = (qta_decoder_t *) this_gen;
int error;
unsigned long ConvertedFrames=0;
unsigned long ConvertedBytes=0;
@@ -548,7 +548,7 @@ static void qta_dispose (audio_decoder_t *this_gen) {
free (this);
}
-static audio_decoder_t *qta_open_plugin (audio_decoder_class_t *class_gen,
+static audio_decoder_t *qta_open_plugin (audio_decoder_class_t *class_gen,
xine_stream_t *stream) {
qta_decoder_t *this ;
@@ -589,7 +589,7 @@ static void *qta_init_class (xine_t *xine, void *data) {
return this;
}
-static const uint32_t audio_types[] = {
+static const uint32_t audio_types[] = {
BUF_AUDIO_QDESIGN1,
BUF_AUDIO_QDESIGN2,
BUF_AUDIO_QCLP,
@@ -623,7 +623,7 @@ typedef struct qtv_decoder_s {
xine_stream_t *stream;
- HINSTANCE qtml_dll;
+ HINSTANCE qtml_dll;
xine_bmiheader bih;
double ratio;
@@ -645,8 +645,8 @@ typedef struct qtv_decoder_s {
/* ImageSubCodecDecompressCapabilities icap; // for ImageCodecInitialize() */
Rect OutBufferRect; /* the dimensions of our GWorld */
- GWorldPtr OutBufferGWorld; /* a GWorld is some kind of
- description for a drawing
+ GWorldPtr OutBufferGWorld; /* a GWorld is some kind of
+ description for a drawing
environment */
ImageDescriptionHandle framedescHandle;
@@ -678,7 +678,7 @@ typedef struct qtv_decoder_s {
CodecDecompressParams * params);
ComponentResult (*ImageCodecBandDecompress)(ComponentInstance ci,
CodecDecompressParams * params);
- PixMapHandle (*GetGWorldPixMap) (GWorldPtr offscreenGWorld);
+ PixMapHandle (*GetGWorldPixMap) (GWorldPtr offscreenGWorld);
OSErr (*QTNewGWorldFromPtr)(GWorldPtr *gw,
OSType pixelFormat,
const Rect *boundsRect,
@@ -686,7 +686,7 @@ typedef struct qtv_decoder_s {
/*GDHandle*/void* aGDevice, /*unused*/
GWorldFlags flags,
void *baseAddr,
- long rowBytes);
+ long rowBytes);
OSErr (*NewHandleClear)(Size byteCount);
ldt_fs_t *ldt_fs;
@@ -746,9 +746,9 @@ static void qtv_init_driver (qtv_decoder_t *this, buf_element_t *buf) {
lprintf ("video: mutex locked\n");
this->ldt_fs = Setup_LDT_Keeper();
-
+
this->qtml_dll = LoadLibraryA("qtmlClient.dll");
-
+
if (this->qtml_dll == NULL ) {
xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG, "qt_video: failed to load dll\n" );
pthread_mutex_unlock(&win32_codec_mutex);
@@ -771,8 +771,8 @@ static void qtv_init_driver (qtv_decoder_t *this, buf_element_t *buf) {
this->GetGWorldPixMap = (PixMapHandle(*)(GWorldPtr))GetProcAddress(this->qtml_dll, "GetGWorldPixMap");
this->QTNewGWorldFromPtr = (OSErr(*)(GWorldPtr*,OSType,const Rect*,CTabHandle,void*,GWorldFlags,void*,long))GetProcAddress(this->qtml_dll, "QTNewGWorldFromPtr");
this->NewHandleClear = (OSErr(*)(Size))GetProcAddress(this->qtml_dll, "NewHandleClear");
-
- if (!this->InitializeQTML || !this->EnterMovies || !this->FindNextComponent
+
+ if (!this->InitializeQTML || !this->EnterMovies || !this->FindNextComponent
|| !this->ImageCodecBandDecompress){
xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG, "qt_video: invalid qt DLL!\n");
pthread_mutex_unlock(&win32_codec_mutex);
@@ -859,7 +859,7 @@ static void qtv_init_driver (qtv_decoder_t *this, buf_element_t *buf) {
memcpy(&id->name,stdata+0x2D,32);
id->depth = _X_BE_16 (stdata+0x4E);
id->clutID = _X_BE_16 (stdata+0x50);
- if (stdata_len>0x56)
+ if (stdata_len>0x56)
memcpy (((char*)&id->clutID)+2, stdata+0x52, stdata_len-0x52);
lprintf ("video: id (%d bytes)\n", stdata_len);
@@ -887,12 +887,12 @@ static void qtv_init_driver (qtv_decoder_t *this, buf_element_t *buf) {
this->plane = malloc (this->bih.biWidth * this->bih.biHeight * 3);
- result = this->QTNewGWorldFromPtr(&this->OutBufferGWorld,
+ result = this->QTNewGWorldFromPtr(&this->OutBufferGWorld,
kYUVSPixelFormat, /*pixel format of new GWorld==YUY2 */
&this->OutBufferRect, /*we should benchmark if yvu9 is faster for svq3, too */
- 0,
- 0,
- 0,
+ 0,
+ 0,
+ 0,
this->plane,
this->bih.biWidth*2);
@@ -909,14 +909,14 @@ static void qtv_init_driver (qtv_decoder_t *this, buf_element_t *buf) {
this->decpar.accuracy = codecNormalQuality;
this->decpar.port = (CGrafPtr)this->OutBufferGWorld;
this->decpar.srcRect = this->OutBufferRect;
-
+
this->decpar.transferMode = srcCopy;
this->decpar.dstPixMap = **this->GetGWorldPixMap (this->OutBufferGWorld);/*destPixmap; */
-
+
cres = this->ImageCodecPreDecompress (this->ci, &this->decpar);
lprintf ("video: ImageCodecPreDecompress cres=0x%X\n", cres);
-
+
this->data_len = 0;
this->codec_initialized = 1;
@@ -930,7 +930,7 @@ static void qtv_init_driver (qtv_decoder_t *this, buf_element_t *buf) {
static void qtv_decode_data (video_decoder_t *this_gen, buf_element_t *buf) {
qtv_decoder_t *this = (qtv_decoder_t *) this_gen;
- lprintf ("video: decode_data, flags=0x%08x, len=%d, pts=%lld ...\n",
+ lprintf ("video: decode_data, flags=0x%08x, len=%d, pts=%lld ...\n",
buf->decoder_flags, buf->size, buf->pts);
if (buf->decoder_flags & BUF_FLAG_STDHEADER) {
@@ -944,7 +944,7 @@ static void qtv_decode_data (video_decoder_t *this_gen, buf_element_t *buf) {
} else if (buf->decoder_flags & BUF_FLAG_SPECIAL) {
lprintf ("video: special buffer\n");
-
+
if (buf->decoder_info[1] == BUF_SPECIAL_STSD_ATOM) {
lprintf ("video: got stsd atom -> init codec\n");
@@ -962,12 +962,12 @@ static void qtv_decode_data (video_decoder_t *this_gen, buf_element_t *buf) {
this->data_len += buf->size;
lprintf ("video: got %d bytes in buffer\n", this->data_len);
-
+
if (buf->decoder_flags & BUF_FLAG_FRAME_END) {
ComponentResult cres;
vo_frame_t *img;
-
+
Check_FS_Segment(this->ldt_fs);
pthread_mutex_lock(&win32_codec_mutex);
@@ -977,30 +977,30 @@ static void qtv_decode_data (video_decoder_t *this_gen, buf_element_t *buf) {
(**this->framedescHandle).dataSize=this->data_len;
cres = this->ImageCodecBandDecompress (this->ci, &this->decpar);
-
+
++this->decpar.frameNumber;
pthread_mutex_unlock(&win32_codec_mutex);
if (cres&0xFFFF){
- xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"qt_video: ImageCodecBandDecompress cres=0x%lX (-0x%lX) %ld :(\n", cres,-cres,cres);
}
img = this->stream->video_out->get_frame (this->stream->video_out,
this->bih.biWidth,
this->bih.biHeight,
- this->ratio,
+ this->ratio,
XINE_IMGFMT_YUY2,
VO_BOTH_FIELDS);
-
+
img->pts = buf->pts;
img->duration = buf->decoder_info[0];
img->bad_frame = 0;
-
- xine_fast_memcpy (img->base[0], this->plane,
+
+ xine_fast_memcpy (img->base[0], this->plane,
this->bih.biWidth*this->bih.biHeight*2);
-
+
img->draw(img, this->stream);
img->free(img);
@@ -1019,7 +1019,7 @@ static void qtv_flush (video_decoder_t *this_gen) {
static void qtv_reset (video_decoder_t *this_gen) {
qtv_decoder_t *this = (qtv_decoder_t *) this_gen;
-
+
this->data_len = 0;
}
@@ -1044,7 +1044,7 @@ static void qtv_dispose (video_decoder_t *this_gen) {
free (this);
}
-static video_decoder_t *qtv_open_plugin (video_decoder_class_t *class_gen,
+static video_decoder_t *qtv_open_plugin (video_decoder_class_t *class_gen,
xine_stream_t *stream) {
qtv_class_t *cls = (qtv_class_t *) class_gen;
@@ -1069,13 +1069,13 @@ static video_decoder_t *qtv_open_plugin (video_decoder_class_t *class_gen,
*/
/*
- * some fake functions to make qt codecs happy
+ * some fake functions to make qt codecs happy
*/
#if 0
static void codec_path_cb (void *data, xine_cfg_entry_t *cfg) {
qtv_class_t *this = (qt_class_t *) data;
-
+
this->qt_codec_path = cfg->str_value;
}
#endif
@@ -1113,7 +1113,7 @@ static const decoder_info_t qtv_dec_info = {
};
const plugin_info_t xine_plugin_info[] EXPORTED = {
- /* type, API, "name", version, special_info, init_function */
+ /* type, API, "name", version, special_info, init_function */
{ PLUGIN_VIDEO_DECODER | PLUGIN_MUST_PRELOAD, 19, "qtv", XINE_VERSION_CODE, &qtv_dec_info, qtv_init_class },
{ PLUGIN_AUDIO_DECODER | PLUGIN_MUST_PRELOAD, 16, "qta", XINE_VERSION_CODE, &qta_dec_info, qta_init_class },
{ PLUGIN_NONE, 0, "", 0, NULL, NULL }
diff --git a/src/libw32dll/qtx/qtxsdk/components.h b/src/libw32dll/qtx/qtxsdk/components.h
index 1456342f9..11e0824c9 100644
--- a/src/libw32dll/qtx/qtxsdk/components.h
+++ b/src/libw32dll/qtx/qtxsdk/components.h
@@ -721,13 +721,13 @@ static inline void dump_CodecDecompressParams(void* xxx){
printf("sequenceID=%ld\n",cd->sequenceID);
idh=cd->imageDescription;
if(idh && idh[0]) dump_ImageDescription(idh[0]);
-
+
for(i=0;i<sizeof(CodecDecompressParams);i++){
printf(" %02X",((unsigned char*)cd)[i]);
if((i%16)==15) printf("\n");
}
printf("\n");
-
+
printf("data=%p size=%ld\n",cd->data,cd->bufferSize);
printf("frameno=%ld lines: %ld .. %ld condflags=0x%lX callerflags=0x%X\n",
cd->frameNumber, cd->startLine, cd->stopLine, cd->conditionFlags,cd->callerFlags);
diff --git a/src/libw32dll/w32codec.c b/src/libw32dll/w32codec.c
index e1d5a81a0..bfbb590ac 100644
--- a/src/libw32dll/w32codec.c
+++ b/src/libw32dll/w32codec.c
@@ -1,18 +1,18 @@
-/*
+/*
* Copyright (C) 2000-2006 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -25,7 +25,7 @@
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
-
+
#include <stdlib.h>
#include <stdio.h>
#include <inttypes.h>
@@ -37,8 +37,8 @@
#include "wine/vfw.h"
#include "wine/mmreg.h"
#include "wine/ldt_keeper.h"
-#include "wine/win32.h"
-#include "wine/wineacm.h"
+#include "wine/win32.h"
+#include "wine/wineacm.h"
#include "wine/loader.h"
#define NOAVIFILE_HEADERS
@@ -67,13 +67,13 @@ static GUID CLSID_Voxware =
0x73f7a062, 0x8829, 0x11d1,
{ 0xb5, 0x50, 0x00, 0x60, 0x97, 0x24, 0x2d, 0x8d }
};
-
+
static GUID CLSID_Acelp =
{
0x4009f700, 0xaeba, 0x11d1,
{ 0x83, 0x44, 0x00, 0xc0, 0x4f, 0xb9, 0x2e, 0xb7 }
};
-
+
static GUID wmv1_clsid =
{
0x4facbba1, 0xffd8, 0x4cd7,
@@ -146,11 +146,11 @@ typedef struct w32v_decoder_s {
video_decoder_t video_decoder;
xine_stream_t *stream;
-
+
int64_t video_step;
int decoder_ok;
- BITMAPINFOHEADER *bih, o_bih;
+ BITMAPINFOHEADER *bih, o_bih;
double ratio;
char scratch1[16]; /* some codecs overflow o_bih */
HIC hic;
@@ -162,7 +162,7 @@ typedef struct w32v_decoder_s {
void *img_buffer;
int size;
long outfmt;
-
+
int ex_functions;
int driver_type;
GUID *guid;
@@ -170,8 +170,8 @@ typedef struct w32v_decoder_s {
DMO_VideoDecoder *dmo_dec;
int stream_id;
- int skipframes;
-
+ int skipframes;
+
ldt_fs_t *ldt_fs;
} w32v_decoder_t;
@@ -181,7 +181,7 @@ typedef struct {
typedef struct w32a_decoder_s {
audio_decoder_t audio_decoder;
-
+
xine_stream_t *stream;
int output_open;
@@ -190,25 +190,25 @@ typedef struct w32a_decoder_s {
unsigned char *buf;
int size;
int64_t pts;
-
+
/* these are used for pts estimation */
int64_t lastpts, sumpts, sumsize;
double byterate;
unsigned char *outbuf;
int outsize;
-
+
HACMSTREAM srcstream;
int rec_audio_src_size;
int max_audio_src_size;
int num_channels;
int rate;
-
+
int driver_type;
GUID *guid;
DS_AudioDecoder *ds_dec;
DMO_AudioDecoder *dmo_dec;
-
+
ldt_fs_t *ldt_fs;
} w32a_decoder_t;
@@ -242,7 +242,7 @@ typedef struct {
#define CENTERSAMPLE 128
#define SCALEBITS 16
-#define FIX(x) ( (int32_t) ( (x) * (1<<SCALEBITS) + 0.5 ) )
+#define FIX(x) ( (int32_t) ( (x) * (1<<SCALEBITS) + 0.5 ) )
#define ONE_HALF ( (int32_t) (1<< (SCALEBITS-1)) )
#define CBCR_OFFSET (CENTERSAMPLE << SCALEBITS)
@@ -280,7 +280,7 @@ static void w32v_init_rgb_ycc(void)
* the YCbCr constants times R,G,B for all possible values.
*/
int i;
-
+
if (rgb_ycc_tab) return;
rgb_ycc_tab = malloc(TABLE_SIZE * sizeof(int32_t));
@@ -349,14 +349,14 @@ static char* get_vids_codec_name(w32v_decoder_t *this,
this->flipped=0;
this->driver_type = DRIVER_STD;
this->ex_functions = 0;
-
+
buf_type &= 0xffff0000;
switch (buf_type) {
case BUF_VIDEO_MSMPEG4_V1:
case BUF_VIDEO_MSMPEG4_V2:
/* Microsoft MPEG-4 v1/v2 */
- /* old dll is disabled now due segfaults
+ /* old dll is disabled now due segfaults
* (using directshow instead)
this->yuv_supported=1;
this->yuv_hack_needed=1;
@@ -368,7 +368,7 @@ static char* get_vids_codec_name(w32v_decoder_t *this,
this->guid=&msmpeg4_clsid;
_x_meta_info_set_utf8(this->stream, XINE_META_INFO_VIDEOCODEC,
"MS MPEG-4 V1/V2 (win32)");
- return "mpg4ds32.ax";
+ return "mpg4ds32.ax";
case BUF_VIDEO_MSMPEG4_V3:
/* Microsoft MPEG-4 v3 */
@@ -383,28 +383,28 @@ static char* get_vids_codec_name(w32v_decoder_t *this,
/* Video in Indeo Video 5 format */
this->yuv_supported=1; /* YUV pic is upside-down :( */
this->flipped=0;
- _x_meta_info_set_utf8(this->stream, XINE_META_INFO_VIDEOCODEC,
+ _x_meta_info_set_utf8(this->stream, XINE_META_INFO_VIDEOCODEC,
"Indeo Video 5 (win32)");
return "ir50_32.dll";
case BUF_VIDEO_IV41:
/* Video in Indeo Video 4.1 format */
this->flipped=1;
- _x_meta_info_set_utf8(this->stream, XINE_META_INFO_VIDEOCODEC,
+ _x_meta_info_set_utf8(this->stream, XINE_META_INFO_VIDEOCODEC,
"Indeo Video 4.1 (win32)");
return "ir41_32.dll";
-
+
case BUF_VIDEO_IV32:
/* Video in Indeo Video 3.2 format */
this->flipped=1;
- _x_meta_info_set_utf8(this->stream, XINE_META_INFO_VIDEOCODEC,
+ _x_meta_info_set_utf8(this->stream, XINE_META_INFO_VIDEOCODEC,
"Indeo Video 3.2 (win32)");
return "ir32_32.dll";
-
+
case BUF_VIDEO_IV31:
/* Video in Indeo Video 3.1 format */
this->flipped=1;
- _x_meta_info_set_utf8(this->stream, XINE_META_INFO_VIDEOCODEC,
+ _x_meta_info_set_utf8(this->stream, XINE_META_INFO_VIDEOCODEC,
"Indeo Video 3.1 (win32)");
return "ir32_32.dll";
@@ -412,7 +412,7 @@ static char* get_vids_codec_name(w32v_decoder_t *this,
/* Video in Cinepak format */
this->flipped=1;
this->yuv_supported=0;
- _x_meta_info_set_utf8(this->stream, XINE_META_INFO_VIDEOCODEC,
+ _x_meta_info_set_utf8(this->stream, XINE_META_INFO_VIDEOCODEC,
"Cinepak (win32)");
return "iccvid.dll";
@@ -425,15 +425,15 @@ static char* get_vids_codec_name(w32v_decoder_t *this,
case BUF_VIDEO_ATIVCR2:
/* Video in ATI VCR2 format */
this->yuv_supported=1;
- _x_meta_info_set_utf8(this->stream, XINE_META_INFO_VIDEOCODEC,
+ _x_meta_info_set_utf8(this->stream, XINE_META_INFO_VIDEOCODEC,
"ATI VCR2 (win32)");
return "ativcr2.dll";
-
+
case BUF_VIDEO_I263:
/* Video in I263 format */
this->flipped=1;
this->yuv_supported=1;
- _x_meta_info_set_utf8(this->stream, XINE_META_INFO_VIDEOCODEC,
+ _x_meta_info_set_utf8(this->stream, XINE_META_INFO_VIDEOCODEC,
"I263 (win32)");
return "i263_32.drv";
@@ -442,22 +442,22 @@ static char* get_vids_codec_name(w32v_decoder_t *this,
/* note: can't play streams with 8bpp */
this->flipped=1;
this->yuv_supported=0;
- _x_meta_info_set_utf8(this->stream, XINE_META_INFO_VIDEOCODEC,
+ _x_meta_info_set_utf8(this->stream, XINE_META_INFO_VIDEOCODEC,
"MS Windows Video 1 (win32)");
- return "msvidc32.dll";
-
+ return "msvidc32.dll";
+
case BUF_VIDEO_DV:
/* Sony DV Codec (not working yet) */
this->yuv_supported=1;
this->driver_type = DRIVER_DS;
this->guid=&dvsd_clsid;
- _x_meta_info_set_utf8(this->stream, XINE_META_INFO_VIDEOCODEC,
+ _x_meta_info_set_utf8(this->stream, XINE_META_INFO_VIDEOCODEC,
"Sony DV (win32)");
- return "qdv.dll";
-
+ return "qdv.dll";
+
case BUF_VIDEO_WMV7:
this->yuv_supported=1;
- _x_meta_info_set_utf8(this->stream, XINE_META_INFO_VIDEOCODEC,
+ _x_meta_info_set_utf8(this->stream, XINE_META_INFO_VIDEOCODEC,
"MS WMV 7 (win32)");
if (n == 2) {
this->driver_type = DRIVER_DMO;
@@ -466,11 +466,11 @@ static char* get_vids_codec_name(w32v_decoder_t *this,
}
this->driver_type = DRIVER_DS;
this->guid=&wmv1_clsid;
- return "wmvds32.ax";
-
+ return "wmvds32.ax";
+
case BUF_VIDEO_WMV8:
this->yuv_supported=1;
- _x_meta_info_set_utf8(this->stream, XINE_META_INFO_VIDEOCODEC,
+ _x_meta_info_set_utf8(this->stream, XINE_META_INFO_VIDEOCODEC,
"MS WMV 8 (win32)");
if (n == 2) {
this->driver_type = DRIVER_DMO;
@@ -480,11 +480,11 @@ static char* get_vids_codec_name(w32v_decoder_t *this,
this->driver_type = DRIVER_DS;
this->guid=&wmv2_clsid;
return "wmv8ds32.ax";
-
+
case BUF_VIDEO_WMV9:
this->yuv_supported=1;
this->driver_type = DRIVER_DMO;
- _x_meta_info_set_utf8(this->stream, XINE_META_INFO_VIDEOCODEC,
+ _x_meta_info_set_utf8(this->stream, XINE_META_INFO_VIDEOCODEC,
"MS WMV 9 (win32)");
if (n == 2) {
this->guid=&wmvdmo_clsid;
@@ -492,14 +492,14 @@ static char* get_vids_codec_name(w32v_decoder_t *this,
}
this->guid=&wmv3_clsid;
return "wmv9dmod.dll";
-
+
case BUF_VIDEO_VP31:
this->yuv_supported=1;
this->ex_functions=1;
this->flipped=1;
- _x_meta_info_set_utf8(this->stream, XINE_META_INFO_VIDEOCODEC,
+ _x_meta_info_set_utf8(this->stream, XINE_META_INFO_VIDEOCODEC,
"On2 VP3.1 (win32)");
- return "vp31vfw.dll";
+ return "vp31vfw.dll";
case BUF_VIDEO_VP4:
this->yuv_supported=1;
@@ -507,46 +507,46 @@ static char* get_vids_codec_name(w32v_decoder_t *this,
_x_meta_info_set_utf8(this->stream, XINE_META_INFO_VIDEOCODEC,
"On2 VP4 (win32)");
return "vp4vfw.dll";
-
+
case BUF_VIDEO_VP5:
this->yuv_supported=1;
this->ex_functions=1;
_x_meta_info_set_utf8(this->stream, XINE_META_INFO_VIDEOCODEC,
"On2 VP5 (win32)");
return "vp5vfw.dll";
-
+
case BUF_VIDEO_VP6:
this->yuv_supported=1;
this->ex_functions=1;
_x_meta_info_set_utf8(this->stream, XINE_META_INFO_VIDEOCODEC,
"On2 VP6 (win32)");
return "vp6vfw.dll";
-
+
case BUF_VIDEO_MSS1:
this->driver_type = DRIVER_DS;
this->guid=&mss1_clsid;
- _x_meta_info_set_utf8(this->stream, XINE_META_INFO_VIDEOCODEC,
+ _x_meta_info_set_utf8(this->stream, XINE_META_INFO_VIDEOCODEC,
"Windows Screen Video (win32)");
- return "msscds32.ax";
+ return "msscds32.ax";
case BUF_VIDEO_TSCC:
this->flipped=1;
this->yuv_supported=0;
- _x_meta_info_set_utf8(this->stream, XINE_META_INFO_VIDEOCODEC,
+ _x_meta_info_set_utf8(this->stream, XINE_META_INFO_VIDEOCODEC,
"TechSmith Screen Capture Codec (win32)");
- return "tsccvid.dll";
-
+ return "tsccvid.dll";
+
case BUF_VIDEO_UCOD:
this->yuv_supported=1;
- _x_meta_info_set_utf8(this->stream, XINE_META_INFO_VIDEOCODEC,
+ _x_meta_info_set_utf8(this->stream, XINE_META_INFO_VIDEOCODEC,
"ClearVideo (win32)");
- return "clrviddd.dll";
-
+ return "clrviddd.dll";
+
}
xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
"w32codec: this didn't happen: unknown video buf type %08x\n", buf_type);
-
+
return NULL;
}
@@ -570,9 +570,9 @@ static void w32v_init_codec (w32v_decoder_t *this, int buf_type) {
memset(&this->o_bih, 0, sizeof(BITMAPINFOHEADER));
this->o_bih.biSize = sizeof(BITMAPINFOHEADER);
-
+
this->ldt_fs = Setup_LDT_Keeper();
-
+
outfmt = IMGFMT_15RGB;
if (this->yuv_supported) {
vo_cap = this->stream->video_out->get_capabilities (this->stream->video_out);
@@ -580,12 +580,12 @@ static void w32v_init_codec (w32v_decoder_t *this, int buf_type) {
outfmt = IMGFMT_YUY2;
}
- this->hic = ICOpen ((int)win32_codec_name,
- this->bih->biCompression,
+ this->hic = ICOpen ((int)win32_codec_name,
+ this->bih->biCompression,
ICMODE_FASTDECOMPRESS);
if(!this->hic){
- xine_log (this->stream->xine, XINE_LOG_MSG,
+ xine_log (this->stream->xine, XINE_LOG_MSG,
_("w32codec: ICOpen failed! unknown codec %08lx / wrong parameters?\n"),
this->bih->biCompression);
this->decoder_ok = 0;
@@ -594,14 +594,14 @@ static void w32v_init_codec (w32v_decoder_t *this, int buf_type) {
ret = ICDecompressGetFormat(this->hic, this->bih, &this->o_bih);
if(ret){
- xine_log (this->stream->xine, XINE_LOG_MSG,
+ xine_log (this->stream->xine, XINE_LOG_MSG,
_("w32codec: ICDecompressGetFormat (%.4s %08lx/%d) failed: Error %ld\n"),
- (char*)&this->o_bih.biCompression, this->bih->biCompression,
- this->bih->biBitCount, (long)ret);
+ (char*)&this->o_bih.biCompression, this->bih->biCompression,
+ this->bih->biBitCount, (long)ret);
this->decoder_ok = 0;
return;
}
-
+
xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
"w32codec: video output format: %.4s %08lx\n",
(char*)&this->o_bih.biCompression, this->o_bih.biCompression);
@@ -615,28 +615,28 @@ static void w32v_init_codec (w32v_decoder_t *this, int buf_type) {
* this->o_bih.biBitCount / 8;
if (this->flipped)
- this->o_bih.biHeight=-this->bih->biHeight;
+ this->o_bih.biHeight=-this->bih->biHeight;
if(outfmt==IMGFMT_YUY2 && !this->yuv_hack_needed)
this->o_bih.biCompression = mmioFOURCC('Y','U','Y','2');
- else
+ else
this->o_bih.biCompression = 0;
-
- ret = (!this->ex_functions)
+
+ ret = (!this->ex_functions)
?ICDecompressQuery(this->hic, this->bih, &this->o_bih)
:ICDecompressQueryEx(this->hic, this->bih, &this->o_bih);
-
+
if(ret){
xine_log (this->stream->xine, XINE_LOG_MSG,
_("w32codec: ICDecompressQuery failed: Error %ld\n"), (long)ret);
this->decoder_ok = 0;
return;
}
-
- ret = (!this->ex_functions)
+
+ ret = (!this->ex_functions)
?ICDecompressBegin(this->hic, this->bih, &this->o_bih)
:ICDecompressBeginEx(this->hic, this->bih, &this->o_bih);
-
+
if(ret){
xine_log (this->stream->xine, XINE_LOG_MSG,
_("w32codec: ICDecompressBegin failed: Error %ld\n"), (long)ret);
@@ -645,14 +645,14 @@ static void w32v_init_codec (w32v_decoder_t *this, int buf_type) {
}
if (outfmt==IMGFMT_YUY2 && this->yuv_hack_needed)
- this->o_bih.biCompression = mmioFOURCC('Y','U','Y','2');
+ this->o_bih.biCompression = mmioFOURCC('Y','U','Y','2');
this->size = 0;
if ( this->img_buffer )
free (this->img_buffer);
this->img_buffer = malloc (this->o_bih.biSizeImage);
-
+
if ( this->buf )
free (this->buf);
this->bufsize = VIDEOBUFSIZE;
@@ -667,14 +667,14 @@ static void w32v_init_codec (w32v_decoder_t *this, int buf_type) {
static void w32v_init_ds_dmo_codec (w32v_decoder_t *this, int buf_type) {
uint32_t vo_cap;
int outfmt;
-
+
xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG, "w32codec: init DirectShow/DMO video codec...\n");
-
+
memset(&this->o_bih, 0, sizeof(BITMAPINFOHEADER));
this->o_bih.biSize = sizeof(BITMAPINFOHEADER);
this->ldt_fs = Setup_LDT_Keeper();
-
+
/* hack: dvsd is the only fourcc accepted by qdv.dll */
if( buf_type == BUF_VIDEO_DV )
this->bih->biCompression = mmioFOURCC('d','v','s','d');
@@ -682,7 +682,7 @@ static void w32v_init_ds_dmo_codec (w32v_decoder_t *this, int buf_type) {
if( this->driver_type == DRIVER_DS ) {
this->ds_dec = DS_VideoDecoder_Open(win32_codec_name, this->guid,
this->bih, this->flipped, 0);
-
+
if(!this->ds_dec){
xine_log (this->stream->xine, XINE_LOG_MSG,
_("w32codec: DS_VideoDecoder failed! unknown codec %08lx / wrong parameters?\n"),
@@ -693,7 +693,7 @@ static void w32v_init_ds_dmo_codec (w32v_decoder_t *this, int buf_type) {
} else {
this->dmo_dec = DMO_VideoDecoder_Open(win32_codec_name, this->guid,
this->bih, this->flipped, 0);
-
+
if(!this->dmo_dec){
xine_log (this->stream->xine, XINE_LOG_MSG,
_("w32codec: DMO_VideoDecoder failed! unknown codec %08lx / wrong parameters?\n"),
@@ -702,7 +702,7 @@ static void w32v_init_ds_dmo_codec (w32v_decoder_t *this, int buf_type) {
return;
}
}
-
+
outfmt = IMGFMT_15RGB;
if (this->yuv_supported) {
vo_cap = this->stream->video_out->get_capabilities (this->stream->video_out);
@@ -717,42 +717,42 @@ static void w32v_init_ds_dmo_codec (w32v_decoder_t *this, int buf_type) {
this->o_bih.biWidth = this->bih->biWidth;
this->o_bih.biHeight = this->bih->biHeight;
-
+
this->o_bih.biSizeImage = this->o_bih.biWidth * this->o_bih.biHeight
* this->o_bih.biBitCount / 8;
if (this->flipped)
- this->o_bih.biHeight=-this->bih->biHeight;
+ this->o_bih.biHeight=-this->bih->biHeight;
if(outfmt==IMGFMT_YUY2 && !this->yuv_hack_needed)
this->o_bih.biCompression = mmioFOURCC('Y','U','Y','2');
- else
+ else
this->o_bih.biCompression = 0;
-
+
if( this->driver_type == DRIVER_DS )
DS_VideoDecoder_SetDestFmt(this->ds_dec, this->o_bih.biBitCount, this->o_bih.biCompression);
else
DMO_VideoDecoder_SetDestFmt(this->dmo_dec, this->o_bih.biBitCount, this->o_bih.biCompression);
-
+
if (outfmt==IMGFMT_YUY2 && this->yuv_hack_needed)
- this->o_bih.biCompression = mmioFOURCC('Y','U','Y','2');
-
+ this->o_bih.biCompression = mmioFOURCC('Y','U','Y','2');
+
if( this->driver_type == DRIVER_DS )
DS_VideoDecoder_StartInternal(this->ds_dec);
else
DMO_VideoDecoder_StartInternal(this->dmo_dec);
-
+
this->size = 0;
if ( this->img_buffer )
free (this->img_buffer);
this->img_buffer = malloc (this->o_bih.biSizeImage);
-
+
if ( this->buf )
free (this->buf);
this->bufsize = VIDEOBUFSIZE;
this->buf = malloc(this->bufsize);
-
+
(this->stream->video_out->open) (this->stream->video_out, this->stream);
this->outfmt = outfmt;
@@ -763,26 +763,26 @@ static void w32v_init_ds_dmo_codec (w32v_decoder_t *this, int buf_type) {
static void w32v_decode_data (video_decoder_t *this_gen, buf_element_t *buf) {
w32v_decoder_t *this = (w32v_decoder_t *) this_gen;
- lprintf ("processing packet type = %08x, buf->decoder_flags=%08x\n",
+ lprintf ("processing packet type = %08x, buf->decoder_flags=%08x\n",
buf->type, buf->decoder_flags);
-
+
if (buf->decoder_flags & BUF_FLAG_PREVIEW)
return;
-
+
if (buf->decoder_flags & BUF_FLAG_FRAMERATE) {
this->video_step = buf->decoder_info[0];
_x_stream_info_set(this->stream, XINE_STREAM_INFO_FRAME_DURATION, this->video_step);
-
+
lprintf ("video_step is %lld\n", this->video_step);
}
-
+
if (buf->decoder_flags & BUF_FLAG_STDHEADER) {
int num_decoders;
if ( buf->type & 0xff )
return;
-
- lprintf ("processing header ...\n");
+
+ lprintf ("processing header ...\n");
/* init package containing bih */
if( this->bih )
@@ -816,7 +816,7 @@ static void w32v_decode_data (video_decoder_t *this_gen, buf_element_t *buf) {
if( !this->decoder_ok ) {
xine_log (this->stream->xine, XINE_LOG_MSG,
- _("w32codec: decoder failed to start. Is '%s' installed?\n"),
+ _("w32codec: decoder failed to start. Is '%s' installed?\n"),
win32_codec_name );
_x_stream_info_set(this->stream, XINE_STREAM_INFO_VIDEO_HANDLED, 0);
_x_message(this->stream, XINE_MSG_LIBRARY_LOAD_ERROR,
@@ -824,30 +824,30 @@ static void w32v_decode_data (video_decoder_t *this_gen, buf_element_t *buf) {
}
pthread_mutex_unlock(&win32_codec_mutex);
-
+
this->stream_id = -1;
this->skipframes = 0;
-
+
} else if (this->decoder_ok) {
- lprintf ("processing packet ...\n");
+ lprintf ("processing packet ...\n");
if( (int) buf->size <= 0 )
return;
-
+
if( this->stream_id < 0 )
this->stream_id = buf->type & 0xff;
-
+
if( this->stream_id != (buf->type & 0xff) )
return;
-
+
if( this->size + buf->size > this->bufsize ) {
this->bufsize = this->size + 2 * buf->size;
xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"w32codec: increasing source buffer to %d to avoid overflow.\n", this->bufsize);
this->buf = realloc( this->buf, this->bufsize );
}
-
+
xine_fast_memcpy (&this->buf[this->size], buf->content, buf->size);
this->size += buf->size;
@@ -864,11 +864,11 @@ static void w32v_decode_data (video_decoder_t *this_gen, buf_element_t *buf) {
/* decoder video frame */
this->bih->biSizeImage = this->size;
-
+
img = this->stream->video_out->get_frame (this->stream->video_out,
- this->bih->biWidth,
- this->bih->biHeight,
- this->ratio,
+ this->bih->biWidth,
+ this->bih->biHeight,
+ this->ratio,
IMGFMT_YUY2,
VO_BOTH_FIELDS);
@@ -878,7 +878,7 @@ static void w32v_decode_data (video_decoder_t *this_gen, buf_element_t *buf) {
if (this->outfmt==IMGFMT_YUY2)
img_buffer = img->base[0];
-
+
flags = 0;
if( !(buf->decoder_flags & BUF_FLAG_KEYFRAME) )
flags |= ICDECOMPRESS_NOTKEYFRAME;
@@ -887,16 +887,16 @@ static void w32v_decode_data (video_decoder_t *this_gen, buf_element_t *buf) {
if( this->skipframes && (buf->type & ~0xff) != BUF_VIDEO_IV32 )
img_buffer = NULL;
-
+
pthread_mutex_lock(&win32_codec_mutex);
if( this->driver_type == DRIVER_STD )
ret = (!this->ex_functions)
?ICDecompress(this->hic, flags,
- this->bih, this->buf, &this->o_bih,
+ this->bih, this->buf, &this->o_bih,
img_buffer)
:ICDecompressEx(this->hic, flags,
this->bih, this->buf, &this->o_bih,
- img_buffer);
+ img_buffer);
else if( this->driver_type == DRIVER_DS ) {
ret = DS_VideoDecoder_DecodeInternal(this->ds_dec, this->buf, this->size,
buf->decoder_flags & BUF_FLAG_KEYFRAME,
@@ -907,7 +907,7 @@ static void w32v_decode_data (video_decoder_t *this_gen, buf_element_t *buf) {
img_buffer);
}
pthread_mutex_unlock(&win32_codec_mutex);
-
+
if (!this->skipframes) {
if (this->outfmt==IMGFMT_YUY2) {
/* already decoded into YUY2 format by DLL */
@@ -921,23 +921,23 @@ static void w32v_decode_data (video_decoder_t *this_gen, buf_element_t *buf) {
#if HAS_SLOW_MULT
int32_t *ctab = rgb_ycc_tab;
#endif
-
+
for (row=0; row<this->bih->biHeight; row++) {
-
+
uint16_t *pixel, *out;
-
+
pixel = (uint16_t *) ( (uint8_t *)this->img_buffer + 2 * row * this->o_bih.biWidth );
out = (uint16_t *) (img->base[0] + row * img->pitches[0] );
-
+
for (col=0; col<this->o_bih.biWidth; col++, pixel++, out++) {
-
+
uint8_t r,g,b;
uint8_t y,u,v;
-
+
b = (*pixel & 0x001F) << 3;
g = (*pixel & 0x03E0) >> 5 << 3;
r = (*pixel & 0x7C00) >> 10 << 3;
-
+
#if HAS_SLOW_MULT
y = (ctab[r+R_Y_OFF] + ctab[g+G_Y_OFF] + ctab[b+B_Y_OFF]) >> SCALEBITS;
if (!(col & 0x0001)) {
@@ -966,19 +966,19 @@ static void w32v_decode_data (video_decoder_t *this_gen, buf_element_t *buf) {
}
}
}
-
+
img->pts = buf->pts;
if (ret || this->skipframes) {
if (!this->skipframes)
xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
- "w32codec: Error decompressing frame, err=%ld\n", (long)ret);
+ "w32codec: Error decompressing frame, err=%ld\n", (long)ret);
img->bad_frame = 1;
lprintf ("BAD FRAME, duration is %d\n", img->duration);
} else {
img->bad_frame = 0;
lprintf ("GOOD FRAME, duration is %d\n\n", img->duration);
}
-
+
this->skipframes = img->draw(img, this->stream);
lprintf ("skipframes is %d\n", this->skipframes);
@@ -1000,15 +1000,15 @@ static void w32v_flush (video_decoder_t *this_gen) {
static void w32v_reset (video_decoder_t *this_gen) {
w32v_decoder_t *this = (w32v_decoder_t *) this_gen;
-
+
/* FIXME: need to improve this function. currently it
doesn't avoid artifacts when seeking. */
-
+
pthread_mutex_lock(&win32_codec_mutex);
if( this->driver_type == DRIVER_STD ) {
if( this->hic )
{
- if (!this->ex_functions)
+ if (!this->ex_functions)
ICDecompressBegin(this->hic, this->bih, &this->o_bih);
else
ICDecompressBeginEx(this->hic, this->bih, &this->o_bih);
@@ -1049,7 +1049,7 @@ static void w32v_dispose (video_decoder_t *this_gen) {
free (this->img_buffer);
this->img_buffer = NULL;
}
-
+
if ( this->buf ) {
free (this->buf);
this->buf = NULL;
@@ -1060,7 +1060,7 @@ static void w32v_dispose (video_decoder_t *this_gen) {
this->bih = NULL;
}
- if( this->decoder_ok ) {
+ if( this->decoder_ok ) {
this->decoder_ok = 0;
this->stream->video_out->close(this->stream->video_out, this->stream);
}
@@ -1079,23 +1079,23 @@ static char* get_auds_codec_name(w32a_decoder_t *this, int buf_type) {
switch (buf_type) {
case BUF_AUDIO_WMAV1:
- _x_meta_info_set_utf8(this->stream, XINE_META_INFO_AUDIOCODEC,
+ _x_meta_info_set_utf8(this->stream, XINE_META_INFO_AUDIOCODEC,
"Windows Media Audio v1 (win32)");
return "divxa32.acm";
case BUF_AUDIO_WMAV2:
- _x_meta_info_set_utf8(this->stream, XINE_META_INFO_AUDIOCODEC,
+ _x_meta_info_set_utf8(this->stream, XINE_META_INFO_AUDIOCODEC,
"Windows Media Audio v2 (win32)");
return "divxa32.acm";
case BUF_AUDIO_WMAV3:
this->driver_type = DRIVER_DMO;
this->guid=&wma3_clsid;
- _x_meta_info_set_utf8(this->stream, XINE_META_INFO_AUDIOCODEC,
+ _x_meta_info_set_utf8(this->stream, XINE_META_INFO_AUDIOCODEC,
"Windows Media Audio v3 (win32)");
return "wma9dmod.dll";
case BUF_AUDIO_WMALL:
this->driver_type = DRIVER_DMO;
this->guid=&wma3_clsid;
- _x_meta_info_set_utf8(this->stream, XINE_META_INFO_AUDIOCODEC,
+ _x_meta_info_set_utf8(this->stream, XINE_META_INFO_AUDIOCODEC,
"Windows Media Audio Lossless (win32)");
return "wma9dmod.dll";
case BUF_AUDIO_WMAV:
@@ -1105,43 +1105,43 @@ static char* get_auds_codec_name(w32a_decoder_t *this, int buf_type) {
"Windows Media Audio Voice (win32)");
return "wmspdmod.dll";
case BUF_AUDIO_MSADPCM:
- _x_meta_info_set_utf8(this->stream, XINE_META_INFO_AUDIOCODEC,
+ _x_meta_info_set_utf8(this->stream, XINE_META_INFO_AUDIOCODEC,
"MS ADPCM (win32)");
return "msadp32.acm";
case BUF_AUDIO_MSIMAADPCM:
- _x_meta_info_set_utf8(this->stream, XINE_META_INFO_AUDIOCODEC,
+ _x_meta_info_set_utf8(this->stream, XINE_META_INFO_AUDIOCODEC,
"MS IMA ADPCM (win32)");
return "imaadp32.acm";
case BUF_AUDIO_MSGSM:
- _x_meta_info_set_utf8(this->stream, XINE_META_INFO_AUDIOCODEC,
+ _x_meta_info_set_utf8(this->stream, XINE_META_INFO_AUDIOCODEC,
"MS GSM (win32)");
return "msgsm32.acm";
case BUF_AUDIO_IMC:
- _x_meta_info_set_utf8(this->stream, XINE_META_INFO_AUDIOCODEC,
+ _x_meta_info_set_utf8(this->stream, XINE_META_INFO_AUDIOCODEC,
"Intel Music Coder (win32)");
return "imc32.acm";
case BUF_AUDIO_LH:
- _x_meta_info_set_utf8(this->stream, XINE_META_INFO_AUDIOCODEC,
+ _x_meta_info_set_utf8(this->stream, XINE_META_INFO_AUDIOCODEC,
"Lernout & Hauspie (win32)");
return "lhacm.acm";
case BUF_AUDIO_VOXWARE:
this->driver_type = DRIVER_DS;
this->guid=&CLSID_Voxware;
- _x_meta_info_set_utf8(this->stream, XINE_META_INFO_AUDIOCODEC,
+ _x_meta_info_set_utf8(this->stream, XINE_META_INFO_AUDIOCODEC,
"Voxware Metasound (win32)");
return "voxmsdec.ax";
case BUF_AUDIO_ACELPNET:
this->driver_type = DRIVER_DS;
this->guid=&CLSID_Acelp;
- _x_meta_info_set_utf8(this->stream, XINE_META_INFO_AUDIOCODEC,
+ _x_meta_info_set_utf8(this->stream, XINE_META_INFO_AUDIOCODEC,
"ACELP.net (win32)");
return "acelpdec.ax";
case BUF_AUDIO_VIVOG723:
- _x_meta_info_set_utf8(this->stream, XINE_META_INFO_AUDIOCODEC,
+ _x_meta_info_set_utf8(this->stream, XINE_META_INFO_AUDIOCODEC,
"Vivo G.723/Siren Audio Codec (win32)");
return "vivog723.acm";
}
-
+
xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
"w32codec: this didn't happen: unknown audio buf type %08x\n", buf_type);
return NULL;
@@ -1165,7 +1165,7 @@ static int w32a_init_audio (w32a_decoder_t *this,
uint8_t *buf, int bufsize, int buftype) {
HRESULT ret;
- WAVEFORMATEX wf;
+ WAVEFORMATEX wf;
WAVEFORMATEX *in_fmt;
unsigned long in_size;
unsigned long out_size;
@@ -1178,19 +1178,19 @@ static int w32a_init_audio (w32a_decoder_t *this,
this->srcstream = 0;
this->num_channels = (in_fmt->nChannels >= 2)?2:1;
this->rate = in_fmt->nSamplesPerSec;
-
+
if (this->output_open)
this->stream->audio_out->close (this->stream->audio_out, this->stream);
this->output_open = (this->stream->audio_out->open) ( this->stream->audio_out, this->stream,
- 16, in_fmt->nSamplesPerSec,
+ 16, in_fmt->nSamplesPerSec,
_x_ao_channels2mode(in_fmt->nChannels));
if (!this->output_open) {
xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"w32codec: (ACM_Decoder) Cannot open audio output device\n");
return 0;
}
-
+
audio_buffer = this->stream->audio_out->get_buffer (this->stream->audio_out);
audio_buffer_mem_size = audio_buffer->mem_size;
audio_buffer->num_frames = 0;
@@ -1204,12 +1204,12 @@ static int w32a_init_audio (w32a_decoder_t *this,
wf.nBlockAlign = 2*in_fmt->nChannels;
wf.wBitsPerSample = 16;
wf.cbSize = 0;
-
+
this->ldt_fs = Setup_LDT_Keeper();
win32_codec_name = get_auds_codec_name (this, buftype);
-
+
if( this->driver_type == DRIVER_STD ) {
-
+
MSACM_RegisterDriver(win32_codec_name, in_fmt->wFormatTag, 0);
ret=acmStreamOpen(&this->srcstream,(HACMDRIVER)NULL,
@@ -1229,73 +1229,73 @@ static int w32a_init_audio (w32a_decoder_t *this,
acmStreamSize(this->srcstream, in_size, &out_size, ACM_STREAMSIZEF_SOURCE);
out_size*=2;
- if(out_size < audio_buffer_mem_size)
+ if(out_size < audio_buffer_mem_size)
out_size=audio_buffer_mem_size;
xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"w32codec: Audio buffer min. size: %d\n",(int)out_size);
-
- acmStreamSize(this->srcstream, out_size, (LPDWORD) &this->rec_audio_src_size,
+
+ acmStreamSize(this->srcstream, out_size, (LPDWORD) &this->rec_audio_src_size,
ACM_STREAMSIZEF_DESTINATION);
} else if( this->driver_type == DRIVER_DS ) {
this->ds_dec=DS_AudioDecoder_Open(win32_codec_name,this->guid, in_fmt);
-
+
if( this->ds_dec == NULL ) {
xine_log (this->stream->xine, XINE_LOG_MSG, _("w32codec: Error initializing DirectShow Audio\n"));
this->srcstream = 0;
return 0;
}
-
- out_size = audio_buffer_mem_size;
+
+ out_size = audio_buffer_mem_size;
xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"w32codec: output buffer size: %d\n",(int)out_size);
this->rec_audio_src_size=DS_AudioDecoder_GetSrcSize(this->ds_dec,out_size);
-
- /* somehow DS_Filters seems to eat more than rec_audio_src_size if the output
- buffer is big enough. Doubling rec_audio_src_size should make this
+
+ /* somehow DS_Filters seems to eat more than rec_audio_src_size if the output
+ buffer is big enough. Doubling rec_audio_src_size should make this
impossible */
- this->rec_audio_src_size*=2;
+ this->rec_audio_src_size*=2;
} else if( this->driver_type == DRIVER_DMO ) {
this->dmo_dec=DMO_AudioDecoder_Open(win32_codec_name,this->guid, in_fmt, wf.nChannels);
-
+
if( this->dmo_dec == NULL ) {
xine_log (this->stream->xine, XINE_LOG_MSG, _("w32codec: Error initializing DMO Audio\n"));
this->srcstream = 0;
return 0;
}
-
- out_size = audio_buffer_mem_size;
+
+ out_size = audio_buffer_mem_size;
xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"w32codec: output buffer size: %d\n",(int)out_size);
this->rec_audio_src_size=DMO_AudioDecoder_GetSrcSize(this->dmo_dec,out_size);
-
+
/* i don't know if DMO has the same problem as above. so, just in case... */
- this->rec_audio_src_size*=2;
+ this->rec_audio_src_size*=2;
}
-
+
xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
- "w32codec: Recommended source buffer size: %d\n", this->rec_audio_src_size);
+ "w32codec: Recommended source buffer size: %d\n", this->rec_audio_src_size);
if( this->rec_audio_src_size < in_fmt->nBlockAlign ) {
this->rec_audio_src_size = in_fmt->nBlockAlign;
xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
- "w32codec: adjusting source buffer size to %d\n", this->rec_audio_src_size);
+ "w32codec: adjusting source buffer size to %d\n", this->rec_audio_src_size);
}
-
+
if( this->buf )
free(this->buf);
-
+
if( this->outbuf )
free(this->outbuf);
this->max_audio_src_size = 2 * this->rec_audio_src_size;
-
+
this->buf = malloc( this->max_audio_src_size );
out_size += 32768;
this->outbuf = malloc( out_size );
this->outsize = out_size;
-
+
this->size = 0;
this->pts = this->lastpts = this->sumpts = this->sumsize = 0;
@@ -1307,7 +1307,7 @@ static void w32a_ensure_buffer_size(w32a_decoder_t *this, int size) {
if( this->size + size > this->max_audio_src_size ) {
this->max_audio_src_size = this->size + 2 * size;
xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
- "w32codec: increasing source buffer to %d to avoid overflow.\n",
+ "w32codec: increasing source buffer to %d to avoid overflow.\n",
this->max_audio_src_size);
this->buf = realloc( this->buf, this->max_audio_src_size );
}
@@ -1315,9 +1315,9 @@ static void w32a_ensure_buffer_size(w32a_decoder_t *this, int size) {
static void w32a_decode_audio (w32a_decoder_t *this,
- unsigned char *data,
- uint32_t size,
- int frame_end,
+ unsigned char *data,
+ uint32_t size,
+ int frame_end,
int64_t pts) {
static ACMSTREAMHEADER ash;
@@ -1350,7 +1350,7 @@ static void w32a_decode_audio (w32a_decoder_t *this,
delay = (int)((double)this->size / this->byterate);
else
delay = 0;
-
+
this->sumsize += size;
w32a_ensure_buffer_size(this, this->size + size);
@@ -1365,17 +1365,17 @@ static void w32a_decode_audio (w32a_decoder_t *this,
memset(&ash, 0, sizeof(ash));
ash.cbStruct=sizeof(ash);
ash.fdwStatus=0;
- ash.dwUser=0;
+ ash.dwUser=0;
ash.pbSrc=this->buf;
ash.cbSrcLength=this->rec_audio_src_size;
ash.pbDst=this->outbuf;
ash.cbDstLength=this->outsize;
-
- lprintf ("decoding %d of %d bytes (%02x %02x %02x %02x ... %02x %02x)\n",
+
+ lprintf ("decoding %d of %d bytes (%02x %02x %02x %02x ... %02x %02x)\n",
this->rec_audio_src_size, this->size,
this->buf[0], this->buf[1], this->buf[2], this->buf[3],
- this->buf[this->rec_audio_src_size-2], this->buf[this->rec_audio_src_size-1]);
-
+ this->buf[this->rec_audio_src_size-2], this->buf[this->rec_audio_src_size-1]);
+
pthread_mutex_lock(&win32_codec_mutex);
if( this->driver_type == DRIVER_STD ) {
hr=acmStreamPrepareHeader(this->srcstream,&ash,0);
@@ -1385,7 +1385,7 @@ static void w32a_decode_audio (w32a_decoder_t *this,
pthread_mutex_unlock(&win32_codec_mutex);
return;
}
-
+
hr=acmStreamConvert(this->srcstream,&ash,0);
} else if( this->driver_type == DRIVER_DS ){
hr=DS_AudioDecoder_Convert(this->ds_dec, ash.pbSrc, ash.cbSrcLength,
@@ -1401,7 +1401,7 @@ static void w32a_decode_audio (w32a_decoder_t *this,
ash.cbDstLengthUsed = size_written;
}
pthread_mutex_unlock(&win32_codec_mutex);
-
+
if(hr){
xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
"w32codec: stream convert error %d, used %d bytes\n", (int)hr,(int)ash.cbSrcLengthUsed);
@@ -1416,18 +1416,18 @@ static void w32a_decode_audio (w32a_decoder_t *this,
DstLengthUsed = ash.cbDstLengthUsed;
p = this->outbuf;
-
+
while( DstLengthUsed )
{
audio_buffer = this->stream->audio_out->get_buffer (this->stream->audio_out);
-
+
if( DstLengthUsed < audio_buffer->mem_size )
bufsize = DstLengthUsed;
else
bufsize = audio_buffer->mem_size;
xine_fast_memcpy( audio_buffer->mem, p, bufsize );
-
+
audio_buffer->num_frames = bufsize / (this->num_channels*2);
if (this->pts)
audio_buffer->vpts = this->pts - delay;
@@ -1437,7 +1437,7 @@ static void w32a_decode_audio (w32a_decoder_t *this,
lprintf("w32a_decode_audio: decoder pts=%lld\n", audio_buffer->vpts);
this->stream->audio_out->put_buffer (this->stream->audio_out, audio_buffer, this->stream);
-
+
this->pts = 0;
DstLengthUsed -= bufsize;
p += bufsize;
@@ -1470,19 +1470,19 @@ static void w32a_decode_data (audio_decoder_t *this_gen, buf_element_t *buf) {
lprintf ("preview data ignored.\n");
return;
}
-
+
if (buf->decoder_flags & BUF_FLAG_STDHEADER) {
lprintf ("got audio header\n");
-
+
/* accumulate init data */
w32a_ensure_buffer_size(this, this->size + buf->size);
memcpy(this->buf + this->size, buf->content, buf->size);
this->size += buf->size;
-
+
if (buf->decoder_flags & BUF_FLAG_FRAME_END) {
pthread_mutex_lock(&win32_codec_mutex);
this->decoder_ok = w32a_init_audio (this, this->buf, this->size, buf->type);
-
+
if( !this->decoder_ok ) {
xine_log (this->stream->xine, XINE_LOG_MSG,
_("w32codec: decoder failed to start. Is '%s' installed?\n"), win32_codec_name );
@@ -1490,7 +1490,7 @@ static void w32a_decode_data (audio_decoder_t *this_gen, buf_element_t *buf) {
}
pthread_mutex_unlock(&win32_codec_mutex);
}
-
+
} else if (this->decoder_ok) {
lprintf ("decoding %d data bytes...\n", buf->size);
@@ -1498,9 +1498,9 @@ static void w32a_decode_data (audio_decoder_t *this_gen, buf_element_t *buf) {
return;
Check_FS_Segment(this->ldt_fs);
-
+
w32a_decode_audio (this, buf->content, buf->size,
- buf->decoder_flags & BUF_FLAG_FRAME_END,
+ buf->decoder_flags & BUF_FLAG_FRAME_END,
buf->pts);
}
}
@@ -1509,7 +1509,7 @@ static void w32a_decode_data (audio_decoder_t *this_gen, buf_element_t *buf) {
static void w32a_dispose (audio_decoder_t *this_gen) {
w32a_decoder_t *this = (w32a_decoder_t *) this_gen;
-
+
pthread_mutex_lock(&win32_codec_mutex);
if( this->driver_type == DRIVER_STD ) {
if( this->srcstream ) {
@@ -1533,12 +1533,12 @@ static void w32a_dispose (audio_decoder_t *this_gen) {
free(this->buf);
this->buf = NULL;
}
-
+
if( this->outbuf ) {
free(this->outbuf);
this->outbuf = NULL;
}
-
+
this->decoder_ok = 0;
if (this->output_open) {
@@ -1549,7 +1549,7 @@ static void w32a_dispose (audio_decoder_t *this_gen) {
free (this);
}
-static video_decoder_t *open_video_decoder_plugin (video_decoder_class_t *class_gen,
+static video_decoder_t *open_video_decoder_plugin (video_decoder_class_t *class_gen,
xine_stream_t *stream) {
w32v_decoder_t *this ;
@@ -1593,7 +1593,7 @@ static void *init_video_decoder_class (xine_t *xine, void *data) {
this->decoder_class.dispose = default_video_decoder_class_dispose;
pthread_once (&once_control, init_routine);
-
+
return this;
}
@@ -1601,7 +1601,7 @@ static void *init_video_decoder_class (xine_t *xine, void *data) {
* audio part
*/
-static audio_decoder_t *open_audio_decoder_plugin (audio_decoder_class_t *class_gen,
+static audio_decoder_t *open_audio_decoder_plugin (audio_decoder_class_t *class_gen,
xine_stream_t *stream) {
w32a_decoder_t *this ;
@@ -1612,11 +1612,11 @@ static audio_decoder_t *open_audio_decoder_plugin (audio_decoder_class_t *class_
this->audio_decoder.reset = w32a_reset;
this->audio_decoder.discontinuity = w32a_discontinuity;
this->audio_decoder.dispose = w32a_dispose;
-
+
this->stream = stream;
this->output_open = 0;
this->decoder_ok = 0;
-
+
this->buf = NULL;
this->outbuf = NULL;
@@ -1630,7 +1630,7 @@ static void *init_audio_decoder_class (xine_t *xine, void *data) {
w32a_class_t *this;
config_values_t *cfg;
-
+
cfg = xine->config;
if ((win32_def_path = get_win32_codecs_path(cfg)) == NULL) return NULL;
@@ -1651,12 +1651,12 @@ static void *init_audio_decoder_class (xine_t *xine, void *data) {
* exported plugin catalog entry
*/
-static const uint32_t video_types[] = {
+static const uint32_t video_types[] = {
BUF_VIDEO_MSMPEG4_V1, BUF_VIDEO_MSMPEG4_V2, BUF_VIDEO_MSMPEG4_V3,
BUF_VIDEO_IV50, BUF_VIDEO_IV41, BUF_VIDEO_IV32, BUF_VIDEO_IV31,
BUF_VIDEO_CINEPAK, /* BUF_VIDEO_ATIVCR1, */
BUF_VIDEO_ATIVCR2, BUF_VIDEO_I263, BUF_VIDEO_MSVC,
- BUF_VIDEO_DV, BUF_VIDEO_WMV7, BUF_VIDEO_WMV8, BUF_VIDEO_WMV9,
+ BUF_VIDEO_DV, BUF_VIDEO_WMV7, BUF_VIDEO_WMV8, BUF_VIDEO_WMV9,
BUF_VIDEO_VP31, BUF_VIDEO_MSS1, BUF_VIDEO_TSCC, BUF_VIDEO_UCOD,
BUF_VIDEO_VP4, BUF_VIDEO_VP5, BUF_VIDEO_VP6,
0
@@ -1667,8 +1667,8 @@ static const decoder_info_t dec_info_video = {
1 /* priority */
};
-static const uint32_t audio_types[] = {
- BUF_AUDIO_WMAV1, BUF_AUDIO_WMAV2, BUF_AUDIO_WMAV3, BUF_AUDIO_MSADPCM,
+static const uint32_t audio_types[] = {
+ BUF_AUDIO_WMAV1, BUF_AUDIO_WMAV2, BUF_AUDIO_WMAV3, BUF_AUDIO_MSADPCM,
BUF_AUDIO_MSIMAADPCM, BUF_AUDIO_MSGSM, BUF_AUDIO_IMC, BUF_AUDIO_LH,
BUF_AUDIO_VOXWARE, BUF_AUDIO_ACELPNET, BUF_AUDIO_VIVOG723, BUF_AUDIO_WMAV,
BUF_AUDIO_WMALL,
@@ -1681,7 +1681,7 @@ static const decoder_info_t dec_info_audio = {
};
const plugin_info_t xine_plugin_info[] EXPORTED = {
- /* type, API, "name", version, special_info, init_function */
+ /* type, API, "name", version, special_info, init_function */
{ PLUGIN_VIDEO_DECODER | PLUGIN_MUST_PRELOAD, 19, "win32v", XINE_VERSION_CODE, &dec_info_video, init_video_decoder_class },
{ PLUGIN_AUDIO_DECODER | PLUGIN_MUST_PRELOAD, 16, "win32a", XINE_VERSION_CODE, &dec_info_audio, init_audio_decoder_class },
{ PLUGIN_NONE, 0, "", 0, NULL, NULL }
diff --git a/src/libw32dll/w32codec.h b/src/libw32dll/w32codec.h
index 1f02ba764..78dcb5c88 100644
--- a/src/libw32dll/w32codec.h
+++ b/src/libw32dll/w32codec.h
@@ -1,18 +1,18 @@
-/*
+/*
* Copyright (C) 2000-2001 the xine project
- *
+ *
* This file is part of xine, a unix video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
diff --git a/src/post/audio/audio_filters.c b/src/post/audio/audio_filters.c
index 448353b52..78f495ca6 100644
--- a/src/post/audio/audio_filters.c
+++ b/src/post/audio/audio_filters.c
@@ -1,18 +1,18 @@
/*
* Copyright (C) 2000-2004 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -38,7 +38,7 @@ static const post_info_t volnorm_special_info = { XINE_POST_TYPE_AUDIO_FILTER
const plugin_info_t xine_plugin_info[] EXPORTED = {
- /* type, API, "name", version, special_info, init_function */
+ /* type, API, "name", version, special_info, init_function */
{ PLUGIN_POST, 10, "upmix", XINE_VERSION_CODE, &upmix_special_info, &upmix_init_plugin },
{ PLUGIN_POST, 10, "upmix_mono", XINE_VERSION_CODE, &upmix_mono_special_info, &upmix_mono_init_plugin },
{ PLUGIN_POST, 10, "stretch", XINE_VERSION_CODE, &stretch_special_info, &stretch_init_plugin },
diff --git a/src/post/audio/audio_filters.h b/src/post/audio/audio_filters.h
index 8a0202751..144e85836 100644
--- a/src/post/audio/audio_filters.h
+++ b/src/post/audio/audio_filters.h
@@ -1,18 +1,18 @@
/*
* Copyright (C) 2000-2004 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
diff --git a/src/post/audio/dsp.h b/src/post/audio/dsp.h
index 237640283..8dabe4f36 100644
--- a/src/post/audio/dsp.h
+++ b/src/post/audio/dsp.h
@@ -1,5 +1,5 @@
/*=============================================================================
- *
+ *
* This software has been released under the terms of the GNU Public
* license. See http://www.gnu.org/copyleft/gpl.html for details.
*
@@ -9,7 +9,7 @@
*/
#ifndef _DSP_H
-#define _DSP_H 1
+#define _DSP_H 1
/* Implementation of routines used for DSP */
diff --git a/src/post/audio/filter.c b/src/post/audio/filter.c
index 55d75e1e4..f41d880fc 100644
--- a/src/post/audio/filter.c
+++ b/src/post/audio/filter.c
@@ -1,5 +1,5 @@
/*=============================================================================
- *
+ *
* This software has been released under the terms of the GNU Public
* license. See http://www.gnu.org/copyleft/gpl.html for details.
*
@@ -25,12 +25,12 @@
*
* n number of filter taps, where mod(n,4)==0
* w filter taps
- * x input signal must be a circular buffer which is indexed backwards
+ * x input signal must be a circular buffer which is indexed backwards
*/
inline _ftype_t fir(register unsigned int n, _ftype_t* w, _ftype_t* x)
{
register _ftype_t y; /* Output */
- y = 0.0;
+ y = 0.0;
do{
n--;
y+=w[n]*x[n];
@@ -44,7 +44,7 @@ inline _ftype_t fir(register unsigned int n, _ftype_t* w, _ftype_t* x)
* d number of filters
* xi current index in xq
* w filter taps k by n big
- * x input signal must be a circular buffers which are indexed backwards
+ * x input signal must be a circular buffers which are indexed backwards
* y output buffer
* s output buffer stride
*/
@@ -67,11 +67,11 @@ inline _ftype_t* pfir(unsigned int n, unsigned int d, unsigned int xi, _ftype_t*
at the new samples, xi current index in xq and n the length of the
filter. xq must be n*2 by k big, s is the index for in.
*/
-inline int updatepq(unsigned int n, unsigned int d, unsigned int xi, _ftype_t** xq, _ftype_t* in, unsigned int s)
+inline int updatepq(unsigned int n, unsigned int d, unsigned int xi, _ftype_t** xq, _ftype_t* in, unsigned int s)
{
register _ftype_t* txq = *xq + xi;
register int nt = n*2;
-
+
while(d-- >0){
*txq= *(txq+n) = *in;
txq+=nt;
@@ -88,26 +88,26 @@ inline int updatepq(unsigned int n, unsigned int d, unsigned int xi, _ftype_t**
n filter length must be odd for HP and BS filters
w buffer for the filter taps (must be n long)
- fc cutoff frequencies (1 for LP and HP, 2 for BP and BS)
+ fc cutoff frequencies (1 for LP and HP, 2 for BP and BS)
0 < fc < 1 where 1 <=> Fs/2
flags window and filter type as defined in filter.h
- variables are ored together: i.e. LP|HAMMING will give a
- low pass filter designed using a hamming window
+ variables are ored together: i.e. LP|HAMMING will give a
+ low pass filter designed using a hamming window
opt beta constant used only when designing using kaiser windows
-
+
returns 0 if OK, -1 if fail
*/
int design_fir(unsigned int n, _ftype_t* w, _ftype_t* fc, unsigned int flags, _ftype_t opt)
{
- unsigned int o = n & 1; /* Indicator for odd filter length */
+ unsigned int o = n & 1; /* Indicator for odd filter length */
unsigned int end = ((n + 1) >> 1) - o; /* Loop end */
unsigned int i; /* Loop index */
_ftype_t k1 = 2 * M_PI; /* 2*pi*fc1 */
_ftype_t k2 = 0.5 * (_ftype_t)(1 - o);/* Constant used if the filter has even length */
_ftype_t k3; /* 2*pi*fc2 Constant used in BP and BS design */
- _ftype_t g = 0.0; /* Gain */
- _ftype_t t1,t2,t3; /* Temporary variables */
+ _ftype_t g = 0.0; /* Gain */
+ _ftype_t t1,t2,t3; /* Temporary variables */
_ftype_t fc1,fc2; /* Cutoff frequencies */
/* Sanity check */
@@ -130,10 +130,10 @@ int design_fir(unsigned int n, _ftype_t* w, _ftype_t* fc, unsigned int flags, _f
case(KAISER):
kaiser(n,w,opt); break;
default:
- return -1;
+ return -1;
}
- if(flags & (LP | HP)){
+ if(flags & (LP | HP)){
fc1=*fc;
/* Cutoff frequency must be < 0.5 where 0.5 <=> Fs/2 */
fc1 = ((fc1 <= 1.0) && (fc1 > 0.0)) ? fc1/2 : 0.25;
@@ -143,7 +143,7 @@ int design_fir(unsigned int n, _ftype_t* w, _ftype_t* fc, unsigned int flags, _f
/*
* If the filter length is odd, there is one point which is exactly
- * in the middle. The value at this point is 2*fCutoff*sin(x)/x,
+ * in the middle. The value at this point is 2*fCutoff*sin(x)/x,
* where x is zero. To make sure nothing strange happens, we set this
* value separately.
*/
@@ -196,9 +196,9 @@ int design_fir(unsigned int n, _ftype_t* w, _ftype_t* fc, unsigned int flags, _f
t2 = sin(k3 * t1)/(M_PI * t1); /* Sinc fc2 */
t3 = sin(k1 * t1)/(M_PI * t1); /* Sinc fc1 */
g += w[end-i-1] * (t3 + t2); /* Total gain in filter */
- w[end-i-1] = w[n-end+i] = w[end-i-1] * (t2 - t3);
+ w[end-i-1] = w[n-end+i] = w[end-i-1] * (t2 - t3);
}
- }
+ }
else{ /* Band stop */
if (!o) /* Band stop filters must have odd length */
return -1;
@@ -210,7 +210,7 @@ int design_fir(unsigned int n, _ftype_t* w, _ftype_t* fc, unsigned int flags, _f
t1 = (_ftype_t)(i+1);
t2 = sin(k1 * t1)/(M_PI * t1); /* Sinc fc1 */
t3 = sin(k3 * t1)/(M_PI * t1); /* Sinc fc2 */
- w[end-i-1] = w[n-end+i] = w[end-i-1] * (t2 - t3);
+ w[end-i-1] = w[n-end+i] = w[end-i-1] * (t2 - t3);
g += 2*w[end-i-1]; /* Total gain in filter */
}
}
@@ -218,9 +218,9 @@ int design_fir(unsigned int n, _ftype_t* w, _ftype_t* fc, unsigned int flags, _f
/* Normalize gain */
g=1/g;
- for (i=0; i<n; i++)
+ for (i=0; i<n; i++)
w[i] *= g;
-
+
return 0;
}
@@ -229,7 +229,7 @@ int design_fir(unsigned int n, _ftype_t* w, _ftype_t* fc, unsigned int flags, _f
* n length of prototype filter
* k number of polyphase components
* w prototype filter taps
- * pw Parallel FIR filter
+ * pw Parallel FIR filter
* g Filter gain
* flags FWD forward indexing
* REW reverse indexing
@@ -240,10 +240,10 @@ int design_fir(unsigned int n, _ftype_t* w, _ftype_t* fc, unsigned int flags, _f
int design_pfir(unsigned int n, unsigned int k, _ftype_t* w, _ftype_t** pw, _ftype_t g, unsigned int flags)
{
int l = (int)n/k; /* Length of individual FIR filters */
- int i; /* Counters */
+ int i; /* Counters */
int j;
_ftype_t t; /* g * w[i] */
-
+
/* Sanity check */
if(l<1 || k<1 || !w || !pw)
return -1;
@@ -276,7 +276,7 @@ int design_pfir(unsigned int n, unsigned int k, _ftype_t* w, _ftype_t** pw, _fty
/* Pre-warp the coefficients of a numerator or denominator.
* Note that a0 is assumed to be 1, so there is no wrapping
- * of it.
+ * of it.
*/
void prewarp(_ftype_t* a, _ftype_t fc, _ftype_t fs)
{
@@ -303,12 +303,12 @@ void prewarp(_ftype_t* a, _ftype_t fc, _ftype_t fs)
* Arguments:
* a - s-domain numerator coefficients
* b - s-domain denominator coefficients
- * k - filter gain factor. Initially set to 1 and modified by each
+ * k - filter gain factor. Initially set to 1 and modified by each
* biquad section in such a way, as to make it the
* coefficient by which to multiply the overall filter gain
* in order to achieve a desired overall filter gain,
- * specified in initial value of k.
- * fs - sampling rate (Hz)
+ * specified in initial value of k.
+ * fs - sampling rate (Hz)
* coef - array of z-domain coefficients to be filled in.
*
* Return: On return, set coef z-domain coefficients and k to the gain
@@ -342,7 +342,7 @@ void bilinear(_ftype_t* a, _ftype_t* b, _ftype_t* k, _ftype_t fs, _ftype_t *coef
* create a filter fill in a, b, Q and fs and make space for coef and k.
*
*
- * Example Butterworth design:
+ * Example Butterworth design:
*
* Below are Butterworth polynomials, arranged as a series of 2nd
* order sections:
@@ -398,12 +398,12 @@ void bilinear(_ftype_t* a, _ftype_t* b, _ftype_t* k, _ftype_t fs, _ftype_t *coef
* a - s-domain numerator coefficients, a[1] is always assumed to be 1.0
* b - s-domain denominator coefficients
* Q - Q value for the filter
- * k - filter gain factor. Initially set to 1 and modified by each
+ * k - filter gain factor. Initially set to 1 and modified by each
* biquad section in such a way, as to make it the
* coefficient by which to multiply the overall filter gain
* in order to achieve a desired overall filter gain,
- * specified in initial value of k.
- * fs - sampling rate (Hz)
+ * specified in initial value of k.
+ * fs - sampling rate (Hz)
* coef - array of z-domain coefficients to be filled in.
*
* Note: Upon return from each call, the k argument will be set to a
@@ -419,7 +419,7 @@ int szxform(const _ftype_t* a, const _ftype_t* b, _ftype_t Q, _ftype_t fc, _ftyp
_ftype_t at[3];
_ftype_t bt[3];
- if(!a || !b || !k || !coef || (Q>1000.0 || Q< 1.0))
+ if(!a || !b || !k || !coef || (Q>1000.0 || Q< 1.0))
return -1;
memcpy(at,a,3*sizeof(_ftype_t));
diff --git a/src/post/audio/filter.h b/src/post/audio/filter.h
index 0e08aa2b9..4d756a618 100644
--- a/src/post/audio/filter.h
+++ b/src/post/audio/filter.h
@@ -1,5 +1,5 @@
/*=============================================================================
- *
+ *
* This software has been released under the terms of the GNU Public
* license. See http://www.gnu.org/copyleft/gpl.html for details.
*
@@ -37,7 +37,7 @@
#define WINDOW_MASK 0x0000001F
/* Parallel filter design */
-#define FWD 0x00000001 /* Forward indexing of polyphase filter */
+#define FWD 0x00000001 /* Forward indexing of polyphase filter */
#define REW 0x00000002 /* Reverse indexing of polyphase filter */
#define ODD 0x00000010 /* Make filter HP */
@@ -60,7 +60,7 @@ extern int szxform(const _ftype_t* a, const _ftype_t* b, _ftype_t Q, _ftype_t fc
/* Add new data to circular queue designed to be used with a FIR
* filter. xq is the circular queue, in pointing at the new sample, xi
* current index for xq and n the length of the filter. xq must be n*2
- * long.
+ * long.
*/
#define updateq(n,xi,xq,in)\
xq[xi]=(xq)[(xi)+(n)]=*(in);\
diff --git a/src/post/audio/stretch.c b/src/post/audio/stretch.c
index 36ac18dd6..7397844b4 100644
--- a/src/post/audio/stretch.c
+++ b/src/post/audio/stretch.c
@@ -1,18 +1,18 @@
/*
* Copyright (C) 2000-2004 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -70,19 +70,19 @@ static void stretchscr_set_pivot (stretchscr_t *this) {
struct timeval tv;
int64_t pts;
- double pts_calc;
+ double pts_calc;
xine_monotonic_clock(&tv, NULL);
pts_calc = (tv.tv_sec - this->cur_time.tv_sec) * this->speed_factor;
pts_calc += (tv.tv_usec - this->cur_time.tv_usec) * this->speed_factor / 1e6;
pts = this->cur_pts + pts_calc;
-/* This next part introduces a one off inaccuracy
- * to the scr due to rounding tv to pts.
+/* This next part introduces a one off inaccuracy
+ * to the scr due to rounding tv to pts.
*/
this->cur_time.tv_sec=tv.tv_sec;
this->cur_time.tv_usec=tv.tv_usec;
- this->cur_pts=pts;
+ this->cur_pts=pts;
return ;
}
@@ -94,7 +94,7 @@ static int stretchscr_set_speed (scr_plugin_t *scr, int speed) {
stretchscr_set_pivot( this );
this->xine_speed = speed;
- this->speed_factor = (double) speed * 90000.0 / XINE_FINE_SPEED_NORMAL /
+ this->speed_factor = (double) speed * 90000.0 / XINE_FINE_SPEED_NORMAL /
(*this->stretch_factor);
pthread_mutex_unlock (&this->lock);
@@ -125,7 +125,7 @@ static void stretchscr_start (scr_plugin_t *scr, int64_t start_vpts) {
this->cur_pts = start_vpts;
pthread_mutex_unlock (&this->lock);
-
+
stretchscr_set_speed (&this->scr, XINE_FINE_SPEED_NORMAL);
}
@@ -134,16 +134,16 @@ static int64_t stretchscr_get_current (scr_plugin_t *scr) {
struct timeval tv;
int64_t pts;
- double pts_calc;
+ double pts_calc;
pthread_mutex_lock (&this->lock);
xine_monotonic_clock(&tv, NULL);
-
+
pts_calc = (tv.tv_sec - this->cur_time.tv_sec) * this->speed_factor;
pts_calc += (tv.tv_usec - this->cur_time.tv_usec) * this->speed_factor / 1e6;
pts = this->cur_pts + pts_calc;
-
+
pthread_mutex_unlock (&this->lock);
return pts;
@@ -168,9 +168,9 @@ static stretchscr_t *XINE_MALLOC stretchscr_init (double *stretch_factor) {
this->scr.start = stretchscr_start;
this->scr.get_current = stretchscr_get_current;
this->scr.exit = stretchscr_exit;
-
+
pthread_mutex_init (&this->lock, NULL);
-
+
this->stretch_factor = stretch_factor;
stretchscr_set_speed (&this->scr, XINE_SPEED_PAUSE);
@@ -202,21 +202,21 @@ typedef struct stretch_parameters_s {
START_PARAM_DESCR( stretch_parameters_t )
PARAM_ITEM( POST_PARAM_TYPE_BOOL, preserve_pitch, NULL, 0, 1, 0,
"Preserve pitch" )
-PARAM_ITEM( POST_PARAM_TYPE_DOUBLE, factor, NULL, 0.5, 1.5, 0,
+PARAM_ITEM( POST_PARAM_TYPE_DOUBLE, factor, NULL, 0.5, 1.5, 0,
"Time stretch factor (<1.0 shorten duration)" )
END_PARAM_DESCR( param_descr )
/* plugin structure */
struct post_plugin_stretch_s {
post_plugin_t post;
-
+
stretchscr_t* scr;
/* private data */
stretch_parameters_t params;
xine_post_in_t params_input;
int params_changed;
-
+
int channels;
int bytes_per_frame;
@@ -228,9 +228,9 @@ struct post_plugin_stretch_s {
int num_frames; /* current # of frames on audiofrag */
int16_t last_sample[RESAMPLE_MAX_CHANNELS];
-
+
int64_t pts; /* pts for audiofrag */
-
+
pthread_mutex_t lock;
};
@@ -290,16 +290,16 @@ static int stretch_port_open(xine_audio_port_t *port_gen, xine_stream_t *stream,
post_audio_port_t *port = (post_audio_port_t *)port_gen;
post_plugin_stretch_t *this = (post_plugin_stretch_t *)port->post;
int64_t time;
-
+
_x_post_rewire(&this->post);
_x_post_inc_usage(port);
-
+
port->stream = stream;
port->bits = bits;
port->rate = rate;
port->mode = mode;
-
- /* register our own scr provider */
+
+ /* register our own scr provider */
time = port->stream->xine->clock->get_current_time(port->stream->xine->clock);
this->scr = stretchscr_init(&this->params.factor);
this->scr->scr.start(&this->scr->scr, time);
@@ -307,7 +307,7 @@ static int stretch_port_open(xine_audio_port_t *port_gen, xine_stream_t *stream,
/* force updating on stretch_port_put_buffer */
this->params_changed = 1;
-
+
return (port->original_port->open) (port->original_port, stream, bits, rate, mode);
}
@@ -320,34 +320,34 @@ static void stretch_port_close(xine_audio_port_t *port_gen, xine_stream_t *strea
port->stream->xine->clock->unregister_scr(port->stream->xine->clock, &this->scr->scr);
this->scr->scr.exit(&this->scr->scr);
}
-
+
if(this->audiofrag) {
free(this->audiofrag);
this->audiofrag = NULL;
}
-
+
if(this->outfrag) {
free(this->outfrag);
this->outfrag = NULL;
}
-
+
if(this->w) {
free(this->w);
this->w = NULL;
}
-
+
port->stream = NULL;
port->original_port->close(port->original_port, stream );
-
+
_x_post_dec_usage(port);
}
-static void stretch_process_fragment( post_audio_port_t *port,
+static void stretch_process_fragment( post_audio_port_t *port,
xine_stream_t *stream, extra_info_t *extra_info )
{
post_plugin_stretch_t *this = (post_plugin_stretch_t *)port->post;
-
+
audio_buffer_t *outbuf;
int16_t *data_out = this->outfrag;
int num_frames_in = this->num_frames;
@@ -374,52 +374,52 @@ static void stretch_process_fragment( post_audio_port_t *port,
* input chunk has two halves, A and B.
* output chunk is composed as follow:
* - some frames copied directly from A
- * - some frames copied from A merged with frames from B
+ * - some frames copied from A merged with frames from B
* weighted by an increasing factor (0 -> 1.0)
* - frames from A weighted by a decreasing factor (1.0 -> 0)
* merged with frames copied from B
* - some frames copied directly from B
*/
-
+
int merge_frames = num_frames_in - num_frames_out;
int copy_frames;
int16_t *src = this->audiofrag;
int16_t *dst = this->outfrag;
int i, j;
-
+
if( merge_frames > num_frames_out )
merge_frames = num_frames_out;
copy_frames = num_frames_out - merge_frames;
-
+
memcpy(dst, src, copy_frames/2 * this->bytes_per_frame);
dst += copy_frames/2 * this->channels;
src += copy_frames/2 * this->channels;
-
+
for( i = 0; i < merge_frames/2; i++ )
{
for( j = 0; j < this->channels; j++, src++, dst++ ) {
-
+
int32_t s = (int32_t) ((_ftype_t) src[0] +
src[merge_frames * this->channels] * this->w[i]);
*dst = CLIP_INT16(s);
}
}
-
+
for( ; i < merge_frames; i++ )
{
for( j = 0; j < this->channels; j++, src++, dst++ ) {
-
+
int32_t s = (int32_t) ((_ftype_t) src[0] * this->w[i] +
src[merge_frames * this->channels]);
*dst = CLIP_INT16(s);
}
}
-
+
src += merge_frames * this->channels;
-
+
memcpy(dst, src, (copy_frames - copy_frames/2) *
this->bytes_per_frame);
-
+
} else {
/*
* time expansion strategy
@@ -427,13 +427,13 @@ static void stretch_process_fragment( post_audio_port_t *port,
* output chunk is composed of two versions of the
* input chunk:
* - first part copied directly from input, and then
- * merged with the second (delayed) part using a
+ * merged with the second (delayed) part using a
* decreasing factor (1.0 -> 0)
* - the delayed version of the input is merged with
- * an increasing factor (0 -> 1.0) and then (when
- * factor reaches 1.0) just copied until the end.
+ * an increasing factor (0 -> 1.0) and then (when
+ * factor reaches 1.0) just copied until the end.
*/
-
+
int merge_frames = num_frames_out - num_frames_in;
int copy_frames = num_frames_out - merge_frames;
int16_t *src1 = this->audiofrag;
@@ -449,67 +449,67 @@ static void stretch_process_fragment( post_audio_port_t *port,
for( i = 0; i < merge_frames/2; i++ )
{
for( j = 0; j < this->channels; j++, src1++, src2++, dst++ ) {
-
+
int32_t s = (int32_t) ((_ftype_t) *src1 +
*src2 * this->w[i]);
*dst = CLIP_INT16(s);
}
}
-
+
for( ; i < merge_frames; i++ )
{
for( j = 0; j < this->channels; j++, src1++, src2++, dst++ ) {
-
+
int32_t s = (int32_t) ((_ftype_t) *src1 * this->w[i] +
*src2);
*dst = CLIP_INT16(s);
}
}
-
+
memcpy(dst, src2, (copy_frames - copy_frames/2) *
this->bytes_per_frame);
}
}
-
+
/* copy processed fragment into multiple audio buffers, if needed */
while( num_frames_out ) {
- outbuf = port->original_port->get_buffer(port->original_port);
-
+ outbuf = port->original_port->get_buffer(port->original_port);
+
outbuf->num_frames = outbuf->mem_size / this->bytes_per_frame;
if( outbuf->num_frames > num_frames_out )
outbuf->num_frames = num_frames_out;
-
- memcpy( outbuf->mem, data_out,
+
+ memcpy( outbuf->mem, data_out,
outbuf->num_frames * this->bytes_per_frame );
num_frames_out -= outbuf->num_frames;
data_out = (uint16_t *)((uint8_t *)data_out + outbuf->num_frames * this->bytes_per_frame);
-
+
outbuf->vpts = this->pts;
this->pts = 0;
outbuf->stream = stream;
outbuf->format.bits = port->bits;
outbuf->format.rate = port->rate;
outbuf->format.mode = port->mode;
-
+
_x_extra_info_merge( outbuf->extra_info, extra_info );
-
- port->original_port->put_buffer(port->original_port, outbuf, stream );
+
+ port->original_port->put_buffer(port->original_port, outbuf, stream );
}
-
+
this->num_frames = 0;
}
-static void stretch_port_put_buffer (xine_audio_port_t *port_gen,
+static void stretch_port_put_buffer (xine_audio_port_t *port_gen,
audio_buffer_t *buf, xine_stream_t *stream) {
-
+
post_audio_port_t *port = (post_audio_port_t *)port_gen;
post_plugin_stretch_t *this = (post_plugin_stretch_t *)port->post;
int16_t *data_in;
-
+
pthread_mutex_lock (&this->lock);
-
+
if( this->params_changed ) {
int64_t audio_step;
@@ -517,40 +517,40 @@ static void stretch_port_put_buffer (xine_audio_port_t *port_gen,
/* output whatever we have before changing parameters */
stretch_process_fragment( port, stream, buf->extra_info );
}
-
+
this->channels = _x_ao_mode2channels(port->mode);
this->bytes_per_frame = port->bits / 8 * this->channels;
-
+
audio_step = ((int64_t)90000 * (int64_t)32768) / (int64_t)port->rate;
audio_step = (int64_t) ((double)audio_step / this->params.factor);
stream->metronom->set_audio_rate(stream->metronom, audio_step);
stretchscr_set_speed(&this->scr->scr, this->scr->xine_speed);
-
+
if(this->audiofrag) {
free(this->audiofrag);
this->audiofrag = NULL;
}
-
+
if(this->outfrag) {
free(this->outfrag);
this->outfrag = NULL;
}
-
+
if(this->w) {
free(this->w);
this->w = NULL;
}
-
+
this->frames_per_frag = port->rate * AUDIO_FRAGMENT;
this->frames_per_outfrag = (int) ((double)this->params.factor * this->frames_per_frag);
if( this->frames_per_frag != this->frames_per_outfrag ) {
int wsize;
-
- this->audiofrag = malloc( this->frames_per_frag * this->bytes_per_frame );
- this->outfrag = malloc( this->frames_per_outfrag * this->bytes_per_frame );
-
+
+ this->audiofrag = malloc( this->frames_per_frag * this->bytes_per_frame );
+ this->outfrag = malloc( this->frames_per_outfrag * this->bytes_per_frame );
+
if( this->frames_per_frag > this->frames_per_outfrag )
wsize = this->frames_per_frag - this->frames_per_outfrag;
else
@@ -559,41 +559,41 @@ static void stretch_port_put_buffer (xine_audio_port_t *port_gen,
this->w = (_ftype_t*) malloc( wsize * sizeof(_ftype_t) );
triang(wsize, this->w);
}
-
+
this->num_frames = 0;
this->pts = 0;
-
+
this->params_changed = 0;
}
-
+
pthread_mutex_unlock (&this->lock);
/* just pass data through if we have nothing to do */
if( this->frames_per_frag == this->frames_per_outfrag ||
/* FIXME: we only handle 1 or 2 channels, 16 bits for now */
- (this->channels != 1 && this->channels != 2) ||
+ (this->channels != 1 && this->channels != 2) ||
port->bits != 16 ) {
-
- port->original_port->put_buffer(port->original_port, buf, stream );
-
+
+ port->original_port->put_buffer(port->original_port, buf, stream );
+
return;
}
-
+
/* update pts for our current audio fragment */
if( buf->vpts )
this->pts = buf->vpts - (this->num_frames * 90000 / port->rate);
-
+
data_in = buf->mem;
while( buf->num_frames ) {
int frames_to_copy = this->frames_per_frag - this->num_frames;
-
+
if( frames_to_copy > buf->num_frames )
frames_to_copy = buf->num_frames;
/* copy up to one fragment from input buf to our buffer */
memcpy( (uint8_t *)this->audiofrag + this->num_frames * this->bytes_per_frame,
data_in, frames_to_copy * this->bytes_per_frame );
-
+
data_in = (uint16_t *)((uint8_t *)data_in + frames_to_copy * this->bytes_per_frame);
this->num_frames += frames_to_copy;
buf->num_frames -= frames_to_copy;
@@ -603,10 +603,10 @@ static void stretch_port_put_buffer (xine_audio_port_t *port_gen,
stretch_process_fragment( port, stream, buf->extra_info );
}
}
-
+
buf->num_frames=0; /* UNDOCUMENTED, but hey, it works! Force old audio_out buffer free. */
- port->original_port->put_buffer(port->original_port, buf, stream );
-
+ port->original_port->put_buffer(port->original_port, buf, stream );
+
return;
}
@@ -630,21 +630,21 @@ static post_plugin_t *stretch_open_plugin(post_class_t *class_gen, int inputs,
xine_post_in_t *input_api;
post_audio_port_t *port;
stretch_parameters_t init_params;
-
+
if (!this || !audio_target || !audio_target[0] ) {
free(this);
return NULL;
}
-
+
_x_post_init(&this->post, 1, 0);
init_params.preserve_pitch = 1;
init_params.factor = 0.80;
-
+
pthread_mutex_init (&this->lock, NULL);
set_parameters ((xine_post_t *)&this->post, &init_params);
-
+
port = _x_post_intercept_audio_port(&this->post, audio_target[0], &input, &output);
port->new_port.open = stretch_port_open;
port->new_port.close = stretch_port_close;
@@ -667,16 +667,16 @@ static post_plugin_t *stretch_open_plugin(post_class_t *class_gen, int inputs,
void *stretch_init_plugin(xine_t *xine, void *data)
{
post_class_stretch_t *class = (post_class_stretch_t *)xine_xmalloc(sizeof(post_class_stretch_t));
-
+
if (!class)
return NULL;
-
+
class->post_class.open_plugin = stretch_open_plugin;
class->post_class.identifier = "stretch";
class->post_class.description = N_("Time stretch by a given factor, optionally preserving pitch");
class->post_class.dispose = default_post_class_dispose;
-
+
class->xine = xine;
-
+
return class;
}
diff --git a/src/post/audio/upmix.c b/src/post/audio/upmix.c
index 24df657d0..c8f7c0121 100644
--- a/src/post/audio/upmix.c
+++ b/src/post/audio/upmix.c
@@ -1,18 +1,18 @@
/*
* Copyright (C) 2000-2004 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -167,13 +167,13 @@ static int upmix_port_open(xine_audio_port_t *port_gen, xine_stream_t *stream,
_x_post_rewire(&this->post);
_x_post_inc_usage(port);
-
+
port->stream = stream;
port->bits = bits;
port->rate = rate;
port->mode = mode;
capabilities = port->original_port->get_capabilities(port->original_port);
-
+
this->channels = _x_ao_mode2channels(mode);
/* FIXME: Handle all desired output formats */
if ((capabilities & AO_CAP_MODE_5_1CHANNEL) && (capabilities & AO_CAP_FLOAT32)) {
@@ -232,7 +232,7 @@ static int upmix_frames_2to51_any_to_float( uint8_t *dst8, uint8_t *src8, int nu
float right;
float sum;
int frame;
- int src_units_per_sample=1;
+ int src_units_per_sample=1;
if (step_channel_in == 3) src_units_per_sample=step_channel_in; /* Special handling for 24 bit 3byte input */
for (frame=0;frame < num_frames; frame++) {
@@ -297,9 +297,9 @@ static int upmix_frames_2to51_any_to_float( uint8_t *dst8, uint8_t *src8, int nu
return frame;
}
-static void upmix_port_put_buffer (xine_audio_port_t *port_gen,
+static void upmix_port_put_buffer (xine_audio_port_t *port_gen,
audio_buffer_t *buf, xine_stream_t *stream) {
-
+
post_audio_port_t *port = (post_audio_port_t *)port_gen;
post_plugin_upmix_t *this = (post_plugin_upmix_t *)port->post;
int src_step_frame;
@@ -315,7 +315,7 @@ static void upmix_port_put_buffer (xine_audio_port_t *port_gen,
if ((this->channels==2) && (this->channels_out==6)) {
while (num_frames_processed < buf->num_frames) {
- this->buf = port->original_port->get_buffer(port->original_port);
+ this->buf = port->original_port->get_buffer(port->original_port);
/* this->buf->num_frames is handled after the upmix */
this->buf->vpts = buf->vpts;
if (num_frames_processed != 0) this->buf->vpts = 0;
@@ -327,7 +327,7 @@ static void upmix_port_put_buffer (xine_audio_port_t *port_gen,
this->buf->format.bits = 32; /* Upmix to floats */
this->buf->format.rate = port->rate;
this->buf->format.mode = AO_CAP_MODE_5_1CHANNEL;
- _x_extra_info_merge( this->buf->extra_info, buf->extra_info);
+ _x_extra_info_merge( this->buf->extra_info, buf->extra_info);
step_channel_in = port->bits>>3;
step_channel_out = this->buf->format.bits>>3;
dst_step_frame = this->channels_out*step_channel_out;
@@ -353,18 +353,18 @@ static void upmix_port_put_buffer (xine_audio_port_t *port_gen,
}
}
pthread_mutex_unlock (&this->lock);
-
+
num_frames_done = upmix_frames_2to51_any_to_float(data8dst, data8src, num_frames, step_channel_in, this->sub);
this->buf->num_frames = num_frames_done;
num_frames_processed+= num_frames_done;
/* pass data to original port */
- port->original_port->put_buffer(port->original_port, this->buf, stream );
+ port->original_port->put_buffer(port->original_port, this->buf, stream );
}
/* free data from origial buffer */
buf->num_frames=0; /* UNDOCUMENTED, but hey, it works! Force old audio_out buffer free. */
}
- port->original_port->put_buffer(port->original_port, buf, stream );
-
+ port->original_port->put_buffer(port->original_port, buf, stream );
+
return;
}
@@ -388,16 +388,16 @@ static post_plugin_t *upmix_open_plugin(post_class_t *class_gen, int inputs,
post_out_t *output;
xine_post_in_t *input_api;
post_audio_port_t *port;
-
+
if (!this || !audio_target || !audio_target[0] ) {
free(this);
return NULL;
}
-
+
_x_post_init(&this->post, 1, 0);
this->params.cut_off_freq = 100;
-
+
port = _x_post_intercept_audio_port(&this->post, audio_target[0], &input, &output);
port->new_port.open = upmix_port_open;
#if 0
@@ -422,16 +422,16 @@ static post_plugin_t *upmix_open_plugin(post_class_t *class_gen, int inputs,
void *upmix_init_plugin(xine_t *xine, void *data)
{
post_class_upmix_t *class = (post_class_upmix_t *)xine_xmalloc(sizeof(post_class_upmix_t));
-
+
if (!class)
return NULL;
-
+
class->post_class.open_plugin = upmix_open_plugin;
class->post_class.identifier = "upmix";
class->post_class.description = N_("upmix");
class->post_class.dispose = default_post_class_dispose;
-
+
class->xine = xine;
-
+
return class;
}
diff --git a/src/post/audio/upmix_mono.c b/src/post/audio/upmix_mono.c
index c59638be4..499856e69 100644
--- a/src/post/audio/upmix_mono.c
+++ b/src/post/audio/upmix_mono.c
@@ -1,18 +1,18 @@
/*
* Copyright (C) 2000-2004 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -68,11 +68,11 @@ struct post_plugin_upmix_mono_s {
/* private data */
int channels;
-
+
upmix_mono_parameters_t params;
xine_post_in_t params_input;
int params_changed;
-
+
pthread_mutex_t lock;
};
@@ -134,7 +134,7 @@ static int upmix_mono_port_open(xine_audio_port_t *port_gen, xine_stream_t *stre
_x_post_rewire(&this->post);
_x_post_inc_usage(port);
-
+
port->stream = stream;
port->bits = bits;
port->rate = rate;
@@ -142,7 +142,7 @@ static int upmix_mono_port_open(xine_audio_port_t *port_gen, xine_stream_t *stre
this->channels = _x_ao_mode2channels(mode);
capabilities = port->original_port->get_capabilities(port->original_port);
-
+
if (this->channels == 1 && (capabilities & AO_CAP_MODE_STEREO)) {
xprintf(stream->xine, XINE_VERBOSITY_LOG,
_(LOG_MODULE ": upmixing Mono to Stereo.\n"));
@@ -151,7 +151,7 @@ static int upmix_mono_port_open(xine_audio_port_t *port_gen, xine_stream_t *stre
if ( this->channels != 1)
xprintf(stream->xine, XINE_VERBOSITY_LOG,
ngettext(LOG_MODULE ": upmixing a single channel from original %d channel stream.\n",
- LOG_MODULE ": upmixing a single channel from original %d channels stream.\n",
+ LOG_MODULE ": upmixing a single channel from original %d channels stream.\n",
this->channels), this->channels);
else {
xprintf(stream->xine, XINE_VERBOSITY_LOG,
@@ -163,15 +163,15 @@ static int upmix_mono_port_open(xine_audio_port_t *port_gen, xine_stream_t *stre
return (port->original_port->open) (port->original_port, stream, bits, rate, mode);
}
-static void upmix_mono_port_put_buffer(xine_audio_port_t *port_gen,
+static void upmix_mono_port_put_buffer(xine_audio_port_t *port_gen,
audio_buffer_t *buf, xine_stream_t *stream) {
-
+
post_audio_port_t *port = (post_audio_port_t *)port_gen;
post_plugin_upmix_mono_t *this = (post_plugin_upmix_mono_t *)port->post;
-
+
pthread_mutex_lock (&this->lock);
- if (this->channels == 1)
+ if (this->channels == 1)
{
audio_buffer_t *buf0 = port->original_port->get_buffer(port->original_port);
audio_buffer_t *buf1 = port->original_port->get_buffer(port->original_port);
@@ -232,7 +232,7 @@ static void upmix_mono_port_put_buffer(xine_audio_port_t *port_gen,
/* free data from origial buffer */
buf->num_frames = 0; /* UNDOCUMENTED, but hey, it works! Force old audio_out buffer free. */
}
- else if (this->channels && this->params.channel >= 0)
+ else if (this->channels && this->params.channel >= 0)
{
audio_buffer_t *buf0 = port->original_port->get_buffer(port->original_port);
buf0->num_frames = buf->num_frames;
@@ -253,12 +253,12 @@ static void upmix_mono_port_put_buffer(xine_audio_port_t *port_gen,
uint8_t *dst0 = (uint8_t *)buf0->mem;
int cur_channel = this->params.channel;
int i, j;
-
+
if( cur_channel >= this->channels )
cur_channel = this->channels-1;
src += cur_channel * step;
-
+
for (i = 0; i < buf->num_frames; i++)
{
for (j = 0; j < this->channels; j++ )
@@ -276,11 +276,11 @@ static void upmix_mono_port_put_buffer(xine_audio_port_t *port_gen,
/* free data from origial buffer */
buf->num_frames = 0; /* UNDOCUMENTED, but hey, it works! Force old audio_out buffer free. */
}
-
+
pthread_mutex_unlock (&this->lock);
-
+
port->original_port->put_buffer(port->original_port, buf, stream);
-
+
return;
}
@@ -303,24 +303,24 @@ static post_plugin_t *upmix_mono_open_plugin(post_class_t *class_gen, int inputs
xine_post_in_t *input_api;
post_audio_port_t *port;
upmix_mono_parameters_t init_params;
-
+
if (!this || !audio_target || !audio_target[0]) {
free(this);
return NULL;
}
-
+
_x_post_init(&this->post, 1, 0);
init_params.channel = -1;
-
+
pthread_mutex_init (&this->lock, NULL);
set_parameters ((xine_post_t *)&this->post, &init_params);
-
+
port = _x_post_intercept_audio_port(&this->post, audio_target[0], &input, &output);
port->new_port.open = upmix_mono_port_open;
port->new_port.put_buffer = upmix_mono_port_put_buffer;
-
+
input_api = &this->params_input;
input_api->name = "parameters";
input_api->type = XINE_POST_DATA_PARAMETERS;
@@ -337,17 +337,17 @@ static post_plugin_t *upmix_mono_open_plugin(post_class_t *class_gen, int inputs
void *upmix_mono_init_plugin(xine_t *xine, void *data)
{
post_class_upmix_mono_t *class = (post_class_upmix_mono_t *)xine_xmalloc(sizeof(post_class_upmix_mono_t));
-
+
if (!class)
return NULL;
-
+
class->post_class.open_plugin = upmix_mono_open_plugin;
class->post_class.identifier = "upmix_mono";
class->post_class.description = N_("converts Mono into Stereo");
class->post_class.dispose = default_post_class_dispose;
-
+
class->xine = xine;
-
+
return class;
}
diff --git a/src/post/audio/volnorm.c b/src/post/audio/volnorm.c
index e473d6a09..dda38fa5f 100644
--- a/src/post/audio/volnorm.c
+++ b/src/post/audio/volnorm.c
@@ -1,24 +1,24 @@
/*
* Copyright (C) 2000-2008 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
*
* Volume normalization audio filter for xine. Ported by Jason Tackaberry
- * from MPlayer's af_volnorm, which is copyright 2004 by Alex Beregszaszi
+ * from MPlayer's af_volnorm, which is copyright 2004 by Alex Beregszaszi
* & Pierre Lombard.
*/
@@ -117,7 +117,7 @@ struct post_plugin_volnorm_s {
/**************************************************************************
* volnorm parameters functions
*************************************************************************/
-static int set_parameters (xine_post_t *this_gen, void *param_gen)
+static int set_parameters (xine_post_t *this_gen, void *param_gen)
{
post_plugin_volnorm_t *this = (post_plugin_volnorm_t *)this_gen;
volnorm_parameters_t *param = (volnorm_parameters_t *)param_gen;
@@ -129,7 +129,7 @@ static int set_parameters (xine_post_t *this_gen, void *param_gen)
return 1;
}
-static int get_parameters (xine_post_t *this_gen, void *param_gen)
+static int get_parameters (xine_post_t *this_gen, void *param_gen)
{
post_plugin_volnorm_t *this = (post_plugin_volnorm_t *)this_gen;
volnorm_parameters_t *param = (volnorm_parameters_t *)param_gen;
@@ -141,12 +141,12 @@ static int get_parameters (xine_post_t *this_gen, void *param_gen)
return 1;
}
-static xine_post_api_descr_t * get_param_descr (void)
+static xine_post_api_descr_t * get_param_descr (void)
{
return &param_descr;
}
-static char * get_help (void)
+static char * get_help (void)
{
return _("Normalizes audio by maximizing the volume without distorting "
"the sound.\n"
@@ -172,14 +172,14 @@ static xine_post_api_t post_api = {
*************************************************************************/
static int volnorm_port_open(xine_audio_port_t *port_gen, xine_stream_t *stream,
- uint32_t bits, uint32_t rate, int mode)
+ uint32_t bits, uint32_t rate, int mode)
{
post_audio_port_t *port = (post_audio_port_t *)port_gen;
post_plugin_volnorm_t *this = (post_plugin_volnorm_t *)port->post;
_x_post_rewire(&this->post);
_x_post_inc_usage(port);
-
+
port->stream = stream;
port->bits = bits;
port->rate = rate;
@@ -373,10 +373,10 @@ static void method2_float(post_plugin_volnorm_t *this, audio_buffer_t *buf)
}
-static void volnorm_port_put_buffer (xine_audio_port_t *port_gen,
- audio_buffer_t *buf, xine_stream_t *stream)
+static void volnorm_port_put_buffer (xine_audio_port_t *port_gen,
+ audio_buffer_t *buf, xine_stream_t *stream)
{
-
+
post_audio_port_t *port = (post_audio_port_t *)port_gen;
post_plugin_volnorm_t *this = (post_plugin_volnorm_t *)port->post;
@@ -391,8 +391,8 @@ static void volnorm_port_put_buffer (xine_audio_port_t *port_gen,
else if (buf->format.bits == 32)
method2_float(this, buf);
}
- port->original_port->put_buffer(port->original_port, buf, stream );
-
+ port->original_port->put_buffer(port->original_port, buf, stream );
+
return;
}
@@ -416,12 +416,12 @@ static post_plugin_t *volnorm_open_plugin(post_class_t *class_gen, int inputs,
post_out_t *output;
xine_post_in_t *input_api;
post_audio_port_t *port;
-
+
if (!this || !audio_target || !audio_target[0] ) {
free(this);
return NULL;
}
-
+
_x_post_init(&this->post, 1, 0);
pthread_mutex_init (&this->lock, NULL);
@@ -453,16 +453,16 @@ static post_plugin_t *volnorm_open_plugin(post_class_t *class_gen, int inputs,
void *volnorm_init_plugin(xine_t *xine, void *data)
{
post_class_volnorm_t *class = (post_class_volnorm_t *)xine_xmalloc(sizeof(post_class_volnorm_t));
-
+
if (!class)
return NULL;
-
+
class->post_class.open_plugin = volnorm_open_plugin;
class->post_class.identifier = "volnorm";
class->post_class.description = N_("Normalize volume");
class->post_class.dispose = default_post_class_dispose;
-
+
class->xine = xine;
-
+
return class;
}
diff --git a/src/post/audio/window.c b/src/post/audio/window.c
index fdea90590..ca58152d5 100644
--- a/src/post/audio/window.c
+++ b/src/post/audio/window.c
@@ -1,5 +1,5 @@
/*=============================================================================
- *
+ *
* This software has been released under the terms of the GNU Public
* license. See http://www.gnu.org/copyleft/gpl.html for details.
*
@@ -39,7 +39,7 @@ void boxcar(int n, _ftype_t* w)
/*
* Triang a.k.a Bartlett
*
- * | (N-1)|
+ * | (N-1)|
* 2 * |k - -----|
* | 2 |
* w = 1.0 - ---------------
@@ -53,7 +53,7 @@ void triang(int n, _ftype_t* w)
_ftype_t k2 = 1/((_ftype_t)n + k1);
int end = (n + 1) >> 1;
int i;
-
+
/* Calculate window coefficients */
for (i=0 ; i<end ; i++)
w[i] = w[n-i-1] = (2.0*((_ftype_t)(i+1))-(1.0-k1))*k2;
@@ -72,7 +72,7 @@ void hanning(int n, _ftype_t* w)
{
int i;
_ftype_t k = 2*M_PI/((_ftype_t)(n+1)); /* 2*pi/(N+1) */
-
+
/* Calculate window coefficients */
for (i=0; i<n; i++)
*w++ = 0.5*(1.0 - cos(k*(_ftype_t)(i+1)));
@@ -131,22 +131,22 @@ void flattop(int n,_ftype_t* w)
int i;
_ftype_t k1 = 2*M_PI/((_ftype_t)(n-1)); /* 2*pi/(N-1) */
_ftype_t k2 = 2*k1; /* 4*pi/(N-1) */
-
+
/* Calculate window coefficients */
for (i=0; i<n; i++)
*w++ = 0.2810638602 - 0.5208971735*cos(k1*(_ftype_t)i) + 0.1980389663*cos(k2*(_ftype_t)i);
}
-/* Computes the 0th order modified Bessel function of the first kind.
- * (Needed to compute Kaiser window)
- *
+/* Computes the 0th order modified Bessel function of the first kind.
+ * (Needed to compute Kaiser window)
+ *
* y = sum( (x/(2*n))^2 )
* n
*/
#define BIZ_EPSILON 1E-21 /* Max error acceptable */
static _ftype_t besselizero(_ftype_t x)
-{
+{
_ftype_t temp;
_ftype_t sum = 1.0;
_ftype_t u = 1.0;
@@ -175,10 +175,10 @@ static _ftype_t besselizero(_ftype_t x)
* Gold (Theory and Application of DSP) under Kaiser windows for more
* about Beta. The following table from Rabiner and Gold gives some
* feel for the effect of Beta:
- *
+ *
* All ripples in dB, width of transition band = D*N where N = window
* length
- *
+ *
* BETA D PB RIP SB RIP
* 2.120 1.50 +-0.27 -30
* 3.384 2.23 0.0864 -40
@@ -195,8 +195,8 @@ void kaiser(int n, _ftype_t* w, _ftype_t b)
_ftype_t k1 = 1.0/besselizero(b);
int k2 = 1 - (n & 1);
int end = (n + 1) >> 1;
- int i;
-
+ int i;
+
/* Calculate window coefficients */
for (i=0 ; i<end ; i++){
tmp = (_ftype_t)(2*i + k2) / ((_ftype_t)n - 1.0);
diff --git a/src/post/audio/window.h b/src/post/audio/window.h
index d0a7446eb..638707809 100644
--- a/src/post/audio/window.h
+++ b/src/post/audio/window.h
@@ -1,5 +1,5 @@
/*=============================================================================
- *
+ *
* This software has been released under the terms of the GNU Public
* license. See http://www.gnu.org/copyleft/gpl.html for details.
*
diff --git a/src/post/deinterlace/Makefile.am b/src/post/deinterlace/Makefile.am
index 54ab83572..fa2ad85fd 100644
--- a/src/post/deinterlace/Makefile.am
+++ b/src/post/deinterlace/Makefile.am
@@ -9,7 +9,7 @@ SUBDIRS = plugins
xinepost_LTLIBRARIES = xineplug_post_tvtime.la
xineplug_post_tvtime_la_SOURCES = xine_plugin.c \
- deinterlace.c pulldown.c speedy.c tvtime.c
+ deinterlace.c pulldown.c speedy.c tvtime.c
xineplug_post_tvtime_la_LIBADD = $(XINE_LIB) $(LTLIBINTL) $(PTHREAD_LIBS) \
$(top_builddir)/src/post/deinterlace/plugins/libdeinterlaceplugins.la
diff --git a/src/post/deinterlace/plugins/Makefile.am b/src/post/deinterlace/plugins/Makefile.am
index 7e3548643..cf6981881 100644
--- a/src/post/deinterlace/plugins/Makefile.am
+++ b/src/post/deinterlace/plugins/Makefile.am
@@ -37,9 +37,9 @@ noinst_HEADERS = plugins.h greedyhmacros.h
if DEBUG_BUILD
debug_sources = greedy2frame.c
-nodebug_sources =
+nodebug_sources =
else
-debug_sources =
+debug_sources =
nodebug_sources = greedy2frame.c
endif
diff --git a/src/post/deinterlace/plugins/greedy.c b/src/post/deinterlace/plugins/greedy.c
index 1742f7515..ee401dba6 100644
--- a/src/post/deinterlace/plugins/greedy.c
+++ b/src/post/deinterlace/plugins/greedy.c
@@ -49,7 +49,7 @@
// upon which give the smaller comb factor, and then clip to avoid large damage
// when wrong.
//
-// I'd intended this to be part of a larger more elaborate method added to
+// I'd intended this to be part of a larger more elaborate method added to
// Blended Clip but this give too good results for the CPU to ignore here.
static void copy_scanline( uint8_t *output,
@@ -135,7 +135,7 @@ static void deinterlace_greedy_packed422_scanline_mmxext( uint8_t *output,
paddusb_r2r( mm3, mm2 ); // now = Max(L1,L3)
pcmpeqb_r2r( mm7, mm7 ); // all ffffffff
- psubusb_r2r( mm1, mm7 ); // - L1
+ psubusb_r2r( mm1, mm7 ); // - L1
paddusb_r2r( mm7, mm3 ); // add, may sat at fff..
psubusb_r2r( mm7, mm3 ); // now = Min(L1,L3)
@@ -147,7 +147,7 @@ static void deinterlace_greedy_packed422_scanline_mmxext( uint8_t *output,
paddusb_r2r( mm3, mm4 ); // now = Max(best,Min(L1,L3)
pcmpeqb_r2r( mm7, mm7 ); // all ffffffff
- psubusb_r2r( mm4, mm7 ); // - Max(best,Min(best,L3)
+ psubusb_r2r( mm4, mm7 ); // - Max(best,Min(best,L3)
paddusb_r2r( mm7, mm2 ); // add may sat at FFF..
psubusb_r2r( mm7, mm2 ); // now = Min( Max(best, Min(L1,L3), L2 )=L2 clipped
diff --git a/src/post/deinterlace/plugins/greedy2frame_template.c b/src/post/deinterlace/plugins/greedy2frame_template.c
index 0d9ab6769..1f4df9161 100644
--- a/src/post/deinterlace/plugins/greedy2frame_template.c
+++ b/src/post/deinterlace/plugins/greedy2frame_template.c
@@ -79,9 +79,9 @@
/****************************************************************************
** Field 1 | Field 2 | Field 3 | Field 4 |
-** T0 | | T1 | |
-** | M0 | | M1 |
-** B0 | | B1 | |
+** T0 | | T1 | |
+** | M0 | | M1 |
+** B0 | | B1 | |
*/
@@ -95,13 +95,13 @@
#define MASKS_DEFINED
static const int64_t __attribute__((__used__)) YMask = 0x00ff00ff00ff00ffll;
static const int64_t __attribute__((__used__)) Mask = 0x7f7f7f7f7f7f7f7fll;
- static const int64_t __attribute__((__used__)) DwordOne = 0x0000000100000001ll;
- static const int64_t __attribute__((__used__)) DwordTwo = 0x0000000200000002ll;
+ static const int64_t __attribute__((__used__)) DwordOne = 0x0000000100000001ll;
+ static const int64_t __attribute__((__used__)) DwordTwo = 0x0000000200000002ll;
static int64_t qwGreedyTwoFrameThreshold;
#endif
#if defined(IS_SSE)
-static void DeinterlaceGreedy2Frame_SSE(uint8_t *output, int outstride,
+static void DeinterlaceGreedy2Frame_SSE(uint8_t *output, int outstride,
deinterlace_frame_data_t *data,
int bottom_field, int second_field, int width, int height )
#elif defined(IS_3DNOW)
@@ -133,7 +133,7 @@ static void DeinterlaceGreedy2Frame_MMX(uint8_t *output, int outstride,
qwGreedyTwoFrameThreshold = GreedyTwoFrameThreshold;
qwGreedyTwoFrameThreshold += (GreedyTwoFrameThreshold2 << 8);
qwGreedyTwoFrameThreshold += (qwGreedyTwoFrameThreshold << 48) +
- (qwGreedyTwoFrameThreshold << 32) +
+ (qwGreedyTwoFrameThreshold << 32) +
(qwGreedyTwoFrameThreshold << 16);
@@ -148,7 +148,7 @@ static void DeinterlaceGreedy2Frame_MMX(uint8_t *output, int outstride,
M0 = data->f1;
T0 = data->f2;
}
-
+
if( bottom_field ) {
M1 += stride;
T1 += 0;
@@ -192,9 +192,9 @@ static void DeinterlaceGreedy2Frame_MMX(uint8_t *output, int outstride,
"movq %2, %%mm3 \n\t" // B1
"movq %3, %%mm2 \n\t" // M0
: /* no output */
- : "m" (*T1), "m" (*M1),
+ : "m" (*T1), "m" (*M1),
"m" (*B1), "m" (*M0), "m" (Mask) );
-
+
asm volatile(
/* Figure out what to do with the scanline above the one we just copied.
@@ -269,7 +269,7 @@ static void DeinterlaceGreedy2Frame_MMX(uint8_t *output, int outstride,
"pcmpgtb %3, %%mm5 \n\t"
"pand %%mm6, %%mm5 \n\t" /* get rid of sign bit */
- "pcmpgtd %5, %%mm5 \n\t"
+ "pcmpgtd %5, %%mm5 \n\t"
"pandn %5, %%mm5 \n\t"
"paddd %%mm5, %%mm4 \n\t"
@@ -305,9 +305,9 @@ static void DeinterlaceGreedy2Frame_MMX(uint8_t *output, int outstride,
"movq %%mm4, %%mm5 \n\t"
/* mm4 now is 1 where we want to weave and 0 where we want to bob */
- "pand %%mm0, %%mm4 \n\t"
- "pandn %%mm7, %%mm5 \n\t"
- "por %%mm5, %%mm4 \n\t"
+ "pand %%mm0, %%mm4 \n\t"
+ "pandn %%mm7, %%mm5 \n\t"
+ "por %%mm5, %%mm4 \n\t"
#ifdef IS_SSE
"movntq %%mm4, %0 \n\t"
#else
@@ -351,9 +351,9 @@ static void DeinterlaceGreedy2Frame_MMX(uint8_t *output, int outstride,
}
else
{
- xine_fast_memcpy(Dest, T1, stride);
+ xine_fast_memcpy(Dest, T1, stride);
}
-
+
/* clear out the MMX registers ready for doing floating point again */
asm("emms\n\t");
#endif
diff --git a/src/post/deinterlace/plugins/greedyhmacros.h b/src/post/deinterlace/plugins/greedyhmacros.h
index 5f65959c3..fd1eb2068 100644
--- a/src/post/deinterlace/plugins/greedyhmacros.h
+++ b/src/post/deinterlace/plugins/greedyhmacros.h
@@ -15,7 +15,7 @@
//
/////////////////////////////////////////////////////////////////////////////
-// Define a few macros for CPU dependent instructions.
+// Define a few macros for CPU dependent instructions.
// I suspect I don't really understand how the C macro preprocessor works but
// this seems to get the job done. // TRB 7/01
@@ -35,9 +35,9 @@
"paddusb "mmrw", "mmr1"\n\t"
#define V_PAVGB_SSE(mmr1, mmr2, mmrw, smask) "pavgb "mmr2", "mmr1"\n\t"
#define V_PAVGB_3DNOW(mmr1, mmr2, mmrw, smask) "pavgusb "mmr2", "mmr1"\n\t"
-#define V_PAVGB(mmr1, mmr2, mmrw, smask) V_PAVGB2(mmr1, mmr2, mmrw, smask, SSE_TYPE)
-#define V_PAVGB2(mmr1, mmr2, mmrw, smask, ssetyp) V_PAVGB3(mmr1, mmr2, mmrw, smask, ssetyp)
-#define V_PAVGB3(mmr1, mmr2, mmrw, smask, ssetyp) V_PAVGB_##ssetyp(mmr1, mmr2, mmrw, smask)
+#define V_PAVGB(mmr1, mmr2, mmrw, smask) V_PAVGB2(mmr1, mmr2, mmrw, smask, SSE_TYPE)
+#define V_PAVGB2(mmr1, mmr2, mmrw, smask, ssetyp) V_PAVGB3(mmr1, mmr2, mmrw, smask, ssetyp)
+#define V_PAVGB3(mmr1, mmr2, mmrw, smask, ssetyp) V_PAVGB_##ssetyp(mmr1, mmr2, mmrw, smask)
// some macros for pmaxub instruction
#define V_PMAXUB_MMX(mmr1, mmr2) \
@@ -45,9 +45,9 @@
"paddusb "mmr2", "mmr1"\n\t"
#define V_PMAXUB_SSE(mmr1, mmr2) "pmaxub "mmr2", "mmr1"\n\t"
#define V_PMAXUB_3DNOW(mmr1, mmr2) V_PMAXUB_MMX(mmr1, mmr2) // use MMX version
-#define V_PMAXUB(mmr1, mmr2) V_PMAXUB2(mmr1, mmr2, SSE_TYPE)
-#define V_PMAXUB2(mmr1, mmr2, ssetyp) V_PMAXUB3(mmr1, mmr2, ssetyp)
-#define V_PMAXUB3(mmr1, mmr2, ssetyp) V_PMAXUB_##ssetyp(mmr1, mmr2)
+#define V_PMAXUB(mmr1, mmr2) V_PMAXUB2(mmr1, mmr2, SSE_TYPE)
+#define V_PMAXUB2(mmr1, mmr2, ssetyp) V_PMAXUB3(mmr1, mmr2, ssetyp)
+#define V_PMAXUB3(mmr1, mmr2, ssetyp) V_PMAXUB_##ssetyp(mmr1, mmr2)
// some macros for pminub instruction
// V_PMINUB(mmr1, mmr2, mmr work register) mmr2 may NOT = mmrw
@@ -58,17 +58,17 @@
"psubusb "mmrw", "mmr1"\n\t"
#define V_PMINUB_SSE(mmr1, mmr2, mmrw) "pminub "mmr2", "mmr1"\n\t"
#define V_PMINUB_3DNOW(mmr1, mmr2, mmrw) V_PMINUB_MMX(mmr1, mmr2, mmrw) // use MMX version
-#define V_PMINUB(mmr1, mmr2, mmrw) V_PMINUB2(mmr1, mmr2, mmrw, SSE_TYPE)
-#define V_PMINUB2(mmr1, mmr2, mmrw, ssetyp) V_PMINUB3(mmr1, mmr2, mmrw, ssetyp)
-#define V_PMINUB3(mmr1, mmr2, mmrw, ssetyp) V_PMINUB_##ssetyp(mmr1, mmr2, mmrw)
+#define V_PMINUB(mmr1, mmr2, mmrw) V_PMINUB2(mmr1, mmr2, mmrw, SSE_TYPE)
+#define V_PMINUB2(mmr1, mmr2, mmrw, ssetyp) V_PMINUB3(mmr1, mmr2, mmrw, ssetyp)
+#define V_PMINUB3(mmr1, mmr2, mmrw, ssetyp) V_PMINUB_##ssetyp(mmr1, mmr2, mmrw)
// some macros for movntq instruction
-// V_MOVNTQ(mmr1, mmr2)
+// V_MOVNTQ(mmr1, mmr2)
#define V_MOVNTQ_MMX(mmr1, mmr2) "movq "mmr2", "mmr1"\n\t"
#define V_MOVNTQ_3DNOW(mmr1, mmr2) "movq "mmr2", "mmr1"\n\t"
#define V_MOVNTQ_SSE(mmr1, mmr2) "movntq "mmr2", "mmr1"\n\t"
-#define V_MOVNTQ(mmr1, mmr2) V_MOVNTQ2(mmr1, mmr2, SSE_TYPE)
-#define V_MOVNTQ2(mmr1, mmr2, ssetyp) V_MOVNTQ3(mmr1, mmr2, ssetyp)
+#define V_MOVNTQ(mmr1, mmr2) V_MOVNTQ2(mmr1, mmr2, SSE_TYPE)
+#define V_MOVNTQ2(mmr1, mmr2, ssetyp) V_MOVNTQ3(mmr1, mmr2, ssetyp)
#define V_MOVNTQ3(mmr1, mmr2, ssetyp) V_MOVNTQ_##ssetyp(mmr1, mmr2)
// end of macros
diff --git a/src/post/deinterlace/plugins/linearblend.c b/src/post/deinterlace/plugins/linearblend.c
index 2c60f112f..fe230685b 100644
--- a/src/post/deinterlace/plugins/linearblend.c
+++ b/src/post/deinterlace/plugins/linearblend.c
@@ -255,7 +255,7 @@ static void deinterlace_scanline_linear_blend2_mmxext( uint8_t *output,
uint8_t *b1 = data->b1;
int i;
-
+
READ_PREFETCH_2048( t1 );
READ_PREFETCH_2048( b1 );
READ_PREFETCH_2048( m0 );
diff --git a/src/post/deinterlace/plugins/tomsmocomp/tomsmocompmacros.h b/src/post/deinterlace/plugins/tomsmocomp/tomsmocompmacros.h
index a0136fd44..875ed7055 100644
--- a/src/post/deinterlace/plugins/tomsmocomp/tomsmocompmacros.h
+++ b/src/post/deinterlace/plugins/tomsmocomp/tomsmocompmacros.h
@@ -8,7 +8,7 @@
#define MyMemCopy xine_fast_memcpy
-// Define a few macros for CPU dependent instructions.
+// Define a few macros for CPU dependent instructions.
// I suspect I don't really understand how the C macro preprocessor works but
// this seems to get the job done. // TRB 7/01
@@ -28,9 +28,9 @@
"paddusb "mmrw", "mmr1"\n\t"
#define V_PAVGB_SSE(mmr1, mmr2, mmrw, smask) "pavgb "mmr2", "mmr1"\n\t"
#define V_PAVGB_3DNOW(mmr1, mmr2, mmrw, smask) "pavgusb "mmr2", "mmr1"\n\t"
-#define V_PAVGB(mmr1, mmr2, mmrw, smask) V_PAVGB2(mmr1, mmr2, mmrw, smask, SSE_TYPE)
-#define V_PAVGB2(mmr1, mmr2, mmrw, smask, ssetyp) V_PAVGB3(mmr1, mmr2, mmrw, smask, ssetyp)
-#define V_PAVGB3(mmr1, mmr2, mmrw, smask, ssetyp) V_PAVGB_##ssetyp(mmr1, mmr2, mmrw, smask)
+#define V_PAVGB(mmr1, mmr2, mmrw, smask) V_PAVGB2(mmr1, mmr2, mmrw, smask, SSE_TYPE)
+#define V_PAVGB2(mmr1, mmr2, mmrw, smask, ssetyp) V_PAVGB3(mmr1, mmr2, mmrw, smask, ssetyp)
+#define V_PAVGB3(mmr1, mmr2, mmrw, smask, ssetyp) V_PAVGB_##ssetyp(mmr1, mmr2, mmrw, smask)
// some macros for pmaxub instruction
#define V_PMAXUB_MMX(mmr1, mmr2) \
@@ -38,9 +38,9 @@
"paddusb "mmr2", "mmr1"\n\t"
#define V_PMAXUB_SSE(mmr1, mmr2) "pmaxub "mmr2", "mmr1"\n\t"
#define V_PMAXUB_3DNOW(mmr1, mmr2) V_PMAXUB_MMX(mmr1, mmr2) // use MMX version
-#define V_PMAXUB(mmr1, mmr2) V_PMAXUB2(mmr1, mmr2, SSE_TYPE)
-#define V_PMAXUB2(mmr1, mmr2, ssetyp) V_PMAXUB3(mmr1, mmr2, ssetyp)
-#define V_PMAXUB3(mmr1, mmr2, ssetyp) V_PMAXUB_##ssetyp(mmr1, mmr2)
+#define V_PMAXUB(mmr1, mmr2) V_PMAXUB2(mmr1, mmr2, SSE_TYPE)
+#define V_PMAXUB2(mmr1, mmr2, ssetyp) V_PMAXUB3(mmr1, mmr2, ssetyp)
+#define V_PMAXUB3(mmr1, mmr2, ssetyp) V_PMAXUB_##ssetyp(mmr1, mmr2)
// some macros for pminub instruction
// V_PMINUB(mmr1, mmr2, mmr work register) mmr2 may NOT = mmrw
@@ -51,17 +51,17 @@
"psubusb "mmrw", "mmr1"\n\t"
#define V_PMINUB_SSE(mmr1, mmr2, mmrw) "pminub "mmr2", "mmr1"\n\t"
#define V_PMINUB_3DNOW(mmr1, mmr2, mmrw) V_PMINUB_MMX(mmr1, mmr2, mmrw) // use MMX version
-#define V_PMINUB(mmr1, mmr2, mmrw) V_PMINUB2(mmr1, mmr2, mmrw, SSE_TYPE)
-#define V_PMINUB2(mmr1, mmr2, mmrw, ssetyp) V_PMINUB3(mmr1, mmr2, mmrw, ssetyp)
-#define V_PMINUB3(mmr1, mmr2, mmrw, ssetyp) V_PMINUB_##ssetyp(mmr1, mmr2, mmrw)
+#define V_PMINUB(mmr1, mmr2, mmrw) V_PMINUB2(mmr1, mmr2, mmrw, SSE_TYPE)
+#define V_PMINUB2(mmr1, mmr2, mmrw, ssetyp) V_PMINUB3(mmr1, mmr2, mmrw, ssetyp)
+#define V_PMINUB3(mmr1, mmr2, mmrw, ssetyp) V_PMINUB_##ssetyp(mmr1, mmr2, mmrw)
// some macros for movntq instruction
-// V_MOVNTQ(mmr1, mmr2)
+// V_MOVNTQ(mmr1, mmr2)
#define V_MOVNTQ_MMX(mmr1, mmr2) "movq "mmr2", "mmr1"\n\t"
#define V_MOVNTQ_3DNOW(mmr1, mmr2) "movq "mmr2", "mmr1"\n\t"
#define V_MOVNTQ_SSE(mmr1, mmr2) "movntq "mmr2", "mmr1"\n\t"
-#define V_MOVNTQ(mmr1, mmr2) V_MOVNTQ2(mmr1, mmr2, SSE_TYPE)
-#define V_MOVNTQ2(mmr1, mmr2, ssetyp) V_MOVNTQ3(mmr1, mmr2, ssetyp)
+#define V_MOVNTQ(mmr1, mmr2) V_MOVNTQ2(mmr1, mmr2, SSE_TYPE)
+#define V_MOVNTQ2(mmr1, mmr2, ssetyp) V_MOVNTQ3(mmr1, mmr2, ssetyp)
#define V_MOVNTQ3(mmr1, mmr2, ssetyp) V_MOVNTQ_##ssetyp(mmr1, mmr2)
// end of macros
diff --git a/src/post/deinterlace/pulldown.c b/src/post/deinterlace/pulldown.c
index 4f6247444..2218855f0 100644
--- a/src/post/deinterlace/pulldown.c
+++ b/src/post/deinterlace/pulldown.c
@@ -47,7 +47,7 @@
* Bot 2 : Drop
* Top 3 : Merge
* Bot 3 : Drop
- * Top 4 : Show
+ * Top 4 : Show
* Bot 4 : Drop
* Top 5 : Drop
* Bot 5 : Show
@@ -69,15 +69,15 @@
*
* [ ]
* [ * *] | 0 top BC
- * [* * ] | 1 BC bottom BC
+ * [* * ] | 1 BC bottom BC
*
* [ ]
* [ * *] | 0 top CC
- * [ * *] | 0 CC bottom CC
+ * [ * *] | 0 CC bottom CC
*
* [ ]
* [* * ] | 1 top DD
- * [ * *] | 0 DD bottom DD
+ * [ * *] | 0 DD bottom DD
*
*
* [* * ] | 1 top AA
@@ -608,7 +608,7 @@ int pulldown_drop( int action, int bottom_field )
if( action == PULLDOWN_SEQ_CC && !bottom_field )
ret = 0;
if( action == PULLDOWN_SEQ_DD && bottom_field )
- ret = 0;
+ ret = 0;
return ret;
}
diff --git a/src/post/deinterlace/speedy.c b/src/post/deinterlace/speedy.c
index 5dc564b26..6af2c3b88 100644
--- a/src/post/deinterlace/speedy.c
+++ b/src/post/deinterlace/speedy.c
@@ -117,11 +117,11 @@ void (*composite_bars_packed4444_scanline)( uint8_t *output,
uint8_t *background, int width,
int a, int luma, int cb, int cr,
int percentage );
-void (*packed444_to_nonpremultiplied_packed4444_scanline)( uint8_t *output,
+void (*packed444_to_nonpremultiplied_packed4444_scanline)( uint8_t *output,
uint8_t *input,
int width, int alpha );
void (*aspect_adjust_packed4444_scanline)( uint8_t *output,
- uint8_t *input,
+ uint8_t *input,
int width,
double pixel_aspect );
void (*packed444_to_packed422_scanline)( uint8_t *output,
@@ -623,7 +623,7 @@ static void vfilter_chroma_121_packed422_scanline_mmx( uint8_t *output, int widt
paddw_r2r( mm1, mm2 );
psllw_i2r( 6, mm2 );
- pand_r2r( mm6, mm2 );
+ pand_r2r( mm6, mm2 );
por_r2r ( mm3, mm2 );
@@ -638,7 +638,7 @@ static void vfilter_chroma_121_packed422_scanline_mmx( uint8_t *output, int widt
*output = (*t + *b + (*m << 1)) >> 2;
output+=2; t+=2; b+=2; m+=2;
}
-
+
emms();
}
#endif
@@ -662,7 +662,7 @@ static void vfilter_chroma_332_packed422_scanline_mmx( uint8_t *output, int widt
const mmx_t cmask = { 0xff00ff00ff00ff00ULL };
// Get width in bytes.
- width *= 2;
+ width *= 2;
i = width / 8;
width -= i * 8;
@@ -1940,7 +1940,7 @@ static int conv_YR_inited = 0;
static int myround(double n)
{
- if (n >= 0)
+ if (n >= 0)
return (int)(n + 0.5);
else
return (int)(n - 0.5);
@@ -1957,7 +1957,7 @@ static void init_RGB_to_YCbCr_tables(void)
* to one of each, add the following:
* + (fixed-point-factor / 2) --- for rounding later
* + (Q-offset * fixed-point-factor) --- to add the offset
- *
+ *
*/
for (i = 0; i < 256; i++) {
Y_R[i] = myround(0.299 * (double)i * 219.0 / 255.0 * (double)(1<<FP_BITS));
@@ -1989,7 +1989,7 @@ static void init_YCbCr_to_RGB_tables(void)
* to one of each, add the following:
* + (fixed-point-factor / 2) --- for rounding later
* + (Q-offset * fixed-point-factor) --- to add the offset
- *
+ *
*/
/* clip Y values under 16 */
@@ -2006,7 +2006,7 @@ static void init_YCbCr_to_RGB_tables(void)
RGB_Y[i] = myround((1.0 * (double)(235) * 255.0 / 219.0 * (double)(1<<FP_BITS))
+ (double)(1<<(FP_BITS-1)));
}
-
+
/* clip Cb/Cr values below 16 */
for (i = 0; i < 16; i++) {
R_Cr[i] = myround(1.402 * (double)(-112) * 255.0 / 224.0 * (double)(1<<FP_BITS));
@@ -2056,7 +2056,7 @@ static void rgba32_to_packed4444_rec601_scanline_c( uint8_t *output, uint8_t *in
int g = input[ 1 ];
int b = input[ 2 ];
int a = input[ 3 ];
-
+
output[ 0 ] = a;
output[ 1 ] = (Y_R[ r ] + Y_G[ g ] + Y_B[ b ]) >> FP_BITS;
output[ 2 ] = (Cb_R[ r ] + Cb_G[ g ] + Cb_B[ b ]) >> FP_BITS;
@@ -2129,7 +2129,7 @@ static void packed444_to_rgb24_rec601_reference_scanline( uint8_t *output, uint8
}
*/
-static void packed444_to_nonpremultiplied_packed4444_scanline_c( uint8_t *output,
+static void packed444_to_nonpremultiplied_packed4444_scanline_c( uint8_t *output,
uint8_t *input,
int width, int alpha )
{
@@ -2147,7 +2147,7 @@ static void packed444_to_nonpremultiplied_packed4444_scanline_c( uint8_t *output
}
static void aspect_adjust_packed4444_scanline_c( uint8_t *output,
- uint8_t *input,
+ uint8_t *input,
int width,
double pixel_aspect )
{
@@ -2260,7 +2260,7 @@ static void chroma_422_to_444_mpeg2_plane_c( uint8_t *dst, uint8_t *src, int wid
/* odd samples (21 -52 159 159 -52 21) */
dst[ i2 + 1 ] = clip255( ( 21*(src[im2]+src[ip3])
- - 52*(src[im1]+src[ip2])
+ - 52*(src[im1]+src[ip2])
+ 159*(src[i]+src[ip1]) + 128 ) >> 8 );
}
src += w;
diff --git a/src/post/deinterlace/speedy.h b/src/post/deinterlace/speedy.h
index b4ad56393..55a2a1d5b 100644
--- a/src/post/deinterlace/speedy.h
+++ b/src/post/deinterlace/speedy.h
@@ -237,7 +237,7 @@ extern void (*subpix_blit_vertical_packed422_scanline)( uint8_t *output, uint8_t
* Simple function to convert a 4:4:4 scanline to a 4:4:4:4 scanline by
* adding an alpha channel. Result is non-premultiplied.
*/
-extern void (*packed444_to_nonpremultiplied_packed4444_scanline)( uint8_t *output,
+extern void (*packed444_to_nonpremultiplied_packed4444_scanline)( uint8_t *output,
uint8_t *input,
int width, int alpha );
@@ -248,7 +248,7 @@ extern void (*packed444_to_nonpremultiplied_packed4444_scanline)( uint8_t *outpu
* aspect ratio.
*/
extern void (*aspect_adjust_packed4444_scanline)( uint8_t *output,
- uint8_t *input,
+ uint8_t *input,
int width,
double pixel_aspect );
diff --git a/src/post/deinterlace/tvtime.h b/src/post/deinterlace/tvtime.h
index 2253f264e..22d863a56 100644
--- a/src/post/deinterlace/tvtime.h
+++ b/src/post/deinterlace/tvtime.h
@@ -98,4 +98,4 @@ tvtime_t *tvtime_new_context(void);
void tvtime_reset_context( tvtime_t *this );
-#endif
+#endif
diff --git a/src/post/deinterlace/xine_plugin.c b/src/post/deinterlace/xine_plugin.c
index 9dffb255d..5615e4ba1 100644
--- a/src/post/deinterlace/xine_plugin.c
+++ b/src/post/deinterlace/xine_plugin.c
@@ -1,18 +1,18 @@
/*
* Copyright (C) 2000-2004 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -50,7 +50,7 @@ static void *deinterlace_init_plugin(xine_t *xine, void *);
static const post_info_t deinterlace_special_info = { XINE_POST_TYPE_VIDEO_FILTER };
const plugin_info_t xine_plugin_info[] EXPORTED = {
- /* type, API, "name", version, special_info, init_function */
+ /* type, API, "name", version, special_info, init_function */
{ PLUGIN_POST | PLUGIN_MUST_PRELOAD, 10, "tvtime", XINE_VERSION_CODE, &deinterlace_special_info, &deinterlace_init_plugin },
{ PLUGIN_NONE, 0, "", 0, NULL, NULL }
};
@@ -66,7 +66,7 @@ static const char *const enum_framerate[] = { "full", "half_top", "half_bottom",
static void *help_string;
/*
- * this is the struct used by "parameters api"
+ * this is the struct used by "parameters api"
*/
typedef struct deinterlace_parameters_s {
@@ -86,15 +86,15 @@ typedef struct deinterlace_parameters_s {
* description of params struct
*/
START_PARAM_DESCR( deinterlace_parameters_t )
-PARAM_ITEM( POST_PARAM_TYPE_INT, method, enum_methods, 0, 0, 0,
+PARAM_ITEM( POST_PARAM_TYPE_INT, method, enum_methods, 0, 0, 0,
"deinterlace method" )
PARAM_ITEM( POST_PARAM_TYPE_BOOL, enabled, NULL, 0, 1, 0,
"enable/disable" )
-PARAM_ITEM( POST_PARAM_TYPE_INT, pulldown, enum_pulldown, 0, 0, 0,
+PARAM_ITEM( POST_PARAM_TYPE_INT, pulldown, enum_pulldown, 0, 0, 0,
"pulldown algorithm" )
-PARAM_ITEM( POST_PARAM_TYPE_INT, pulldown_error_wait, NULL, 0, 0, 0,
+PARAM_ITEM( POST_PARAM_TYPE_INT, pulldown_error_wait, NULL, 0, 0, 0,
"number of frames of telecine pattern sync required before mode change" )
-PARAM_ITEM( POST_PARAM_TYPE_INT, framerate_mode, enum_framerate, 0, 0, 0,
+PARAM_ITEM( POST_PARAM_TYPE_INT, framerate_mode, enum_framerate, 0, 0, 0,
"framerate output mode" )
PARAM_ITEM( POST_PARAM_TYPE_BOOL, judder_correction, NULL, 0, 1, 0,
"make frames evenly spaced for film mode (24 fps)" )
@@ -129,7 +129,7 @@ struct post_plugin_deinterlace_s {
int tvtime_changed;
int tvtime_last_filmmode;
int vo_deinterlace_enabled;
-
+
int framecounter;
uint8_t rff_pattern;
@@ -144,10 +144,10 @@ typedef struct post_class_deinterlace_s {
deinterlace_parameters_t init_param;
} post_class_deinterlace_t;
-static void _flush_frames(post_plugin_deinterlace_t *this)
+static void _flush_frames(post_plugin_deinterlace_t *this)
{
int i;
-
+
for( i = 0; i < NUM_RECENT_FRAMES; i++ ) {
if( this->recent_frame[i] ) {
this->recent_frame[i]->free(this->recent_frame[i]);
@@ -189,7 +189,7 @@ static int set_parameters (xine_post_t *this_gen, void *param_gen) {
static int get_parameters (xine_post_t *this_gen, void *param_gen) {
post_plugin_deinterlace_t *this = (post_plugin_deinterlace_t *)this_gen;
deinterlace_parameters_t *param = (deinterlace_parameters_t *)param_gen;
-
+
param->method = this->cur_method;
param->enabled = this->enabled;
param->pulldown = this->pulldown;
@@ -202,7 +202,7 @@ static int get_parameters (xine_post_t *this_gen, void *param_gen) {
return 1;
}
-
+
static xine_post_api_descr_t * get_param_descr (void) {
return &param_descr;
}
@@ -307,7 +307,7 @@ static void *deinterlace_init_plugin(xine_t *xine, void *data)
if (!class)
return NULL;
-
+
class->class.open_plugin = deinterlace_open_plugin;
class->class.identifier = "tvtime";
class->class.description = N_("advanced deinterlacer plugin with pulldown detection");
@@ -329,7 +329,7 @@ static void *deinterlace_init_plugin(xine_t *xine, void *data)
filter_deinterlace_methods( config_flags, 5 /*fieldsavailable*/ );
if( !get_num_deinterlace_methods() ) {
- xprintf(xine, XINE_VERBOSITY_LOG,
+ xprintf(xine, XINE_VERBOSITY_LOG,
_("tvtime: No deinterlacing methods available, exiting.\n"));
return NULL;
}
@@ -342,7 +342,7 @@ static void *deinterlace_init_plugin(xine_t *xine, void *data)
deinterlace_method_t *method;
method = get_deinterlace_method(i);
-
+
enum_methods[i+1] = method->short_name;
xine_buffer_strcat( help_string, "[" );
xine_buffer_strcat( help_string, method->short_name );
@@ -354,7 +354,7 @@ static void *deinterlace_init_plugin(xine_t *xine, void *data)
xine_buffer_strcat( help_string, "\n---\n" );
}
enum_methods[i+1] = NULL;
-
+
/* Some default values */
class->init_param.method = 1; /* First (plugin) method available */
@@ -362,7 +362,7 @@ static void *deinterlace_init_plugin(xine_t *xine, void *data)
class->init_param.pulldown = 1; /* vektor */
class->init_param.pulldown_error_wait = 60; /* about one second */
class->init_param.framerate_mode = 0; /* full */
- class->init_param.judder_correction = 1;
+ class->init_param.judder_correction = 1;
class->init_param.use_progressive_frame_flag = 1;
class->init_param.chroma_filter = 0;
class->init_param.cheap_mode = 0;
@@ -381,12 +381,12 @@ static post_plugin_t *deinterlace_open_plugin(post_class_t *class_gen, int input
post_out_t *output;
post_class_deinterlace_t *class = (post_class_deinterlace_t *)class_gen;
post_video_port_t *port;
-
+
if (!this || !video_target || !video_target[0]) {
free(this);
return NULL;
}
-
+
_x_post_init(&this->post, 0, 1);
this->tvtime = tvtime_new_context();
@@ -396,7 +396,7 @@ static post_plugin_t *deinterlace_open_plugin(post_class_t *class_gen, int input
pthread_mutex_init (&this->lock, NULL);
set_parameters ((xine_post_t *)&this->post, &class->init_param);
-
+
port = _x_post_intercept_video_port(&this->post, video_target[0], &input, &output);
/* replace with our own get_frame function */
port->new_port.open = deinterlace_open;
@@ -406,7 +406,7 @@ static post_plugin_t *deinterlace_open_plugin(post_class_t *class_gen, int input
port->new_port.flush = deinterlace_flush;
port->intercept_frame = deinterlace_intercept_frame;
port->new_frame->draw = deinterlace_draw;
-
+
input_api = &this->parameter_input;
input_api->name = "parameters";
input_api->type = XINE_POST_DATA_PARAMETERS;
@@ -415,11 +415,11 @@ static post_plugin_t *deinterlace_open_plugin(post_class_t *class_gen, int input
input->xine_in.name = "video";
output->xine_out.name = "deinterlaced video";
-
+
this->post.xine_post.video_input[0] = &port->new_port;
-
+
this->post.dispose = deinterlace_dispose;
-
+
return &this->post;
}
@@ -465,9 +465,9 @@ static int deinterlace_set_property(xine_video_port_t *port_gen, int property, i
pthread_mutex_unlock (&this->lock);
this->vo_deinterlace_enabled = this->enabled && (!this->cur_method);
-
- port->original_port->set_property(port->original_port,
- XINE_PARAM_VO_DEINTERLACE,
+
+ port->original_port->set_property(port->original_port,
+ XINE_PARAM_VO_DEINTERLACE,
this->vo_deinterlace_enabled);
return this->enabled;
@@ -488,14 +488,14 @@ static void deinterlace_open(xine_video_port_t *port_gen, xine_stream_t *stream)
{
post_video_port_t *port = (post_video_port_t *)port_gen;
post_plugin_deinterlace_t *this = (post_plugin_deinterlace_t *)port->post;
-
+
_x_post_rewire(&this->post);
_x_post_inc_usage(port);
port->stream = stream;
(port->original_port->open) (port->original_port, stream);
this->vo_deinterlace_enabled = !this->cur_method;
- port->original_port->set_property(port->original_port,
- XINE_PARAM_VO_DEINTERLACE,
+ port->original_port->set_property(port->original_port,
+ XINE_PARAM_VO_DEINTERLACE,
this->vo_deinterlace_enabled);
}
@@ -506,8 +506,8 @@ static void deinterlace_close(xine_video_port_t *port_gen, xine_stream_t *stream
port->stream = NULL;
_flush_frames(this);
- port->original_port->set_property(port->original_port,
- XINE_PARAM_VO_DEINTERLACE,
+ port->original_port->set_property(port->original_port,
+ XINE_PARAM_VO_DEINTERLACE,
0);
port->original_port->close(port->original_port, stream);
_x_post_dec_usage(port);
@@ -518,21 +518,21 @@ static int deinterlace_intercept_frame(post_video_port_t *port, vo_frame_t *fram
{
post_plugin_deinterlace_t *this = (post_plugin_deinterlace_t *)port->post;
int vo_deinterlace_enabled = 0;
-
+
vo_deinterlace_enabled = ( frame->format != XINE_IMGFMT_YV12 &&
frame->format != XINE_IMGFMT_YUY2 &&
this->enabled );
-
+
if( this->cur_method &&
this->vo_deinterlace_enabled != vo_deinterlace_enabled ) {
this->vo_deinterlace_enabled = vo_deinterlace_enabled;
- port->original_port->set_property(port->original_port,
- XINE_PARAM_VO_DEINTERLACE,
+ port->original_port->set_property(port->original_port,
+ XINE_PARAM_VO_DEINTERLACE,
this->vo_deinterlace_enabled);
}
-
+
return (this->enabled && this->cur_method &&
- (frame->flags & VO_INTERLACED_FLAG) &&
+ (frame->flags & VO_INTERLACED_FLAG) &&
(frame->format == XINE_IMGFMT_YV12 || frame->format == XINE_IMGFMT_YUY2) );
}
@@ -547,7 +547,7 @@ static void apply_chroma_filter( uint8_t *data, int stride, int width, int heigh
*/
for( i = 0; i < height; i++, data += stride ) {
vfilter_chroma_332_packed422_scanline( data, width,
- data,
+ data,
(i) ? (data - stride) : data,
(i < height-1) ? (data + stride) : data );
}
@@ -555,7 +555,7 @@ static void apply_chroma_filter( uint8_t *data, int stride, int width, int heigh
/* Build the output frame from the specified field. */
static int deinterlace_build_output_field(
- post_plugin_deinterlace_t *this, post_video_port_t *port,
+ post_plugin_deinterlace_t *this, post_video_port_t *port,
xine_stream_t *stream,
vo_frame_t *frame, vo_frame_t *yuy2_frame,
int bottom_field, int second_field,
@@ -564,14 +564,14 @@ static int deinterlace_build_output_field(
vo_frame_t *deinterlaced_frame;
int scaler = 1;
int force24fps;
-
+
force24fps = this->judder_correction && !this->cheap_mode &&
( this->pulldown == PULLDOWN_VEKTOR && this->tvtime->filmmode );
-
+
if( this->tvtime->curmethod->doscalerbob ) {
scaler = 2;
}
-
+
pthread_mutex_unlock (&this->lock);
deinterlaced_frame = port->original_port->get_frame(port->original_port,
frame->width, frame->height / scaler, frame->ratio, yuy2_frame->format,
@@ -584,7 +584,7 @@ static int deinterlace_build_output_field(
deinterlaced_frame->crop_bottom = frame->crop_bottom;
_x_extra_info_merge(deinterlaced_frame->extra_info, frame->extra_info);
-
+
if( skip > 0 && !this->pulldown ) {
deinterlaced_frame->bad_frame = 1;
} else {
@@ -593,60 +593,60 @@ static int deinterlace_build_output_field(
deinterlaced_frame->bad_frame = !tvtime_build_copied_field(this->tvtime,
deinterlaced_frame->base[0],
yuy2_frame->base[0], bottom_field,
- frame->width, frame->height,
+ frame->width, frame->height,
yuy2_frame->pitches[0], deinterlaced_frame->pitches[0] );
} else {
deinterlaced_frame->bad_frame = !tvtime_build_copied_field(this->tvtime,
deinterlaced_frame->base[0],
yuy2_frame->base[0], bottom_field,
- frame->width/2, frame->height,
+ frame->width/2, frame->height,
yuy2_frame->pitches[0], deinterlaced_frame->pitches[0] );
deinterlaced_frame->bad_frame += !tvtime_build_copied_field(this->tvtime,
deinterlaced_frame->base[1],
yuy2_frame->base[1], bottom_field,
- frame->width/4, frame->height/2,
+ frame->width/4, frame->height/2,
yuy2_frame->pitches[1], deinterlaced_frame->pitches[1] );
deinterlaced_frame->bad_frame += !tvtime_build_copied_field(this->tvtime,
deinterlaced_frame->base[2],
yuy2_frame->base[2], bottom_field,
- frame->width/4, frame->height/2,
+ frame->width/4, frame->height/2,
yuy2_frame->pitches[2], deinterlaced_frame->pitches[2] );
}
} else {
if( yuy2_frame->format == XINE_IMGFMT_YUY2 ) {
deinterlaced_frame->bad_frame = !tvtime_build_deinterlaced_frame(this->tvtime,
deinterlaced_frame->base[0],
- yuy2_frame->base[0],
- (this->recent_frame[0])?this->recent_frame[0]->base[0]:yuy2_frame->base[0],
+ yuy2_frame->base[0],
+ (this->recent_frame[0])?this->recent_frame[0]->base[0]:yuy2_frame->base[0],
(this->recent_frame[1])?this->recent_frame[1]->base[0]:yuy2_frame->base[0],
- bottom_field, second_field, frame->width, frame->height,
+ bottom_field, second_field, frame->width, frame->height,
yuy2_frame->pitches[0], deinterlaced_frame->pitches[0]);
} else {
deinterlaced_frame->bad_frame = !tvtime_build_deinterlaced_frame(this->tvtime,
deinterlaced_frame->base[0],
- yuy2_frame->base[0],
- (this->recent_frame[0])?this->recent_frame[0]->base[0]:yuy2_frame->base[0],
+ yuy2_frame->base[0],
+ (this->recent_frame[0])?this->recent_frame[0]->base[0]:yuy2_frame->base[0],
(this->recent_frame[1])?this->recent_frame[1]->base[0]:yuy2_frame->base[0],
- bottom_field, second_field, frame->width/2, frame->height,
+ bottom_field, second_field, frame->width/2, frame->height,
yuy2_frame->pitches[0], deinterlaced_frame->pitches[0]);
deinterlaced_frame->bad_frame += !tvtime_build_deinterlaced_frame(this->tvtime,
deinterlaced_frame->base[1],
- yuy2_frame->base[1],
- (this->recent_frame[0])?this->recent_frame[0]->base[1]:yuy2_frame->base[1],
+ yuy2_frame->base[1],
+ (this->recent_frame[0])?this->recent_frame[0]->base[1]:yuy2_frame->base[1],
(this->recent_frame[1])?this->recent_frame[1]->base[1]:yuy2_frame->base[1],
bottom_field, second_field, frame->width/4, frame->height/2,
yuy2_frame->pitches[1], deinterlaced_frame->pitches[1]);
deinterlaced_frame->bad_frame += !tvtime_build_deinterlaced_frame(this->tvtime,
deinterlaced_frame->base[2],
- yuy2_frame->base[2],
- (this->recent_frame[0])?this->recent_frame[0]->base[2]:yuy2_frame->base[2],
+ yuy2_frame->base[2],
+ (this->recent_frame[0])?this->recent_frame[0]->base[2]:yuy2_frame->base[2],
(this->recent_frame[1])?this->recent_frame[1]->base[2]:yuy2_frame->base[2],
- bottom_field, second_field, frame->width/4, frame->height/2,
+ bottom_field, second_field, frame->width/4, frame->height/2,
yuy2_frame->pitches[2], deinterlaced_frame->pitches[2]);
}
}
}
-
+
pthread_mutex_unlock (&this->lock);
if( force24fps ) {
if( !deinterlaced_frame->bad_frame ) {
@@ -658,7 +658,7 @@ static int deinterlace_build_output_field(
deinterlaced_frame->pts = 0;
deinterlaced_frame->duration = FPS_24_DURATION;
if( this->chroma_filter && !this->cheap_mode )
- apply_chroma_filter( deinterlaced_frame->base[0], deinterlaced_frame->pitches[0],
+ apply_chroma_filter( deinterlaced_frame->base[0], deinterlaced_frame->pitches[0],
frame->width, frame->height / scaler );
skip = deinterlaced_frame->draw(deinterlaced_frame, stream);
} else {
@@ -668,15 +668,15 @@ static int deinterlace_build_output_field(
deinterlaced_frame->pts = pts;
deinterlaced_frame->duration = duration;
if( this->chroma_filter && !this->cheap_mode && !deinterlaced_frame->bad_frame )
- apply_chroma_filter( deinterlaced_frame->base[0], deinterlaced_frame->pitches[0],
+ apply_chroma_filter( deinterlaced_frame->base[0], deinterlaced_frame->pitches[0],
frame->width, frame->height / scaler );
skip = deinterlaced_frame->draw(deinterlaced_frame, stream);
}
-
+
/* _x_post_frame_copy_up(frame, deinterlaced_frame); */
deinterlaced_frame->free(deinterlaced_frame);
pthread_mutex_lock (&this->lock);
-
+
return skip;
}
@@ -693,7 +693,7 @@ static int deinterlace_draw(vo_frame_t *frame, xine_stream_t *stream)
orig_frame = frame;
_x_post_frame_copy_down(frame, frame->next);
frame = frame->next;
-
+
/* update tvtime context and method */
pthread_mutex_lock (&this->lock);
if( this->tvtime_changed ) {
@@ -704,8 +704,8 @@ static int deinterlace_draw(vo_frame_t *frame, xine_stream_t *stream)
else
this->tvtime->curmethod = NULL;
- port->original_port->set_property(port->original_port,
- XINE_PARAM_VO_DEINTERLACE,
+ port->original_port->set_property(port->original_port,
+ XINE_PARAM_VO_DEINTERLACE,
!this->cur_method);
this->tvtime_changed = 0;
@@ -724,11 +724,11 @@ static int deinterlace_draw(vo_frame_t *frame, xine_stream_t *stream)
lprintf("frame flags pf: %d rff: %d tff: %d duration: %d\n",
frame->progressive_frame, frame->repeat_first_field,
frame->top_field_first, frame->duration);
-
+
/* detect special rff patterns */
this->rff_pattern = this->rff_pattern << 1;
this->rff_pattern |= !!frame->repeat_first_field;
-
+
if( ((this->rff_pattern & 0xff) == 0xaa ||
(this->rff_pattern & 0xff) == 0x55) ) {
/*
@@ -740,7 +740,7 @@ static int deinterlace_draw(vo_frame_t *frame, xine_stream_t *stream)
/* using frame->progressive_frame may help displaying still menus.
* however, it is known that some rare material set it wrong.
- *
+ *
* we also assume that repeat_first_field is progressive (it doesn't
* make much sense to display interlaced fields out of order)
*/
@@ -748,8 +748,8 @@ static int deinterlace_draw(vo_frame_t *frame, xine_stream_t *stream)
(frame->repeat_first_field || frame->progressive_frame) ) {
progressive = 1;
}
-
- if( !frame->bad_frame &&
+
+ if( !frame->bad_frame &&
(frame->flags & VO_INTERLACED_FLAG) &&
this->tvtime->curmethod ) {
@@ -761,17 +761,17 @@ static int deinterlace_draw(vo_frame_t *frame, xine_stream_t *stream)
yuy2_frame = port->original_port->get_frame(port->original_port,
frame->width, frame->height, frame->ratio, XINE_IMGFMT_YUY2, frame->flags | VO_BOTH_FIELDS);
_x_post_frame_copy_down(frame, yuy2_frame);
-
+
/* the logic for deciding upsampling to use comes from:
* http://www.hometheaterhifi.com/volume_8_2/dvd-benchmark-special-report-chroma-bug-4-2001.html
*/
- yv12_to_yuy2(frame->base[0], frame->pitches[0],
- frame->base[1], frame->pitches[1],
- frame->base[2], frame->pitches[2],
+ yv12_to_yuy2(frame->base[0], frame->pitches[0],
+ frame->base[1], frame->pitches[1],
+ frame->base[2], frame->pitches[2],
yuy2_frame->base[0], yuy2_frame->pitches[0],
- frame->width, frame->height,
+ frame->width, frame->height,
frame->progressive_frame || progressive );
-
+
} else {
yuy2_frame = frame;
yuy2_frame->lock(yuy2_frame);
@@ -781,10 +781,10 @@ static int deinterlace_draw(vo_frame_t *frame, xine_stream_t *stream)
pthread_mutex_lock (&this->lock);
/* check if frame format changed */
for(i = 0; i < NUM_RECENT_FRAMES; i++ ) {
- if( this->recent_frame[i] &&
- (this->recent_frame[i]->width != frame->width ||
- this->recent_frame[i]->height != frame->height ||
- this->recent_frame[i]->format != yuy2_frame->format ) ) {
+ if( this->recent_frame[i] &&
+ (this->recent_frame[i]->width != frame->width ||
+ this->recent_frame[i]->height != frame->height ||
+ this->recent_frame[i]->format != yuy2_frame->format ) ) {
this->recent_frame[i]->free(this->recent_frame[i]);
this->recent_frame[i] = NULL;
}
@@ -797,10 +797,10 @@ static int deinterlace_draw(vo_frame_t *frame, xine_stream_t *stream)
framerate_mode = FRAMERATE_HALF_TFF;
this->tvtime->pulldown_alg = PULLDOWN_NONE;
}
-
+
if( framerate_mode == FRAMERATE_FULL ) {
int top_field_first = frame->top_field_first;
-
+
/* if i understood mpeg2 specs correctly, top_field_first
* shall be zero for field pictures and the output order
* is the same that the fields are decoded.
@@ -812,7 +812,7 @@ static int deinterlace_draw(vo_frame_t *frame, xine_stream_t *stream)
if ( (frame->flags & VO_BOTH_FIELDS) != VO_BOTH_FIELDS ) {
top_field_first = (frame->flags & VO_TOP_FIELD) ? 1 : 0;
}
-
+
if ( top_field_first ) {
fields[0] = 0;
fields[1] = 1;
@@ -825,8 +825,8 @@ static int deinterlace_draw(vo_frame_t *frame, xine_stream_t *stream)
} else if ( framerate_mode == FRAMERATE_HALF_BFF ) {
fields[0] = 1;
}
-
-
+
+
if( progressive ) {
/* If the previous field was interlaced and this one is progressive
@@ -838,10 +838,10 @@ static int deinterlace_draw(vo_frame_t *frame, xine_stream_t *stream)
* duration is used in the calculation because the generated frame
* represents the second half of the previous frame.
*/
- if (this->recent_frame[0] && !this->recent_frame[0]->progressive_frame &&
+ if (this->recent_frame[0] && !this->recent_frame[0]->progressive_frame &&
this->tvtime->curmethod->delaysfield)
{
- skip = deinterlace_build_output_field(
+ skip = deinterlace_build_output_field(
this, port, stream,
frame, yuy2_frame,
fields[0], 0,
@@ -867,19 +867,19 @@ static int deinterlace_draw(vo_frame_t *frame, xine_stream_t *stream)
/* Build the output from the first field. */
if ( !(this->recent_frame[0] && this->recent_frame[0]->progressive_frame &&
this->tvtime->curmethod->delaysfield) ) {
- skip = deinterlace_build_output_field(
+ skip = deinterlace_build_output_field(
this, port, stream,
frame, yuy2_frame,
fields[0], 0,
frame->pts,
(framerate_mode == FRAMERATE_FULL) ? frame->duration/2 : frame->duration,
0);
- }
+ }
if( framerate_mode == FRAMERATE_FULL ) {
-
+
/* Build the output from the second field. */
- skip = deinterlace_build_output_field(
+ skip = deinterlace_build_output_field(
this, port, stream,
frame, yuy2_frame,
fields[1], 1,
@@ -889,7 +889,7 @@ static int deinterlace_draw(vo_frame_t *frame, xine_stream_t *stream)
}
}
- /* don't drop frames when pulldown mode is enabled. otherwise
+ /* don't drop frames when pulldown mode is enabled. otherwise
* pulldown detection fails (yo-yo effect has also been seen)
*/
if( this->pulldown )
@@ -897,7 +897,7 @@ static int deinterlace_draw(vo_frame_t *frame, xine_stream_t *stream)
/* store back progressive flag for frame history */
yuy2_frame->progressive_frame = progressive;
-
+
/* keep track of recent frames */
i = NUM_RECENT_FRAMES-1;
if( this->recent_frame[i] )
@@ -918,8 +918,8 @@ static int deinterlace_draw(vo_frame_t *frame, xine_stream_t *stream)
} else {
skip = frame->draw(frame, stream);
}
-
+
_x_post_frame_copy_up(orig_frame, frame);
-
+
return skip;
}
diff --git a/src/post/goom/xine_goom.c b/src/post/goom/xine_goom.c
index 03a5a3c07..7cf1a9325 100644
--- a/src/post/goom/xine_goom.c
+++ b/src/post/goom/xine_goom.c
@@ -1,18 +1,18 @@
/*
* Copyright (C) 2000-2004 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -71,19 +71,19 @@ struct post_plugin_goom_s {
/* private data */
xine_video_port_t *vo_port;
post_out_t video_output;
-
+
post_class_goom_t *class;
-
+
/* private metronom for syncing the video */
metronom_t *metronom;
-
+
/* goom context */
PluginInfo *goom;
-
- int data_idx;
+
+ int data_idx;
gint16 data [2][NUMSAMPLES];
audio_buffer_t buf; /* dummy buffer just to hold a copy of audio data */
-
+
int channels;
int sample_rate;
int samples_per_frame;
@@ -99,7 +99,7 @@ struct post_plugin_goom_s {
yuv_planes_t yuv;
-
+
/* frame skipping */
int skip_frame;
};
@@ -110,12 +110,12 @@ static void *goom_init_plugin(xine_t *xine, void *);
/* plugin catalog information */
-static const post_info_t goom_special_info = {
+static const post_info_t goom_special_info = {
XINE_POST_TYPE_AUDIO_VISUALIZATION
};
const plugin_info_t xine_plugin_info[] EXPORTED = {
- /* type, API, "name", version, special_info, init_function */
+ /* type, API, "name", version, special_info, init_function */
{ PLUGIN_POST | PLUGIN_MUST_PRELOAD, 10, "goom", XINE_VERSION_CODE, &goom_special_info, &goom_init_plugin },
{ PLUGIN_NONE, 0, "", 0, NULL, NULL }
};
@@ -142,7 +142,7 @@ static void goom_port_put_buffer (xine_audio_port_t *this, audio_buffer_t *buf,
static void fps_changed_cb(void *data, xine_cfg_entry_t *cfg) {
post_class_goom_t *class = (post_class_goom_t*) data;
-
+
if(class->ip) {
post_plugin_goom_t *this = class->ip;
@@ -158,7 +158,7 @@ static void fps_changed_cb(void *data, xine_cfg_entry_t *cfg) {
static void width_changed_cb(void *data, xine_cfg_entry_t *cfg) {
post_class_goom_t *class = (post_class_goom_t*) data;
-
+
if(class->ip) {
post_plugin_goom_t *this = class->ip;
this->width = cfg->num_value;
@@ -167,7 +167,7 @@ static void width_changed_cb(void *data, xine_cfg_entry_t *cfg) {
static void height_changed_cb(void *data, xine_cfg_entry_t *cfg) {
post_class_goom_t *class = (post_class_goom_t*) data;
-
+
if(class->ip) {
post_plugin_goom_t *this = class->ip;
this->height = cfg->num_value;
@@ -176,7 +176,7 @@ static void height_changed_cb(void *data, xine_cfg_entry_t *cfg) {
static void csc_method_changed_cb(void *data, xine_cfg_entry_t *cfg) {
post_class_goom_t *class = (post_class_goom_t*) data;
-
+
if(class->ip) {
post_plugin_goom_t *this = class->ip;
this->csc_method = cfg->num_value;
@@ -190,14 +190,14 @@ static void *goom_init_plugin(xine_t *xine, void *data)
if (!this)
return NULL;
-
+
this->class.open_plugin = goom_open_plugin;
this->class.identifier = "goom";
this->class.description = N_("What a GOOM");
this->class.dispose = goom_class_dispose;
this->ip = NULL;
this->xine = xine;
-
+
cfg = xine->config;
cfg->register_num (cfg, "effects.goom.fps", FPS,
@@ -210,12 +210,12 @@ static void *goom_init_plugin(xine_t *xine, void *data)
_("goom image width"),
_("The width in pixels of the image to be generated."),
10, width_changed_cb, this);
-
+
cfg->register_num (cfg, "effects.goom.height", GOOM_HEIGHT,
_("goom image height"),
_("The height in pixels of the image to be generated."),
10, height_changed_cb, this);
-
+
cfg->register_enum (cfg, "effects.goom.csc_method", 0,
goom_csc_methods,
@@ -244,34 +244,34 @@ static post_plugin_t *goom_open_plugin(post_class_t *class_gen, int inputs,
free(this);
return NULL;
}
-
+
_x_post_init(&this->post, 1, 0);
-
+
/*
* Lookup config entries.
*/
this->class = class;
class->ip = this;
this->vo_port = video_target[0];
-
+
this->metronom = _x_metronom_init(1, 0, class->xine);
lprintf("goom_open_plugin\n");
if(xine_config_lookup_entry(class->xine, "effects.goom.fps",
- &fps_entry))
+ &fps_entry))
fps_changed_cb(class, &fps_entry);
if(xine_config_lookup_entry(class->xine, "effects.goom.width",
- &width_entry))
+ &width_entry))
width_changed_cb(class, &width_entry);
if(xine_config_lookup_entry(class->xine, "effects.goom.height",
- &height_entry))
+ &height_entry))
height_changed_cb(class, &height_entry);
if(xine_config_lookup_entry(class->xine, "effects.goom.csc_method",
- &csc_method_entry))
+ &csc_method_entry))
csc_method_changed_cb(class, &csc_method_entry);
this->width_back = this->width;
@@ -283,13 +283,13 @@ static post_plugin_t *goom_open_plugin(post_class_t *class_gen, int inputs,
this->ratio = (double)this->width_back/(double)this->height_back;
this->buf.mem = NULL;
- this->buf.mem_size = 0;
+ this->buf.mem_size = 0;
port = _x_post_intercept_audio_port(&this->post, audio_target[0], &input, &output);
port->new_port.open = goom_port_open;
port->new_port.close = goom_port_close;
port->new_port.put_buffer = goom_port_put_buffer;
-
+
outputv = &this->video_output;
outputv->xine_out.name = "generated video";
outputv->xine_out.type = XINE_POST_DATA_VIDEO;
@@ -297,7 +297,7 @@ static post_plugin_t *goom_open_plugin(post_class_t *class_gen, int inputs,
outputv->xine_out.rewire = goom_rewire_video;
outputv->post = &this->post;
xine_list_push_back(this->post.output, outputv);
-
+
this->post.xine_post.audio_input[0] = &port->new_port;
this->post.dispose = goom_dispose;
@@ -310,13 +310,13 @@ static void goom_class_dispose(post_class_t *class_gen)
post_class_goom_t *this = (post_class_goom_t*) class_gen;
this->xine->config->unregister_callback(this->xine->config,
- "effects.goom.fps");
+ "effects.goom.fps");
this->xine->config->unregister_callback(this->xine->config,
- "effects.goom.width");
+ "effects.goom.width");
this->xine->config->unregister_callback(this->xine->config,
- "effects.goom.height");
+ "effects.goom.height");
this->xine->config->unregister_callback(this->xine->config,
- "effects.goom.csc_method");
+ "effects.goom.csc_method");
free(class_gen);
}
@@ -346,7 +346,7 @@ static int goom_rewire_video(xine_post_out_t *output_gen, void *data)
xine_video_port_t *old_port = *(xine_video_port_t **)output_gen->data;
xine_video_port_t *new_port = (xine_video_port_t *)data;
post_plugin_goom_t *this = (post_plugin_goom_t *)output->post;
-
+
if (!data)
return 0;
/* register our stream at the new output port */
@@ -365,12 +365,12 @@ static int goom_port_open(xine_audio_port_t *port_gen, xine_stream_t *stream,
_x_post_rewire(&this->post);
_x_post_inc_usage(port);
-
+
port->stream = stream;
port->bits = bits;
port->rate = rate;
port->mode = mode;
-
+
this->channels = _x_ao_mode2channels(mode);
this->sample_rate = rate;
this->samples_per_frame = rate / this->fps;
@@ -380,7 +380,7 @@ static int goom_port_open(xine_audio_port_t *port_gen, xine_stream_t *stream,
this->do_samples_skip = 0;
this->left_to_read = NUMSAMPLES;
-
+
(this->vo_port->open) (this->vo_port, XINE_ANON_STREAM);
this->metronom->set_master(this->metronom, stream->metronom);
@@ -395,18 +395,18 @@ static void goom_port_close(xine_audio_port_t *port_gen, xine_stream_t *stream )
free_yuv_planes(&this->yuv);
port->stream = NULL;
-
+
this->vo_port->close(this->vo_port, XINE_ANON_STREAM);
this->metronom->set_master(this->metronom, NULL);
-
+
port->original_port->close(port->original_port, stream );
-
+
_x_post_dec_usage(port);
}
-static void goom_port_put_buffer (xine_audio_port_t *port_gen,
+static void goom_port_put_buffer (xine_audio_port_t *port_gen,
audio_buffer_t *buf, xine_stream_t *stream) {
-
+
post_audio_port_t *port = (post_audio_port_t *)port_gen;
post_plugin_goom_t *this = (post_plugin_goom_t *)port->post;
vo_frame_t *frame;
@@ -419,28 +419,28 @@ static void goom_port_put_buffer (xine_audio_port_t *port_gen,
int width, height;
int current_sample = 0;
-
+
/* make a copy of buf data for private use */
if( this->buf.mem_size < buf->mem_size ) {
this->buf.mem = realloc(this->buf.mem, buf->mem_size);
this->buf.mem_size = buf->mem_size;
}
- memcpy(this->buf.mem, buf->mem,
+ memcpy(this->buf.mem, buf->mem,
buf->num_frames*this->channels*((port->bits == 8)?1:2));
this->buf.num_frames = buf->num_frames;
-
+
/* pass data to original port */
- port->original_port->put_buffer(port->original_port, buf, stream);
-
+ port->original_port->put_buffer(port->original_port, buf, stream);
+
/* we must not use original data anymore, it should have already being moved
* to the fifo of free audio buffers. just use our private copy instead.
*/
- buf = &this->buf;
+ buf = &this->buf;
j = (this->channels >= 2) ? 1 : 0;
while (current_sample < buf->num_frames) {
-
+
if (this->do_samples_skip) {
if (current_sample + this->left_to_read > buf->num_frames) {
this->left_to_read -= (buf->num_frames-current_sample);
@@ -449,14 +449,14 @@ static void goom_port_put_buffer (xine_audio_port_t *port_gen,
current_sample+=this->left_to_read;
this->left_to_read = NUMSAMPLES;
this->do_samples_skip = 0;
-
+
}
} else {
if( port->bits == 8 ) {
data8 = (int8_t *)buf->mem;
data8 += current_sample * this->channels;
-
+
/* scale 8 bit data to 16 bits and convert to signed as well */
for ( i=current_sample ; this->data_idx < NUMSAMPLES && i < buf->num_frames;
i++, this->data_idx++,data8 += this->channels) {
@@ -495,13 +495,13 @@ static void goom_port_put_buffer (xine_audio_port_t *port_gen,
frame = this->vo_port->get_frame (this->vo_port, this->width_back, this->height_back,
this->ratio, XINE_IMGFMT_YUY2,
VO_BOTH_FIELDS);
-
+
frame->extra_info->invalid = 1;
-
+
frame->duration = 90000 * this->samples_per_frame / this->sample_rate;
frame->pts = pts;
this->metronom->got_video_frame(this->metronom, frame);
-
+
if (!this->skip_frame) {
/* Try to be fast */
goom_frame = (uint8_t *)goom_update (this->goom, this->data, 0, 0, NULL, NULL);
@@ -509,13 +509,13 @@ static void goom_port_put_buffer (xine_audio_port_t *port_gen,
dest_ptr = frame -> base[0];
goom_frame_end = goom_frame + 4 * (this->width_back * this->height_back);
- if ((this->csc_method == 1) &&
+ if ((this->csc_method == 1) &&
(xine_mm_accel() & MM_ACCEL_X86_MMX)) {
int plane_ptr = 0;
while (goom_frame < goom_frame_end) {
uint8_t r, g, b;
-
+
/* don't take endianness into account since MMX is only available
* on Intel processors */
b = *goom_frame; goom_frame++;
@@ -551,7 +551,7 @@ static void goom_port_put_buffer (xine_audio_port_t *port_gen,
g2 = *goom_frame; goom_frame++;
r2 = *goom_frame; goom_frame += 2;
#endif
-
+
*dest_ptr = COMPUTE_Y(r1, g1, b1);
dest_ptr++;
*dest_ptr = COMPUTE_U(r1, g1, b1);
@@ -573,7 +573,7 @@ static void goom_port_put_buffer (xine_audio_port_t *port_gen,
}
frame->free(frame);
-
+
width = this->width;
height = this->height;
if ((width != this->width_back) || (height != this->height_back)) {
diff --git a/src/post/mosaico/mosaico.c b/src/post/mosaico/mosaico.c
index b009f13fe..842588c01 100644
--- a/src/post/mosaico/mosaico.c
+++ b/src/post/mosaico/mosaico.c
@@ -1,23 +1,23 @@
/*
* Copyright (C) 2000-2004 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
*/
-
+
/*
* simple video mosaico plugin
*/
@@ -44,7 +44,7 @@ static void *mosaico_init_plugin(xine_t *xine, void *);
static const post_info_t mosaico_special_info = { XINE_POST_TYPE_VIDEO_COMPOSE };
const plugin_info_t xine_plugin_info[] EXPORTED = {
- /* type, API, "name", version, special_info, init_function */
+ /* type, API, "name", version, special_info, init_function */
{ PLUGIN_POST, 10, "mosaico", XINE_VERSION_CODE, &mosaico_special_info, &mosaico_init_plugin },
{ PLUGIN_NONE, 0, "", 0, NULL, NULL }
};
@@ -84,9 +84,9 @@ struct mosaico_pip_s {
};
struct post_mosaico_s {
- post_plugin_t post;
+ post_plugin_t post;
xine_post_in_t parameter_input;
-
+
mosaico_pip_t *pip;
int64_t vpts_limit;
pthread_cond_t vpts_limit_changed;
@@ -127,7 +127,7 @@ static void *mosaico_init_plugin(xine_t *xine, void *data)
if (!this)
return NULL;
-
+
this->class.open_plugin = mosaico_open_plugin;
this->class.identifier = "mosaico";
this->class.description = N_("Mosaico is a picture in picture (pip) post plugin");
@@ -146,17 +146,17 @@ static post_plugin_t *mosaico_open_plugin(post_class_t *class_gen, int inputs,
xine_post_in_t *input_api;
post_out_t *output;
post_video_port_t *port;
- static xine_post_api_t post_api =
+ static xine_post_api_t post_api =
{ mosaico_set_parameters, mosaico_get_parameters, mosaico_get_param_descr, mosaico_get_help };
int i;
-
+
lprintf("mosaico open\n");
if (inputs < 2 || !this || !video_target || !video_target[0]) {
free(this);
return NULL;
}
-
+
_x_post_init(&this->post, 0, inputs);
this->pip = (mosaico_pip_t *)calloc((inputs - 1), sizeof(mosaico_pip_t));
@@ -164,7 +164,7 @@ static post_plugin_t *mosaico_open_plugin(post_class_t *class_gen, int inputs,
pthread_cond_init(&this->vpts_limit_changed, NULL);
pthread_mutex_init(&this->mutex, NULL);
-
+
/* the port for the background video */
port = _x_post_intercept_video_port(&this->post, video_target[0], &input, &output);
port->intercept_frame = mosaico_intercept_frame;
@@ -180,7 +180,7 @@ static post_plugin_t *mosaico_open_plugin(post_class_t *class_gen, int inputs,
this->pip[i].w = 150;
this->pip[i].h = 150;
asprintf(&(this->pip[i].input_name), "video in %d", i+1);
-
+
port = _x_post_intercept_video_port(&this->post, video_target[0], &input, NULL);
port->new_port.close = mosaico_close;
port->intercept_frame = mosaico_intercept_frame;
@@ -205,7 +205,7 @@ static post_plugin_t *mosaico_open_plugin(post_class_t *class_gen, int inputs,
static void mosaico_dispose(post_plugin_t *this_gen)
{
post_mosaico_t *this = (post_mosaico_t *)this_gen;
-
+
if (_x_post_dispose(this_gen)) {
int i;
for (i = 0; i < this->pip_count; i++)
@@ -227,7 +227,7 @@ static int mosaico_set_parameters(xine_post_t *this_gen, void *param_gen)
{
post_mosaico_t *this = (post_mosaico_t *)this_gen;
mosaico_parameters_t *param = (mosaico_parameters_t *)param_gen;
-
+
if (param->pip_num > this->pip_count) return 0;
this->pip[param->pip_num - 1].x = param->x;
this->pip[param->pip_num - 1].y = param->y;
@@ -240,7 +240,7 @@ static int mosaico_get_parameters(xine_post_t *this_gen, void *param_gen)
{
post_mosaico_t *this = (post_mosaico_t *)this_gen;
mosaico_parameters_t *param = (mosaico_parameters_t *)param_gen;
-
+
if (param->pip_num > this->pip_count || param->pip_num < 1)
param->pip_num = 1;
param->x = this->pip[param->pip_num - 1].x;
@@ -272,7 +272,7 @@ static void mosaico_close(xine_video_port_t *port_gen, xine_stream_t *stream)
for (pip_num = 0; pip_num < this->pip_count; pip_num++)
if (this->post.xine_post.video_input[pip_num+1] == port_gen) break;
-
+
pthread_mutex_lock(&this->mutex);
free_frame = this->pip[pip_num].frame;
this->pip[pip_num].frame = NULL;
@@ -301,11 +301,11 @@ static void frame_copy_content(vo_frame_t *to, vo_frame_t *from)
case XINE_IMGFMT_YUY2:
/* TODO: implement conversion to YV12 or implement support to paste
* frames of different types together */
- break;
-
+ break;
+
case XINE_IMGFMT_YV12:
/* Y */
- size = to->pitches[0] * to->height;
+ size = to->pitches[0] * to->height;
xine_fast_memcpy(to->base[0], from->base[0], size);
/* U */
@@ -330,7 +330,7 @@ static void frame_paste(post_mosaico_t *this, vo_frame_t *background, int pip_nu
unsigned long i, j;
if (!this->pip[pip_num].frame) return;
-
+
target_width = this->pip[pip_num].w;
target_height = this->pip[pip_num].h;
background_width = background->width;
@@ -345,8 +345,8 @@ static void frame_paste(post_mosaico_t *this, vo_frame_t *background, int pip_nu
switch (this->pip[pip_num].frame->format) {
case XINE_IMGFMT_YUY2:
/* TODO: implement YUY2 */
- break;
-
+ break;
+
case XINE_IMGFMT_YV12:
/* Y */
target_offset = 0;
@@ -363,7 +363,7 @@ static void frame_paste(post_mosaico_t *this, vo_frame_t *background, int pip_nu
pos = pos_y * background_width + pos_x;
target_width = (target_width + 1) / 2;
target_height = (target_height + 1) / 2;
-
+
/* U */
target_offset = 0;
for (j = 0; j < target_height; j++, target_offset += (background_width - target_width))
@@ -371,7 +371,7 @@ static void frame_paste(post_mosaico_t *this, vo_frame_t *background, int pip_nu
source_offset = ((i * scale_x) >> shift_x) + (((j * scale_y) >> shift_y) * source_width);
background->base[1][pos + target_offset] = this->pip[pip_num].frame->base[1][source_offset];
}
-
+
/* V */
target_offset = 0;
for (j = 0; j < target_height; j++, target_offset += (background_width - target_width))
@@ -379,7 +379,7 @@ static void frame_paste(post_mosaico_t *this, vo_frame_t *background, int pip_nu
source_offset = ((i * scale_x) >> shift_x) + (((j * scale_y) >> shift_y) * source_width);
background->base[2][pos + target_offset] = this->pip[pip_num].frame->base[2][source_offset];
}
-
+
break;
}
}
@@ -392,47 +392,47 @@ static int mosaico_draw_background(vo_frame_t *frame, xine_stream_t *stream)
int pip_num, skip;
pthread_mutex_lock(&this->mutex);
-
+
if (frame->bad_frame) {
_x_post_frame_copy_down(frame, frame->next);
skip = frame->next->draw(frame->next, stream);
_x_post_frame_copy_up(frame, frame->next);
-
+
this->vpts_limit = frame->vpts + frame->duration;
if (skip) {
this->skip = skip;
this->skip_vpts = frame->vpts;
} else
this->skip = 0;
-
+
pthread_mutex_unlock(&this->mutex);
pthread_cond_broadcast(&this->vpts_limit_changed);
-
+
return skip;
}
-
+
background = port->original_port->get_frame(port->original_port,
frame->width, frame->height, frame->ratio, frame->format, frame->flags | VO_BOTH_FIELDS);
_x_post_frame_copy_down(frame, background);
frame_copy_content(background, frame);
-
+
for (pip_num = 0; pip_num < this->pip_count; pip_num++)
frame_paste(this, background, pip_num);
-
+
skip = background->draw(background, stream);
_x_post_frame_copy_up(frame, background);
this->vpts_limit = background->vpts + background->duration;
background->free(background);
-
+
if (skip) {
this->skip = skip;
this->skip_vpts = frame->vpts;
} else
this->skip = 0;
-
+
pthread_mutex_unlock(&this->mutex);
pthread_cond_broadcast(&this->vpts_limit_changed);
-
+
return skip;
}
@@ -446,11 +446,11 @@ static int mosaico_draw(vo_frame_t *frame, xine_stream_t *stream)
for (pip_num = 0; pip_num < this->pip_count; pip_num++)
if (this->post.xine_post.video_input[pip_num+1] == frame->port) break;
_x_assert(pip_num < this->pip_count);
-
+
frame->lock(frame);
-
+
pthread_mutex_lock(&this->mutex);
-
+
/* the original output will never see this frame again */
_x_post_frame_u_turn(frame, stream);
while (frame->vpts > this->vpts_limit || !this->vpts_limit)
@@ -459,12 +459,12 @@ static int mosaico_draw(vo_frame_t *frame, xine_stream_t *stream)
free_frame = this->pip[pip_num].frame;
if (port->stream)
this->pip[pip_num].frame = frame;
-
+
if (this->skip && frame->vpts <= this->skip_vpts)
skip = this->skip;
else
skip = 0;
-
+
pthread_mutex_unlock(&this->mutex);
if (free_frame)
@@ -473,6 +473,6 @@ static int mosaico_draw(vo_frame_t *frame, xine_stream_t *stream)
/* do not keep this frame when no stream is connected to us,
* otherwise, this frame might never get freed */
frame->free(frame);
-
+
return skip;
}
diff --git a/src/post/mosaico/switch.c b/src/post/mosaico/switch.c
index 90dbf2690..1bc9058ae 100644
--- a/src/post/mosaico/switch.c
+++ b/src/post/mosaico/switch.c
@@ -1,23 +1,23 @@
/*
* Copyright (C) 2000-2004 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
*/
-
+
/*
* simple switch video post plugin
*/
@@ -40,7 +40,7 @@ static void *switch_init_plugin(xine_t *xine, void *);
static const post_info_t switch_special_info = { XINE_POST_TYPE_VIDEO_COMPOSE };
const plugin_info_t xine_plugin_info[] EXPORTED = {
- /* type, API, "name", version, special_info, init_function */
+ /* type, API, "name", version, special_info, init_function */
{ PLUGIN_POST, 10, "switch", XINE_VERSION_CODE, &switch_special_info, &switch_init_plugin },
{ PLUGIN_NONE, 0, "", 0, NULL, NULL }
};
@@ -67,7 +67,7 @@ struct post_class_switch_s {
struct post_switch_s {
post_plugin_t post;
xine_post_in_t parameter_input;
-
+
int64_t vpts_limit;
pthread_cond_t display_condition_changed;
int64_t skip_vpts;
@@ -102,7 +102,7 @@ static void *switch_init_plugin(xine_t *xine, void *data)
if (!this)
return NULL;
-
+
this->class.open_plugin = switch_open_plugin;
this->class.identifier = "switch";
this->class.description = N_("Switch is a post plugin able to switch at any time between different streams");
@@ -124,28 +124,28 @@ static post_plugin_t *switch_open_plugin(post_class_t *class_gen, int inputs,
static xine_post_api_t post_api =
{ switch_set_parameters, switch_get_parameters, switch_get_param_descr, switch_get_help };
int i;
-
+
lprintf("switch open\n");
if (inputs < 2 || !this || !video_target || !video_target[0]) {
free(this);
return NULL;
}
-
+
_x_post_init(&this->post, 0, inputs);
this->source_count = inputs;
this->selected_source = 1;
-
+
pthread_cond_init(&this->display_condition_changed, NULL);
pthread_mutex_init(&this->mutex, NULL);
-
+
port = _x_post_intercept_video_port(&this->post, video_target[0], &input, &output);
port->new_frame->draw = switch_draw;
port->port_lock = &this->mutex;
port->frame_lock = &this->mutex;
this->post.xine_post.video_input[0] = &port->new_port;
-
+
for (i = 1; i < inputs; i++) {
port = _x_post_intercept_video_port(&this->post, video_target[0], &input, NULL);
port->new_frame->draw = switch_draw;
@@ -153,7 +153,7 @@ static post_plugin_t *switch_open_plugin(post_class_t *class_gen, int inputs,
port->frame_lock = &this->mutex;
this->post.xine_post.video_input[i] = &port->new_port;
}
-
+
input_api = &this->parameter_input;
input_api->name = "parameters";
input_api->type = XINE_POST_DATA_PARAMETERS;
@@ -168,7 +168,7 @@ static post_plugin_t *switch_open_plugin(post_class_t *class_gen, int inputs,
static void switch_dispose(post_plugin_t *this_gen)
{
post_switch_t *this = (post_switch_t *)this_gen;
-
+
if (_x_post_dispose(this_gen)) {
pthread_cond_destroy(&this->display_condition_changed);
pthread_mutex_destroy(&this->mutex);
@@ -186,7 +186,7 @@ static int switch_set_parameters(xine_post_t *this_gen, void *param_gen)
{
post_switch_t *this = (post_switch_t *)this_gen;
switch_parameter_t *param = (switch_parameter_t *)param_gen;
-
+
if (param->select > this->source_count) return 0;
pthread_mutex_lock(&this->mutex);
this->selected_source = param->select;
@@ -199,7 +199,7 @@ static int switch_get_parameters(xine_post_t *this_gen, void *param_gen)
{
post_switch_t *this = (post_switch_t *)this_gen;
switch_parameter_t *param = (switch_parameter_t *)param_gen;
-
+
param->select = this->selected_source;
return 1;
}
@@ -222,7 +222,7 @@ static int switch_draw(vo_frame_t *frame, xine_stream_t *stream)
for (source_num = 1; source_num <= this->source_count; source_num++)
if (this->post.xine_post.video_input[source_num-1] == frame->port) break;
_x_assert(source_num <= this->source_count);
-
+
pthread_mutex_lock(&this->mutex);
/* the original output will probably never see this frame again */
_x_post_frame_u_turn(frame, stream);
@@ -249,6 +249,6 @@ static int switch_draw(vo_frame_t *frame, xine_stream_t *stream)
skip = 0;
pthread_mutex_unlock(&this->mutex);
}
-
+
return skip;
}
diff --git a/src/post/planar/Makefile.am b/src/post/planar/Makefile.am
index f706e4a7b..039da4fc4 100644
--- a/src/post/planar/Makefile.am
+++ b/src/post/planar/Makefile.am
@@ -2,8 +2,8 @@ include $(top_builddir)/misc/Makefile.plugins
include $(top_srcdir)/misc/Makefile.common
AM_CFLAGS = $(VISIBILITY_FLAG)
-AM_CPPFLAGS =
-AM_LDFLAGS =
+AM_CPPFLAGS =
+AM_LDFLAGS =
noinst_LTLIBRARIES = libpost_planar_asm.la
libpost_planar_asm_la_SOURCES = eq.c eq2.c noise.c
diff --git a/src/post/planar/boxblur.c b/src/post/planar/boxblur.c
index 182d088c4..ea3085ffd 100644
--- a/src/post/planar/boxblur.c
+++ b/src/post/planar/boxblur.c
@@ -1,18 +1,18 @@
/*
* Copyright (C) 2000-2004 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -36,7 +36,7 @@ void *boxblur_init_plugin(xine_t *xine, void *);
typedef struct post_plugin_boxblur_s post_plugin_boxblur_t;
/*
- * this is the struct used by "parameters api"
+ * this is the struct used by "parameters api"
*/
typedef struct boxblur_parameters_s {
@@ -51,13 +51,13 @@ typedef struct boxblur_parameters_s {
* description of params struct
*/
START_PARAM_DESCR( boxblur_parameters_t )
-PARAM_ITEM( POST_PARAM_TYPE_INT, luma_radius, NULL, 0, 10, 0,
+PARAM_ITEM( POST_PARAM_TYPE_INT, luma_radius, NULL, 0, 10, 0,
"radius of luma blur" )
-PARAM_ITEM( POST_PARAM_TYPE_INT, luma_power, NULL, 0, 10, 0,
+PARAM_ITEM( POST_PARAM_TYPE_INT, luma_power, NULL, 0, 10, 0,
"power of luma blur" )
-PARAM_ITEM( POST_PARAM_TYPE_INT, chroma_radius, NULL, -1, 10, 0,
+PARAM_ITEM( POST_PARAM_TYPE_INT, chroma_radius, NULL, -1, 10, 0,
"radius of chroma blur (-1 = same as luma)" )
-PARAM_ITEM( POST_PARAM_TYPE_INT, chroma_power, NULL, -1, 10, 0,
+PARAM_ITEM( POST_PARAM_TYPE_INT, chroma_power, NULL, -1, 10, 0,
"power of chroma blur (-1 = same as luma)" )
END_PARAM_DESCR( param_descr )
@@ -96,7 +96,7 @@ static int get_parameters (xine_post_t *this_gen, void *param_gen) {
return 1;
}
-
+
static xine_post_api_descr_t * get_param_descr (void) {
return &param_descr;
}
@@ -141,7 +141,7 @@ void *boxblur_init_plugin(xine_t *xine, void *data)
if (!class)
return NULL;
-
+
class->open_plugin = boxblur_open_plugin;
class->identifier = "boxblur";
class->description = N_("box blur filter from mplayer");
@@ -160,14 +160,14 @@ static post_plugin_t *boxblur_open_plugin(post_class_t *class_gen, int inputs,
xine_post_in_t *input_api;
post_out_t *output;
post_video_port_t *port;
-
+
if (!this || !video_target || !video_target[0]) {
free(this);
return NULL;
}
-
+
_x_post_init(&this->post, 0, 1);
-
+
this->params.luma_radius = 2;
this->params.luma_power = 1;
this->params.chroma_radius = -1;
@@ -178,7 +178,7 @@ static post_plugin_t *boxblur_open_plugin(post_class_t *class_gen, int inputs,
port = _x_post_intercept_video_port(&this->post, video_target[0], &input, &output);
port->intercept_frame = boxblur_intercept_frame;
port->new_frame->draw = boxblur_draw;
-
+
input_api = &this->params_input;
input_api->name = "parameters";
input_api->type = XINE_POST_DATA_PARAMETERS;
@@ -187,18 +187,18 @@ static post_plugin_t *boxblur_open_plugin(post_class_t *class_gen, int inputs,
input->xine_in.name = "video";
output->xine_out.name = "boxblured video";
-
+
this->post.xine_post.video_input[0] = &port->new_port;
-
+
this->post.dispose = boxblur_dispose;
-
+
return &this->post;
}
static void boxblur_dispose(post_plugin_t *this_gen)
{
post_plugin_boxblur_t *this = (post_plugin_boxblur_t *)this_gen;
-
+
if (_x_post_dispose(this_gen)) {
pthread_mutex_destroy(&this->lock);
free(this);
@@ -243,7 +243,7 @@ static inline void blur(uint8_t *dst, uint8_t *src, int w, int radius, int dstSt
static inline void blur2(uint8_t *dst, uint8_t *src, int w, int radius, int power, int dstStep, int srcStep){
uint8_t temp[2][4096];
uint8_t *a= temp[0], *b=temp[1];
-
+
if(radius){
blur(a, src, w, radius, 1, srcStep);
for(; power>2; power--){
@@ -267,9 +267,9 @@ static inline void blur2(uint8_t *dst, uint8_t *src, int w, int radius, int powe
static void hBlur(uint8_t *dst, uint8_t *src, int w, int h, int dstStride, int srcStride, int radius, int power){
int y;
-
+
if(radius==0 && dst==src) return;
-
+
for(y=0; y<h; y++){
blur2(dst + y*dstStride, src + y*srcStride, w, radius, power, 1, 1);
}
@@ -277,7 +277,7 @@ static void hBlur(uint8_t *dst, uint8_t *src, int w, int h, int dstStride, int s
static void vBlur(uint8_t *dst, uint8_t *src, int w, int h, int dstStride, int srcStride, int radius, int power){
int x;
-
+
if(radius==0 && dst==src) return;
for(x=0; x<w; x++){
@@ -326,25 +326,25 @@ static int boxblur_draw(vo_frame_t *frame, xine_stream_t *stream)
pthread_mutex_lock (&this->lock);
- chroma_radius = (this->params.chroma_radius != -1) ? this->params.chroma_radius :
+ chroma_radius = (this->params.chroma_radius != -1) ? this->params.chroma_radius :
this->params.luma_radius;
- chroma_power = (this->params.chroma_power != -1) ? this->params.chroma_power :
+ chroma_power = (this->params.chroma_power != -1) ? this->params.chroma_power :
this->params.luma_power;
cw = yv12_frame->width/2;
ch = yv12_frame->height/2;
- hBlur(out_frame->base[0], yv12_frame->base[0], yv12_frame->width, yv12_frame->height,
+ hBlur(out_frame->base[0], yv12_frame->base[0], yv12_frame->width, yv12_frame->height,
out_frame->pitches[0], yv12_frame->pitches[0], this->params.luma_radius, this->params.luma_power);
- hBlur(out_frame->base[1], yv12_frame->base[1], cw,ch,
+ hBlur(out_frame->base[1], yv12_frame->base[1], cw,ch,
out_frame->pitches[1], yv12_frame->pitches[1], chroma_radius, chroma_power);
- hBlur(out_frame->base[2], yv12_frame->base[2], cw,ch,
+ hBlur(out_frame->base[2], yv12_frame->base[2], cw,ch,
out_frame->pitches[2], yv12_frame->pitches[2], chroma_radius, chroma_power);
- vBlur(out_frame->base[0], out_frame->base[0], yv12_frame->width, yv12_frame->height,
+ vBlur(out_frame->base[0], out_frame->base[0], yv12_frame->width, yv12_frame->height,
out_frame->pitches[0], out_frame->pitches[0], this->params.luma_radius, this->params.luma_power);
- vBlur(out_frame->base[1], out_frame->base[1], cw,ch,
+ vBlur(out_frame->base[1], out_frame->base[1], cw,ch,
out_frame->pitches[1], out_frame->pitches[1], chroma_radius, chroma_power);
- vBlur(out_frame->base[2], out_frame->base[2], cw,ch,
+ vBlur(out_frame->base[2], out_frame->base[2], cw,ch,
out_frame->pitches[2], out_frame->pitches[2], chroma_radius, chroma_power);
pthread_mutex_unlock (&this->lock);
diff --git a/src/post/planar/denoise3d.c b/src/post/planar/denoise3d.c
index c87f5f078..793a377c7 100644
--- a/src/post/planar/denoise3d.c
+++ b/src/post/planar/denoise3d.c
@@ -1,18 +1,18 @@
/*
* Copyright (C) 2000-2004 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -44,7 +44,7 @@ typedef struct post_plugin_denoise3d_s post_plugin_denoise3d_t;
/*
- * this is the struct used by "parameters api"
+ * this is the struct used by "parameters api"
*/
typedef struct denoise3d_parameters_s {
@@ -58,11 +58,11 @@ typedef struct denoise3d_parameters_s {
* description of params struct
*/
START_PARAM_DESCR( denoise3d_parameters_t )
-PARAM_ITEM( POST_PARAM_TYPE_DOUBLE, luma, NULL, 0, 10, 0,
+PARAM_ITEM( POST_PARAM_TYPE_DOUBLE, luma, NULL, 0, 10, 0,
"spatial luma strength" )
-PARAM_ITEM( POST_PARAM_TYPE_DOUBLE, chroma, NULL, 0, 10, 0,
+PARAM_ITEM( POST_PARAM_TYPE_DOUBLE, chroma, NULL, 0, 10, 0,
"spatial chroma strength" )
-PARAM_ITEM( POST_PARAM_TYPE_DOUBLE, time, NULL, 0, 10, 0,
+PARAM_ITEM( POST_PARAM_TYPE_DOUBLE, time, NULL, 0, 10, 0,
"temporal strength" )
END_PARAM_DESCR( param_descr )
@@ -129,7 +129,7 @@ static int get_parameters (xine_post_t *this_gen, void *param_gen) {
return 1;
}
-
+
static xine_post_api_descr_t * get_param_descr (void) {
return &param_descr;
}
@@ -181,7 +181,7 @@ void *denoise3d_init_plugin(xine_t *xine, void *data)
if (!class)
return NULL;
-
+
class->open_plugin = denoise3d_open_plugin;
class->identifier = "denoise3d";
class->description = N_("3D Denoiser (variable lowpass filter)");
@@ -200,14 +200,14 @@ static post_plugin_t *denoise3d_open_plugin(post_class_t *class_gen, int inputs,
xine_post_in_t *input_api;
post_out_t *output;
post_video_port_t *port;
-
+
if (!this || !video_target || !video_target[0]) {
free(this);
return NULL;
}
_x_post_init(&this->post, 0, 1);
-
+
this->params.luma = PARAM1_DEFAULT;
this->params.chroma = PARAM2_DEFAULT;
this->params.time = PARAM3_DEFAULT;
@@ -219,7 +219,7 @@ static post_plugin_t *denoise3d_open_plugin(post_class_t *class_gen, int inputs,
port->new_port.close = denoise3d_close;
port->intercept_frame = denoise3d_intercept_frame;
port->new_frame->draw = denoise3d_draw;
-
+
input_api = &this->params_input;
input_api->name = "parameters";
input_api->type = XINE_POST_DATA_PARAMETERS;
@@ -228,20 +228,20 @@ static post_plugin_t *denoise3d_open_plugin(post_class_t *class_gen, int inputs,
input->xine_in.name = "video";
output->xine_out.name = "denoise3d video";
-
+
this->post.xine_post.video_input[0] = &port->new_port;
-
+
this->post.dispose = denoise3d_dispose;
set_parameters ((xine_post_t *)this, &this->params);
-
+
return &this->post;
}
static void denoise3d_dispose(post_plugin_t *this_gen)
{
post_plugin_denoise3d_t *this = (post_plugin_denoise3d_t *)this_gen;
-
+
if (_x_post_dispose(this_gen)) {
pthread_mutex_destroy(&this->lock);
free(this);
@@ -273,10 +273,10 @@ static int denoise3d_intercept_frame(post_video_port_t *port, vo_frame_t *frame)
#define LowPass(Prev, Curr, Coef) (((Prev)*Coef[Prev - Curr] + (Curr)*(65536-(Coef[Prev - Curr]))) / 65536)
-static void deNoise(unsigned char *Frame,
- unsigned char *FramePrev,
- unsigned char *FrameDest,
- unsigned char *LineAnt,
+static void deNoise(unsigned char *Frame,
+ unsigned char *FramePrev,
+ unsigned char *FrameDest,
+ unsigned char *LineAnt,
int W, int H, int sStride, int pStride, int dStride,
int *Horizontal, int *Vertical, int *Temporal)
{
@@ -334,15 +334,15 @@ static int denoise3d_draw(vo_frame_t *frame, xine_stream_t *stream)
yv12_frame = port->original_port->get_frame(port->original_port,
frame->width, frame->height, frame->ratio, XINE_IMGFMT_YV12, frame->flags | VO_BOTH_FIELDS);
-
+
_x_post_frame_copy_down(frame, yv12_frame);
-
+
yuy2_to_yv12(frame->base[0], frame->pitches[0],
yv12_frame->base[0], yv12_frame->pitches[0],
yv12_frame->base[1], yv12_frame->pitches[1],
yv12_frame->base[2], yv12_frame->pitches[2],
frame->width, frame->height);
-
+
} else {
yv12_frame = frame;
yv12_frame->lock(yv12_frame);
@@ -382,7 +382,7 @@ static int denoise3d_draw(vo_frame_t *frame, xine_stream_t *stream)
pthread_mutex_unlock (&this->lock);
skip = out_frame->draw(out_frame, stream);
-
+
_x_post_frame_copy_up(frame, out_frame);
out_frame->free(out_frame);
diff --git a/src/post/planar/eq.c b/src/post/planar/eq.c
index 4e2460bb8..dcf9b47fb 100644
--- a/src/post/planar/eq.c
+++ b/src/post/planar/eq.c
@@ -1,18 +1,18 @@
/*
* Copyright (C) 2000-2004 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -47,7 +47,7 @@ static void process_MMX(unsigned char *dest, int dstride, unsigned char *src, in
brvec[0] = brvec[1] = brvec[2] = brvec[3] = brightness;
contvec[0] = contvec[1] = contvec[2] = contvec[3] = contrast;
-
+
while (h--) {
asm volatile (
"movq (%5), %%mm3 \n\t"
@@ -125,7 +125,7 @@ void *eq_init_plugin(xine_t *xine, void *);
typedef struct post_plugin_eq_s post_plugin_eq_t;
/*
- * this is the struct used by "parameters api"
+ * this is the struct used by "parameters api"
*/
typedef struct eq_parameters_s {
@@ -138,9 +138,9 @@ typedef struct eq_parameters_s {
* description of params struct
*/
START_PARAM_DESCR( eq_parameters_t )
-PARAM_ITEM( POST_PARAM_TYPE_INT, brightness, NULL, -100, 100, 0,
+PARAM_ITEM( POST_PARAM_TYPE_INT, brightness, NULL, -100, 100, 0,
"brightness" )
-PARAM_ITEM( POST_PARAM_TYPE_INT, contrast, NULL, -100, 100, 0,
+PARAM_ITEM( POST_PARAM_TYPE_INT, contrast, NULL, -100, 100, 0,
"contrast" )
END_PARAM_DESCR( param_descr )
@@ -179,7 +179,7 @@ static int get_parameters (xine_post_t *this_gen, void *param_gen) {
return 1;
}
-
+
static xine_post_api_descr_t * get_param_descr (void) {
return &param_descr;
}
@@ -233,7 +233,7 @@ void *eq_init_plugin(xine_t *xine, void *data)
if (!class)
return NULL;
-
+
class->open_plugin = eq_open_plugin;
class->identifier = "eq";
class->description = N_("soft video equalizer");
@@ -252,7 +252,7 @@ static post_plugin_t *eq_open_plugin(post_class_t *class_gen, int inputs,
xine_post_in_t *input_api;
post_out_t *output;
post_video_port_t *port;
-
+
if (!this || !video_target || !video_target[0]) {
free(this);
return NULL;
@@ -260,7 +260,7 @@ static post_plugin_t *eq_open_plugin(post_class_t *class_gen, int inputs,
process = process_C;
#if defined(ARCH_X86) || defined(ARCH_X86_64)
- if( xine_mm_accel() & MM_ACCEL_X86_MMX )
+ if( xine_mm_accel() & MM_ACCEL_X86_MMX )
process = process_MMX;
#endif
@@ -270,14 +270,14 @@ static post_plugin_t *eq_open_plugin(post_class_t *class_gen, int inputs,
this->params.contrast = 0;
pthread_mutex_init (&this->lock, NULL);
-
+
port = _x_post_intercept_video_port(&this->post, video_target[0], &input, &output);
port->new_port.get_property = eq_get_property;
port->new_port.set_property = eq_set_property;
port->intercept_frame = eq_intercept_frame;
port->new_frame->draw = eq_draw;
- input_api = &this->params_input;
+ input_api = &this->params_input;
input_api->name = "parameters";
input_api->type = XINE_POST_DATA_PARAMETERS;
input_api->data = &post_api;
@@ -285,11 +285,11 @@ static post_plugin_t *eq_open_plugin(post_class_t *class_gen, int inputs,
input->xine_in.name = "video";
output->xine_out.name = "eqd video";
-
+
this->post.xine_post.video_input[0] = &port->new_port;
-
+
this->post.dispose = eq_dispose;
-
+
return &this->post;
}
@@ -355,15 +355,15 @@ static int eq_draw(vo_frame_t *frame, xine_stream_t *stream)
yv12_frame = port->original_port->get_frame(port->original_port,
frame->width, frame->height, frame->ratio, XINE_IMGFMT_YV12, frame->flags | VO_BOTH_FIELDS);
-
+
_x_post_frame_copy_down(frame, yv12_frame);
-
+
yuy2_to_yv12(frame->base[0], frame->pitches[0],
yv12_frame->base[0], yv12_frame->pitches[0],
yv12_frame->base[1], yv12_frame->pitches[1],
yv12_frame->base[2], yv12_frame->pitches[2],
frame->width, frame->height);
-
+
} else {
yv12_frame = frame;
yv12_frame->lock(yv12_frame);
@@ -389,7 +389,7 @@ static int eq_draw(vo_frame_t *frame, xine_stream_t *stream)
pthread_mutex_unlock (&this->lock);
skip = out_frame->draw(out_frame, stream);
-
+
_x_post_frame_copy_up(frame, out_frame);
out_frame->free(out_frame);
diff --git a/src/post/planar/eq2.c b/src/post/planar/eq2.c
index aeffcd4ae..a3e1acac1 100644
--- a/src/post/planar/eq2.c
+++ b/src/post/planar/eq2.c
@@ -1,18 +1,18 @@
/*
* Copyright (C) 2000-2008 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -114,7 +114,7 @@ void affine_1d_MMX (eq2_param_t *par, unsigned char *dst, unsigned char *src,
int pel;
short brvec[4];
short contvec[4];
-
+
contrast = (int) (par->c * 256 * 16);
brightness = ((int) (100.0 * par->b + 100.0) * 511) / 200 - 128 - contrast / 32;
@@ -269,7 +269,7 @@ void *eq2_init_plugin(xine_t *xine, void *);
typedef struct post_plugin_eq2_s post_plugin_eq2_t;
/*
- * this is the struct used by "parameters api"
+ * this is the struct used by "parameters api"
*/
typedef struct eq2_parameters_s {
@@ -288,19 +288,19 @@ typedef struct eq2_parameters_s {
* description of params struct
*/
START_PARAM_DESCR( eq2_parameters_t )
-PARAM_ITEM( POST_PARAM_TYPE_DOUBLE, gamma, NULL, 0, 5, 0,
+PARAM_ITEM( POST_PARAM_TYPE_DOUBLE, gamma, NULL, 0, 5, 0,
"gamma" )
-PARAM_ITEM( POST_PARAM_TYPE_DOUBLE, brightness, NULL, -1, 1, 0,
+PARAM_ITEM( POST_PARAM_TYPE_DOUBLE, brightness, NULL, -1, 1, 0,
"brightness" )
-PARAM_ITEM( POST_PARAM_TYPE_DOUBLE, contrast, NULL, 0, 2, 0,
+PARAM_ITEM( POST_PARAM_TYPE_DOUBLE, contrast, NULL, 0, 2, 0,
"contrast" )
-PARAM_ITEM( POST_PARAM_TYPE_DOUBLE, saturation, NULL, 0, 2, 0,
+PARAM_ITEM( POST_PARAM_TYPE_DOUBLE, saturation, NULL, 0, 2, 0,
"saturation" )
-PARAM_ITEM( POST_PARAM_TYPE_DOUBLE, rgamma, NULL, 0, 5, 0,
+PARAM_ITEM( POST_PARAM_TYPE_DOUBLE, rgamma, NULL, 0, 5, 0,
"rgamma" )
-PARAM_ITEM( POST_PARAM_TYPE_DOUBLE, ggamma, NULL, 0, 5, 0,
+PARAM_ITEM( POST_PARAM_TYPE_DOUBLE, ggamma, NULL, 0, 5, 0,
"ggamma" )
-PARAM_ITEM( POST_PARAM_TYPE_DOUBLE, bgamma, NULL, 0, 5, 0,
+PARAM_ITEM( POST_PARAM_TYPE_DOUBLE, bgamma, NULL, 0, 5, 0,
"bgamma" )
END_PARAM_DESCR( param_descr )
@@ -312,7 +312,7 @@ struct post_plugin_eq2_s {
/* private data */
eq2_parameters_t params;
xine_post_in_t params_input;
-
+
vf_eq2_t eq2;
pthread_mutex_t lock;
@@ -352,7 +352,7 @@ static int get_parameters (xine_post_t *this_gen, void *param_gen) {
return 1;
}
-
+
static xine_post_api_descr_t * get_param_descr (void) {
return &param_descr;
}
@@ -414,7 +414,7 @@ void *eq2_init_plugin(xine_t *xine, void *data)
if (!class)
return NULL;
-
+
class->open_plugin = eq2_open_plugin;
class->identifier = "eq2";
class->description = N_("Software video equalizer");
@@ -433,12 +433,12 @@ static post_plugin_t *eq2_open_plugin(post_class_t *class_gen, int inputs,
xine_post_in_t *input_api;
post_out_t *output;
post_video_port_t *port;
-
+
if (!this || !video_target || !video_target[0]) {
free(this);
return NULL;
}
-
+
_x_post_init(&this->post, 0, 1);
memset(&this->eq2, 0, sizeof(this->eq2));
@@ -452,13 +452,13 @@ static post_plugin_t *eq2_open_plugin(post_class_t *class_gen, int inputs,
this->eq2.bgamma = this->params.bgamma = 1.0;
pthread_mutex_init(&this->lock, NULL);
-
+
port = _x_post_intercept_video_port(&this->post, video_target[0], &input, &output);
port->new_port.get_property = eq2_get_property;
port->new_port.set_property = eq2_set_property;
port->intercept_frame = eq2_intercept_frame;
port->new_frame->draw = eq2_draw;
-
+
input_api = &this->params_input;
input_api->name = "parameters";
input_api->type = XINE_POST_DATA_PARAMETERS;
@@ -467,13 +467,13 @@ static post_plugin_t *eq2_open_plugin(post_class_t *class_gen, int inputs,
input->xine_in.name = "video";
output->xine_out.name = "eqd video";
-
+
this->post.xine_post.video_input[0] = &port->new_port;
-
+
this->post.dispose = eq2_dispose;
set_parameters ((xine_post_t *)this, &this->params);
-
+
return &this->post;
}
@@ -547,15 +547,15 @@ static int eq2_draw(vo_frame_t *frame, xine_stream_t *stream)
yv12_frame = port->original_port->get_frame(port->original_port,
frame->width, frame->height, frame->ratio, XINE_IMGFMT_YV12, frame->flags | VO_BOTH_FIELDS);
-
+
_x_post_frame_copy_down(frame, yv12_frame);
-
+
yuy2_to_yv12(frame->base[0], frame->pitches[0],
yv12_frame->base[0], yv12_frame->pitches[0],
yv12_frame->base[1], yv12_frame->pitches[1],
yv12_frame->base[2], yv12_frame->pitches[2],
frame->width, frame->height);
-
+
} else {
yv12_frame = frame;
yv12_frame->lock(yv12_frame);
@@ -585,7 +585,7 @@ static int eq2_draw(vo_frame_t *frame, xine_stream_t *stream)
pthread_mutex_unlock (&this->lock);
skip = out_frame->draw(out_frame, stream);
-
+
_x_post_frame_copy_up(frame, out_frame);
out_frame->free(out_frame);
diff --git a/src/post/planar/expand.c b/src/post/planar/expand.c
index 3cecaf47d..513def84f 100644
--- a/src/post/planar/expand.c
+++ b/src/post/planar/expand.c
@@ -1,23 +1,23 @@
/*
* Copyright (C) 2003 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
*
- * $Id:
+ * $Id:
*
* expand video filter by James Stembridge 24/05/2003
* improved by Michael Roitzsch
@@ -58,7 +58,7 @@
* bars to the left and right of the image and will then set up cropping
* to efficiently remove the black border around the 4:3 image, which the
* plugin would produce otherwise for this case.
- */
+ */
/* plugin class initialization function */
@@ -85,9 +85,9 @@ END_PARAM_DESCR(expand_param_descr)
typedef struct post_expand_s {
post_plugin_t post;
-
+
xine_post_in_t parameter_input;
-
+
int enable_automatic_shift;
int overlay_y_offset;
double aspect;
@@ -111,8 +111,8 @@ static int expand_get_parameters(xine_post_t *this_gen, void *param_g
static char *expand_get_help (void);
/* replaced video port functions */
-static vo_frame_t *expand_get_frame(xine_video_port_t *port_gen, uint32_t width,
- uint32_t height, double ratio,
+static vo_frame_t *expand_get_frame(xine_video_port_t *port_gen, uint32_t width,
+ uint32_t height, double ratio,
int format, int flags);
/* replaced vo_frame functions */
@@ -128,15 +128,15 @@ static int32_t expand_overlay_add_event(video_overlay_manager_t *this_gen
void *expand_init_plugin(xine_t *xine, void *data)
{
post_class_t *class = (post_class_t *)xine_xmalloc(sizeof(post_class_t));
-
+
if (!class)
return NULL;
-
+
class->open_plugin = expand_open_plugin;
class->identifier = "expand";
class->description = N_("add black borders to top and bottom of video to expand it to 4:3 aspect ratio");
class->dispose = default_post_class_dispose;
-
+
return class;
}
@@ -152,46 +152,46 @@ static post_plugin_t *expand_open_plugin(post_class_t *class_gen, int inputs,
post_video_port_t *port;
static xine_post_api_t post_api =
{ expand_set_parameters, expand_get_parameters, expand_get_param_descr, expand_get_help };
-
+
if (!this || !video_target || !video_target[0]) {
free(this);
return NULL;
}
-
+
_x_post_init(&this->post, 0, 1);
-
+
this->enable_automatic_shift = 0;
this->overlay_y_offset = 0;
this->aspect = 4.0 / 3.0;
this->centre_cut_out_mode = 0;
this->cropping_active = 0;
-
+
port = _x_post_intercept_video_port(&this->post, video_target[0], &input, &output);
port->new_port.get_frame = expand_get_frame;
port->new_frame->draw = expand_draw;
port->intercept_ovl = expand_intercept_ovl;
port->new_manager->add_event = expand_overlay_add_event;
-
+
input_param = &this->parameter_input;
input_param->name = "parameters";
input_param->type = XINE_POST_DATA_PARAMETERS;
input_param->data = &post_api;
xine_list_push_back(this->post.input, input_param);
-
+
input->xine_in.name = "video";
output->xine_out.name = "expanded video";
-
+
this->post.xine_post.video_input[0] = &port->new_port;
-
+
this->post.dispose = expand_dispose;
-
+
return &this->post;
}
static void expand_dispose(post_plugin_t *this_gen)
{
post_expand_t *this = (post_expand_t *)this_gen;
-
+
if (_x_post_dispose(this_gen))
free(this);
}
@@ -219,12 +219,12 @@ static int expand_get_parameters(xine_post_t *this_gen, void *param_gen)
{
post_expand_t *this = (post_expand_t *)this_gen;
expand_parameters_t *param = (expand_parameters_t *)param_gen;
-
+
param->enable_automatic_shift = this->enable_automatic_shift;
param->overlay_y_offset = this->overlay_y_offset;
param->aspect = this->aspect;
param->centre_cut_out_mode = this->centre_cut_out_mode;
-
+
return 1;
}
@@ -252,7 +252,7 @@ static int is_pixel_black(vo_frame_t *frame, int x, int y)
if (x >= frame->width) x = frame->width - 1;
if (y < 0) y = 0;
if (y >= frame->height) y = frame->height - 1;
-
+
switch (frame->format)
{
case XINE_IMGFMT_YV12:
@@ -260,7 +260,7 @@ static int is_pixel_black(vo_frame_t *frame, int x, int y)
Cr = *(frame->base[ 1 ] + frame->pitches[ 1 ] * y / 2 + x / 2);
Cb = *(frame->base[ 2 ] + frame->pitches[ 2 ] * y / 2 + x / 2);
break;
-
+
case XINE_IMGFMT_YUY2:
Y = *(frame->base[ 0 ] + frame->pitches[ 0 ] * y + x * 2 + 0);
x &= ~1;
@@ -321,8 +321,8 @@ static int expand_draw(vo_frame_t *frame, xine_stream_t *stream)
}
-static vo_frame_t *expand_get_frame(xine_video_port_t *port_gen, uint32_t width,
- uint32_t height, double ratio,
+static vo_frame_t *expand_get_frame(xine_video_port_t *port_gen, uint32_t width,
+ uint32_t height, double ratio,
int format, int flags)
{
post_video_port_t *port = (post_video_port_t *)port_gen;
@@ -330,27 +330,27 @@ static vo_frame_t *expand_get_frame(xine_video_port_t *port_gen, uint32_t width,
vo_frame_t *frame;
uint32_t new_height, top_bar_height;
int i, end;
-
+
_x_post_rewire(&this->post);
-
+
if (ratio <= 0.0) ratio = (double)width / (double)height;
-
+
/* Calculate height of expanded frame */
new_height = (double)height * ratio / this->aspect;
new_height = (new_height + 1) & ~1;
top_bar_height = (new_height - height) / 2;
top_bar_height = (top_bar_height + 1) & ~1;
-
+
this->top_bar_height = top_bar_height;
if (new_height > height &&
(format == XINE_IMGFMT_YV12 || format == XINE_IMGFMT_YUY2)) {
frame = port->original_port->get_frame(port->original_port,
width, new_height, this->aspect, format, flags);
-
+
_x_post_inc_usage(port);
frame = _x_post_intercept_video_frame(frame, port);
-
+
/* paint black bars in the top and bottom of the frame and hide these
* from the decoders by modifying the pointers to and
* the size of the drawing area */
@@ -395,7 +395,7 @@ static vo_frame_t *expand_get_frame(xine_video_port_t *port_gen, uint32_t width,
width, height, ratio, format, flags);
/* no need to intercept this one, we are not going to do anything with it */
}
-
+
return frame;
}
@@ -405,7 +405,7 @@ static int expand_intercept_ovl(post_video_port_t *port)
post_expand_t *this = (post_expand_t *)port->post;
if (this->centre_cut_out_mode && this->cropping_active) return 0;
-
+
/* we always intercept overlay manager */
return 1;
}
@@ -416,7 +416,7 @@ static int32_t expand_overlay_add_event(video_overlay_manager_t *this_gen, void
video_overlay_event_t *event = (video_overlay_event_t *)event_gen;
post_video_port_t *port = _x_post_ovl_manager_to_port(this_gen);
post_expand_t *this = (post_expand_t *)port->post;
-
+
if (event->event_type == OVERLAY_EVENT_SHOW) {
switch (event->object.object_type) {
case 0:
@@ -431,6 +431,6 @@ static int32_t expand_overlay_add_event(video_overlay_manager_t *this_gen, void
event->object.overlay->y += this->top_bar_height;
}
}
-
+
return port->original_manager->add_event(port->original_manager, event_gen);
}
diff --git a/src/post/planar/fill.c b/src/post/planar/fill.c
index 5aacfd679..c79033a72 100644
--- a/src/post/planar/fill.c
+++ b/src/post/planar/fill.c
@@ -12,7 +12,7 @@
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -46,15 +46,15 @@ static int fill_draw(vo_frame_t *frame, xine_stream_t *stream);
void *fill_init_plugin(xine_t *xine, void *data)
{
post_class_t *class = (post_class_t *)xine_xmalloc(sizeof(post_class_t));
-
+
if (!class)
return NULL;
-
+
class->open_plugin = fill_open_plugin;
class->identifier = "fill";
class->description = N_("crops left and right of video to fill 4:3 aspect ratio");
class->dispose = default_post_class_dispose;
-
+
return class;
}
@@ -67,25 +67,25 @@ static post_plugin_t *fill_open_plugin(post_class_t *class_gen, int inputs,
post_in_t *input;
post_out_t *output;
post_video_port_t *port;
-
+
if (!this || !video_target || !video_target[0]) {
free(this);
return NULL;
}
-
+
_x_post_init(this, 0, 1);
-
+
port = _x_post_intercept_video_port(this, video_target[0], &input, &output);
port->new_port.get_frame = fill_get_frame;
port->new_frame->draw = fill_draw;
-
+
input->xine_in.name = "video";
output->xine_out.name = "cropped video";
-
+
this->xine_post.video_input[0] = &port->new_port;
-
+
this->dispose = fill_dispose;
-
+
return this;
}
@@ -96,33 +96,33 @@ static void fill_dispose(post_plugin_t *this)
}
-static vo_frame_t *fill_get_frame(xine_video_port_t *port_gen, uint32_t width,
- uint32_t height, double ratio,
+static vo_frame_t *fill_get_frame(xine_video_port_t *port_gen, uint32_t width,
+ uint32_t height, double ratio,
int format, int flags)
{
post_video_port_t *port = (post_video_port_t *)port_gen;
post_plugin_t *this = port->post;
vo_frame_t *frame;
-
+
_x_post_rewire(this);
-
+
if (ratio <= 0.0) ratio = (double)width / (double)height;
-
+
if ((ratio > 4.0/3.0) &&
(format == XINE_IMGFMT_YV12 || format == XINE_IMGFMT_YUY2)) {
frame = port->original_port->get_frame(port->original_port,
width, height, 4.0/3.0, format, flags);
-
+
_x_post_inc_usage(port);
frame = _x_post_intercept_video_frame(frame, port);
-
+
frame->ratio = ratio;
} else {
frame = port->original_port->get_frame(port->original_port,
width, height, ratio, format, flags);
/* no need to intercept this one, we are not going to do anything with it */
}
-
+
return frame;
}
@@ -130,13 +130,13 @@ static vo_frame_t *fill_get_frame(xine_video_port_t *port_gen, uint32_t width,
static int fill_draw(vo_frame_t *frame, xine_stream_t *stream)
{
int skip, new_width;
-
+
new_width = (4.0*frame->width) / (3.0*frame->ratio);
-
+
frame->crop_left += (frame->width - new_width) / 2;
frame->crop_right += (frame->width + 1 - new_width) / 2;
frame->ratio = 4.0/3.0;
-
+
_x_post_frame_copy_down(frame, frame->next);
skip = frame->next->draw(frame->next, stream);
_x_post_frame_copy_up(frame, frame->next);
diff --git a/src/post/planar/invert.c b/src/post/planar/invert.c
index 17f237fd7..462b8fa7b 100644
--- a/src/post/planar/invert.c
+++ b/src/post/planar/invert.c
@@ -1,23 +1,23 @@
/*
* Copyright (C) 2000-2004 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
*/
-
+
/*
* simple video inverter plugin
*/
@@ -47,15 +47,15 @@ static int invert_draw(vo_frame_t *frame, xine_stream_t *stream);
void *invert_init_plugin(xine_t *xine, void *data)
{
post_class_t *class = (post_class_t *)xine_xmalloc(sizeof(post_class_t));
-
+
if (!class)
return NULL;
-
+
class->open_plugin = invert_open_plugin;
class->identifier = "invert";
class->description = N_("inverts the colours of every video frame");
class->dispose = default_post_class_dispose;
-
+
return class;
}
@@ -68,23 +68,23 @@ static post_plugin_t *invert_open_plugin(post_class_t *class_gen, int inputs,
post_in_t *input;
post_out_t *output;
post_video_port_t *port;
-
+
if (!this || !video_target || !video_target[0]) {
free(this);
return NULL;
}
-
+
_x_post_init(this, 0, 1);
-
+
port = _x_post_intercept_video_port(this, video_target[0], &input, &output);
port->intercept_frame = invert_intercept_frame;
port->new_frame->draw = invert_draw;
input->xine_in.name = "video";
output->xine_out.name = "inverted video";
this->xine_post.video_input[0] = &port->new_port;
-
+
this->dispose = invert_dispose;
-
+
return this;
}
@@ -106,18 +106,18 @@ static int invert_draw(vo_frame_t *frame, xine_stream_t *stream)
post_video_port_t *port = (post_video_port_t *)frame->port;
vo_frame_t *inverted_frame;
int size, i, skip;
-
+
if (frame->bad_frame) {
_x_post_frame_copy_down(frame, frame->next);
skip = frame->next->draw(frame->next, stream);
_x_post_frame_copy_up(frame, frame->next);
return skip;
}
-
+
inverted_frame = port->original_port->get_frame(port->original_port,
frame->width, frame->height, frame->ratio, frame->format, frame->flags | VO_BOTH_FIELDS);
_x_post_frame_copy_down(frame, inverted_frame);
-
+
switch (inverted_frame->format) {
case XINE_IMGFMT_YUY2:
size = inverted_frame->pitches[0] * inverted_frame->height;
@@ -138,10 +138,10 @@ static int invert_draw(vo_frame_t *frame, xine_stream_t *stream)
for (i = 0; i < size; i++)
inverted_frame->base[2][i] = 0xff - frame->base[2][i];
break;
- }
+ }
skip = inverted_frame->draw(inverted_frame, stream);
_x_post_frame_copy_up(frame, inverted_frame);
inverted_frame->free(inverted_frame);
-
+
return skip;
}
diff --git a/src/post/planar/noise.c b/src/post/planar/noise.c
index 3c6fd70dd..015925138 100644
--- a/src/post/planar/noise.c
+++ b/src/post/planar/noise.c
@@ -1,18 +1,18 @@
/*
* Copyright (C) 2000-2006 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -317,7 +317,7 @@ void *noise_init_plugin(xine_t *xine, void *);
typedef struct post_plugin_noise_s post_plugin_noise_t;
/*
- * this is the struct used by "parameters api"
+ * this is the struct used by "parameters api"
*/
typedef struct noise_parameters_s {
int luma_strength, chroma_strength,
@@ -331,15 +331,15 @@ static const char *const enum_quality[] = {"fixed", "temporal", "averaged tempor
* description of params struct
*/
START_PARAM_DESCR( noise_parameters_t )
-PARAM_ITEM( POST_PARAM_TYPE_INT, luma_strength, NULL, 0, 100, 0,
+PARAM_ITEM( POST_PARAM_TYPE_INT, luma_strength, NULL, 0, 100, 0,
"Amount of noise to add to luma channel" )
-PARAM_ITEM( POST_PARAM_TYPE_INT, chroma_strength, NULL, 0, 100, 0,
+PARAM_ITEM( POST_PARAM_TYPE_INT, chroma_strength, NULL, 0, 100, 0,
"Amount of noise to add to chroma channel" )
-PARAM_ITEM( POST_PARAM_TYPE_INT, quality, enum_quality, 0, 0, 0,
+PARAM_ITEM( POST_PARAM_TYPE_INT, quality, enum_quality, 0, 0, 0,
"Quality level of noise" )
-PARAM_ITEM( POST_PARAM_TYPE_INT, type, enum_types, 0, 0, 0,
+PARAM_ITEM( POST_PARAM_TYPE_INT, type, enum_types, 0, 0, 0,
"Type of noise" )
-PARAM_ITEM( POST_PARAM_TYPE_BOOL, pattern, NULL, 0, 1, 0,
+PARAM_ITEM( POST_PARAM_TYPE_BOOL, pattern, NULL, 0, 1, 0,
"Mix random noise with a (semi)regular pattern" )
END_PARAM_DESCR( param_descr )
@@ -356,7 +356,7 @@ struct post_plugin_noise_s {
};
-static int set_parameters (xine_post_t *this_gen, void *param_gen)
+static int set_parameters (xine_post_t *this_gen, void *param_gen)
{
post_plugin_noise_t *this = (post_plugin_noise_t *)this_gen;
noise_parameters_t *param = (noise_parameters_t *)param_gen;
@@ -378,7 +378,7 @@ static int set_parameters (xine_post_t *this_gen, void *param_gen)
return 1;
}
-static int get_parameters (xine_post_t *this_gen, void *param_gen)
+static int get_parameters (xine_post_t *this_gen, void *param_gen)
{
post_plugin_noise_t *this = (post_plugin_noise_t *)this_gen;
noise_parameters_t *param = (noise_parameters_t *)param_gen;
@@ -397,7 +397,7 @@ static int get_parameters (xine_post_t *this_gen, void *param_gen)
pthread_mutex_unlock (&this->lock);
return 1;
}
-
+
static xine_post_api_descr_t *get_param_descr (void) {
return &param_descr;
}
@@ -452,7 +452,7 @@ void *noise_init_plugin(xine_t *xine, void *data)
if (!class)
return NULL;
-
+
class->open_plugin = noise_open_plugin;
class->identifier = "noise";
class->description = N_("Adds noise");
@@ -480,12 +480,12 @@ static post_plugin_t *noise_open_plugin(post_class_t *class_gen, int inputs,
post_out_t *output;
post_video_port_t *port;
noise_parameters_t params;
-
+
if (!this || !video_target || !video_target[0]) {
free(this);
return NULL;
}
-
+
_x_post_init(&this->post, 0, 1);
memset(&params, 0, sizeof(noise_parameters_t));
@@ -495,11 +495,11 @@ static post_plugin_t *noise_open_plugin(post_class_t *class_gen, int inputs,
params.quality = 2;
pthread_mutex_init(&this->lock, NULL);
-
+
port = _x_post_intercept_video_port(&this->post, video_target[0], &input, &output);
port->intercept_frame = noise_intercept_frame;
port->new_frame->draw = noise_draw;
-
+
input_api = &this->params_input;
input_api->name = "parameters";
input_api->type = XINE_POST_DATA_PARAMETERS;
@@ -508,13 +508,13 @@ static post_plugin_t *noise_open_plugin(post_class_t *class_gen, int inputs,
input->xine_in.name = "video";
output->xine_out.name = "filtered video";
-
+
this->post.xine_post.video_input[0] = &port->new_port;
-
+
this->post.dispose = noise_dispose;
set_parameters ((xine_post_t *)this, &params);
-
+
return &this->post;
}
@@ -544,7 +544,7 @@ static int noise_draw(vo_frame_t *frame, xine_stream_t *stream)
vo_frame_t *out_frame;
int skip;
- if (frame->bad_frame ||
+ if (frame->bad_frame ||
(this->params[0].strength == 0 && this->params[1].strength == 0)) {
_x_post_frame_copy_down(frame, frame->next);
skip = frame->next->draw(frame->next, stream);
@@ -554,26 +554,26 @@ static int noise_draw(vo_frame_t *frame, xine_stream_t *stream)
frame->lock(frame);
out_frame = port->original_port->get_frame(port->original_port,
- frame->width, frame->height, frame->ratio, frame->format,
+ frame->width, frame->height, frame->ratio, frame->format,
frame->flags | VO_BOTH_FIELDS);
_x_post_frame_copy_down(frame, out_frame);
pthread_mutex_lock (&this->lock);
if (frame->format == XINE_IMGFMT_YV12) {
- noise(out_frame->base[0], frame->base[0],
- out_frame->pitches[0], frame->pitches[0],
+ noise(out_frame->base[0], frame->base[0],
+ out_frame->pitches[0], frame->pitches[0],
frame->width, frame->height, &this->params[0]);
- noise(out_frame->base[1], frame->base[1],
- out_frame->pitches[1], frame->pitches[1],
+ noise(out_frame->base[1], frame->base[1],
+ out_frame->pitches[1], frame->pitches[1],
frame->width/2, frame->height/2, &this->params[1]);
- noise(out_frame->base[2], frame->base[2],
- out_frame->pitches[2], frame->pitches[2],
+ noise(out_frame->base[2], frame->base[2],
+ out_frame->pitches[2], frame->pitches[2],
frame->width/2, frame->height/2, &this->params[1]);
} else {
// Chroma strength is ignored for YUY2.
- noise(out_frame->base[0], frame->base[0],
- out_frame->pitches[0], frame->pitches[0],
+ noise(out_frame->base[0], frame->base[0],
+ out_frame->pitches[0], frame->pitches[0],
frame->width * 2, frame->height, &this->params[0]);
}
diff --git a/src/post/planar/planar.c b/src/post/planar/planar.c
index 35177230a..e2bd65846 100644
--- a/src/post/planar/planar.c
+++ b/src/post/planar/planar.c
@@ -1,18 +1,18 @@
/*
* Copyright (C) 2000-2004 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -59,7 +59,7 @@ extern void *noise_init_plugin(xine_t *xine, void *);
static const post_info_t noise_special_info = { XINE_POST_TYPE_VIDEO_FILTER };
const plugin_info_t xine_plugin_info[] EXPORTED = {
- /* type, API, "name", version, special_info, init_function */
+ /* type, API, "name", version, special_info, init_function */
{ PLUGIN_POST, 10, "expand", XINE_VERSION_CODE, &expand_special_info, &expand_init_plugin },
{ PLUGIN_POST, 10, "fill", XINE_VERSION_CODE, &fill_special_info, &fill_init_plugin },
{ PLUGIN_POST, 10, "invert", XINE_VERSION_CODE, &invert_special_info, &invert_init_plugin },
diff --git a/src/post/planar/pp.c b/src/post/planar/pp.c
index 64ebadfe9..b985b47aa 100644
--- a/src/post/planar/pp.c
+++ b/src/post/planar/pp.c
@@ -1,18 +1,18 @@
/*
* Copyright (C) 2000-2004 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -44,7 +44,7 @@ void *pp_init_plugin(xine_t *xine, void *);
typedef struct post_plugin_pp_s post_plugin_pp_t;
/*
- * this is the struct used by "parameters api"
+ * this is the struct used by "parameters api"
*/
typedef struct pp_parameters_s {
@@ -57,9 +57,9 @@ typedef struct pp_parameters_s {
* description of params struct
*/
START_PARAM_DESCR( pp_parameters_t )
-PARAM_ITEM( POST_PARAM_TYPE_INT, quality, NULL, 0, PP_QUALITY_MAX, 0,
+PARAM_ITEM( POST_PARAM_TYPE_INT, quality, NULL, 0, PP_QUALITY_MAX, 0,
"postprocessing quality" )
-PARAM_ITEM( POST_PARAM_TYPE_CHAR, mode, NULL, 0, 0, 0,
+PARAM_ITEM( POST_PARAM_TYPE_CHAR, mode, NULL, 0, 0, 0,
"mode string (overwrites all other options except quality)" )
END_PARAM_DESCR( param_descr )
@@ -106,7 +106,7 @@ static int get_parameters (xine_post_t *this_gen, void *param_gen) {
return 1;
}
-
+
static xine_post_api_descr_t * get_param_descr (void) {
return &param_descr;
}
@@ -157,7 +157,7 @@ void *pp_init_plugin(xine_t *xine, void *data)
if (!class)
return NULL;
-
+
class->open_plugin = pp_open_plugin;
class->identifier = "pp";
class->description = N_("plugin for ffmpeg libpostprocess");
@@ -177,14 +177,14 @@ static post_plugin_t *pp_open_plugin(post_class_t *class_gen, int inputs,
post_out_t *output;
post_video_port_t *port;
uint32_t cpu_caps;
-
+
if (!this || !video_target || !video_target[0]) {
free(this);
return NULL;
}
_x_post_init(&this->post, 0, 1);
-
+
this->params.quality = 3;
strcpy(this->params.mode, "de");
@@ -195,18 +195,18 @@ static post_plugin_t *pp_open_plugin(post_class_t *class_gen, int inputs,
this->pp_flags |= PP_CPU_CAPS_MMX;
if(cpu_caps & MM_ACCEL_X86_MMXEXT)
this->pp_flags |= PP_CPU_CAPS_MMX2;
- if(cpu_caps & MM_ACCEL_X86_3DNOW)
+ if(cpu_caps & MM_ACCEL_X86_3DNOW)
this->pp_flags |= PP_CPU_CAPS_3DNOW;
this->pp_mode = NULL;
this->pp_context = NULL;
pthread_mutex_init (&this->lock, NULL);
-
+
port = _x_post_intercept_video_port(&this->post, video_target[0], &input, &output);
port->intercept_frame = pp_intercept_frame;
port->new_frame->draw = pp_draw;
-
+
input_api = &this->params_input;
input_api->name = "parameters";
input_api->type = XINE_POST_DATA_PARAMETERS;
@@ -215,11 +215,11 @@ static post_plugin_t *pp_open_plugin(post_class_t *class_gen, int inputs,
input->xine_in.name = "video";
output->xine_out.name = "pped video";
-
+
this->post.xine_post.video_input[0] = &port->new_port;
-
+
this->post.dispose = pp_dispose;
-
+
return &this->post;
}
@@ -263,9 +263,9 @@ static int pp_draw(vo_frame_t *frame, xine_stream_t *stream)
yv12_frame = port->original_port->get_frame(port->original_port,
frame->width, frame->height, frame->ratio, XINE_IMGFMT_YV12, frame->flags | VO_BOTH_FIELDS);
-
+
_x_post_frame_copy_down(frame, yv12_frame);
-
+
yuy2_to_yv12(frame->base[0], frame->pitches[0],
yv12_frame->base[0], yv12_frame->pitches[0],
yv12_frame->base[1], yv12_frame->pitches[1],
@@ -279,12 +279,12 @@ static int pp_draw(vo_frame_t *frame, xine_stream_t *stream)
out_frame = port->original_port->get_frame(port->original_port,
frame->width, frame->height, frame->ratio, XINE_IMGFMT_YV12, frame->flags | VO_BOTH_FIELDS);
-
+
_x_post_frame_copy_down(frame, out_frame);
pthread_mutex_lock (&this->lock);
- if( !this->pp_context ||
+ if( !this->pp_context ||
this->frame_width != yv12_frame->width ||
this->frame_height != yv12_frame->height ) {
@@ -304,15 +304,15 @@ static int pp_draw(vo_frame_t *frame, xine_stream_t *stream)
}
if(!this->pp_mode)
- this->pp_mode = pp_get_mode_by_name_and_quality(this->params.mode,
+ this->pp_mode = pp_get_mode_by_name_and_quality(this->params.mode,
this->params.quality);
if(this->pp_mode)
- pp_postprocess(yv12_frame->base, yv12_frame->pitches,
- out_frame->base, out_frame->pitches,
+ pp_postprocess(yv12_frame->base, yv12_frame->pitches,
+ out_frame->base, out_frame->pitches,
(frame->width+7)&(~7), frame->height,
NULL, 0,
- this->pp_mode, this->pp_context,
+ this->pp_mode, this->pp_context,
0 /*this->av_frame->pict_type*/);
pthread_mutex_unlock (&this->lock);
diff --git a/src/post/planar/unsharp.c b/src/post/planar/unsharp.c
index 506f19f4c..ffa6a39df 100644
--- a/src/post/planar/unsharp.c
+++ b/src/post/planar/unsharp.c
@@ -1,18 +1,18 @@
/*
* Copyright (C) 2000-2004 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -64,7 +64,7 @@ static void unsharp( uint8_t *dst, uint8_t *src, int dstStride, int srcStride, i
uint32_t **SC = fp->SC;
uint32_t SR[MAX_MATRIX_SIZE-1], Tmp1, Tmp2;
- uint8_t* src2 = src;
+ uint8_t* src2 = src;
int32_t res;
int x, y, z;
@@ -77,7 +77,7 @@ static void unsharp( uint8_t *dst, uint8_t *src, int dstStride, int srcStride, i
if( !fp->amount ) {
if( src == dst )
return;
- if( dstStride == srcStride )
+ if( dstStride == srcStride )
xine_fast_memcpy( dst, src, srcStride*height );
else
for( y=0; y<height; y++, dst+=dstStride, src+=srcStride )
@@ -104,7 +104,7 @@ static void unsharp( uint8_t *dst, uint8_t *src, int dstStride, int srcStride, i
if( x>=stepsX && y>=stepsY ) {
uint8_t* srx = src - stepsY*srcStride + x - stepsX;
uint8_t* dsx = dst - stepsY*dstStride + x - stepsX;
-
+
res = (int32_t)*srx + ( ( ( (int32_t)*srx - (int32_t)((Tmp1+halfscale) >> scalebits) ) * amount ) >> 16 );
*dsx = res>255 ? 255 : res<0 ? 0 : (uint8_t)res;
}
@@ -123,7 +123,7 @@ void *unsharp_init_plugin(xine_t *xine, void *);
typedef struct post_plugin_unsharp_s post_plugin_unsharp_t;
/*
- * this is the struct used by "parameters api"
+ * this is the struct used by "parameters api"
*/
typedef struct unsharp_parameters_s {
@@ -141,17 +141,17 @@ typedef struct unsharp_parameters_s {
* description of params struct
*/
START_PARAM_DESCR( unsharp_parameters_t )
-PARAM_ITEM( POST_PARAM_TYPE_INT, luma_matrix_width, NULL, 3, 11, 0,
+PARAM_ITEM( POST_PARAM_TYPE_INT, luma_matrix_width, NULL, 3, 11, 0,
"width of the matrix (must be odd)" )
-PARAM_ITEM( POST_PARAM_TYPE_INT, luma_matrix_height, NULL, 3, 11, 0,
+PARAM_ITEM( POST_PARAM_TYPE_INT, luma_matrix_height, NULL, 3, 11, 0,
"height of the matrix (must be odd)" )
-PARAM_ITEM( POST_PARAM_TYPE_DOUBLE, luma_amount, NULL, -2, 2, 0,
+PARAM_ITEM( POST_PARAM_TYPE_DOUBLE, luma_amount, NULL, -2, 2, 0,
"relative amount of sharpness/blur (=0 disable, <0 blur, >0 sharpen)" )
-PARAM_ITEM( POST_PARAM_TYPE_INT, chroma_matrix_width, NULL, 3, 11, 0,
+PARAM_ITEM( POST_PARAM_TYPE_INT, chroma_matrix_width, NULL, 3, 11, 0,
"width of the matrix (must be odd)" )
-PARAM_ITEM( POST_PARAM_TYPE_INT, chroma_matrix_height, NULL, 3, 11, 0,
+PARAM_ITEM( POST_PARAM_TYPE_INT, chroma_matrix_height, NULL, 3, 11, 0,
"height of the matrix (must be odd)" )
-PARAM_ITEM( POST_PARAM_TYPE_DOUBLE, chroma_amount, NULL, -2, 2, 0,
+PARAM_ITEM( POST_PARAM_TYPE_DOUBLE, chroma_amount, NULL, -2, 2, 0,
"relative amount of sharpness/blur (=0 disable, <0 blur, >0 sharpen)" )
END_PARAM_DESCR( param_descr )
@@ -205,7 +205,7 @@ static int get_parameters (xine_post_t *this_gen, void *param_gen) {
return 1;
}
-
+
static xine_post_api_descr_t * get_param_descr (void) {
return &param_descr;
}
@@ -267,7 +267,7 @@ void *unsharp_init_plugin(xine_t *xine, void *data)
if (!class)
return NULL;
-
+
class->open_plugin = unsharp_open_plugin;
class->identifier = "unsharp";
class->description = N_("unsharp mask & gaussian blur");
@@ -286,14 +286,14 @@ static post_plugin_t *unsharp_open_plugin(post_class_t *class_gen, int inputs,
xine_post_in_t *input_api;
post_out_t *output;
post_video_port_t *port;
-
+
if (!this || !video_target || !video_target[0]) {
free(this);
return NULL;
}
_x_post_init(&this->post, 0, 1);
-
+
this->params.luma_matrix_width = 5;
this->params.luma_matrix_height = 5;
this->params.luma_amount = 0.0;
@@ -303,11 +303,11 @@ static post_plugin_t *unsharp_open_plugin(post_class_t *class_gen, int inputs,
this->params.chroma_amount = 0.0;
pthread_mutex_init (&this->lock, NULL);
-
+
port = _x_post_intercept_video_port(&this->post, video_target[0], &input, &output);
port->intercept_frame = unsharp_intercept_frame;
port->new_frame->draw = unsharp_draw;
-
+
input_api = &this->params_input;
input_api->name = "parameters";
input_api->type = XINE_POST_DATA_PARAMETERS;
@@ -316,13 +316,13 @@ static post_plugin_t *unsharp_open_plugin(post_class_t *class_gen, int inputs,
input->xine_in.name = "video";
output->xine_out.name = "unsharped video";
-
+
this->post.xine_post.video_input[0] = &port->new_port;
-
+
set_parameters ((xine_post_t *)this, &this->params);
-
+
this->post.dispose = unsharp_dispose;
-
+
return &this->post;
}
@@ -381,15 +381,15 @@ static int unsharp_draw(vo_frame_t *frame, xine_stream_t *stream)
yv12_frame = port->original_port->get_frame(port->original_port,
frame->width, frame->height, frame->ratio, XINE_IMGFMT_YV12, frame->flags | VO_BOTH_FIELDS);
-
+
_x_post_frame_copy_down(frame, yv12_frame);
-
+
yuy2_to_yv12(frame->base[0], frame->pitches[0],
yv12_frame->base[0], yv12_frame->pitches[0],
yv12_frame->base[1], yv12_frame->pitches[1],
yv12_frame->base[2], yv12_frame->pitches[2],
frame->width, frame->height);
-
+
} else {
yv12_frame = frame;
yv12_frame->lock(yv12_frame);
@@ -417,7 +417,7 @@ static int unsharp_draw(vo_frame_t *frame, xine_stream_t *stream)
stepsY = fp->msizeY/2;
for( z=0; z<2*stepsY; z++ )
fp->SC[z] = malloc( sizeof(*(fp->SC[z])) * (frame->width+2*stepsX) );
-
+
fp = &this->priv.chromaParam;
stepsX = fp->msizeX/2;
stepsY = fp->msizeY/2;
@@ -432,7 +432,7 @@ static int unsharp_draw(vo_frame_t *frame, xine_stream_t *stream)
pthread_mutex_unlock (&this->lock);
skip = out_frame->draw(out_frame, stream);
-
+
_x_post_frame_copy_up(frame, out_frame);
out_frame->free(out_frame);
diff --git a/src/post/visualizations/fft.c b/src/post/visualizations/fft.c
index 01044987b..8e9364400 100644
--- a/src/post/visualizations/fft.c
+++ b/src/post/visualizations/fft.c
@@ -1,18 +1,18 @@
/*
* Copyright (C) 2000-2003 the xine project
- *
+ *
* This file is part of xine, a free video player.
*
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
diff --git a/src/post/visualizations/fft.h b/src/post/visualizations/fft.h
index 1600430bc..358cec33c 100644
--- a/src/post/visualizations/fft.h
+++ b/src/post/visualizations/fft.h
@@ -1,18 +1,18 @@
/*
* Copyright (C) 2000-2003 the xine project
- *
+ *
* This file is part of xine, a free video player.
*
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
diff --git a/src/post/visualizations/fftgraph.c b/src/post/visualizations/fftgraph.c
index 1f38d3478..2d13c4084 100644
--- a/src/post/visualizations/fftgraph.c
+++ b/src/post/visualizations/fftgraph.c
@@ -1,18 +1,18 @@
/*
* Copyright (C) 2000-2003 the xine project
- *
+ *
* This file is part of xine, a free video player.
*
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -66,7 +66,7 @@ struct post_plugin_fftgraph_s {
/* private metronom for syncing the video */
metronom_t *metronom;
-
+
double ratio;
int data_idx;
@@ -92,21 +92,21 @@ static void fade(int r1, int g1, int b1,
int r2, int g2, int b2,
uint32_t *yuy2_colors, int steps) {
int i, r, g, b, y, u, v;
-
+
for (i = 0; i < steps; i++) {
r = r1 + (r2 - r1) * i / steps;
g = g1 + (g2 - g1) * i / steps;
b = b1 + (b2 - b1) * i / steps;
-
+
y = COMPUTE_Y(r, g, b);
u = COMPUTE_U(r, g, b);
v = COMPUTE_V(r, g, b);
-
+
*(yuy2_colors + i) = be2me_32((y << 24) |
(u << 16) |
(y << 8) |
v);
-
+
}
}
@@ -212,19 +212,19 @@ static int fftgraph_port_open(xine_audio_port_t *port_gen, xine_stream_t *stream
int i,j;
uint32_t *color_ptr;
uint32_t last_color, yuy2_black;
-
+
/* printf("fftgraph_port_open, port_gen=%p, stream=%p, this=%p\n", port_gen, stream, this); */
_x_post_rewire(&this->post);
_x_post_inc_usage(port);
-
+
port->stream = stream;
port->bits = bits;
port->rate = rate;
port->mode = mode;
-
+
this->ratio = (double)FFTGRAPH_WIDTH / (double)FFTGRAPH_HEIGHT;
-
+
this->channels = _x_ao_mode2channels(mode);
if( this->channels > MAXCHANNELS )
this->channels = MAXCHANNELS;
@@ -239,7 +239,7 @@ static int fftgraph_port_open(xine_audio_port_t *port_gen, xine_stream_t *stream
this->fft = fft_new(FFT_BITS);
this->cur_line = 0;
-
+
/* compute colors */
color_ptr = this->yuy2_colors;
/* black -> red */
@@ -253,7 +253,7 @@ static int fftgraph_port_open(xine_audio_port_t *port_gen, xine_stream_t *stream
40, 0, 160,
color_ptr, 256);
color_ptr += 256;
-
+
/* blue -> green */
fade(40, 0, 160,
40, 160, 70,
@@ -294,15 +294,15 @@ static void fftgraph_port_close(xine_audio_port_t *port_gen, xine_stream_t *stre
post_plugin_fftgraph_t *this = (post_plugin_fftgraph_t *)port->post;
port->stream = NULL;
-
+
fft_dispose(this->fft);
this->fft = NULL;
this->vo_port->close(this->vo_port, XINE_ANON_STREAM);
this->metronom->set_master(this->metronom, NULL);
-
+
port->original_port->close(port->original_port, stream );
-
+
_x_post_dec_usage(port);
}
@@ -329,7 +329,7 @@ static void fftgraph_port_put_buffer (xine_audio_port_t *port_gen,
/* pass data to original port */
port->original_port->put_buffer(port->original_port, buf, stream );
-
+
/* we must not use original data anymore, it should have already being moved
* to the fifo of free audio buffers. just use our private copy instead.
*/
@@ -372,8 +372,8 @@ static void fftgraph_port_put_buffer (xine_audio_port_t *port_gen,
this->ratio, XINE_IMGFMT_YUY2,
VO_BOTH_FIELDS);
frame->extra_info->invalid = 1;
-
- /* frame is marked as bad if we don't have enough samples for
+
+ /* frame is marked as bad if we don't have enough samples for
* updating the viz plugin (calculations may be skipped).
* we must keep the framerate though. */
if( this->data_idx == NUMSAMPLES ) {
@@ -385,10 +385,10 @@ static void fftgraph_port_put_buffer (xine_audio_port_t *port_gen,
frame->duration = 90000 * this->samples_per_frame / port->rate;
frame->pts = pts;
this->metronom->got_video_frame(this->metronom, frame);
-
+
this->sample_counter -= this->samples_per_frame;
- if( this->fft )
+ if( this->fft )
draw_fftgraph(this, frame);
else
frame->bad_frame = 1;
@@ -431,7 +431,7 @@ static post_plugin_t *fftgraph_open_plugin(post_class_t *class_gen, int inputs,
}
_x_post_init(&this->post, 1, 0);
-
+
this->metronom = _x_metronom_init(1, 0, class->xine);
this->vo_port = video_target[0];
@@ -460,16 +460,16 @@ static post_plugin_t *fftgraph_open_plugin(post_class_t *class_gen, int inputs,
void *fftgraph_init_plugin(xine_t *xine, void *data)
{
post_class_fftgraph_t *class = (post_class_fftgraph_t *)xine_xmalloc(sizeof(post_class_fftgraph_t));
-
+
if (!class)
return NULL;
-
+
class->post_class.open_plugin = fftgraph_open_plugin;
class->post_class.identifier = "fftgraph";
class->post_class.description = N_("fftgraph Visualization Post Plugin");
class->post_class.dispose = default_post_class_dispose;
-
+
class->xine = xine;
-
+
return class;
}
diff --git a/src/post/visualizations/fftscope.c b/src/post/visualizations/fftscope.c
index b6af2fc6c..3ec72fba8 100644
--- a/src/post/visualizations/fftscope.c
+++ b/src/post/visualizations/fftscope.c
@@ -1,18 +1,18 @@
/*
* Copyright (C) 2000-2003 the xine project
- *
+ *
* This file is part of xine, a free video player.
*
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -53,7 +53,7 @@ typedef struct post_class_fftscope_s post_class_fftscope_t;
struct post_class_fftscope_s {
post_class_t post_class;
-
+
xine_t *xine;
};
@@ -63,10 +63,10 @@ struct post_plugin_fftscope_s {
/* private data */
xine_video_port_t *vo_port;
post_out_t video_output;
-
+
/* private metronom for syncing the video */
metronom_t *metronom;
-
+
double ratio;
int data_idx;
@@ -277,12 +277,12 @@ static int fftscope_port_open(xine_audio_port_t *port_gen, xine_stream_t *stream
_x_post_rewire(&this->post);
_x_post_inc_usage(port);
-
+
port->stream = stream;
port->bits = bits;
port->rate = rate;
port->mode = mode;
-
+
this->ratio = (double)FFT_WIDTH/(double)FFT_HEIGHT;
this->channels = _x_ao_mode2channels(mode);
@@ -315,15 +315,15 @@ static void fftscope_port_close(xine_audio_port_t *port_gen, xine_stream_t *stre
post_plugin_fftscope_t *this = (post_plugin_fftscope_t *)port->post;
port->stream = NULL;
-
+
fft_dispose(this->fft);
this->fft = NULL;
this->vo_port->close(this->vo_port, XINE_ANON_STREAM);
this->metronom->set_master(this->metronom, NULL);
-
+
port->original_port->close(port->original_port, stream );
-
+
_x_post_dec_usage(port);
}
@@ -393,8 +393,8 @@ static void fftscope_port_put_buffer (xine_audio_port_t *port_gen,
this->ratio, XINE_IMGFMT_YUY2,
VO_BOTH_FIELDS);
frame->extra_info->invalid = 1;
-
- /* frame is marked as bad if we don't have enough samples for
+
+ /* frame is marked as bad if we don't have enough samples for
* updating the viz plugin (calculations may be skipped).
* we must keep the framerate though. */
if( this->data_idx == NUMSAMPLES ) {
@@ -406,10 +406,10 @@ static void fftscope_port_put_buffer (xine_audio_port_t *port_gen,
frame->duration = 90000 * this->samples_per_frame / port->rate;
frame->pts = pts;
this->metronom->got_video_frame(this->metronom, frame);
-
+
this->sample_counter -= this->samples_per_frame;
- if( this->fft )
+ if( this->fft )
draw_fftscope(this, frame);
else
frame->bad_frame = 1;
@@ -423,7 +423,7 @@ static void fftscope_port_put_buffer (xine_audio_port_t *port_gen,
static void fftscope_dispose(post_plugin_t *this_gen)
{
post_plugin_fftscope_t *this = (post_plugin_fftscope_t *)this_gen;
-
+
if (_x_post_dispose(this_gen)) {
this->metronom->exit(this->metronom);
@@ -450,7 +450,7 @@ static post_plugin_t *fftscope_open_plugin(post_class_t *class_gen, int inputs,
free(this);
return NULL;
}
-
+
_x_post_init(&this->post, 1, 0);
this->metronom = _x_metronom_init(1, 0, class->xine);
@@ -481,16 +481,16 @@ static post_plugin_t *fftscope_open_plugin(post_class_t *class_gen, int inputs,
void *fftscope_init_plugin(xine_t *xine, void *data)
{
post_class_fftscope_t *class = (post_class_fftscope_t *)xine_xmalloc(sizeof(post_class_fftscope_t));
-
+
if (!class)
return NULL;
-
+
class->post_class.open_plugin = fftscope_open_plugin;
class->post_class.identifier = "FFT Scope";
class->post_class.description = N_("FFT Scope");
class->post_class.dispose = default_post_class_dispose;
-
+
class->xine = xine;
-
+
return &class->post_class;
}
diff --git a/src/post/visualizations/fooviz.c b/src/post/visualizations/fooviz.c
index 751cb9bac..9c8a9c1fa 100644
--- a/src/post/visualizations/fooviz.c
+++ b/src/post/visualizations/fooviz.c
@@ -1,18 +1,18 @@
/*
* Copyright (C) 2000-2004 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -60,7 +60,7 @@ struct post_plugin_fooviz_s {
/* private metronom for syncing the video */
metronom_t *metronom;
-
+
double ratio;
int data_idx;
@@ -90,7 +90,7 @@ static int fooviz_rewire_video(xine_post_out_t *output_gen, void *data)
xine_video_port_t *old_port = *(xine_video_port_t **)output_gen->data;
xine_video_port_t *new_port = (xine_video_port_t *)data;
post_plugin_fooviz_t *this = (post_plugin_fooviz_t *)output->post;
-
+
if (!data)
return 0;
/* register our stream at the new output port */
@@ -109,12 +109,12 @@ static int fooviz_port_open(xine_audio_port_t *port_gen, xine_stream_t *stream,
_x_post_rewire(&this->post);
_x_post_inc_usage(port);
-
+
port->stream = stream;
port->bits = bits;
port->rate = rate;
port->mode = mode;
-
+
this->ratio = (double)FOO_WIDTH/(double)FOO_HEIGHT;
this->channels = _x_ao_mode2channels(mode);
this->samples_per_frame = rate / FPS;
@@ -133,18 +133,18 @@ static void fooviz_port_close(xine_audio_port_t *port_gen, xine_stream_t *stream
post_plugin_fooviz_t *this = (post_plugin_fooviz_t *)port->post;
port->stream = NULL;
-
+
this->vo_port->close(this->vo_port, XINE_ANON_STREAM);
this->metronom->set_master(this->metronom, NULL);
-
+
port->original_port->close(port->original_port, stream );
-
+
_x_post_dec_usage(port);
}
-static void fooviz_port_put_buffer (xine_audio_port_t *port_gen,
+static void fooviz_port_put_buffer (xine_audio_port_t *port_gen,
audio_buffer_t *buf, xine_stream_t *stream) {
-
+
post_audio_port_t *port = (post_audio_port_t *)port_gen;
post_plugin_fooviz_t *this = (post_plugin_fooviz_t *)port->post;
vo_frame_t *frame;
@@ -153,34 +153,34 @@ static void fooviz_port_put_buffer (xine_audio_port_t *port_gen,
int samples_used = 0;
int64_t pts = buf->vpts;
int i, j;
-
+
/* make a copy of buf data for private use */
if( this->buf.mem_size < buf->mem_size ) {
this->buf.mem = realloc(this->buf.mem, buf->mem_size);
this->buf.mem_size = buf->mem_size;
}
- memcpy(this->buf.mem, buf->mem,
+ memcpy(this->buf.mem, buf->mem,
buf->num_frames*this->channels*((port->bits == 8)?1:2));
this->buf.num_frames = buf->num_frames;
-
+
/* pass data to original port */
- port->original_port->put_buffer(port->original_port, buf, stream );
-
+ port->original_port->put_buffer(port->original_port, buf, stream );
+
/* we must not use original data anymore, it should have already being moved
* to the fifo of free audio buffers. just use our private copy instead.
*/
- buf = &this->buf;
+ buf = &this->buf;
this->sample_counter += buf->num_frames;
-
+
j = (this->channels >= 2) ? 1 : 0;
do {
-
+
if( port->bits == 8 ) {
data8 = (int8_t *)buf->mem;
data8 += samples_used * this->channels;
-
+
/* scale 8 bit data to 16 bits and convert to signed as well */
for( i = samples_used; i < buf->num_frames && this->data_idx < NUMSAMPLES;
i++, this->data_idx++, data8 += this->channels ) {
@@ -190,24 +190,24 @@ static void fooviz_port_put_buffer (xine_audio_port_t *port_gen,
} else {
data = buf->mem;
data += samples_used * this->channels;
-
+
for( i = samples_used; i < buf->num_frames && this->data_idx < NUMSAMPLES;
i++, this->data_idx++, data += this->channels ) {
this->data[0][this->data_idx] = data[0];
this->data[1][this->data_idx] = data[j];
}
}
-
+
if( this->sample_counter >= this->samples_per_frame ) {
-
+
samples_used += this->samples_per_frame;
-
+
frame = this->vo_port->get_frame (this->vo_port, FOO_WIDTH, FOO_HEIGHT,
this->ratio, XINE_IMGFMT_YUY2,
VO_BOTH_FIELDS);
frame->extra_info->invalid = 1;
-
- /* frame is marked as bad if we don't have enough samples for
+
+ /* frame is marked as bad if we don't have enough samples for
* updating the viz plugin (calculations may be skipped).
* we must keep the framerate though. */
if( this->data_idx == NUMSAMPLES ) {
@@ -219,7 +219,7 @@ static void fooviz_port_put_buffer (xine_audio_port_t *port_gen,
frame->duration = 90000 * this->samples_per_frame / port->rate;
frame->pts = pts;
this->metronom->got_video_frame(this->metronom, frame);
-
+
this->sample_counter -= this->samples_per_frame;
memset(frame->base[0], this->current_yuv_byte, FOO_WIDTH * FOO_HEIGHT * 2);
@@ -256,14 +256,14 @@ static post_plugin_t *fooviz_open_plugin(post_class_t *class_gen, int inputs,
post_out_t *output;
post_out_t *outputv;
post_audio_port_t *port;
-
+
if (!this || !video_target || !video_target[0] || !audio_target || !audio_target[0] ) {
free(this);
return NULL;
}
-
+
_x_post_init(&this->post, 1, 0);
-
+
this->metronom = _x_metronom_init(1, 0, class->xine);
this->vo_port = video_target[0];
@@ -272,7 +272,7 @@ static post_plugin_t *fooviz_open_plugin(post_class_t *class_gen, int inputs,
port->new_port.open = fooviz_port_open;
port->new_port.close = fooviz_port_close;
port->new_port.put_buffer = fooviz_port_put_buffer;
-
+
outputv = &this->video_output;
outputv->xine_out.name = "generated video";
outputv->xine_out.type = XINE_POST_DATA_VIDEO;
@@ -280,9 +280,9 @@ static post_plugin_t *fooviz_open_plugin(post_class_t *class_gen, int inputs,
outputv->xine_out.rewire = fooviz_rewire_video;
outputv->post = &this->post;
xine_list_push_back(this->post.output, outputv);
-
+
this->post.xine_post.audio_input[0] = &port->new_port;
-
+
this->post.dispose = fooviz_dispose;
return &this->post;
@@ -292,17 +292,17 @@ static post_plugin_t *fooviz_open_plugin(post_class_t *class_gen, int inputs,
static void *fooviz_init_plugin(xine_t *xine, void *data)
{
post_class_fooviz_t *class = (post_class_fooviz_t *)xine_xmalloc(sizeof(post_class_fooviz_t));
-
+
if (!class)
return NULL;
-
+
class->post_class.open_plugin = fooviz_open_plugin;
class->post_class.identifier = "fooviz";
class->post_class.description = N_("fooviz");
class->post_class.dispose = default_post_class_dispose;
-
+
class->xine = xine;
-
+
return class;
}
@@ -310,7 +310,7 @@ static void *fooviz_init_plugin(xine_t *xine, void *data)
static const post_info_t fooviz_special_info = { XINE_POST_TYPE_AUDIO_VISUALIZATION };
const plugin_info_t xine_plugin_info[] EXPORTED = {
- /* type, API, "name", version, special_info, init_function */
+ /* type, API, "name", version, special_info, init_function */
{ PLUGIN_POST, 10, "fooviz", XINE_VERSION_CODE, &fooviz_special_info, &fooviz_init_plugin },
{ PLUGIN_NONE, 0, "", 0, NULL, NULL }
};
diff --git a/src/post/visualizations/oscope.c b/src/post/visualizations/oscope.c
index c6861406e..ffd6f0842 100644
--- a/src/post/visualizations/oscope.c
+++ b/src/post/visualizations/oscope.c
@@ -1,18 +1,18 @@
/*
* Copyright (C) 2000-2003 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -59,13 +59,13 @@ struct post_plugin_oscope_s {
/* private metronom for syncing the video */
metronom_t *metronom;
-
+
double ratio;
int data_idx;
short data [MAXCHANNELS][NUMSAMPLES];
audio_buffer_t buf; /* dummy buffer just to hold a copy of audio data */
-
+
int channels;
int sample_counter;
int samples_per_frame;
@@ -130,7 +130,7 @@ static void draw_oscope_dots(post_plugin_oscope_t *this) {
/* draw channel scope */
for (i = 0; i < NUMSAMPLES; i++) {
- pixel_ptr =
+ pixel_ptr =
((OSCOPE_HEIGHT * (c * 2 + 1) / (2*this->channels) ) + (this->data[c][i] >> 9)) * OSCOPE_WIDTH + i;
this->yuv.y[pixel_ptr] = 0xFF;
this->yuv.u[pixel_ptr] = this->u_current;
@@ -161,7 +161,7 @@ static int oscope_rewire_video(xine_post_out_t *output_gen, void *data)
xine_video_port_t *old_port = *(xine_video_port_t **)output_gen->data;
xine_video_port_t *new_port = (xine_video_port_t *)data;
post_plugin_oscope_t *this = (post_plugin_oscope_t *)output->post;
-
+
if (!data)
return 0;
old_port->close(old_port, XINE_ANON_STREAM);
@@ -179,12 +179,12 @@ static int oscope_port_open(xine_audio_port_t *port_gen, xine_stream_t *stream,
_x_post_rewire(&this->post);
_x_post_inc_usage(port);
-
+
port->stream = stream;
port->bits = bits;
port->rate = rate;
port->mode = mode;
-
+
this->ratio = (double)OSCOPE_WIDTH/(double)OSCOPE_HEIGHT;
this->channels = _x_ao_mode2channels(mode);
@@ -210,15 +210,15 @@ static void oscope_port_close(xine_audio_port_t *port_gen, xine_stream_t *stream
this->vo_port->close(this->vo_port, XINE_ANON_STREAM);
this->metronom->set_master(this->metronom, NULL);
-
+
port->original_port->close(port->original_port, stream );
-
+
_x_post_dec_usage(port);
}
-static void oscope_port_put_buffer (xine_audio_port_t *port_gen,
+static void oscope_port_put_buffer (xine_audio_port_t *port_gen,
audio_buffer_t *buf, xine_stream_t *stream) {
-
+
post_audio_port_t *port = (post_audio_port_t *)port_gen;
post_plugin_oscope_t *this = (post_plugin_oscope_t *)port->post;
vo_frame_t *frame;
@@ -227,32 +227,32 @@ static void oscope_port_put_buffer (xine_audio_port_t *port_gen,
int samples_used = 0;
int64_t pts = buf->vpts;
int i, c;
-
+
/* make a copy of buf data for private use */
if( this->buf.mem_size < buf->mem_size ) {
this->buf.mem = realloc(this->buf.mem, buf->mem_size);
this->buf.mem_size = buf->mem_size;
}
- memcpy(this->buf.mem, buf->mem,
+ memcpy(this->buf.mem, buf->mem,
buf->num_frames*this->channels*((port->bits == 8)?1:2));
this->buf.num_frames = buf->num_frames;
-
+
/* pass data to original port */
- port->original_port->put_buffer(port->original_port, buf, stream );
-
+ port->original_port->put_buffer(port->original_port, buf, stream );
+
/* we must not use original data anymore, it should have already being moved
* to the fifo of free audio buffers. just use our private copy instead.
*/
- buf = &this->buf;
-
+ buf = &this->buf;
+
this->sample_counter += buf->num_frames;
-
+
do {
-
+
if( port->bits == 8 ) {
data8 = (int8_t *)buf->mem;
data8 += samples_used * this->channels;
-
+
/* scale 8 bit data to 16 bits and convert to signed as well */
for( i = samples_used; i < buf->num_frames && this->data_idx < NUMSAMPLES;
i++, this->data_idx++, data8 += this->channels )
@@ -261,23 +261,23 @@ static void oscope_port_put_buffer (xine_audio_port_t *port_gen,
} else {
data = buf->mem;
data += samples_used * this->channels;
-
+
for( i = samples_used; i < buf->num_frames && this->data_idx < NUMSAMPLES;
i++, this->data_idx++, data += this->channels )
for( c = 0; c < this->channels; c++)
this->data[c][this->data_idx] = data[c];
}
-
+
if( this->sample_counter >= this->samples_per_frame ) {
-
+
samples_used += this->samples_per_frame;
-
+
frame = this->vo_port->get_frame (this->vo_port, OSCOPE_WIDTH, OSCOPE_HEIGHT,
this->ratio, XINE_IMGFMT_YUY2,
VO_BOTH_FIELDS);
frame->extra_info->invalid = 1;
-
- /* frame is marked as bad if we don't have enough samples for
+
+ /* frame is marked as bad if we don't have enough samples for
* updating the viz plugin (calculations may be skipped).
* we must keep the framerate though. */
if( this->data_idx == NUMSAMPLES ) {
@@ -289,12 +289,12 @@ static void oscope_port_put_buffer (xine_audio_port_t *port_gen,
frame->duration = 90000 * this->samples_per_frame / port->rate;
frame->pts = pts;
this->metronom->got_video_frame(this->metronom, frame);
-
+
this->sample_counter -= this->samples_per_frame;
-
+
draw_oscope_dots(this);
yuv444_to_yuy2(&this->yuv, frame->base[0], frame->pitches[0]);
-
+
frame->draw(frame, XINE_ANON_STREAM);
frame->free(frame);
@@ -307,7 +307,7 @@ static void oscope_dispose(post_plugin_t *this_gen)
post_plugin_oscope_t *this = (post_plugin_oscope_t *)this_gen;
if (_x_post_dispose(this_gen)) {
-
+
this->metronom->exit(this->metronom);
if(this->buf.mem)
@@ -327,14 +327,14 @@ static post_plugin_t *oscope_open_plugin(post_class_t *class_gen, int inputs,
post_out_t *output;
post_out_t *outputv;
post_audio_port_t *port;
-
+
if (!this || !video_target || !video_target[0] || !audio_target || !audio_target[0] ) {
free(this);
return NULL;
}
-
+
_x_post_init(&this->post, 1, 0);
-
+
this->metronom = _x_metronom_init(1, 0, class->xine);
this->vo_port = video_target[0];
@@ -343,7 +343,7 @@ static post_plugin_t *oscope_open_plugin(post_class_t *class_gen, int inputs,
port->new_port.open = oscope_port_open;
port->new_port.close = oscope_port_close;
port->new_port.put_buffer = oscope_port_put_buffer;
-
+
outputv = &this->video_output;
outputv->xine_out.name = "generated video";
outputv->xine_out.type = XINE_POST_DATA_VIDEO;
@@ -351,9 +351,9 @@ static post_plugin_t *oscope_open_plugin(post_class_t *class_gen, int inputs,
outputv->xine_out.rewire = oscope_rewire_video;
outputv->post = &this->post;
xine_list_push_back(this->post.output, outputv);
-
+
this->post.xine_post.audio_input[0] = &port->new_port;
-
+
this->post.dispose = oscope_dispose;
return &this->post;
@@ -363,16 +363,16 @@ static post_plugin_t *oscope_open_plugin(post_class_t *class_gen, int inputs,
void *oscope_init_plugin(xine_t *xine, void *data)
{
post_class_oscope_t *class = (post_class_oscope_t *)xine_xmalloc(sizeof(post_class_oscope_t));
-
+
if (!class)
return NULL;
-
+
class->post_class.open_plugin = oscope_open_plugin;
class->post_class.identifier = "Oscilloscope";
class->post_class.description = N_("Oscilloscope");
class->post_class.dispose = default_post_class_dispose;
-
+
class->xine = xine;
-
+
return &class->post_class;
}
diff --git a/src/spu_dec/cc_decoder.c b/src/spu_dec/cc_decoder.c
index 71e2578db..d60d2cf03 100644
--- a/src/spu_dec/cc_decoder.c
+++ b/src/spu_dec/cc_decoder.c
@@ -1,21 +1,21 @@
/*
* Copyright (C) 2000-2003 the xine project
- *
- * Copyright (C) Christian Vogler
+ *
+ * Copyright (C) Christian Vogler
* cvogler@gradient.cis.upenn.edu - December 2001
*
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -83,7 +83,7 @@ static const int text_colormap[NUM_FG_COL] = {
/* FIXME: The colors look fine on an XShm display, but they look *terrible*
with the Xv display on the NVidia driver on a GeForce 3. The colors bleed
into each other more than I'd expect from the downsampling into YUV
- colorspace.
+ colorspace.
At this moment, it looks like a problem in the Xv YUV blending functions.
*/
typedef struct colorinfo_s {
@@ -217,14 +217,14 @@ static const uint8_t *const cc_alpha_palettes[NUM_CC_PALETTES] = {
/* --------------------- misc. EIA 608 definitions -------------------*/
-#define TRANSP_SPACE 0x19 /* code for transparent space, essentially
+#define TRANSP_SPACE 0x19 /* code for transparent space, essentially
arbitrary */
/* mapping from PAC row code to actual CC row */
static const int rowdata[] = {10, -1, 0, 1, 2, 3, 11, 12, 13, 14, 4, 5, 6,
7, 8, 9};
/* FIXME: do real â„¢ (U+2122) */
-/* Code 182 must be mapped as a musical note ('♪', U+266A) in the caption font */
+/* Code 182 must be mapped as a musical note ('♪', U+266A) in the caption font */
static const char specialchar[] = {
174 /* ® */, 176 /* ° */, 189 /* ½ */, 191 /* ¿ */,
'T' /* ™ */, 162 /* ¢ */, 163 /* £ */, 182 /* ¶ => ♪ */,
@@ -257,7 +257,7 @@ static const char specialchar[] = {
* chartbl[0x7e] = 241; // ñ
* chartbl[0x7f] = 164; // ¤ FIXME: should be a solid block ('█'; U+2588)
* }
- *
+ *
*/
static const int chartbl[128] = {
'\x00', '\x01', '\x02', '\x03', '\x04', '\x05', '\x06', '\x07',
@@ -290,12 +290,12 @@ static const int chartbl[128] = {
* {
* int i;
* int ones = 0;
- *
+ *
* for (i = 0; i < 7; i++) {
* if (byte & (1 << i))
* ones++;
* }
- *
+ *
* return ones & 1;
* }
*
@@ -361,11 +361,11 @@ struct cc_renderer_s {
If this happens, the vpts of a hide caption event can actually be
slightly higher than the vpts of the following show caption event.
For this reason, we remember the vpts of the hide event and force
- the next show event's vpts to be at least equal to the hide event's
+ the next show event's vpts to be at least equal to the hide event's
vpts.
*/
int64_t last_hide_vpts;
-
+
/* caption palette and alpha channel */
uint32_t cc_palette[OVL_PALETTE_SIZE];
uint8_t cc_trans[OVL_PALETTE_SIZE];
@@ -451,7 +451,7 @@ struct cc_decoder_s {
/*---------------- general utility functions ---------------------*/
-static void get_font_metrics(osd_renderer_t *renderer,
+static void get_font_metrics(osd_renderer_t *renderer,
const char *fontname, int font_size,
int *maxw, int *maxh)
{
@@ -572,8 +572,8 @@ static void ccrow_set_attributes(cc_renderer_t *renderer, cc_row_t *this,
fontname = cap_info->italic_font;
else
fontname = cap_info->font;
- renderer->osd_renderer->set_font(renderer->cap_display, (char *) fontname,
- cap_info->font_size);
+ renderer->osd_renderer->set_font(renderer->cap_display, (char *) fontname,
+ cap_info->font_size);
}
@@ -652,7 +652,7 @@ static void ccrow_render(cc_renderer_t *renderer, cc_row_t *this, int rownum)
x = renderer->width * pos / CC_COLUMNS;
y = base_y;
}
-
+
#ifdef LOG_DEBUG
printf("text_w, text_h = %d, %d\n", text_w, text_h);
printf("cc from %d to %d; text plotting from %d, %d (basey = %d)\n", pos, endpos, x, y, base_y);
@@ -663,7 +663,7 @@ static void ccrow_render(cc_renderer_t *renderer, cc_row_t *this, int rownum)
int textcol = text_colormap[this->cells[seg_attr[seg]].attributes.foreground];
int box_x1 = x + cumulative_seg_width[seg];
int box_x2 = x + cumulative_seg_width[seg + 1];
-
+
#ifdef LOG_DEBUG
printf("ccrow_render: rendering segment %d from %d to %d / %d to %d\n",
seg, seg_pos[seg], seg_pos[seg + 1],
@@ -688,7 +688,7 @@ static void ccrow_render(cc_renderer_t *renderer, cc_row_t *this, int rownum)
/* text is already mapped from EIA-608 into iso-8859-1 */
osd_renderer->render_text(renderer->cap_display,
- x + cumulative_seg_width[seg], y, buf,
+ x + cumulative_seg_width[seg], y, buf,
textcol);
}
@@ -753,7 +753,7 @@ static void ccbuf_add_char(cc_buffer_t *this, uint8_t c)
}
-static void ccbuf_set_cursor(cc_buffer_t *this, int row, int column,
+static void ccbuf_set_cursor(cc_buffer_t *this, int row, int column,
int underline, int italics, int color)
{
cc_row_t *rowbuf = &this->rows[row];
@@ -767,7 +767,7 @@ static void ccbuf_set_cursor(cc_buffer_t *this, int row, int column,
rowbuf->pac_attr = attr;
rowbuf->pac_attr_chg = 1;
- this->rowpos = row;
+ this->rowpos = row;
rowbuf->pos = column;
rowbuf->attr_chg = 0;
}
@@ -777,7 +777,7 @@ static void ccbuf_apply_attribute(cc_buffer_t *this, cc_attribute_t *attr)
{
cc_row_t *rowbuf = &this->rows[this->rowpos];
int pos = rowbuf->pos;
-
+
rowbuf->attr_chg = 1;
rowbuf->cells[pos].attributes = *attr;
/* A midrow attribute always counts as a space */
@@ -845,7 +845,7 @@ static void cc_renderer_build_palette(cc_renderer_t *this)
int i, j;
const colorinfo_t *cc_text = cc_text_palettes[this->cc_state->cc_cfg->cc_scheme];
const uint8_t *cc_alpha = cc_alpha_palettes[this->cc_state->cc_cfg->cc_scheme];
-
+
memset(this->cc_palette, 0, sizeof (this->cc_palette));
memset(this->cc_trans, 0, sizeof (this->cc_trans));
for (i = 0; i < NUM_FG_COL; i++) {
@@ -920,12 +920,12 @@ static void cc_renderer_show_caption(cc_renderer_t *this, cc_buffer_t *buf,
this->osd_renderer->clear(this->cap_display);
ccbuf_render(this, buf);
- this->osd_renderer->set_position(this->cap_display,
+ this->osd_renderer->set_position(this->cap_display,
this->x,
this->y);
vpts = MAX(vpts, this->last_hide_vpts);
this->osd_renderer->show(this->cap_display, vpts);
-
+
this->displayed = 1;
this->display_vpts = vpts;
}
@@ -973,7 +973,7 @@ cc_renderer_t *cc_renderer_open(osd_renderer_t *osd_renderer,
cc_renderer_update_cfg(this, video_width, video_height);
#ifdef LOG_DEBUG
printf("spucc: cc_renderer: open\n");
-#endif
+#endif
return this;
}
@@ -985,7 +985,7 @@ void cc_renderer_close(cc_renderer_t *this_obj)
#ifdef LOG_DEBUG
printf("spucc: cc_renderer: close\n");
-#endif
+#endif
}
@@ -1020,7 +1020,7 @@ void cc_renderer_update_cfg(cc_renderer_t *this_obj, int video_width,
#ifdef LOG_DEBUG
printf("spucc: cc_renderer: update config: max text extents: %d, %d\n",
this_obj->max_char_width, this_obj->max_char_height);
-#endif
+#endif
/* need to adjust captioning area to accommodate font? */
required_w = CC_COLUMNS * (this_obj->max_char_width + 1);
@@ -1042,7 +1042,7 @@ void cc_renderer_update_cfg(cc_renderer_t *this_obj, int video_width,
this_obj->y = (this_obj->video_height - required_h) / 2;
}
- if (required_w <= this_obj->video_width &&
+ if (required_w <= this_obj->video_width &&
required_h <= this_obj->video_height) {
this_obj->cc_state->can_cc = 1;
cc_renderer_adjust_osd_object(this_obj);
@@ -1053,7 +1053,7 @@ void cc_renderer_update_cfg(cc_renderer_t *this_obj, int video_width,
printf("spucc: required captioning area %dx%d exceeds screen %dx%d!\n"
" Captions disabled. Perhaps you should choose a smaller"
" font?\n",
- required_w, required_h, this_obj->video_width,
+ required_w, required_h, this_obj->video_width,
this_obj->video_height);
}
}
@@ -1091,10 +1091,10 @@ static void cc_hide_displayed(cc_decoder_t *this)
if (cc_renderer_on_display(this->cc_state->renderer)) {
int64_t vpts = cc_renderer_calc_vpts(this->cc_state->renderer, this->pts,
- this->f_offset);
+ this->f_offset);
#ifdef LOG_DEBUG
printf("cc_decoder: cc_hide_displayed: hiding caption %u at vpts %u\n", this->capid, vpts);
-#endif
+#endif
cc_renderer_hide_caption(this->cc_state->renderer, vpts);
}
}
@@ -1111,7 +1111,7 @@ static void cc_show_displayed(cc_decoder_t *this)
this->f_offset);
#ifdef LOG_DEBUG
printf("cc_decoder: cc_show_displayed: showing caption %u at vpts %u\n", this->capid, vpts);
-#endif
+#endif
this->capid++;
cc_renderer_show_caption(this->cc_state->renderer,
&this->on_buf->channel[this->on_buf->channel_no],
@@ -1334,7 +1334,7 @@ static void cc_decode_EIA608(cc_decoder_t *this, uint16_t data)
}
else {
switch (c1) {
-
+
case 0x10: /* extended background attribute code */
cc_decode_ext_attribute(this, channel, c1, c2);
break;
@@ -1362,7 +1362,7 @@ static void cc_decode_EIA608(cc_decoder_t *this, uint16_t data)
}
}
}
-
+
this->lastcode = data;
}
@@ -1388,13 +1388,13 @@ void decode_cc(cc_decoder_t *this, uint8_t *buffer, uint32_t buf_len,
* 0x00 is padding, followed by 2 more 0x00.
*
* 0x01 always seems to appear at the beginning, always seems to
- * be followed by 0xf8, 8-bit number.
+ * be followed by 0xf8, 8-bit number.
* The lower 7 bits of this 8-bit number seem to denote the
* number of code triplets that follow.
- * The most significant bit denotes whether the Line 21 field 1
+ * The most significant bit denotes whether the Line 21 field 1
* captioning information is at odd or even triplet offsets from this
* beginning triplet. 1 denotes odd offsets, 0 denotes even offsets.
- *
+ *
* Most captions are encoded with odd offsets, so this is what we
* will assume.
*
@@ -1419,31 +1419,31 @@ void decode_cc(cc_decoder_t *this, uint8_t *buffer, uint32_t buf_len,
}
printf("\n");
}
-#endif
+#endif
while (curbytes < buf_len) {
int skip = 2;
cc_code = *current++;
curbytes++;
-
+
if (buf_len - curbytes < 2) {
#ifdef LOG_DEBUG
fprintf(stderr, "Not enough data for 2-byte CC encoding\n");
#endif
break;
}
-
+
data1 = *current;
data2 = *(current + 1);
-
+
switch (cc_code) {
case 0xfe:
/* expect 2 byte encoding (perhaps CC3, CC4?) */
/* ignore for time being */
skip = 2;
break;
-
+
case 0xff:
/* expect EIA-608 CC1/CC2 encoding */
if (good_parity(data1 | (data2 << 8))) {
@@ -1452,12 +1452,12 @@ void decode_cc(cc_decoder_t *this, uint8_t *buffer, uint32_t buf_len,
}
skip = 5;
break;
-
+
case 0x00:
/* This seems to be just padding */
skip = 2;
break;
-
+
case 0x01:
odd_offset = data2 & 0x80;
if (odd_offset)
@@ -1465,7 +1465,7 @@ void decode_cc(cc_decoder_t *this, uint8_t *buffer, uint32_t buf_len,
else
skip = 5;
break;
-
+
default:
#ifdef LOG_DEBUG
fprintf(stderr, "Unknown CC encoding: %x\n", cc_code);
diff --git a/src/spu_dec/cc_decoder.h b/src/spu_dec/cc_decoder.h
index 97aa037ae..58bd5aa9a 100644
--- a/src/spu_dec/cc_decoder.h
+++ b/src/spu_dec/cc_decoder.h
@@ -1,21 +1,21 @@
/*
* Copyright (C) 2000-2008 the xine project
- *
- * Copyright (C) Christian Vogler
+ *
+ * Copyright (C) Christian Vogler
* cvogler@gradient.cis.upenn.edu - December 2001
*
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -41,7 +41,7 @@ typedef struct cc_config_s {
int center; /* true if captions should be centered */
/* according to text width */
int cc_scheme; /* which captioning scheme to use */
-
+
int config_version; /* the decoder should be updated when this is increased */
} cc_config_t;
diff --git a/src/spu_dec/cmml_decoder.c b/src/spu_dec/cmml_decoder.c
index 02ef18540..912e1aed3 100644
--- a/src/spu_dec/cmml_decoder.c
+++ b/src/spu_dec/cmml_decoder.c
@@ -1,18 +1,18 @@
/*
* Copyright (C) 2000-2008 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -104,11 +104,11 @@ static void update_font_size (spucmml_decoder_t *this) {
this->font_size = vec[1];
else
this->font_size = vec[0];
-
+
this->line_height = this->font_size + 10;
int y = this->cached_height - (SUB_MAX_TEXT * this->line_height) - 5;
-
+
if(((y - this->vertical_offset) >= 0) && ((y - this->vertical_offset) <= this->cached_height))
y -= this->vertical_offset;
@@ -124,7 +124,7 @@ static void update_font_size (spucmml_decoder_t *this) {
this->cached_width,
SUB_MAX_TEXT * this->line_height);
- this->osd = this->stream->osd_renderer->new_object (this->stream->osd_renderer,
+ this->osd = this->stream->osd_renderer->new_object (this->stream->osd_renderer,
this->cached_width, SUB_MAX_TEXT * this->line_height);
llprintf (LOG_OSD, "post new_object: osd is %p\n", this->osd);
@@ -137,7 +137,7 @@ static void update_font_size (spucmml_decoder_t *this) {
static int get_width(spucmml_decoder_t *this, char* text) {
int width=0;
-
+
while (1)
switch (*text) {
case '\0':
@@ -153,7 +153,7 @@ static int get_width(spucmml_decoder_t *this, char* text) {
/*Do somethink to disable BOLD typeface*/
text += 4;
break;
- } else if (!strncmp("<i>", text, 3)) {
+ } else if (!strncmp("<i>", text, 3)) {
/*Do somethink to enable italics typeface*/
text += 3;
break;
@@ -161,7 +161,7 @@ static int get_width(spucmml_decoder_t *this, char* text) {
/*Do somethink to disable italics typeface*/
text += 4;
break;
- } else if (!strncmp("<font>", text, 3)) {
+ } else if (!strncmp("<font>", text, 3)) {
/*Do somethink to disable typing
fixme - no teststreams*/
text += 6;
@@ -171,7 +171,7 @@ static int get_width(spucmml_decoder_t *this, char* text) {
fixme - no teststreams*/
text += 7;
break;
- }
+ }
default:
{
int w, dummy;
@@ -224,11 +224,11 @@ static void draw_subtitle(spucmml_decoder_t *this, int64_t sub_start) {
if( font_size != this->font_size )
this->stream->osd_renderer->set_font (this->osd, this->font, this->font_size);
-
+
this->stream->osd_renderer->set_text_palette (this->osd, -1, OSD_TEXT1);
this->stream->osd_renderer->show (this->osd, sub_start);
-
+
llprintf (LOG_SCHEDULING,
"spucmml: scheduling subtitle >%s< at %"PRId64", current time is %"PRId64"\n",
this->text[0], sub_start,
@@ -399,7 +399,7 @@ static void video_frame_format_change_callback (void *user_data, const xine_even
static void spudec_reset (spu_decoder_t *this_gen) {
spucmml_decoder_t *this = (spucmml_decoder_t *) this_gen;
-
+
this->cached_width = this->cached_height = 0;
}
@@ -461,16 +461,16 @@ static spu_decoder_t *spucmml_class_open_plugin (spu_decoder_class_t *class_gen,
this->font_size = 24;
this->subtitle_size = 1;
- this->font = class->xine->config->register_string(class->xine->config,
- "subtitles.separate.font",
- "sans",
- _("font for external subtitles"),
+ this->font = class->xine->config->register_string(class->xine->config,
+ "subtitles.separate.font",
+ "sans",
+ _("font for external subtitles"),
NULL, 0, update_osd_font, this);
this->vertical_offset = class->xine->config->register_num(class->xine->config,
- "subtitles.separate.vertical_offset",
+ "subtitles.separate.vertical_offset",
0,
- _("subtitle vertical offset (relative window size)"),
+ _("subtitle vertical offset (relative window size)"),
NULL, 0, update_vertical_offset, this);
this->current_anchor.href = NULL;
@@ -498,10 +498,10 @@ static void *init_spu_decoder_plugin (xine_t *xine, void *data) {
this->xine = xine;
- this->src_encoding = xine->config->register_string(xine->config,
- "subtitles.separate.src_encoding",
- "iso-8859-1",
- _("encoding of subtitles"),
+ this->src_encoding = xine->config->register_string(xine->config,
+ "subtitles.separate.src_encoding",
+ "iso-8859-1",
+ _("encoding of subtitles"),
NULL, 10, update_src_encoding, this);
return &this->class;
@@ -517,7 +517,7 @@ static const decoder_info_t spudec_info = {
};
const plugin_info_t xine_plugin_info[] EXPORTED = {
- /* type, API, "name", version, special_info, init_function */
+ /* type, API, "name", version, special_info, init_function */
{ PLUGIN_SPU_DECODER, 17, "spucmml", XINE_VERSION_CODE, &spudec_info, &init_spu_decoder_plugin },
{ PLUGIN_NONE, 0, "", 0, NULL, NULL }
};
diff --git a/src/spu_dec/spu_decoder.c b/src/spu_dec/spu_decoder.c
index 0234c8d23..0b39243ae 100644
--- a/src/spu_dec/spu_decoder.c
+++ b/src/spu_dec/spu_decoder.c
@@ -1,20 +1,20 @@
/*
* Copyright (C) 2000-2008 the xine project
- *
+ *
* Copyright (C) James Courtier-Dutton James@superbug.demon.co.uk - July 2001
*
* This file is part of xine, a unix video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -86,7 +86,7 @@ static void spudec_decode_data (spu_decoder_t *this_gen, buf_element_t *buf) {
pthread_mutex_unlock(&this->nav_pci_lock);
if ( (buf->type & 0xffff0000) != BUF_SPU_DVD ||
- !(buf->decoder_flags & BUF_FLAG_SPECIAL) ||
+ !(buf->decoder_flags & BUF_FLAG_SPECIAL) ||
buf->decoder_info[1] != BUF_SPECIAL_SPU_DVD_SUBTYPE )
return;
@@ -105,7 +105,7 @@ static void spudec_decode_data (spu_decoder_t *this_gen, buf_element_t *buf) {
this->state.need_clut = 0;
return;
}
-
+
if ( buf->decoder_info[2] == SPU_DVD_SUBTYPE_NAV ) {
#ifdef LOG_DEBUG
printf("libspudec:got nav packet 1\n");
@@ -113,11 +113,11 @@ static void spudec_decode_data (spu_decoder_t *this_gen, buf_element_t *buf) {
spudec_decode_nav(this,buf);
return;
}
-
+
if ( buf->decoder_info[2] == SPU_DVD_SUBTYPE_VOBSUB_PACKAGE ) {
this->state.vobsub = 1;
}
-
+
#ifdef LOG_DEBUG
printf("libspudec:got buffer type = %x\n", buf->type);
#endif
@@ -127,14 +127,14 @@ static void spudec_decode_data (spu_decoder_t *this_gen, buf_element_t *buf) {
if (buf->pts) {
metronom_t *metronom = this->stream->metronom;
int64_t vpts = metronom->got_spu_packet(metronom, buf->pts);
-
+
this->spudec_stream_state[stream_id].vpts = vpts; /* Show timer */
this->spudec_stream_state[stream_id].pts = buf->pts; /* Required to match up with NAV packets */
}
spudec_reassembly(this->stream->xine,
&this->spudec_stream_state[stream_id].ra_seq, buf->content, buf->size);
- if(this->spudec_stream_state[stream_id].ra_seq.complete == 1) {
+ if(this->spudec_stream_state[stream_id].ra_seq.complete == 1) {
if(this->spudec_stream_state[stream_id].ra_seq.broken) {
xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG, "libspudec: dropping broken SPU\n");
this->spudec_stream_state[stream_id].ra_seq.broken = 0;
@@ -147,12 +147,12 @@ static void spudec_reset (spu_decoder_t *this_gen) {
spudec_decoder_t *this = (spudec_decoder_t *) this_gen;
video_overlay_manager_t *ovl_manager = this->stream->video_out->get_overlay_manager (this->stream->video_out);
int i;
-
+
if( this->menu_handle >= 0 )
ovl_manager->free_handle(ovl_manager,
this->menu_handle);
this->menu_handle = -1;
-
+
for (i=0; i < MAX_STREAMS; i++) {
if( this->spudec_stream_state[i].overlay_handle >= 0 )
ovl_manager->free_handle(ovl_manager,
@@ -161,7 +161,7 @@ static void spudec_reset (spu_decoder_t *this_gen) {
this->spudec_stream_state[i].ra_seq.complete = 1;
this->spudec_stream_state[i].ra_seq.broken = 0;
}
-
+
pthread_mutex_lock(&this->nav_pci_lock);
spudec_clear_nav_list(this);
pthread_mutex_unlock(&this->nav_pci_lock);
@@ -169,7 +169,7 @@ static void spudec_reset (spu_decoder_t *this_gen) {
static void spudec_discontinuity (spu_decoder_t *this_gen) {
spudec_decoder_t *this = (spudec_decoder_t *) this_gen;
-
+
pthread_mutex_lock(&this->nav_pci_lock);
spudec_clear_nav_list(this);
pthread_mutex_unlock(&this->nav_pci_lock);
@@ -194,7 +194,7 @@ static void spudec_dispose (spu_decoder_t *this_gen) {
this->spudec_stream_state[i].overlay_handle = -1;
free (this->spudec_stream_state[i].ra_seq.buf);
}
-
+
spudec_clear_nav_list(this);
pthread_mutex_destroy(&this->nav_pci_lock);
@@ -209,9 +209,9 @@ static void spudec_dispose (spu_decoder_t *this_gen) {
static int spudec_get_interact_info (spu_decoder_t *this_gen, void *data) {
spudec_decoder_t *this = (spudec_decoder_t *) this_gen;
/*printf("get_interact_info() called\n");*/
- if (!this || !data)
+ if (!this || !data)
return 0;
-
+
/*printf("get_interact_info() coping nav_pci\n");*/
pthread_mutex_lock(&this->nav_pci_lock);
spudec_update_nav(this);
@@ -244,14 +244,14 @@ static void spudec_set_button (spu_decoder_t *this_gen, int32_t button, int32_t
printf ("libspudec:xine_decoder.c:spudec_event_listener:this->menu_handle=%d\n",this->menu_handle);
#endif
if(this->menu_handle < 0) {
- xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"Menu handle alloc failed. No more overlays objects available. Only %d at once please.",
MAX_OBJECTS);
free(overlay_event);
free(overlay);
return;
}
-
+
if (show > 0) {
#ifdef LOG_NAV
fprintf (stderr,"libspudec:xine_decoder.c:spudec_event_listener:buttonN = %u show=%d\n",
@@ -284,7 +284,7 @@ static void spudec_set_button (spu_decoder_t *this_gen, int32_t button, int32_t
this->buttonN, show-1, overlay, &this->overlay );
pthread_mutex_unlock(&this->nav_pci_lock);
} else {
- xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"libspudec:xine_decoder.c:spudec_event_listener:HIDE ????\n");
printf("We dropped out here for some reason");
_x_abort();
@@ -328,7 +328,7 @@ static spu_decoder_t *open_plugin (spu_decoder_class_t *class_gen, xine_stream_t
this->menu_handle = -1;
this->buttonN = 1;
this->event.object.overlay = calloc(1, sizeof(vo_overlay_t));
-
+
pthread_mutex_init(&this->nav_pci_lock, NULL);
this->pci_cur.pci.hli.hl_gi.hli_ss = 0;
this->pci_cur.next = NULL;
@@ -375,7 +375,7 @@ static const decoder_info_t dec_info_data = {
};
const plugin_info_t xine_plugin_info[] EXPORTED = {
- /* type, API, "name", version, special_info, init_function */
+ /* type, API, "name", version, special_info, init_function */
{ PLUGIN_SPU_DECODER, 17, "spudec", XINE_VERSION_CODE, &dec_info_data, &init_plugin },
{ PLUGIN_NONE, 0, "", 0, NULL, NULL }
};
diff --git a/src/spu_dec/spudec.c b/src/spu_dec/spudec.c
index 0e8621c54..8c5a2049d 100644
--- a/src/spu_dec/spudec.c
+++ b/src/spu_dec/spudec.c
@@ -17,13 +17,13 @@
* cleaner implementation of SPU are saving
* overlaying (proof of concept for now)
* ... and yes, it works now with oms
- * added tranparency (provided by the SPU hdr)
+ * added tranparency (provided by the SPU hdr)
* changed structures for easy porting to MGAs DVD mode
* This file is part of xine
* This file was originally part of the OMS program.
*
* This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
+ * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
@@ -89,7 +89,7 @@ void spudec_decode_nav(spudec_decoder_t *this, buf_element_t *buf) {
p = buf->content;
if (p[0] || p[1] || (p[2] != 1)) {
- xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"libspudec:spudec_decode_nav:nav demux error! %02x %02x %02x (should be 0x000001) \n",p[0],p[1],p[2]);
return;
}
@@ -126,7 +126,7 @@ void spudec_decode_nav(spudec_decoder_t *this, buf_element_t *buf) {
printf("btngr%d_dsp_ty 0x%02x\n", 1, pci.hli.hl_gi.btngr1_dsp_ty);
printf("btngr%d_dsp_ty 0x%02x\n", 2, pci.hli.hl_gi.btngr2_dsp_ty);
printf("btngr%d_dsp_ty 0x%02x\n", 3, pci.hli.hl_gi.btngr3_dsp_ty);
- //navPrint_PCI(&pci);
+ //navPrint_PCI(&pci);
//navPrint_PCI_GI(&pci.pci_gi);
//navPrint_NSML_AGLI(&pci.nsml_agli);
//navPrint_HLI(&pci.hli);
@@ -142,7 +142,7 @@ void spudec_decode_nav(spudec_decoder_t *this, buf_element_t *buf) {
packet_len = p[4] << 8 | p[5];
p += 6;
#ifdef LOG_NAV
- printf("NAV DSI packet\n");
+ printf("NAV DSI packet\n");
#endif
navRead_DSI(&dsi, p+1);
@@ -150,7 +150,7 @@ void spudec_decode_nav(spudec_decoder_t *this, buf_element_t *buf) {
// self->vobu_length = self->dsi.dsi_gi.vobu_ea;
}
}
-
+
/* NAV packets contain start and end presentation timestamps, which tell the
* application, when the highlight information in the NAV is supposed to be valid.
* We handle these timestamps only in a very stripped-down way: We keep a list
@@ -192,18 +192,18 @@ void spudec_decode_nav(spudec_decoder_t *this, buf_element_t *buf) {
/* we possibly had buttons before, so we update the UI info */
xine_event_t event;
xine_ui_data_t data;
-
+
event.type = XINE_EVENT_UI_NUM_BUTTONS;
event.data = &data;
event.data_length = sizeof(data);
data.num_buttons = 0;
-
+
xine_event_send(this->stream, &event);
}
this->button_filter=0;
break;
- case 1:
+ case 1:
/* All New Highlight information for this VOBU */
if (this->pci_cur.pci.hli.hl_gi.hli_ss != 0 &&
pci.hli.hl_gi.hli_s_ptm > this->pci_cur.pci.hli.hl_gi.hli_s_ptm) {
@@ -259,7 +259,7 @@ void spudec_decode_nav(spudec_decoder_t *this, buf_element_t *buf) {
}
break;
default:
- xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"libspudec: unknown pci.hli.hl_gi.hli_ss = %d\n", pci.hli.hl_gi.hli_ss );
break;
}
@@ -281,7 +281,7 @@ void spudec_clear_nav_list(spudec_decoder_t *this)
void spudec_update_nav(spudec_decoder_t *this)
{
metronom_clock_t *clock = this->stream->xine->clock;
-
+
if (this->pci_cur.next && this->pci_cur.next->vpts <= clock->get_current_time(clock)) {
pci_node_t *node = this->pci_cur.next;
xine_fast_memcpy(&this->pci_cur, this->pci_cur.next, sizeof(pci_node_t));
@@ -298,12 +298,12 @@ void spudec_process_nav(spudec_decoder_t *this)
/* we possibly entered a menu, so we update the UI button info */
xine_event_t event;
xine_ui_data_t data;
-
+
event.type = XINE_EVENT_UI_NUM_BUTTONS;
event.data = &data;
event.data_length = sizeof(data);
data.num_buttons = this->pci_cur.pci.hli.hl_gi.btn_ns;
-
+
xine_event_send(this->stream, &event);
}
this->button_filter=1;
@@ -322,7 +322,7 @@ void spudec_reassembly (xine_t *xine, spudec_seq_t *seq, uint8_t *pkt_data, u_in
if (seq->complete) {
seq->seq_len = (((uint32_t)pkt_data[0])<<8) | pkt_data[1];
seq->cmd_offs = (((uint32_t)pkt_data[2])<<8) | pkt_data[3];
- if (seq->cmd_offs >= seq->seq_len) {
+ if (seq->cmd_offs >= seq->seq_len) {
xprintf(xine, XINE_VERBOSITY_DEBUG, "libspudec:faulty stream\n");
seq->broken = 1;
}
@@ -342,7 +342,7 @@ void spudec_reassembly (xine_t *xine, spudec_seq_t *seq, uint8_t *pkt_data, u_in
}
seq->ra_offs = 0;
-
+
#ifdef LOG_DEBUG
printf ("spu: buf_len: %d\n", seq->buf_len);
printf ("spu: cmd_off: %d\n", seq->cmd_offs);
@@ -364,7 +364,7 @@ void spudec_reassembly (xine_t *xine, spudec_seq_t *seq, uint8_t *pkt_data, u_in
} else {
xprintf(xine, XINE_VERBOSITY_DEBUG, "libspudec:faulty stream\n");
seq->broken = 1;
- }
+ }
if (seq->ra_offs == seq->seq_len) {
seq->finished = 0;
@@ -382,9 +382,9 @@ void spudec_process (spudec_decoder_t *this, int stream_id) {
cur_seq = &this->spudec_stream_state[stream_id].ra_seq;
#ifdef LOG_DEBUG
- printf ("spu: Found SPU from stream %d pts=%lli vpts=%lli\n",stream_id,
+ printf ("spu: Found SPU from stream %d pts=%lli vpts=%lli\n",stream_id,
this->spudec_stream_state[stream_id].pts,
- this->spudec_stream_state[stream_id].vpts);
+ this->spudec_stream_state[stream_id].vpts);
#endif
this->state.cmd_ptr = cur_seq->buf + cur_seq->cmd_offs;
this->state.modified = 1; /* Only draw picture if = 1 on first event of SPU */
@@ -392,14 +392,14 @@ void spudec_process (spudec_decoder_t *this, int stream_id) {
this->state.forced_display = 0; /* 0 - No value, 1 - Forced Display. */
this->state.delay = 0;
cur_seq->finished=0;
-
+
do {
if (!(cur_seq->finished) ) {
pci_node_t *node;
-
+
/* spu_channel is now set based on whether we are in the menu or not. */
/* Bit 7 is set if only forced display SPUs should be shown */
- if ( (this->stream->spu_channel & 0x1f) != stream_id ) {
+ if ( (this->stream->spu_channel & 0x1f) != stream_id ) {
#ifdef LOG_DEBUG
printf ("spu: Dropping SPU channel %d. Not selected stream_id\n", stream_id);
#endif
@@ -417,7 +417,7 @@ void spudec_process (spudec_decoder_t *this, int stream_id) {
cur_seq->broken = 0;
return;
}
- if ( (this->state.forced_display == 0) && (this->stream->spu_channel & 0x80) ) {
+ if ( (this->state.forced_display == 0) && (this->stream->spu_channel & 0x80) ) {
#ifdef LOG_DEBUG
printf ("spu: Dropping SPU channel %d. Only allow forced display SPUs\n", stream_id);
#endif
@@ -426,7 +426,7 @@ void spudec_process (spudec_decoder_t *this, int stream_id) {
#ifdef LOG_DEBUG
spudec_print_overlay( &this->overlay );
- printf ("spu: forced display:%s\n", this->state.forced_display ? "Yes" : "No" );
+ printf ("spu: forced display:%s\n", this->state.forced_display ? "Yes" : "No" );
#endif
pthread_mutex_lock(&this->nav_pci_lock);
/* search for a PCI that matches this SPU's PTS */
@@ -444,7 +444,7 @@ void spudec_process (spudec_decoder_t *this, int stream_id) {
}
if (node->pci.hli.hl_gi.fosl_btnn > 0) {
xine_event_t event;
-
+
this->buttonN = node->pci.hli.hl_gi.fosl_btnn;
event.type = XINE_EVENT_INPUT_BUTTON_FORCE;
event.stream = this->stream;
@@ -455,12 +455,12 @@ void spudec_process (spudec_decoder_t *this, int stream_id) {
#ifdef LOG_BUTTON
fprintf(stderr, "libspudec:Full Overlay\n");
#endif
- if (!spudec_copy_nav_to_overlay(this->stream->xine,
- &node->pci, this->state.clut,
+ if (!spudec_copy_nav_to_overlay(this->stream->xine,
+ &node->pci, this->state.clut,
this->buttonN, 0, &this->overlay, &this->overlay)) {
/* current button does not exist -> use another one */
xine_event_t event;
-
+
if (this->buttonN > node->pci.hli.hl_gi.btn_ns)
this->buttonN = node->pci.hli.hl_gi.btn_ns;
else
@@ -470,8 +470,8 @@ void spudec_process (spudec_decoder_t *this, int stream_id) {
event.data = &this->buttonN;
event.data_length = sizeof(this->buttonN);
xine_event_send(this->stream, &event);
- spudec_copy_nav_to_overlay(this->stream->xine,
- &node->pci, this->state.clut,
+ spudec_copy_nav_to_overlay(this->stream->xine,
+ &node->pci, this->state.clut,
this->buttonN, 0, &this->overlay, &this->overlay);
}
} else {
@@ -484,44 +484,44 @@ void spudec_process (spudec_decoder_t *this, int stream_id) {
}
pthread_mutex_unlock(&this->nav_pci_lock);
- if ((this->state.modified) ) {
+ if ((this->state.modified) ) {
spudec_draw_picture(this->stream->xine, &this->state, cur_seq, &this->overlay);
}
-
+
if (this->state.need_clut) {
spudec_discover_clut(this->stream->xine, &this->state, &this->overlay);
}
-
+
if (this->state.vobsub) {
int width, height;
int64_t duration;
-
+
/*
* vobsubs are usually played with a scaled-down stream (not full DVD
* resolution), therefore we should try to realign it.
*/
-
+
this->stream->video_out->status(this->stream->video_out, NULL,
&width, &height, &duration );
this->overlay.x = (width - this->overlay.width) / 2;
this->overlay.y = height - this->overlay.height;
}
-
+
/* Subtitle */
if( this->menu_handle < 0 ) {
this->menu_handle = ovl_manager->get_handle(ovl_manager,1);
}
-
+
if( this->menu_handle < 0 ) {
- xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"libspudec: No video_overlay handles left for menu\n");
return;
}
this->event.object.handle = this->menu_handle;
this->event.object.pts = this->spudec_stream_state[stream_id].pts;
- xine_fast_memcpy(this->event.object.overlay,
+ xine_fast_memcpy(this->event.object.overlay,
&this->overlay,
sizeof(vo_overlay_t));
this->overlay.rle=NULL;
@@ -529,15 +529,15 @@ void spudec_process (spudec_decoder_t *this, int stream_id) {
//if ( !(this->state.visible) ) {
// this->state.visible = OVERLAY_EVENT_SHOW;
//}
-
+
this->event.event_type = this->state.visible;
/*
printf("spu event %d handle: %d vpts: %lli\n", this->event.event_type,
- this->event.object.handle, this->event.vpts );
+ this->event.object.handle, this->event.vpts );
*/
-
- this->event.vpts = this->spudec_stream_state[stream_id].vpts+(this->state.delay*1000);
-
+
+ this->event.vpts = this->spudec_stream_state[stream_id].vpts+(this->state.delay*1000);
+
/* Keep all the events in the correct order. */
/* This corrects for errors during estimation around discontinuity */
if( this->event.vpts < this->last_event_vpts ) {
@@ -550,7 +550,7 @@ void spudec_process (spudec_decoder_t *this, int stream_id) {
this->event.event_type,
this->stream->xine->clock->get_current_time(this->stream->xine->clock),
this->event.vpts);
-#endif
+#endif
ovl_manager->add_event(ovl_manager, (void *)&this->event);
} else {
pending = 0;
@@ -578,7 +578,7 @@ static void spudec_do_commands(xine_t *xine, spudec_state_t *state, spudec_seq_t
#ifdef LOG_DEBUG
printf ("spu: SPU DO COMMANDS\n");
#endif
-
+
state->delay = (buf[0] << 8) + buf[1];
#ifdef LOG_DEBUG
printf ("spu: \tdelay=%d\n",state->delay);
@@ -595,7 +595,7 @@ static void spudec_do_commands(xine_t *xine, spudec_state_t *state, spudec_seq_t
next_seq = seq->buf + seq->seq_len; /* allow to run until end */
state->cmd_ptr = next_seq;
-
+
while (buf < next_seq && *buf != CMD_SPU_EOF) {
switch (*buf) {
case CMD_SPU_SHOW: /* show subpicture */
@@ -605,7 +605,7 @@ static void spudec_do_commands(xine_t *xine, spudec_state_t *state, spudec_seq_t
state->visible = OVERLAY_EVENT_SHOW;
buf++;
break;
-
+
case CMD_SPU_HIDE: /* hide subpicture */
#ifdef LOG_DEBUG
printf ("spu: \thide subpicture\n");
@@ -613,17 +613,17 @@ static void spudec_do_commands(xine_t *xine, spudec_state_t *state, spudec_seq_t
state->visible = OVERLAY_EVENT_HIDE;
buf++;
break;
-
+
case CMD_SPU_SET_PALETTE: { /* CLUT */
spudec_clut_t *clut = (spudec_clut_t *) (buf+1);
-
+
state->cur_colors[3] = clut->entry0;
state->cur_colors[2] = clut->entry1;
state->cur_colors[1] = clut->entry2;
state->cur_colors[0] = clut->entry3;
/* This is a bit out of context for now */
- ovl->color[3] = state->clut[clut->entry0];
+ ovl->color[3] = state->clut[clut->entry0];
ovl->color[2] = state->clut[clut->entry1];
ovl->color[1] = state->clut[clut->entry2];
ovl->color[0] = state->clut[clut->entry3];
@@ -637,11 +637,11 @@ static void spudec_do_commands(xine_t *xine, spudec_state_t *state, spudec_seq_t
state->modified = 1;
buf += 3;
break;
- }
+ }
case CMD_SPU_SET_ALPHA: { /* transparency palette */
spudec_clut_t *trans = (spudec_clut_t *) (buf+1);
/* This should go into state for now */
-
+
ovl->trans[3] = trans->entry0;
ovl->trans[2] = trans->entry1;
ovl->trans[1] = trans->entry2;
@@ -655,7 +655,7 @@ static void spudec_do_commands(xine_t *xine, spudec_state_t *state, spudec_seq_t
buf += 3;
break;
}
-
+
case CMD_SPU_SET_SIZE: /* image coordinates */
/* state->o_left = (buf[1] << 4) | (buf[2] >> 4);
state->o_right = (((buf[2] & 0x0f) << 8) | buf[3]);
@@ -665,7 +665,7 @@ static void spudec_do_commands(xine_t *xine, spudec_state_t *state, spudec_seq_t
*/
ovl->x = (buf[1] << 4) | (buf[2] >> 4);
ovl->y = (buf[4] << 4) | (buf[5] >> 4);
- ovl->width = (((buf[2] & 0x0f) << 8) | buf[3]) - ovl->x + 1;
+ ovl->width = (((buf[2] & 0x0f) << 8) | buf[3]) - ovl->x + 1;
ovl->height = (((buf[5] & 0x0f) << 8) | buf[6]) - ovl->y + 1;
ovl->hili_top = -1;
ovl->hili_bottom = -1;
@@ -679,7 +679,7 @@ static void spudec_do_commands(xine_t *xine, spudec_state_t *state, spudec_seq_t
state->modified = 1;
buf += 7;
break;
-
+
case CMD_SPU_SET_PXD_OFFSET: /* image top[0] field / image bottom[1] field*/
state->field_offs[0] = (((u_int)buf[1]) << 8) | buf[2];
state->field_offs[1] = (((u_int)buf[3]) << 8) | buf[4];
@@ -697,13 +697,13 @@ static void spudec_do_commands(xine_t *xine, spudec_state_t *state, spudec_seq_t
state->modified = 1;
buf += 5;
break;
-
+
case CMD_SPU_WIPE:
#ifdef LOG_DEBUG
printf ("libspudec: \tSPU_WIPE not implemented yet\n");
#endif
param_length = (buf[1] << 8) | (buf[2]);
- buf += 1 + param_length;
+ buf += 1 + param_length;
break;
case CMD_SPU_FORCE_DISPLAY:
@@ -722,7 +722,7 @@ static void spudec_do_commands(xine_t *xine, spudec_state_t *state, spudec_seq_t
break;
}
}
-
+
if (next_seq >= seq->buf + seq->seq_len)
seq->finished = 1; /* last sub-sequence */
}
@@ -763,11 +763,11 @@ static u_int get_bits (u_int bits)
static int spudec_next_line (vo_overlay_t *spu)
{
get_bits (0); // byte align rle data
-
+
put_x = 0;
put_y++;
field ^= 1; // Toggle fields
-
+
if (put_y >= spu->height) {
#ifdef LOG_DEBUG
printf ("spu: put_y >= spu->height\n");
@@ -801,11 +801,11 @@ static void spudec_draw_picture (xine_t *xine, spudec_state_t *state, spudec_seq
* - both fields running to the very end
* - 2 RLE elements per byte meaning single pixel RLE
*/
- ovl->data_size = ((seq->cmd_offs - state->field_offs[0]) +
+ ovl->data_size = ((seq->cmd_offs - state->field_offs[0]) +
(seq->cmd_offs - state->field_offs[1])) * 2 * sizeof(rle_elem_t);
if (ovl->rle) {
- xprintf (xine, XINE_VERBOSITY_DEBUG,
+ xprintf (xine, XINE_VERBOSITY_DEBUG,
"libspudec: spudec_draw_picture: ovl->rle is not empty!!!! It should be!!! "
"You should never see this message.\n");
free(ovl->rle);
@@ -889,7 +889,7 @@ static void spudec_discover_clut(xine_t *xine, spudec_state_t *state, vo_overlay
why rle is null? */
if( !rle )
return;
-
+
/* suppose the first and last pixels are bg */
if( rle[0].color != rle[ovl->num_rle-1].color )
return;
@@ -975,9 +975,9 @@ int spudec_copy_nav_to_overlay(xine_t *xine, pci_t* nav_pci, uint32_t* clut,
if((button <= 0) || (button > nav_pci->hli.hl_gi.btn_ns))
return 0;
-
+
btns_per_group = 36 / nav_pci->hli.hl_gi.btngr_ns;
-
+
/* choose button group: we can always use a normal 4:3 or widescreen button group
* as long as xine blends the overlay before scaling the image to its aspect */
if (!button_ptr && nav_pci->hli.hl_gi.btngr_ns >= 1 && !(nav_pci->hli.hl_gi.btngr1_dsp_ty & 6))
@@ -987,11 +987,11 @@ int spudec_copy_nav_to_overlay(xine_t *xine, pci_t* nav_pci, uint32_t* clut,
if (!button_ptr && nav_pci->hli.hl_gi.btngr_ns >= 3 && !(nav_pci->hli.hl_gi.btngr3_dsp_ty & 6))
button_ptr = &nav_pci->hli.btnit[2 * btns_per_group + button - 1];
if (!button_ptr) {
- xprintf(xine, XINE_VERBOSITY_DEBUG,
+ xprintf(xine, XINE_VERBOSITY_DEBUG,
"libspudec: No suitable menu button group found, using group 1.\n");
button_ptr = &nav_pci->hli.btnit[button - 1];
}
-
+
/* button areas in the nav packet are in screen coordinates,
* overlay clipping areas are in overlay coordinates;
* therefore we must subtract the display coordinates of the underlying overlay */
@@ -1024,6 +1024,6 @@ int spudec_copy_nav_to_overlay(xine_t *xine, pci_t* nav_pci, uint32_t* clut,
#ifdef LOG_BUTTON
printf("libspudec:xine_decoder.c:NAV to SPU pts match!\n");
#endif
-
+
return 1;
}
diff --git a/src/spu_dec/spudec.h b/src/spu_dec/spudec.h
index 3b862c545..4d99e50ce 100644
--- a/src/spu_dec/spudec.h
+++ b/src/spu_dec/spudec.h
@@ -4,17 +4,17 @@
* Copyright (C) James Courtier-Dutton James@superbug.demon.co.uk - July 2001
*
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -112,11 +112,11 @@ typedef struct spudec_decoder_s {
spudec_class_t *class;
xine_stream_t *stream;
spudec_stream_state_t spudec_stream_state[MAX_STREAMS];
-
+
video_overlay_event_t event;
- video_overlay_object_t object;
+ video_overlay_object_t object;
int32_t menu_handle;
-
+
spudec_state_t state;
vo_overlay_t overlay;
diff --git a/src/spu_dec/spudvb_decoder.c b/src/spu_dec/spudvb_decoder.c
index 221ba187c..4b6032a5c 100644
--- a/src/spu_dec/spudvb_decoder.c
+++ b/src/spu_dec/spudvb_decoder.c
@@ -1,18 +1,18 @@
-/*
+/*
* Copyright (C) 2008 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -39,54 +39,54 @@
#define LOG_MODULE "spudvb"
typedef struct {
- int x, y;
- unsigned char is_visible;
+ int x, y;
+ unsigned char is_visible;
} visible_region_t;
typedef struct {
int page_time_out;
- int page_version_number;
- int page_state;
- int page_id;
- visible_region_t regions[MAX_REGIONS];
+ int page_version_number;
+ int page_state;
+ int page_id;
+ visible_region_t regions[MAX_REGIONS];
} page_t;
typedef struct {
int version_number;
- int width, height;
+ int width, height;
int empty;
- int depth;
- int CLUT_id;
- int objects_start;
+ int depth;
+ int CLUT_id;
+ int objects_start;
int objects_end;
- unsigned int object_pos[65536];
- unsigned char *img;
+ unsigned int object_pos[65536];
+ unsigned char *img;
osd_object_t *osd;
} region_t;
typedef struct {
/* dvbsub stuff */
- int x;
- int y;
- unsigned int curr_obj;
- unsigned int curr_reg[64];
- uint8_t *buf;
- int i;
- int nibble_flag;
- int in_scanline;
- page_t page;
- region_t regions[MAX_REGIONS];
+ int x;
+ int y;
+ unsigned int curr_obj;
+ unsigned int curr_reg[64];
+ uint8_t *buf;
+ int i;
+ int nibble_flag;
+ int in_scanline;
+ page_t page;
+ region_t regions[MAX_REGIONS];
clut_t colours[MAX_REGIONS*256];
unsigned char trans[MAX_REGIONS*256];
} dvbsub_func_t;
-typedef struct dvb_spu_class_s {
- spu_decoder_class_t class;
- xine_t *xine;
+typedef struct dvb_spu_class_s {
+ spu_decoder_class_t class;
+ xine_t *xine;
} dvb_spu_class_t;
typedef struct dvb_spu_decoder_s {
- spu_decoder_t spu_decoder;
+ spu_decoder_t spu_decoder;
dvb_spu_class_t *class;
xine_stream_t *stream;
@@ -95,21 +95,21 @@ typedef struct dvb_spu_decoder_s {
/* dvbsub_osd_mutex should be locked around all calls to this->osd_renderer->show()
and this->osd_renderer->hide() */
- pthread_mutex_t dvbsub_osd_mutex;
-
- char *pes_pkt;
+ pthread_mutex_t dvbsub_osd_mutex;
+
+ char *pes_pkt;
char *pes_pkt_wrptr;
- unsigned int pes_pkt_size;
-
- uint64_t pts;
- uint64_t vpts;
+ unsigned int pes_pkt_size;
+
+ uint64_t pts;
+ uint64_t vpts;
uint64_t end_vpts;
- pthread_t dvbsub_timer_thread;
+ pthread_t dvbsub_timer_thread;
struct timespec dvbsub_hide_timeout;
pthread_cond_t dvbsub_restart_timeout;
dvbsub_func_t *dvbsub;
- int show;
+ int show;
} dvb_spu_decoder_t;
@@ -173,7 +173,7 @@ static void update_region (dvb_spu_decoder_t * this, int region_id, int region_w
}
fill = 1;
}
-
+
if ( fill ) {
memset( reg->img, fill_color, region_width*region_height );
reg->empty = 1;
@@ -329,11 +329,11 @@ static void recalculate_trans (dvb_spu_decoder_t *this)
dvbsub->trans[i] = v * 14 / 255 + 1;
}
}
-
+
}
static void set_clut(dvb_spu_decoder_t *this,int CLUT_id,int CLUT_entry_id,int Y_value, int Cr_value, int Cb_value, int T_value) {
-
+
dvbsub_func_t *dvbsub = this->dvbsub;
if ((CLUT_id>=MAX_REGIONS) || (CLUT_entry_id>15)) {
@@ -375,7 +375,7 @@ static void process_CLUT_definition_segment(dvb_spu_decoder_t *this) {
while (dvbsub->i < j) {
CLUT_entry_id=dvbsub->buf[dvbsub->i++];
-
+
CLUT_flag_2_bit=(dvbsub->buf[dvbsub->i]&0x80)>>7;
CLUT_flag_4_bit=(dvbsub->buf[dvbsub->i]&0x40)>>6;
CLUT_flag_8_bit=(dvbsub->buf[dvbsub->i]&0x20)>>5;
@@ -516,7 +516,7 @@ static void process_region_composition_segment (dvb_spu_decoder_t * this)
return;
dvbsub->regions[region_id].version_number = region_version_number;
-
+
/* Check if region size has changed and fill background. */
update_region (this, region_id, region_width, region_height, region_fill_flag, region_4_bit_pixel_code);
if ( CLUT_id<MAX_REGIONS )
@@ -632,7 +632,7 @@ static void* dvbsub_timer_func(void *this_gen)
int result = pthread_cond_timedwait(&this->dvbsub_restart_timeout,
&this->dvbsub_osd_mutex,
&this->dvbsub_hide_timeout);
- if(result == ETIMEDOUT &&
+ if(result == ETIMEDOUT &&
timeout.tv_sec == this->dvbsub_hide_timeout.tv_sec &&
timeout.tv_nsec == this->dvbsub_hide_timeout.tv_nsec)
{
@@ -689,7 +689,7 @@ static void draw_subtitles (dvb_spu_decoder_t * this)
return;
for (r = 0; r < MAX_REGIONS; r++) {
- if (this->dvbsub->regions[r].img) {
+ if (this->dvbsub->regions[r].img) {
if (this->dvbsub->page.regions[r].is_visible && !this->dvbsub->regions[r].empty) {
update_osd( this, r );
if ( !this->dvbsub->regions[r].osd )
@@ -745,9 +745,9 @@ static void spudec_decode_data (spu_decoder_t * this_gen, buf_element_t * buf)
int PES_header_data_length;
int PES_packet_length;
int i;
-
+
if((buf->type & 0xffff0000)!=BUF_SPU_DVB)
- return;
+ return;
if (buf->decoder_flags & BUF_FLAG_SPECIAL) {
if (buf->decoder_info[1] == BUF_SPECIAL_SPU_DVB_DESCRIPTOR) {
@@ -805,7 +805,7 @@ static void spudec_decode_data (spu_decoder_t * this_gen, buf_element_t * buf)
this->vpts = 0;
/* process the pes section */
-
+
PES_packet_length = this->pes_pkt_size;
this->dvbsub->buf = this->pes_pkt;
@@ -819,7 +819,7 @@ static void spudec_decode_data (spu_decoder_t * this_gen, buf_element_t * buf)
/* SUBTITLING SEGMENT */
this->dvbsub->i++;
segment_type = this->dvbsub->buf[this->dvbsub->i++];
-
+
this->dvbsub->page.page_id = (this->dvbsub->buf[this->dvbsub->i] << 8) | this->dvbsub->buf[this->dvbsub->i + 1];
segment_length = (this->dvbsub->buf[this->dvbsub->i + 2] << 8) | this->dvbsub->buf[this->dvbsub->i + 3];
new_i = this->dvbsub->i + segment_length + 4;
@@ -829,15 +829,15 @@ static void spudec_decode_data (spu_decoder_t * this_gen, buf_element_t * buf)
break;
/* verify we've the right segment */
if(this->dvbsub->page.page_id==this->spu_descriptor->comp_page_id){
- /* SEGMENT_DATA_FIELD */
- switch (segment_type & 0xff) {
- case 0x10:
- process_page_composition_segment (this);
+ /* SEGMENT_DATA_FIELD */
+ switch (segment_type & 0xff) {
+ case 0x10:
+ process_page_composition_segment (this);
break;
case 0x11:
process_region_composition_segment (this);
break;
- case 0x12:
+ case 0x12:
process_CLUT_definition_segment(this);
break;
case 0x13:
@@ -848,7 +848,7 @@ static void spudec_decode_data (spu_decoder_t * this_gen, buf_element_t * buf)
draw_subtitles( this );
break;
default:
- return;
+ return;
break;
}
}
@@ -865,17 +865,17 @@ static void spudec_decode_data (spu_decoder_t * this_gen, buf_element_t * buf)
case 0x11:
process_region_composition_segment(this);
break;
- case 0x12:
+ case 0x12:
process_CLUT_definition_segment(this);
break;
case 0x13:
process_object_data_segment (this);
break;
- case 0x80:
+ case 0x80:
draw_subtitles( this ); /* Page is now completely rendered */
break;
default:
- return;
+ return;
break;
}
}
@@ -952,7 +952,7 @@ static spu_decoder_t *dvb_spu_class_open_plugin (spu_decoder_class_t * class_gen
this->pes_pkt = calloc(65, 1024);
this->spu_descriptor = calloc(1, sizeof(spu_dvb_descriptor_t));
-
+
this->dvbsub = calloc(1, sizeof (dvbsub_func_t));
int i;
diff --git a/src/spu_dec/spuhdmv_decoder.c b/src/spu_dec/spuhdmv_decoder.c
index bcd52ee3f..93e232678 100644
--- a/src/spu_dec/spuhdmv_decoder.c
+++ b/src/spu_dec/spuhdmv_decoder.c
@@ -37,9 +37,9 @@
#include <xine/video_out.h>
#include <xine/video_overlay.h>
-#define TRACE(x...) printf(x)
+#define XINE_HDMV_TRACE(x...) printf(x)
/*#define TRACE(x...) */
-#define ERROR(x...) fprintf(stderr, "spuhdmv: " x)
+#define XINE_HDMV_ERROR(x...) fprintf(stderr, "spuhdmv: " x)
/*#define ERROR(x...) lprintf(x) */
/*
@@ -65,7 +65,7 @@ struct subtitle_object_s {
uint16_t width, height;
rle_elem_t *rle;
- uint num_rle;
+ unsigned int num_rle;
size_t data_size;
#if 0
@@ -142,7 +142,7 @@ struct presentation_segment_s {
#define LIST_REPLACE(list, obj, FREE_FUNC) \
do { \
- uint id = obj->id; \
+ unsigned int id = obj->id; \
\
/* insert to list */ \
obj->next = list; \
@@ -244,7 +244,7 @@ static void segbuf_parse_segment_header(segment_buffer_t *buf)
if ( buf->segment_type < 0x14 ||
( buf->segment_type > 0x18 &&
buf->segment_type != 0x80)) {
- ERROR("unknown segment type, resetting\n");
+ XINE_HDMV_ERROR("unknown segment type, resetting\n");
segbuf_reset(buf);
}
} else {
@@ -283,10 +283,10 @@ static void segbuf_skip_segment(segment_buffer_t *buf)
segbuf_parse_segment_header(buf);
- TRACE(" skip_segment: %d bytes left\n", (uint)buf->len);
+ XINE_HDMV_TRACE(" skip_segment: %zd bytes left\n", buf->len);
} else {
- ERROR(" skip_segment: ERROR - %d bytes queued, %d required\n",
- (uint)buf->len, buf->segment_len);
+ XINE_HDMV_ERROR(" skip_segment: ERROR - %zd bytes queued, %d required\n",
+ buf->len, buf->segment_len);
segbuf_reset (buf);
}
}
@@ -311,7 +311,7 @@ static uint8_t segbuf_get_u8(segment_buffer_t *buf)
{
if (!(buf->error = ++buf->segment_data > buf->segment_end))
return buf->segment_data[-1];
- ERROR("segbuf_get_u8: read failed (end of segment reached) !");
+ XINE_HDMV_ERROR("segbuf_get_u8: read failed (end of segment reached) !");
return 0;
}
@@ -333,7 +333,7 @@ static uint8_t *segbuf_get_string(segment_buffer_t *buf, size_t len)
if (buf->segment_data <= buf->segment_end)
return val;
}
- ERROR("segbuf_get_string(%d): read failed (end of segment reached) !", (int)len);
+ XINE_HDMV_ERROR("segbuf_get_string(%zd): read failed (end of segment reached) !", len);
buf->error = 1;
return NULL;
}
@@ -355,12 +355,12 @@ static subtitle_clut_t *segbuf_decode_palette(segment_buffer_t *buf)
return NULL;
if (len % 5) {
- ERROR(" decode_palette: segment size error (%d ; expected %d for %d entries)\n",
- (uint)len, (uint)(5 * entries), (uint)entries);
+ XINE_HDMV_ERROR(" decode_palette: segment size error (%zd ; expected %zd for %zd entries)\n",
+ len, (5 * entries), entries);
return NULL;
}
- TRACE("decode_palette: %d items (id %d, version %d)\n",
- (uint)entries, palette_id, palette_version_number);
+ XINE_HDMV_TRACE("decode_palette: %zd items (id %d, version %d)\n",
+ entries, palette_id, palette_version_number);
/* convert to xine-lib clut */
subtitle_clut_t *clut = calloc(1, sizeof(subtitle_clut_t));
@@ -449,7 +449,7 @@ static subtitle_object_t *segbuf_decode_object(segment_buffer_t *buf)
uint8_t version = segbuf_get_u8 (buf);
uint8_t seq_desc = segbuf_get_u8 (buf);
- TRACE(" decode_object: object_id %d, version %d, seq 0x%x\n",
+ XINE_HDMV_TRACE(" decode_object: object_id %d, version %d, seq 0x%x\n",
object_id, version, seq_desc);
//LIST_FIND();
@@ -462,7 +462,7 @@ static subtitle_object_t *segbuf_decode_object(segment_buffer_t *buf)
obj->width = segbuf_get_u16(buf);
obj->height = segbuf_get_u16(buf);
- TRACE(" object length %d bytes, size %dx%d\n", data_len, obj->width, obj->height);
+ XINE_HDMV_TRACE(" object length %d bytes, size %dx%d\n", data_len, obj->width, obj->height);
segbuf_decode_rle (buf, obj);
@@ -472,7 +472,7 @@ static subtitle_object_t *segbuf_decode_object(segment_buffer_t *buf)
}
} else {
- ERROR(" TODO: APPEND RLE, length %d bytes\n", buf->segment_len - 4);
+ XINE_HDMV_ERROR(" TODO: APPEND RLE, length %d bytes\n", buf->segment_len - 4);
/* TODO */
free_subtitle_object(obj);
return NULL;
@@ -492,7 +492,7 @@ static window_def_t *segbuf_decode_window_definition(segment_buffer_t *buf)
wnd->width = segbuf_get_u16 (buf);
wnd->height = segbuf_get_u16 (buf);
- TRACE(" window: [%02x %d] %d,%d %dx%d\n", a,
+ XINE_HDMV_TRACE(" window: [%02x %d] %d,%d %dx%d\n", a,
wnd->id, wnd->xpos, wnd->ypos, wnd->width, wnd->height);
if (buf->error) {
@@ -509,7 +509,7 @@ static int segbuf_decode_video_descriptor(segment_buffer_t *buf)
uint16_t height = segbuf_get_u16(buf);
uint8_t frame_rate = segbuf_get_u8 (buf);
- TRACE(" video_descriptor: %dx%d fps %d\n", width, height, frame_rate);
+ XINE_HDMV_TRACE(" video_descriptor: %dx%d fps %d\n", width, height, frame_rate);
return buf->error;
}
@@ -518,7 +518,7 @@ static int segbuf_decode_composition_descriptor(segment_buffer_t *buf, compositi
descr->number = segbuf_get_u16(buf);
descr->state = segbuf_get_u8 (buf);
- TRACE(" composition_descriptor: number %d, state %d\n", descr->number, descr->state);
+ XINE_HDMV_TRACE(" composition_descriptor: number %d, state %d\n", descr->number, descr->state);
return buf->error;
}
@@ -547,7 +547,7 @@ static composition_object_t *segbuf_decode_composition_object(segment_buffer_t *
return NULL;
}
- TRACE(" composition_object: id: %d, win: %d, position %d,%d crop %d forced %d\n",
+ XINE_HDMV_TRACE(" composition_object: id: %d, win: %d, position %d,%d crop %d forced %d\n",
cobj->object_id_ref, cobj->window_id_ref, cobj->xpos, cobj->ypos,
cobj->cropped_flag, cobj->forced_flag);
@@ -566,7 +566,7 @@ static presentation_segment_t *segbuf_decode_presentation_segment(segment_buffer
seg->palette_id_ref = segbuf_get_u8 (buf);
seg->object_number = segbuf_get_u8 (buf);
- TRACE(" presentation_segment: object_number %d, palette %d\n",
+ XINE_HDMV_TRACE(" presentation_segment: object_number %d, palette %d\n",
seg->object_number, seg->palette_id_ref);
for (index = 0; index < seg->object_number; index++) {
@@ -673,7 +673,7 @@ static int decode_presentation_segment(spuhdmv_decoder_t *this)
return 0;
}
-static int show_overlay(spuhdmv_decoder_t *this, composition_object_t *cobj, uint palette_id_ref,
+static int show_overlay(spuhdmv_decoder_t *this, composition_object_t *cobj, unsigned int palette_id_ref,
int overlay_index, int64_t pts, int force_update)
{
video_overlay_manager_t *ovl_manager = this->stream->video_out->get_overlay_manager(this->stream->video_out);
@@ -686,7 +686,7 @@ static int show_overlay(spuhdmv_decoder_t *this, composition_object_t *cobj, uin
while (clut && clut->id != palette_id_ref)
clut = clut->next;
if (!clut) {
- TRACE(" show_overlay: clut %d not found !\n", palette_id_ref);
+ XINE_HDMV_TRACE(" show_overlay: clut %d not found !\n", palette_id_ref);
return -1;
}
@@ -695,7 +695,7 @@ static int show_overlay(spuhdmv_decoder_t *this, composition_object_t *cobj, uin
while (obj && obj->id != cobj->object_id_ref)
obj = obj->next;
if (!obj) {
- TRACE(" show_overlay: object %d not found !\n", cobj->object_id_ref);
+ XINE_HDMV_TRACE(" show_overlay: object %d not found !\n", cobj->object_id_ref);
return -1;
}
@@ -704,7 +704,7 @@ static int show_overlay(spuhdmv_decoder_t *this, composition_object_t *cobj, uin
while (wnd && wnd->id != cobj->window_id_ref)
wnd = wnd->next;
if (!wnd) {
- TRACE(" show_overlay: window %d not found !\n", cobj->window_id_ref);
+ XINE_HDMV_TRACE(" show_overlay: window %d not found !\n", cobj->window_id_ref);
return -1;
}
@@ -737,7 +737,7 @@ static int show_overlay(spuhdmv_decoder_t *this, composition_object_t *cobj, uin
overlay.hili_left = -1;
overlay.hili_right = -1;
- TRACE(" -> overlay: %d,%d %dx%d\n",
+ XINE_HDMV_TRACE(" -> overlay: %d,%d %dx%d\n",
overlay.x, overlay.y, overlay.width, overlay.height);
@@ -772,7 +772,7 @@ static void hide_overlays(spuhdmv_decoder_t *this, int64_t pts)
int i = 0;
while (this->overlay_handles[i] >= 0) {
- TRACE(" -> HIDE %d\n", i);
+ XINE_HDMV_TRACE(" -> HIDE %d\n", i);
video_overlay_manager_t *ovl_manager = this->stream->video_out->get_overlay_manager(this->stream->video_out);
metronom_t *metronom = this->stream->metronom;
@@ -811,7 +811,7 @@ static void update_overlays(spuhdmv_decoder_t *this)
for (i = 0; i < pseg->object_number; i++) {
if (!cobj) {
- ERROR("show_overlays: composition object %d missing !\n", i);
+ XINE_HDMV_ERROR("show_overlays: composition object %d missing !\n", i);
} else {
show_overlay(this, cobj, pseg->palette_id_ref, i, pseg->pts, !pseg->shown);
cobj = cobj->next;
@@ -835,40 +835,40 @@ static void free_objs(spuhdmv_decoder_t *this)
static void decode_segment(spuhdmv_decoder_t *this)
{
- TRACE("*** new segment, pts %010ld: 0x%02x (%8d bytes)",
- this->pts, (uint)this->buf->segment_type, (uint)this->buf->segment_len);
+ XINE_HDMV_TRACE("*** new segment, pts %010ld: 0x%02x (%8d bytes)",
+ this->pts, this->buf->segment_type, this->buf->segment_len);
switch (this->buf->segment_type) {
case 0x14:
- TRACE(" segment: PALETTE\n");
+ XINE_HDMV_TRACE(" segment: PALETTE\n");
decode_palette(this);
break;
case 0x15:
- TRACE(" segment: OBJECT\n");
+ XINE_HDMV_TRACE(" segment: OBJECT\n");
decode_object(this);
break;
case 0x16:
- TRACE(" segment: PRESENTATION SEGMENT\n");
+ XINE_HDMV_TRACE(" segment: PRESENTATION SEGMENT\n");
decode_presentation_segment(this);
break;
case 0x17:
- TRACE(" segment: WINDOW DEFINITION\n");
+ XINE_HDMV_TRACE(" segment: WINDOW DEFINITION\n");
decode_window_definition(this);
break;
case 0x18:
- TRACE(" segment: INTERACTIVE\n");
+ XINE_HDMV_TRACE(" segment: INTERACTIVE\n");
break;
case 0x80:
- TRACE(" segment: END OF DISPLAY\n");
+ XINE_HDMV_TRACE(" segment: END OF DISPLAY\n");
/* drop all cached objects */
free_objs(this);
break;
default:
- ERROR(" segment type 0x%x unknown, skipping\n", this->buf->segment_type);
+ XINE_HDMV_ERROR(" segment type 0x%x unknown, skipping\n", this->buf->segment_type);
break;
}
if (this->buf->error) {
- ERROR("*** DECODE ERROR ***\n");
+ XINE_HDMV_ERROR("*** DECODE ERROR ***\n");
}
update_overlays (this);
diff --git a/src/spu_dec/sputext_decoder.c b/src/spu_dec/sputext_decoder.c
index dee14d02a..749b23208 100644
--- a/src/spu_dec/sputext_decoder.c
+++ b/src/spu_dec/sputext_decoder.c
@@ -1,18 +1,18 @@
/*
* Copyright (C) 2000-2004 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -173,7 +173,7 @@ typedef struct sputext_decoder_s {
int64_t img_duration;
int64_t last_subtitle_end; /* no new subtitle before this vpts */
int unscaled; /* use unscaled OSD */
-
+
int last_y; /* location of the previous subtitle */
int last_lines; /* number of lines of the previous subtitle */
video2wnd_t video2wnd;
@@ -194,7 +194,7 @@ static void update_font_size (sputext_decoder_t *this, int force_update) {
if ((this->subtitle_size != this->class->subtitle_size) ||
(this->vertical_offset != this->class->vertical_offset) ||
force_update) {
-
+
this->subtitle_size = this->class->subtitle_size;
this->vertical_offset = this->class->vertical_offset;
this->last_lines = 0;
@@ -207,7 +207,7 @@ static void update_font_size (sputext_decoder_t *this, int force_update) {
if( this->osd )
this->renderer->free_object (this->osd);
- this->osd = this->renderer->new_object (this->renderer,
+ this->osd = this->renderer->new_object (this->renderer,
this->width,
this->height);
@@ -229,14 +229,14 @@ static void update_output_size (sputext_decoder_t *this) {
/* initialize decoder if needed */
if( this->unscaled ) {
- if( this->width != this->stream->video_out->get_property(this->stream->video_out,
+ if( this->width != this->stream->video_out->get_property(this->stream->video_out,
VO_PROP_WINDOW_WIDTH) ||
- this->height != this->stream->video_out->get_property(this->stream->video_out,
+ this->height != this->stream->video_out->get_property(this->stream->video_out,
VO_PROP_WINDOW_HEIGHT) ||
!this->img_duration || !this->osd ) {
int width = 0, height = 0;
-
+
this->stream->video_out->status(this->stream->video_out, NULL,
&width, &height, &this->img_duration );
if( width && height ) {
@@ -253,13 +253,13 @@ static void update_output_size (sputext_decoder_t *this) {
/* and a displacement factor because video may have blacks lines. */
int output_width, output_height, output_xoffset, output_yoffset;
- output_width = this->stream->video_out->get_property(this->stream->video_out,
+ output_width = this->stream->video_out->get_property(this->stream->video_out,
VO_PROP_OUTPUT_WIDTH);
- output_height = this->stream->video_out->get_property(this->stream->video_out,
+ output_height = this->stream->video_out->get_property(this->stream->video_out,
VO_PROP_OUTPUT_HEIGHT);
- output_xoffset = this->stream->video_out->get_property(this->stream->video_out,
+ output_xoffset = this->stream->video_out->get_property(this->stream->video_out,
VO_PROP_OUTPUT_XOFFSET);
- output_yoffset = this->stream->video_out->get_property(this->stream->video_out,
+ output_yoffset = this->stream->video_out->get_property(this->stream->video_out,
VO_PROP_OUTPUT_YOFFSET);
/* driver don't seen to be capable to give us those values */
@@ -283,16 +283,16 @@ static void update_output_size (sputext_decoder_t *this) {
}
} else {
if( !this->width || !this->height || !this->img_duration || !this->osd ) {
-
+
this->width = 0;
this->height = 0;
-
+
this->stream->video_out->status(this->stream->video_out, NULL,
&this->width, &this->height, &this->img_duration );
-
+
if(!this->osd || ( this->width && this->height)) {
this->renderer = this->stream->osd_renderer;
-
+
/* in scaled mode, we have to convert subtitle position in film coordinates. */
this->video2wnd.x = 0;
this->video2wnd.y = 0;
@@ -310,14 +310,14 @@ static int parse_utf8_size(const void *buf)
const uint8_t *c = buf;
if ( c[0]<0x80 )
return 1;
-
+
if( c[1]==0 )
return 1;
if ( (c[0]>=0xC2 && c[0]<=0xDF) && (c[1]>=0x80 && c[1]<=0xBF) )
return 2;
-
+
if( c[2]==0 )
- return 2;
+ return 2;
else if ( c[0]==0xE0 && (c[1]>=0xA0 && c[1]<=0xBF) && (c[2]>=0x80 && c[1]<=0xBF) )
return 3;
else if ( (c[0]>=0xE1 && c[0]<=0xEC) && (c[1]>=0x80 && c[1]<=0xBF) && (c[2]>=0x80 && c[1]<=0xBF) )
@@ -350,7 +350,7 @@ static int ogm_render_line_internal(sputext_decoder_t *this, int x, int y, const
this->current_osd_text = OSD_TEXT1;
i=i+4;
continue;
- } else if (!strncmp("<i>", text+i, 3)) {
+ } else if (!strncmp("<i>", text+i, 3)) {
/* enable italics color */
if (render)
this->current_osd_text = OSD_TEXT3;
@@ -362,7 +362,7 @@ static int ogm_render_line_internal(sputext_decoder_t *this, int x, int y, const
this->current_osd_text = OSD_TEXT1;
i=i+4;
continue;
- } else if (!strncmp("<font>", text+i, 6)) {
+ } else if (!strncmp("<font>", text+i, 6)) {
/*Do somethink to disable typing
fixme - no teststreams*/
i=i+6;
@@ -408,7 +408,7 @@ static int ogm_render_line_internal(sputext_decoder_t *this, int x, int y, const
const size_t shift = isutf8 ? parse_utf8_size (&text[i]) : 1;
memcpy(letter,&text[i],shift);
letter[shift]=0;
-
+
if (render)
this->renderer->render_text(this->osd, x, y, letter, this->current_osd_text);
@@ -433,7 +433,7 @@ static inline void ogm_render_line(sputext_decoder_t *this, int x, int y, char*
/* \a : alignment in SSA code (see #defines) */
/* \an : alignment in 'numpad code' */
/* \pos : absolute position of subtitles. Alignment define origin. */
-static void read_ssa_tag(sputext_decoder_t *this, const char* text,
+static void read_ssa_tag(sputext_decoder_t *this, const char* text,
int* alignment, int* sub_x, int* sub_y, int* max_width) {
int in_tag = 0;
@@ -469,7 +469,7 @@ static void read_ssa_tag(sputext_decoder_t *this, const char* text,
if (*text == '}') in_tag = 0;
}
-
+
text++;
}
@@ -483,7 +483,7 @@ static void read_ssa_tag(sputext_decoder_t *this, const char* text,
if ((*sub_x) >= 0 && (*sub_y) >= 0) {
(*sub_x) = this->video2wnd.x + this->video2wnd.dx * (*sub_x);
(*sub_y) = this->video2wnd.y + this->video2wnd.dy * (*sub_y);
- }
+ }
/* check validity, compute max width */
if ( (*sub_x) < 0 || (*sub_x) >= this->width ||
@@ -550,7 +550,7 @@ static int is_cjk_encoding(const char *enc) {
}
static void draw_subtitle(sputext_decoder_t *this, int64_t sub_start, int64_t sub_end ) {
-
+
int y;
int sub_x, sub_y, max_width;
int alignment;
@@ -562,7 +562,7 @@ static void draw_subtitle(sputext_decoder_t *this, int64_t sub_start, int64_t su
read_ssa_tag(this, this->text[0], &alignment, &sub_x, &sub_y, &max_width);
update_font_size(this, 0);
-
+
const char *const font = get_font (this->class);
if( strcmp(this->font, font) ) {
strncpy(this->font, font, FILENAME_MAX);
@@ -585,13 +585,13 @@ static void draw_subtitle(sputext_decoder_t *this, int64_t sub_start, int64_t su
char *current_cut, *best_cut;
int a;
- xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
- "libsputext: Line too long: %d > %d, split at max size.\n",
+ xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
+ "libsputext: Line too long: %d > %d, split at max size.\n",
line_width, max_width);
/* can't fit with keeping existing lines */
if (this->lines + 1 > SUB_MAX_TEXT) {
- xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"libsputext: Can't fit with keeping existing line, we have to rebuild all the subtitle\n");
rebuild_all = 1;
break;
@@ -615,7 +615,7 @@ static void draw_subtitle(sputext_decoder_t *this, int64_t sub_start, int64_t su
}
if (best_cut == NULL) {
- xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
"libsputext: Can't wrap line: a word is too long, abort.\n");
break;
}
@@ -652,7 +652,7 @@ static void draw_subtitle(sputext_decoder_t *this, int64_t sub_start, int64_t su
do {
if (this->lines + 1 < SUB_MAX_TEXT) {
-
+
/* find the longest sequence witch fit */
int line_width = 0;
current_cut = stream;
@@ -672,7 +672,7 @@ static void draw_subtitle(sputext_decoder_t *this, int64_t sub_start, int64_t su
}
}
}
-
+
/* line maybe too long, but we have reached last subtitle line */
else {
best_cut = current_cut = stream + strlen(stream);
@@ -685,7 +685,7 @@ static void draw_subtitle(sputext_decoder_t *this, int64_t sub_start, int64_t su
stream = best_cut + 1;
- } while (best_cut != current_cut);
+ } while (best_cut != current_cut);
}
@@ -693,7 +693,7 @@ static void draw_subtitle(sputext_decoder_t *this, int64_t sub_start, int64_t su
/* Erase subtitle : use last_y and last_lines saved last turn. */
if (this->last_lines) {
this->renderer->filled_rect (this->osd, 0, this->last_y,
- this->width - 1, this->last_y + this->last_lines * this->line_height,
+ this->width - 1, this->last_y + this->last_lines * this->line_height,
0);
}
@@ -707,23 +707,23 @@ static void draw_subtitle(sputext_decoder_t *this, int64_t sub_start, int64_t su
if (sub_y >= 0) y = sub_y - (this->lines * this->line_height) / 2;
else y = (this->height - this->lines * this->line_height) / 2;
break;
-
+
case ALIGN_BOTTOM:
default:
if (sub_y >= 0) y = sub_y - this->lines * this->line_height;
else y = this->height - this->lines * this->line_height - this->class->vertical_offset;
break;
}
- if (y < 0 || y >= this->height)
+ if (y < 0 || y >= this->height)
y = this->height - this->line_height * this->lines;
- this->last_lines = this->lines;
- this->last_y = y;
+ this->last_lines = this->lines;
+ this->last_y = y;
for (line = 0; line < this->lines; line++) {
int w, x;
-
+
while(1) {
w = ogm_get_width( this, this->text[line]);
@@ -737,7 +737,7 @@ static void draw_subtitle(sputext_decoder_t *this, int64_t sub_start, int64_t su
if (sub_x >= 0) x = sub_x - w;
else x = max_width - w - 5;
break;
-
+
case ALIGN_CENTER:
default:
if (sub_x >= 0) x = sub_x - w / 2;
@@ -753,7 +753,7 @@ static void draw_subtitle(sputext_decoder_t *this, int64_t sub_start, int64_t su
break;
}
}
-
+
if( is_cjk_encoding(encoding) ) {
this->renderer->render_text (this->osd, x, y + line * this->line_height,
this->text[line], OSD_TEXT1);
@@ -761,31 +761,31 @@ static void draw_subtitle(sputext_decoder_t *this, int64_t sub_start, int64_t su
ogm_render_line(this, x, y + line*this->line_height, this->text[line]);
}
}
-
+
if( font_size != this->font_size )
this->renderer->set_font (this->osd, get_font (this->class), this->font_size);
-
+
if( this->last_subtitle_end && sub_start < this->last_subtitle_end ) {
sub_start = this->last_subtitle_end;
}
this->last_subtitle_end = sub_end;
-
+
this->renderer->set_text_palette (this->osd, -1, OSD_TEXT1);
this->renderer->get_palette(this->osd, this->spu_palette, this->spu_trans);
/* append some colors for colored typeface tag */
memcpy(this->spu_palette+OSD_TEXT2, sub_palette, sizeof(sub_palette));
memcpy(this->spu_trans+OSD_TEXT2, sub_trans, sizeof(sub_trans));
this->renderer->set_palette(this->osd, this->spu_palette, this->spu_trans);
-
+
if (this->unscaled)
this->renderer->show_unscaled (this->osd, sub_start);
else
this->renderer->show (this->osd, sub_start);
-
+
this->renderer->hide (this->osd, sub_end);
-
+
lprintf ("scheduling subtitle >%s< at %"PRId64" until %"PRId64", current time is %"PRId64"\n",
- this->text[0], sub_start, sub_end,
+ this->text[0], sub_start, sub_end,
this->stream->xine->clock->get_current_time (this->stream->xine->clock));
}
@@ -810,7 +810,7 @@ static void spudec_decode_data (spu_decoder_t *this_gen, buf_element_t *buf) {
}
if (buf->decoder_flags & BUF_FLAG_PREVIEW)
return;
-
+
if ((this->stream->spu_channel & 0x1f) != (buf->type & 0x1f))
return;
@@ -833,9 +833,9 @@ static void spudec_decode_data (spu_decoder_t *this_gen, buf_element_t *buf) {
if (!*str) return;
/* Empty ogm packets (as created by ogmmux) clears out old messages. We already respect the end time. */
-
+
this->lines = 0;
-
+
i = 0;
while (*str && (this->lines < SUB_MAX_TEXT) && (i < SUB_BUFSIZE)) {
if (*str == '\r' || *str == '\n') {
@@ -853,7 +853,7 @@ static void spudec_decode_data (spu_decoder_t *this_gen, buf_element_t *buf) {
}
if (i == SUB_BUFSIZE)
i--;
-
+
if (i) {
this->text[ this->lines ][i] = 0;
this->lines++;
@@ -863,7 +863,7 @@ static void spudec_decode_data (spu_decoder_t *this_gen, buf_element_t *buf) {
this->ogm = 0;
val = (uint32_t * )buf->content;
-
+
this->lines = *val++;
uses_time = *val++;
start = *val++;
@@ -875,7 +875,7 @@ static void spudec_decode_data (spu_decoder_t *this_gen, buf_element_t *buf) {
}
}
-
+
xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
"libsputext: decoder data [%s]\n", this->text[0]);
xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
@@ -886,7 +886,7 @@ static void spudec_decode_data (spu_decoder_t *this_gen, buf_element_t *buf) {
"libsputext: discarding subtitle with invalid timing\n");
return;
}
-
+
spu_offset = this->stream->master->metronom->get_option (this->stream->master->metronom,
METRONOM_SPU_OFFSET);
if( uses_time ) {
@@ -898,17 +898,17 @@ static void spudec_decode_data (spu_decoder_t *this_gen, buf_element_t *buf) {
end += spu_offset / this->img_duration;
}
}
-
+
while( !this->finished ) {
-
+
master_status = xine_get_status (this->stream->master);
slave_status = xine_get_status (this->stream);
- vo_discard = this->stream->video_out->get_property(this->stream->video_out,
+ vo_discard = this->stream->video_out->get_property(this->stream->video_out,
VO_PROP_DISCARD_FRAMES);
_x_get_current_info (this->stream->master, &extra_info, sizeof(extra_info) );
-
- lprintf("master: %d slave: %d input_normpos: %d vo_discard: %d\n",
+
+ lprintf("master: %d slave: %d input_normpos: %d vo_discard: %d\n",
master_status, slave_status, extra_info.input_normpos, vo_discard);
if( !this->started && (master_status == XINE_STATUS_PLAY &&
@@ -926,63 +926,63 @@ static void spudec_decode_data (spu_decoder_t *this_gen, buf_element_t *buf) {
if( this->started ) {
- if( master_status != XINE_STATUS_PLAY ||
+ if( master_status != XINE_STATUS_PLAY ||
slave_status != XINE_STATUS_PLAY ||
vo_discard ) {
lprintf("finished\n");
-
+
this->width = this->height = 0;
this->finished = 1;
return;
}
if( this->osd ) {
-
+
/* try to use frame number mode */
if( !uses_time && extra_info.frame_number ) {
-
+
diff = end - extra_info.frame_number;
-
+
/* discard old subtitles */
if( diff < 0 ) {
- xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
"libsputext: discarding old subtitle\n");
return;
}
-
+
diff = start - extra_info.frame_number;
-
+
start_vpts = extra_info.vpts + diff * this->img_duration;
end_vpts = start_vpts + (end-start) * this->img_duration;
-
+
} else {
-
+
if( !uses_time ) {
start = start * this->img_duration / 90;
end = end * this->img_duration / 90;
uses_time = 1;
}
-
+
diff = end - extra_info.input_time;
-
+
/* discard old subtitles */
if( diff < 0 ) {
xprintf(this->class->xine, XINE_VERBOSITY_DEBUG,
"libsputext: discarding old subtitle\n");
return;
}
-
+
diff = start - extra_info.input_time;
-
+
start_vpts = extra_info.vpts + diff * 90;
end_vpts = start_vpts + (end-start) * 90;
}
-
+
_x_spu_decoder_sleep(this->stream, start_vpts);
update_output_size( this );
draw_subtitle(this, start_vpts, end_vpts);
-
- return;
+
+ return;
}
}
@@ -991,12 +991,12 @@ static void spudec_decode_data (spu_decoder_t *this_gen, buf_element_t *buf) {
else
return;
}
-}
+}
static void spudec_reset (spu_decoder_t *this_gen) {
sputext_decoder_t *this = (sputext_decoder_t *) this_gen;
-
+
lprintf("i guess we just seeked\n");
this->width = this->height = 0;
this->started = this->finished = 0;
@@ -1010,7 +1010,7 @@ static void spudec_discontinuity (spu_decoder_t *this_gen) {
static void spudec_dispose (spu_decoder_t *this_gen) {
sputext_decoder_t *this = (sputext_decoder_t *) this_gen;
-
+
if (this->osd) {
this->renderer->free_object (this->osd);
this->osd = NULL;
@@ -1031,7 +1031,7 @@ static void update_osd_font(void *class_gen, xine_cfg_entry_t *entry)
strncpy(class->font, entry->str_value, FONTNAME_SIZE);
class->font[FONTNAME_SIZE - 1] = '\0';
-
+
xprintf(class->xine, XINE_VERBOSITY_DEBUG, "libsputext: spu_font = %s\n", class->font );
}
@@ -1042,7 +1042,7 @@ static void update_osd_font_ft(void *class_gen, xine_cfg_entry_t *entry)
strncpy(class->font_ft, entry->str_value, FILENAME_MAX);
class->font_ft[FILENAME_MAX - 1] = '\0';
-
+
xprintf(class->xine, XINE_VERBOSITY_DEBUG, "libsputext: spu_font_ft = %s\n", class->font_ft);
}
@@ -1051,7 +1051,7 @@ static void update_osd_use_font_ft(void *class_gen, xine_cfg_entry_t *entry)
sputext_class_t *class = (sputext_class_t *)class_gen;
class->use_font_ft = entry->num_value;
-
+
xprintf(class->xine, XINE_VERBOSITY_DEBUG, "libsputext: spu_use_font_ft = %d\n", class->use_font_ft);
}
#endif
@@ -1114,13 +1114,13 @@ static void update_src_encoding(void *class_gen, xine_cfg_entry_t *entry)
static void *init_spu_decoder_plugin (xine_t *xine, void *data) {
- static const char *const subtitle_size_strings[] = {
- "tiny", "small", "normal", "large", "very large", "huge", NULL
+ static const char *const subtitle_size_strings[] = {
+ "tiny", "small", "normal", "large", "very large", "huge", NULL
};
sputext_class_t *this ;
lprintf("init class\n");
-
+
this = (sputext_class_t *) calloc(1, sizeof(sputext_class_t));
this->class.open_plugin = sputext_class_open_plugin;
@@ -1130,8 +1130,8 @@ static void *init_spu_decoder_plugin (xine_t *xine, void *data) {
this->xine = xine;
- this->subtitle_size = xine->config->register_enum(xine->config,
- "subtitles.separate.subtitle_size",
+ this->subtitle_size = xine->config->register_enum(xine->config,
+ "subtitles.separate.subtitle_size",
1,
subtitle_size_strings,
_("subtitle size"),
@@ -1139,7 +1139,7 @@ static void *init_spu_decoder_plugin (xine_t *xine, void *data) {
"be evaluated relative to the window size."),
0, update_subtitle_size, this);
this->vertical_offset = xine->config->register_num(xine->config,
- "subtitles.separate.vertical_offset",
+ "subtitles.separate.vertical_offset",
0,
_("subtitle vertical offset"),
_("You can adjust the vertical position of the subtitle. "
@@ -1168,8 +1168,8 @@ static void *init_spu_decoder_plugin (xine_t *xine, void *data) {
NULL,
10, update_osd_use_font_ft, this);
#endif
- this->src_encoding = xine->config->register_string(xine->config,
- "subtitles.separate.src_encoding",
+ this->src_encoding = xine->config->register_string(xine->config,
+ "subtitles.separate.src_encoding",
xine_guess_spu_encoding(),
_("encoding of the subtitles"),
_("The encoding of the subtitle text in the stream. This setting "
@@ -1204,7 +1204,7 @@ static const decoder_info_t spudec_info = {
extern void *init_sputext_demux_class (xine_t *xine, void *data);
const plugin_info_t xine_plugin_info[] EXPORTED = {
- /* type, API, "name", version, special_info, init_function */
+ /* type, API, "name", version, special_info, init_function */
{ PLUGIN_SPU_DECODER | PLUGIN_MUST_PRELOAD, 17, "sputext", XINE_VERSION_CODE, &spudec_info, &init_spu_decoder_plugin },
{ PLUGIN_DEMUX, 27, "sputext", XINE_VERSION_CODE, NULL, &init_sputext_demux_class },
{ PLUGIN_NONE, 0, "", 0, NULL, NULL }
diff --git a/src/spu_dec/sputext_demuxer.c b/src/spu_dec/sputext_demuxer.c
index 20c0499da..0b89d03c8 100644
--- a/src/spu_dec/sputext_demuxer.c
+++ b/src/spu_dec/sputext_demuxer.c
@@ -1,18 +1,18 @@
/*
* Copyright (C) 2000-2003 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -67,7 +67,7 @@ typedef struct {
long start; /* csecs */
long end; /* csecs */
-
+
char *text[SUB_MAX_TEXT];
} subtitle_t;
@@ -84,10 +84,10 @@ typedef struct {
char buf[SUB_BUFSIZE];
off_t buflen;
- float mpsub_position;
+ float mpsub_position;
- int uses_time;
- int errs;
+ int uses_time;
+ int errs;
subtitle_t *subtitles;
int num; /* number of subtitle structs */
int cur; /* current subtitle */
@@ -117,8 +117,8 @@ typedef struct demux_sputext_class_s {
#define FORMAT_RT 5
#define FORMAT_SSA 6 /* Sub Station Alpha */
#define FORMAT_PJS 7
-#define FORMAT_MPSUB 8
-#define FORMAT_AQTITLE 9
+#define FORMAT_MPSUB 8
+#define FORMAT_AQTITLE 9
#define FORMAT_JACOBSUB 10
#define FORMAT_SUBVIEWER2 11
#define FORMAT_SUBRIP09 12
@@ -137,7 +137,7 @@ static inline void trail_space(char *s) {
} while(*copy);
}
size_t i = strlen(s) - 1;
- while (i > 0 && isspace(s[i]))
+ while (i > 0 && isspace(s[i]))
s[i--] = '\0';
}
@@ -148,24 +148,24 @@ static char *read_line_from_input(demux_sputext_t *this, char *line, off_t len)
off_t nread = 0;
char *s;
int linelen;
-
+
if ((len - this->buflen) > 512 && len < SUB_BUFSIZE) {
- if((nread = this->input->read(this->input,
+ if((nread = this->input->read(this->input,
&this->buf[this->buflen], len - this->buflen)) < 0) {
xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG, "read failed.\n");
return NULL;
}
}
-
+
this->buflen += nread;
this->buf[this->buflen] = '\0';
s = strchr(this->buf, '\n');
if (line && (s || this->buflen)) {
-
+
linelen = s ? (s - this->buf) + 1 : this->buflen;
-
+
memcpy(line, this->buf, linelen);
line[linelen] = '\0';
@@ -190,14 +190,14 @@ static subtitle_t *sub_read_line_sami(demux_sputext_t *this, subtitle_t *current
current->lines = current->start = 0;
current->end = -1;
state = 0;
-
+
/* read the first line */
if (!s)
if (!(s = read_line_from_input(this, line, LINE_LEN))) return 0;
-
+
do {
switch (state) {
-
+
case 0: /* find "START=" */
s = strstr (s, "Start=");
if (s) {
@@ -205,15 +205,15 @@ static subtitle_t *sub_read_line_sami(demux_sputext_t *this, subtitle_t *current
state = 1; continue;
}
break;
-
+
case 1: /* find "<P" */
if ((s = strstr (s, "<P"))) { s += 2; state = 2; continue; }
break;
-
+
case 2: /* find ">" */
if ((s = strchr (s, '>'))) { s++; state = 3; p = text; continue; }
break;
-
+
case 3: /* get all text until '<' appears */
if (*s == '\0') { break; }
else if (*s == '<') { state = 4; }
@@ -227,7 +227,7 @@ static subtitle_t *sub_read_line_sami(demux_sputext_t *this, subtitle_t *current
}
else *p++ = *s++;
continue;
-
+
case 4: /* get current->end or skip <TAG> */
q = strstr (s, "Start=");
if (q) {
@@ -242,13 +242,13 @@ static subtitle_t *sub_read_line_sami(demux_sputext_t *this, subtitle_t *current
if (s) { s++; state = 3; continue; }
break;
}
-
+
/* read next line */
- if (state != 99 && !(s = read_line_from_input (this, line, LINE_LEN)))
+ if (state != 99 && !(s = read_line_from_input (this, line, LINE_LEN)))
return 0;
-
+
} while (state != 99);
-
+
return current;
}
@@ -256,16 +256,16 @@ static subtitle_t *sub_read_line_sami(demux_sputext_t *this, subtitle_t *current
static char *sub_readtext(char *source, char **dest) {
int len=0;
char *p=source;
-
+
while ( !eol(*p) && *p!= '|' ) {
p++,len++;
}
-
+
*dest = strndup(source, len);
-
+
while (*p=='\r' || *p=='\n' || *p=='|')
p++;
-
+
if (*p) return p; /* not-last text field */
else return NULL; /* last text field */
}
@@ -276,30 +276,30 @@ static subtitle_t *sub_read_line_microdvd(demux_sputext_t *this, subtitle_t *cur
char line2[LINE_LEN + 1];
char *p, *next;
int i;
-
+
memset (current, 0, sizeof(subtitle_t));
-
+
current->end=-1;
do {
if (!read_line_from_input (this, line, LINE_LEN)) return NULL;
} while ((sscanf (line, "{%ld}{}%" LINE_LEN_QUOT "[^\r\n]", &(current->start), line2) !=2) &&
(sscanf (line, "{%ld}{%ld}%" LINE_LEN_QUOT "[^\r\n]", &(current->start), &(current->end),line2) !=3)
);
-
+
p=line2;
-
+
next=p, i=0;
while ((next =sub_readtext (next, &(current->text[i])))) {
if (current->text[i]==ERR) return ERR;
i++;
- if (i>=SUB_MAX_TEXT) {
+ if (i>=SUB_MAX_TEXT) {
xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG, "Too many lines in a subtitle\n");
current->lines=i;
return current;
}
}
current->lines= ++i;
-
+
return current;
}
@@ -309,9 +309,9 @@ static subtitle_t *sub_read_line_subviewer(demux_sputext_t *this, subtitle_t *cu
int a1,a2,a3,a4,b1,b2,b3,b4;
char *p=NULL, *q=NULL;
int len;
-
+
memset (current, 0, sizeof(subtitle_t));
-
+
while (1) {
if (!read_line_from_input(this, line, LINE_LEN)) return NULL;
if (sscanf (line, "%d:%d:%d.%d,%d:%d:%d.%d",&a1,&a2,&a3,&a4,&b1,&b2,&b3,&b4) < 8) {
@@ -320,10 +320,10 @@ static subtitle_t *sub_read_line_subviewer(demux_sputext_t *this, subtitle_t *cu
}
current->start = a1*360000+a2*6000+a3*100+a4;
current->end = b1*360000+b2*6000+b3*100+b4;
-
+
if (!read_line_from_input(this, line, LINE_LEN))
return NULL;
-
+
p=q=line;
for (current->lines=1; current->lines <= SUB_MAX_TEXT; current->lines++) {
for (q=p,len=0; *p && *p!='\r' && *p!='\n' && *p!='|' && strncasecmp(p,"[br]",4); p++,len++);
@@ -343,7 +343,7 @@ static subtitle_t *sub_read_line_subrip(demux_sputext_t *this,subtitle_t *curren
char line[LINE_LEN + 1];
int a1,a2,a3,a4,b1,b2,b3,b4;
int i,end_sub;
-
+
memset(current,0,sizeof(subtitle_t));
do {
if(!read_line_from_input(this,line,LINE_LEN))
@@ -411,9 +411,9 @@ static subtitle_t *sub_read_line_vplayer(demux_sputext_t *this,subtitle_t *curre
int a1,a2,a3,b1,b2,b3;
char *p=NULL, *next, *p2;
int i;
-
+
memset (current, 0, sizeof(subtitle_t));
-
+
while (!current->text[0]) {
if( this->next_line[0] == '\0' ) { /* if the buffer is empty.... */
if( !read_line_from_input(this, line, LINE_LEN) ) return NULL;
@@ -433,24 +433,24 @@ static subtitle_t *sub_read_line_vplayer(demux_sputext_t *this,subtitle_t *curre
continue;
current->start = a1*360000+a2*6000+a3*100;
current->end = b1*360000+b2*6000+b3*100;
- if ((current->end - current->start) > LINE_LEN)
+ if ((current->end - current->start) > LINE_LEN)
current->end = current->start + LINE_LEN; /* not too long though. */
/* teraz czas na wkopiowanie stringu */
p=line;
/* finds the body of the subtitle_t */
- for (i=0; i<3; i++){
+ for (i=0; i<3; i++){
p2=strchr( p, ':');
if( p2 == NULL ) break;
p=p2+1;
- }
-
+ }
+
next=p;
i=0;
while( (next = sub_readtext( next, &(current->text[i]))) ) {
- if (current->text[i]==ERR)
+ if (current->text[i]==ERR)
return ERR;
i++;
- if (i>=SUB_MAX_TEXT) {
+ if (i>=SUB_MAX_TEXT) {
xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG, "Too many lines in a subtitle\n");
current->lines=i;
return current;
@@ -463,17 +463,17 @@ static subtitle_t *sub_read_line_vplayer(demux_sputext_t *this,subtitle_t *curre
static subtitle_t *sub_read_line_rt(demux_sputext_t *this,subtitle_t *current) {
/*
- * TODO: This format uses quite rich (sub/super)set of xhtml
+ * TODO: This format uses quite rich (sub/super)set of xhtml
* I couldn't check it since DTD is not included.
- * WARNING: full XML parses can be required for proper parsing
+ * WARNING: full XML parses can be required for proper parsing
*/
char line[LINE_LEN + 1];
int a1,a2,a3,a4,b1,b2,b3,b4;
char *p=NULL,*next=NULL;
int i,len,plen;
-
+
memset (current, 0, sizeof(subtitle_t));
-
+
while (!current->text[0]) {
if (!read_line_from_input(this, line, LINE_LEN)) return NULL;
/*
@@ -481,14 +481,14 @@ static subtitle_t *sub_read_line_rt(demux_sputext_t *this,subtitle_t *current) {
* to describe the same moment in time. Maybe there are even more formats in use.
*/
if ((len=sscanf (line, "<Time Begin=\"%d:%d:%d.%d\" End=\"%d:%d:%d.%d\"",&a1,&a2,&a3,&a4,&b1,&b2,&b3,&b4)) < 8)
-
+
plen=a1=a2=a3=a4=b1=b2=b3=b4=0;
if (
((len=sscanf (line, "<%*[tT]ime %*[bB]egin=\"%d:%d\" %*[Ee]nd=\"%d:%d\"%*[^<]<clear/>%n",&a2,&a3,&b2,&b3,&plen)) < 4) &&
((len=sscanf (line, "<%*[tT]ime %*[bB]egin=\"%d:%d\" %*[Ee]nd=\"%d:%d.%d\"%*[^<]<clear/>%n",&a2,&a3,&b2,&b3,&b4,&plen)) < 5) &&
/* ((len=sscanf (line, "<%*[tT]ime %*[bB]egin=\"%d:%d.%d\" %*[Ee]nd=\"%d:%d\"%*[^<]<clear/>%n",&a2,&a3,&a4,&b2,&b3,&plen)) < 5) && */
((len=sscanf (line, "<%*[tT]ime %*[bB]egin=\"%d:%d.%d\" %*[Ee]nd=\"%d:%d.%d\"%*[^<]<clear/>%n",&a2,&a3,&a4,&b2,&b3,&b4,&plen)) < 6) &&
- ((len=sscanf (line, "<%*[tT]ime %*[bB]egin=\"%d:%d:%d.%d\" %*[Ee]nd=\"%d:%d:%d.%d\"%*[^<]<clear/>%n",&a1,&a2,&a3,&a4,&b1,&b2,&b3,&b4,&plen)) < 8)
+ ((len=sscanf (line, "<%*[tT]ime %*[bB]egin=\"%d:%d:%d.%d\" %*[Ee]nd=\"%d:%d:%d.%d\"%*[^<]<clear/>%n",&a1,&a2,&a3,&a4,&b1,&b2,&b3,&b4,&plen)) < 8)
)
continue;
current->start = a1*360000+a2*6000+a3*100+a4/10;
@@ -497,10 +497,10 @@ static subtitle_t *sub_read_line_rt(demux_sputext_t *this,subtitle_t *current) {
/* TODO: I don't know what kind of convention is here for marking multiline subs, maybe <br/> like in xml? */
next = strstr(line,"<clear/>")+8;i=0;
while ((next =sub_readtext (next, &(current->text[i])))) {
- if (current->text[i]==ERR)
+ if (current->text[i]==ERR)
return ERR;
i++;
- if (i>=SUB_MAX_TEXT) {
+ if (i>=SUB_MAX_TEXT) {
xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG, "Too many lines in a subtitle\n");
current->lines=i;
return current;
@@ -515,47 +515,47 @@ static subtitle_t *sub_read_line_ssa(demux_sputext_t *this,subtitle_t *current)
int comma;
static int max_comma = 32; /* let's use 32 for the case that the */
/* amount of commas increase with newer SSA versions */
-
+
int hour1, min1, sec1, hunsec1, hour2, min2, sec2, hunsec2, nothing;
int num;
char line[LINE_LEN + 1], line3[LINE_LEN + 1], *line2;
char *tmp;
-
+
do {
if (!read_line_from_input(this, line, LINE_LEN)) return NULL;
} while (sscanf (line, "Dialogue: Marked=%d,%d:%d:%d.%d,%d:%d:%d.%d,"
"%[^\n\r]", &nothing,
- &hour1, &min1, &sec1, &hunsec1,
+ &hour1, &min1, &sec1, &hunsec1,
&hour2, &min2, &sec2, &hunsec2,
line3) < 9
&&
sscanf (line, "Dialogue: %d,%d:%d:%d.%d,%d:%d:%d.%d,"
"%[^\n\r]", &nothing,
- &hour1, &min1, &sec1, &hunsec1,
+ &hour1, &min1, &sec1, &hunsec1,
&hour2, &min2, &sec2, &hunsec2,
line3) < 9 );
-
+
line2=strchr(line3, ',');
if (!line2)
return NULL;
-
+
for (comma = 4; comma < max_comma; comma ++)
{
tmp = line2;
if(!(tmp=strchr(++tmp, ','))) break;
- if(*(++tmp) == ' ') break;
+ if(*(++tmp) == ' ') break;
/* a space after a comma means we're already in a sentence */
line2 = tmp;
}
-
+
if(comma < max_comma)max_comma = comma;
/* eliminate the trailing comma */
if(*line2 == ',') line2++;
-
+
current->lines=0;num=0;
current->start = 360000*hour1 + 6000*min1 + 100*sec1 + hunsec1;
current->end = 360000*hour2 + 6000*min2 + 100*sec2 + hunsec2;
-
+
while (((tmp=strstr(line2, "\\n")) != NULL) || ((tmp=strstr(line2, "\\N")) != NULL) ){
current->text[num] = strndup(line2, tmp-line2);
line2=tmp+2;
@@ -563,10 +563,10 @@ static subtitle_t *sub_read_line_ssa(demux_sputext_t *this,subtitle_t *current)
current->lines++;
if (current->lines >= SUB_MAX_TEXT) return current;
}
-
+
current->text[num]=strdup(line2);
current->lines++;
-
+
return current;
}
@@ -585,9 +585,9 @@ static subtitle_t *sub_read_line_pjs (demux_sputext_t *this, subtitle_t *current
char line[LINE_LEN + 1];
char text[LINE_LEN + 1];
char *s, *d;
-
+
memset (current, 0, sizeof(subtitle_t));
-
+
if (!read_line_from_input(this, line, LINE_LEN))
return NULL;
for (s = line; *s && isspace(*s); s++);
@@ -599,7 +599,7 @@ static subtitle_t *sub_read_line_pjs (demux_sputext_t *this, subtitle_t *current
/* the files I have are in tenths of second */
current->start *= 10;
current->end *= 10;
-
+
/* walk to the beggining of the string */
for (; *s; s++) if (*s==',') break;
if (*s) {
@@ -615,7 +615,7 @@ static subtitle_t *sub_read_line_pjs (demux_sputext_t *this, subtitle_t *current
*d=0;
current->text[0] = strdup(text);
current->lines = 1;
-
+
return current;
}
@@ -624,9 +624,9 @@ static subtitle_t *sub_read_line_mpsub (demux_sputext_t *this, subtitle_t *curre
float a,b;
int num=0;
char *p, *q;
-
+
do {
- if (!read_line_from_input(this, line, LINE_LEN))
+ if (!read_line_from_input(this, line, LINE_LEN))
return NULL;
} while (sscanf (line, "%f %f", &a, &b) !=2);
@@ -634,21 +634,21 @@ static subtitle_t *sub_read_line_mpsub (demux_sputext_t *this, subtitle_t *curre
current->start = (int) this->mpsub_position;
this->mpsub_position += (b*100.0);
current->end = (int) this->mpsub_position;
-
+
while (num < SUB_MAX_TEXT) {
- if (!read_line_from_input(this, line, LINE_LEN))
+ if (!read_line_from_input(this, line, LINE_LEN))
return NULL;
p=line;
- while (isspace(*p))
+ while (isspace(*p))
p++;
- if (eol(*p) && num > 0)
+ if (eol(*p) && num > 0)
return current;
- if (eol(*p))
+ if (eol(*p))
return NULL;
-
+
for (q=p; !eol(*q); q++);
*q='\0';
if (strlen(p)) {
@@ -656,9 +656,9 @@ static subtitle_t *sub_read_line_mpsub (demux_sputext_t *this, subtitle_t *curre
xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG, ">%s<\n",p);
current->lines = ++num;
} else {
- if (num)
+ if (num)
return current;
- else
+ else
return NULL;
}
}
@@ -678,24 +678,24 @@ static subtitle_t *sub_read_line_aqt (demux_sputext_t *this, subtitle_t *current
if (!(sscanf (line, "-->> %ld", &(current->start)) <1))
break;
}
-
+
if (!read_line_from_input(this, line, LINE_LEN))
return NULL;
-
+
sub_readtext((char *) &line,&current->text[0]);
current->lines = 1;
current->end = -1;
-
+
if (!read_line_from_input(this, line, LINE_LEN))
return current;;
-
+
sub_readtext((char *) &line,&current->text[1]);
current->lines = 2;
-
+
if ((current->text[0][0]==0) && (current->text[1][0]==0)) {
return NULL;
}
-
+
return current;
}
@@ -856,13 +856,13 @@ static subtitle_t *sub_read_line_jacobsub(demux_sputext_t *this, subtitle_t *cur
++p,++p;
break;
}
- if ((*(p + 1) == 'B') || (*(p + 1) == 'b') ||
+ if ((*(p + 1) == 'B') || (*(p + 1) == 'b') ||
/* actually this means "insert current date here" */
- (*(p + 1) == 'D') ||
- (*(p + 1) == 'I') || (*(p + 1) == 'i') ||
- (*(p + 1) == 'N') ||
+ (*(p + 1) == 'D') ||
+ (*(p + 1) == 'I') || (*(p + 1) == 'i') ||
+ (*(p + 1) == 'N') ||
/* actually this means "insert current time here" */
- (*(p + 1) == 'T') ||
+ (*(p + 1) == 'T') ||
(*(p + 1) == 'U') || (*(p + 1) == 'u')) {
++p;
break;
@@ -901,7 +901,7 @@ static subtitle_t *sub_read_line_subviewer2(demux_sputext_t *this, subtitle_t *c
int a1,a2,a3,a4;
char *p=NULL;
int i,len;
-
+
while (!current->text[0]) {
if (!read_line_from_input(this, line, LINE_LEN)) return NULL;
if (line[0]!='{')
@@ -932,9 +932,9 @@ static subtitle_t *sub_read_line_subrip09 (demux_sputext_t *this, subtitle_t *cu
char *next;
int h, m, s;
int i;
-
+
memset (current, 0, sizeof(subtitle_t));
-
+
do {
if (!read_line_from_input (this, line, LINE_LEN)) return NULL;
} while (sscanf (line, "[%d:%d:%d]", &h, &m, &s) != 3);
@@ -949,14 +949,14 @@ static subtitle_t *sub_read_line_subrip09 (demux_sputext_t *this, subtitle_t *cu
while ((next = sub_readtext (next, &(current->text[i])))) {
if (current->text[i]==ERR) return ERR;
i++;
- if (i>=SUB_MAX_TEXT) {
+ if (i>=SUB_MAX_TEXT) {
xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG, "Too many lines in a subtitle\n");
current->lines=i;
return current;
}
}
current->lines= ++i;
-
+
return current;
}
@@ -1002,7 +1002,7 @@ static int sub_autodetect (demux_sputext_t *this) {
char line[LINE_LEN + 1];
int i, j=0;
char p;
-
+
while (j < 100) {
j++;
if (!read_line_from_input(this, line, LINE_LEN))
@@ -1034,7 +1034,7 @@ static int sub_autodetect (demux_sputext_t *this) {
}
if (strstr (line, "<SAMI>")) {
- this->uses_time=1;
+ this->uses_time=1;
xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG, "sami subtitle format detected\n");
return FORMAT_SAMI;
}
@@ -1053,7 +1053,7 @@ static int sub_autodetect (demux_sputext_t *this) {
return FORMAT_RT;
}
if ((!memcmp(line, "Dialogue: Marked", 16)) || (!memcmp(line, "Dialogue: ", 10))) {
- this->uses_time=1;
+ this->uses_time=1;
xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG, "ssa subtitle format detected\n");
return FORMAT_SSA;
}
@@ -1063,17 +1063,17 @@ static int sub_autodetect (demux_sputext_t *this) {
return FORMAT_PJS;
}
if (sscanf (line, "FORMAT=%d", &i) == 1) {
- this->uses_time=0;
+ this->uses_time=0;
xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG, "mpsub subtitle format detected\n");
return FORMAT_MPSUB;
}
if (sscanf (line, "FORMAT=TIM%c", &p)==1 && p=='E') {
- this->uses_time=1;
+ this->uses_time=1;
xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG, "mpsub subtitle format detected\n");
return FORMAT_MPSUB;
}
if (strstr (line, "-->>")) {
- this->uses_time=0;
+ this->uses_time=0;
xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG, "aqtitle subtitle format detected\n");
return FORMAT_AQTITLE;
}
@@ -1093,7 +1093,7 @@ static int sub_autodetect (demux_sputext_t *this) {
xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG, "subrip 0.9 subtitle format detected\n");
return FORMAT_SUBRIP09;
}
-
+
if (sscanf (line, "[%d][%d]", &i, &i) == 2) {
this->uses_time = 1;
xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG, "mpl2 subtitle format detected\n");
@@ -1140,7 +1140,7 @@ static subtitle_t *sub_read_file (demux_sputext_t *this) {
}
xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG, "Detected subtitle file format: %d\n",this->format);
-
+
/* Rewind */
if(this->input->seek(this->input, 0, SEEK_SET) == -1) {
xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG, "seek failed.\n");
@@ -1166,15 +1166,15 @@ static subtitle_t *sub_read_file (demux_sputext_t *this) {
sub = func[this->format] (this, &first[this->num]);
- if (!sub)
+ if (!sub)
break; /* EOF */
- if (sub==ERR)
- ++this->errs;
+ if (sub==ERR)
+ ++this->errs;
else {
if (this->num > 0 && first[this->num-1].end == -1) {
/* end time not defined in the subtitle */
- if (timeout > 0) {
+ if (timeout > 0) {
/* timeout */
if (timeout > sub->start - first[this->num-1].start) {
first[this->num-1].end = sub->start;
@@ -1199,14 +1199,14 @@ static subtitle_t *sub_read_file (demux_sputext_t *this) {
sprintf(buffer, "Read %i subtitles", this->num);
- if(this->errs)
+ if(this->errs)
sprintf(buffer + strlen(buffer), ", %i bad line(s).\n", this->errs);
else
strcat(buffer, "\n");
-
+
xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG, "%s", buffer);
}
-
+
return first;
}
@@ -1217,12 +1217,12 @@ static int demux_sputext_next (demux_sputext_t *this_gen) {
char *str;
subtitle_t *sub;
int line;
-
+
if (this->cur >= this->num)
return 0;
sub = &this->subtitles[this->cur];
-
+
buf = this->stream->video_fifo->buffer_pool_alloc(this->stream->video_fifo);
buf->type = BUF_SPU_TEXT;
buf->pts = 0;
@@ -1237,17 +1237,17 @@ static int demux_sputext_next (demux_sputext_t *this_gen) {
strncpy(str, sub->text[line], SUB_BUFSIZE-1);
str[SUB_BUFSIZE-1] = '\0';
}
-
+
this->stream->video_fifo->put(this->stream->video_fifo, buf);
this->cur++;
-
+
return 1;
}
static void demux_sputext_dispose (demux_plugin_t *this_gen) {
demux_sputext_t *this = (demux_sputext_t *) this_gen;
int i, l;
-
+
for (i = 0; i < this->num; i++) {
for (l = 0; l < this->subtitles[i].lines; l++)
free(this->subtitles[i].text[l]);
@@ -1273,7 +1273,7 @@ static int demux_sputext_get_stream_length (demux_plugin_t *this_gen) {
static int demux_sputext_send_chunk (demux_plugin_t *this_gen) {
demux_sputext_t *this = (demux_sputext_t *) this_gen;
-
+
if (!demux_sputext_next (this)) {
this->status = DEMUX_FINISHED;
}
@@ -1287,25 +1287,25 @@ static int demux_sputext_seek (demux_plugin_t *this_gen,
lprintf("seek() called\n");
- /* simple seeking approach: just go back to start.
+ /* simple seeking approach: just go back to start.
* decoder will discard subtitles until the desired position.
*/
this->cur = 0;
this->status = DEMUX_OK;
-
+
_x_demux_flush_engine (this->stream);
_x_demux_control_newpts(this->stream, 0, 0);
-
+
return this->status;
}
static void demux_sputext_send_headers(demux_plugin_t *this_gen) {
demux_sputext_t *this = (demux_sputext_t*)this_gen;
buf_element_t *buf;
-
+
lprintf("send_headers() called\n");
-
+
_x_demux_control_start(this->stream);
_x_stream_info_set(this->stream, XINE_STREAM_INFO_HAS_VIDEO, 0);
_x_stream_info_set(this->stream, XINE_STREAM_INFO_HAS_AUDIO, 0);
@@ -1315,7 +1315,7 @@ static void demux_sputext_send_headers(demux_plugin_t *this_gen) {
buf->type = BUF_CONTROL_SPU_CHANNEL;
buf->decoder_info[0] = buf->decoder_info[1] = buf->decoder_info[2] = 0;
this->stream->video_fifo->put(this->stream->video_fifo, buf);
-
+
this->status = DEMUX_OK;
}
@@ -1345,7 +1345,7 @@ static demux_plugin_t *open_demux_plugin (demux_class_t *class_gen, xine_stream_
demux_sputext_t *this;
lprintf("open_plugin() called\n");
-
+
this = calloc(1, sizeof (demux_sputext_t));
this->stream = stream;
this->input = input;
@@ -1380,26 +1380,26 @@ static demux_plugin_t *open_demux_plugin (demux_class_t *class_gen, xine_stream_
}
}
/* falling through is intended */
-
+
case METHOD_EXPLICIT:
/* case METHOD_BY_CONTENT: */
-
+
/* FIXME: for now this demuxer only works when requested explicitly
* to make sure it does not interfere with others;
* If this is found too inconvenient, this may be changed after making
* sure the content detection does not produce any false positives.
*/
-
+
if ((input->get_capabilities(input) & INPUT_CAP_SEEKABLE) != 0) {
-
+
this->subtitles = sub_read_file (this);
this->cur = 0;
if (this->subtitles) {
- xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG, "subtitle format %s time.\n",
+ xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG, "subtitle format %s time.\n",
this->uses_time ? "uses" : "doesn't use");
- xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
"read %i subtitles, %i errors.\n", this->num, this->errs);
return &this->demux_plugin;
}
@@ -1410,7 +1410,7 @@ static demux_plugin_t *open_demux_plugin (demux_class_t *class_gen, xine_stream_
free (this);
return NULL;
}
-
+
static void config_timeout_cb(void *this_gen, xine_cfg_entry_t *entry) {
demux_sputext_class_t *this = (demux_sputext_class_t *)this_gen;
@@ -1434,13 +1434,13 @@ void *init_sputext_demux_class (xine_t *xine, void *data) {
this->demux_class.extensions = "asc txt sub srt smi ssa";
this->demux_class.dispose = default_demux_class_dispose;
- /*
+ /*
* Some subtitling formats, namely AQT and Subrip09, define the end of a
- * subtitle as the beginning of the following. From end-user view it's
+ * subtitle as the beginning of the following. From end-user view it's
* better define timeout of hidding. Setting to zero means "no timeout".
*/
- this->max_timeout = xine->config->register_num(xine->config,
- "subtitles.separate.timeout", 4,
+ this->max_timeout = xine->config->register_num(xine->config,
+ "subtitles.separate.timeout", 4,
_("default duration of subtitle display in seconds"),
_("Some subtitle formats do not explicitly give a duration for each subtitle. "
"For these, you can set a default duration here. Setting to zero will result "
diff --git a/src/spu_dec/xine_cc_decoder.c b/src/spu_dec/xine_cc_decoder.c
index d9a425d60..fc69304cc 100644
--- a/src/spu_dec/xine_cc_decoder.c
+++ b/src/spu_dec/xine_cc_decoder.c
@@ -1,23 +1,23 @@
/*
* Copyright (C) 2000-2008 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
*
- * closed caption spu decoder. receive data by events.
+ * closed caption spu decoder. receive data by events.
*/
#ifdef HAVE_CONFIG_H
@@ -47,7 +47,7 @@ typedef struct spucc_decoder_s {
spu_decoder_t spu_decoder;
xine_stream_t *stream;
-
+
/* closed captioning decoder state */
cc_decoder_t *ccdec;
/* true if ccdec has been initialized */
@@ -64,7 +64,7 @@ typedef struct spucc_decoder_s {
/* events will be sent here */
xine_event_queue_t *queue;
-
+
} spucc_decoder_t;
@@ -157,7 +157,7 @@ static void spucc_font_change(void *this_gen, xine_cfg_entry_t *value)
spucc_class_t *this = (spucc_class_t *) this_gen;
cc_config_t *cc_cfg = &this->cc_cfg;
char *font;
-
+
if (strcmp(value->key, "subtitles.closedcaption.font") == 0)
font = cc_cfg->font;
else
@@ -176,7 +176,7 @@ static void spucc_num_change(void *this_gen, xine_cfg_entry_t *value)
spucc_class_t *this = (spucc_class_t *) this_gen;
cc_config_t *cc_cfg = &this->cc_cfg;
int *num;
-
+
if (strcmp(value->key, "subtitles.closedcaption.font_size") == 0)
num = &cc_cfg->font_size;
else
@@ -200,7 +200,7 @@ static void spucc_register_cfg_vars(spucc_class_t *this,
_("Closed Captions are subtitles mostly meant "
"to help the hearing impaired."),
0, spucc_cfg_enable_change, this);
-
+
cc_vars->cc_scheme = xine_cfg->register_enum(xine_cfg,
"subtitles.closedcaption.scheme", 0,
(char **)cc_schemes,
@@ -208,27 +208,27 @@ static void spucc_register_cfg_vars(spucc_class_t *this,
_("Choose your favourite rendering of the closed "
"captions."),
10, spucc_cfg_scheme_change, this);
-
- copy_str(cc_vars->font,
+
+ copy_str(cc_vars->font,
xine_cfg->register_string(xine_cfg, "subtitles.closedcaption.font", "cc",
_("standard closed captioning font"),
_("Choose the font for standard closed captions text."),
20, spucc_font_change, this),
CC_FONT_MAX);
-
+
copy_str(cc_vars->italic_font,
xine_cfg->register_string(xine_cfg, "subtitles.closedcaption.italic_font", "cci",
_("italic closed captioning font"),
_("Choose the font for italic closed captions text."),
20, spucc_font_change, this),
CC_FONT_MAX);
-
+
cc_vars->font_size = xine_cfg->register_num(xine_cfg, "subtitles.closedcaption.font_size",
24,
_("closed captioning font size"),
_("Choose the font size for closed captions text."),
10, spucc_num_change, this);
-
+
cc_vars->center = xine_cfg->register_bool(xine_cfg, "subtitles.closedcaption.center", 1,
_("center-adjust closed captions"),
_("When enabled, closed captions will be positioned "
@@ -238,7 +238,7 @@ static void spucc_register_cfg_vars(spucc_class_t *this,
/* called when the video frame size changes */
-static void spucc_notify_frame_change(spucc_decoder_t *this,
+static void spucc_notify_frame_change(spucc_decoder_t *this,
int width, int height) {
#ifdef LOG_DEBUG
printf("spucc: new frame size: %dx%d\n", width, height);
@@ -255,14 +255,14 @@ static void spucc_notify_frame_change(spucc_decoder_t *this,
static void spudec_decode_data (spu_decoder_t *this_gen, buf_element_t *buf) {
spucc_decoder_t *this = (spucc_decoder_t *) this_gen;
xine_event_t *event;
-
+
while ((event = xine_event_get(this->queue))) {
switch (event->type) {
case XINE_EVENT_FRAME_FORMAT_CHANGE:
{
- xine_format_change_data_t *frame_change =
+ xine_format_change_data_t *frame_change =
(xine_format_change_data_t *)event->data;
-
+
spucc_notify_frame_change(this, frame_change->width,
frame_change->height);
}
@@ -270,17 +270,17 @@ static void spudec_decode_data (spu_decoder_t *this_gen, buf_element_t *buf) {
}
xine_event_free(event);
}
-
+
if (buf->decoder_flags & BUF_FLAG_PREVIEW) {
} else {
-
+
if (this->cc_state.cc_cfg->config_version > this->config_version) {
spucc_update_intrinsics(this);
if (!this->cc_state.cc_cfg->cc_enabled)
spucc_do_close(this);
this->config_version = this->cc_state.cc_cfg->config_version;
}
-
+
if (this->cc_state.cc_cfg->cc_enabled) {
if( !this->cc_open )
spucc_do_init (this);
@@ -290,7 +290,7 @@ static void spudec_decode_data (spu_decoder_t *this_gen, buf_element_t *buf) {
}
}
}
-}
+}
static void spudec_reset (spu_decoder_t *this_gen) {
}
@@ -342,7 +342,7 @@ static void *init_spu_decoder_plugin (xine_t *xine, void *data) {
spucc_register_cfg_vars(this, xine->config);
this->cc_cfg.config_version = 0;
-
+
return &this->spu_class;
}
@@ -355,7 +355,7 @@ static const decoder_info_t spudec_info = {
};
const plugin_info_t xine_plugin_info[] EXPORTED = {
- /* type, API, "name", version, special_info, init_function */
+ /* type, API, "name", version, special_info, init_function */
{ PLUGIN_SPU_DECODER, 17, "spucc", XINE_VERSION_CODE, &spudec_info, &init_spu_decoder_plugin },
{ PLUGIN_NONE, 0, "", 0, NULL, NULL }
};
diff --git a/src/vdr/combined_vdr.c b/src/vdr/combined_vdr.c
index f067798c5..0dd7a5f26 100644
--- a/src/vdr/combined_vdr.c
+++ b/src/vdr/combined_vdr.c
@@ -1,23 +1,23 @@
/*
* Copyright (C) 2000-2004 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
*/
-
+
/*
* plugins for VDR
*/
@@ -34,7 +34,7 @@ static const post_info_t vdr_audio_special_info = { XINE_POST_TYPE_AUDIO_FILTER
/* exported plugin catalog entry */
const plugin_info_t xine_plugin_info[] EXPORTED =
{
- /* type , API, "name" , version , special_info , init_function */
+ /* type , API, "name" , version , special_info , init_function */
{ PLUGIN_INPUT, 18, "VDR" , XINE_VERSION_CODE, NULL , &vdr_input_init_plugin },
{ PLUGIN_POST , 10, "vdr" , XINE_VERSION_CODE, &vdr_video_special_info, &vdr_video_init_plugin },
{ PLUGIN_POST , 10, "vdr_video", XINE_VERSION_CODE, &vdr_video_special_info, &vdr_video_init_plugin },
diff --git a/src/vdr/input_vdr.c b/src/vdr/input_vdr.c
index 273c2bc87..999f2e406 100644
--- a/src/vdr/input_vdr.c
+++ b/src/vdr/input_vdr.c
@@ -2,17 +2,17 @@
* Copyright (C) 2003-2004 the xine project
*
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -75,7 +75,7 @@ vdr_metronom_t;
typedef struct vdr_osd_s
{
xine_osd_t *window;
- uint8_t *argb_buffer;
+ uint8_t *argb_buffer;
int width;
int height;
}
@@ -95,7 +95,7 @@ struct vdr_vpts_offset_s
struct vdr_input_plugin_s
{
input_plugin_t input_plugin;
-
+
xine_stream_t *stream;
xine_stream_t *stream_external;
@@ -103,15 +103,15 @@ struct vdr_input_plugin_s
int fh_control;
int fh_result;
int fh_event;
-
+
char *mrl;
off_t curpos;
char seek_buf[ BUF_SIZE ];
-
+
char *preview;
off_t preview_size;
-
+
enum funcs cur_func;
off_t cur_size;
off_t cur_done;
@@ -128,12 +128,12 @@ struct vdr_input_plugin_s
uint8_t volume_mode;
int last_volume;
vdr_frame_size_changed_data_t frame_size;
-
+
uint8_t trick_speed_mode;
uint8_t trick_speed_mode_blocked;
pthread_mutex_t trick_speed_mode_lock;
pthread_cond_t trick_speed_mode_cond;
-
+
pthread_t rpc_thread;
int rpc_thread_shutdown;
pthread_mutex_t rpc_thread_shutdown_lock;
@@ -187,7 +187,7 @@ vdr_input_class_t;
static int vdr_write(int f, void *b, int n)
{
int t = 0, r;
-
+
while (t < n)
{
/*
@@ -206,13 +206,13 @@ static int vdr_write(int f, void *b, int n)
{
continue;
}
-
+
if (r < 0)
return r;
-
+
t += r;
}
-
+
return t;
}
@@ -224,7 +224,7 @@ static void event_handler_external(void *user_data, const xine_event_t *event)
{
vdr_input_plugin_t *this = (vdr_input_plugin_t *)user_data;
uint32_t key = key_none;
-/*
+/*
printf("event_handler_external(): event->type: %d\n", event->type);
*/
switch (event->type)
@@ -234,17 +234,17 @@ static void event_handler_external(void *user_data, const xine_event_t *event)
default:
return;
- }
-
+ }
+
if (0 != internal_write_event_play_external(this, key))
- xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
_("%s: input event write: %s.\n"), LOG_MODULE, strerror(errno));
}
static void external_stream_stop(vdr_input_plugin_t *this)
{
if (this->stream_external)
- {
+ {
xine_stop(this->stream_external);
xine_close(this->stream_external);
@@ -255,8 +255,8 @@ static void external_stream_stop(vdr_input_plugin_t *this)
}
_x_demux_flush_engine(this->stream_external);
-
- xine_dispose(this->stream_external);
+
+ xine_dispose(this->stream_external);
this->stream_external = 0;
}
}
@@ -266,7 +266,7 @@ static void external_stream_play(vdr_input_plugin_t *this, char *file_name)
external_stream_stop(this);
this->stream_external = xine_stream_new(this->stream->xine, this->stream->audio_out, this->stream->video_out);
-
+
this->event_queue_external = xine_event_new_queue(this->stream_external);
xine_event_create_listener_thread(this->event_queue_external, event_handler_external, this);
@@ -275,17 +275,17 @@ static void external_stream_play(vdr_input_plugin_t *this, char *file_name)
|| !xine_play(this->stream_external, 0, 0))
{
uint32_t key = key_none;
-
+
if ( 0 != internal_write_event_play_external(this, key))
- xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
_("%s: input event write: %s.\n"), LOG_MODULE, strerror(errno));
}
}
static off_t vdr_read_abort(xine_stream_t *stream, int fd, char *buf, off_t todo)
-{
+{
off_t ret;
-
+
while (1)
{
/*
@@ -297,14 +297,14 @@ static off_t vdr_read_abort(xine_stream_t *stream, int fd, char *buf, off_t todo
pthread_testcancel();
ret = _x_read_abort(stream, fd, buf, todo);
pthread_testcancel();
-
+
if (ret < 0
&& (errno == EINTR
|| errno == EAGAIN))
{
continue;
}
-
+
break;
}
@@ -320,12 +320,12 @@ static off_t vdr_read_abort(xine_stream_t *stream, int fd, char *buf, off_t todo
return -1; \
\
this->cur_size -= n; \
- }
+ }
static double _now()
{
struct timeval tv;
-
+
gettimeofday(&tv, 0);
return (tv.tv_sec * 1000000.0 + tv.tv_usec) / 1000.0;
@@ -333,7 +333,7 @@ static double _now()
static void adjust_zoom(vdr_input_plugin_t *this)
{
- pthread_mutex_lock(&this->adjust_zoom_lock);
+ pthread_mutex_lock(&this->adjust_zoom_lock);
if (this->image4_3_zoom_x && this->image4_3_zoom_y
&& this->image16_9_zoom_x && this->image16_9_zoom_y)
@@ -352,7 +352,7 @@ static void adjust_zoom(vdr_input_plugin_t *this)
}
}
- pthread_mutex_unlock(&this->adjust_zoom_lock);
+ pthread_mutex_unlock(&this->adjust_zoom_lock);
}
@@ -382,11 +382,11 @@ static off_t vdr_execute_rpc_command(vdr_input_plugin_t *this)
{
data_union_t data_union;
off_t n;
-
+
n = vdr_read_abort(this->stream, this->fh_control, (char *)&data_union, sizeof (data_union.header));
if (n != sizeof (data_union.header))
return -1;
-
+
this->cur_func = data_union.header.func;
this->cur_size = data_union.header.len - sizeof (data_union.header);
this->cur_done = 0;
@@ -406,10 +406,10 @@ static off_t vdr_execute_rpc_command(vdr_input_plugin_t *this)
LOG_OSD(lprintf("... (%d,%d)-(%d,%d)@(%d,%d)\n", data->x, data->y, data->width, data->height, data->w_ref, data->h_ref));
fprintf(stderr, "vdr: osdnew %d\n", data->window);
-*/
+*/
if (data->window >= VDR_MAX_NUM_WINDOWS)
return -1;
-
+
if (0 != this->osd[ data->window ].window)
return -1;
@@ -421,7 +421,7 @@ static off_t vdr_execute_rpc_command(vdr_input_plugin_t *this)
this->osd[ data->window ].width = data->width;
this->osd[ data->window ].height = data->height;
-
+
if (0 == this->osd[ data->window ].window)
return -1;
@@ -433,12 +433,12 @@ static off_t vdr_execute_rpc_command(vdr_input_plugin_t *this)
case func_osd_free:
{
READ_DATA_OR_FAIL(osd_free, LOG_OSD(lprintf("got OSDFREE\n")));
-/*
+/*
fprintf(stderr, "vdr: osdfree %d\n", data->window);
-*/
+*/
if (data->window >= VDR_MAX_NUM_WINDOWS)
return -1;
-
+
if (0 != this->osd[ data->window ].window)
xine_osd_free(this->osd[ data->window ].window);
@@ -448,16 +448,16 @@ static off_t vdr_execute_rpc_command(vdr_input_plugin_t *this)
this->osd[ data->window ].argb_buffer = 0;
}
break;
-
+
case func_osd_show:
{
READ_DATA_OR_FAIL(osd_show, LOG_OSD(lprintf("got OSDSHOW\n")));
-/*
+/*
fprintf(stderr, "vdr: osdshow %d\n", data->window);
-*/
+*/
if (data->window >= VDR_MAX_NUM_WINDOWS)
return -1;
-
+
if (0 != this->osd[ data->window ].window)
{
#ifdef XINE_OSD_CAP_VIDEO_WINDOW
@@ -474,34 +474,34 @@ static off_t vdr_execute_rpc_command(vdr_input_plugin_t *this)
}
}
break;
-
+
case func_osd_hide:
{
READ_DATA_OR_FAIL(osd_hide, LOG_OSD(lprintf("got OSDHIDE\n")));
-/*
+/*
fprintf(stderr, "vdr: osdhide %d\n", data->window);
-*/
+*/
if (data->window >= VDR_MAX_NUM_WINDOWS)
return -1;
-
+
if (0 != this->osd[ data->window ].window)
xine_osd_hide(this->osd[ data->window ].window, 0);
}
break;
-
+
case func_osd_flush:
{
double _t1, _t2;
int _n = 0;
int _to = 0;
int r = 0;
-
+
READ_DATA_OR_FAIL(osd_flush, LOG_OSD(lprintf("got OSDFLUSH\n")));
-/*
+/*
fprintf(stderr, "vdr: osdflush +\n");
*/
_t1 = _now();
-
+
while ((r = _x_query_unprocessed_osd_events(this->stream)))
{
if ((_now() - _t1) > 200)
@@ -509,9 +509,9 @@ static off_t vdr_execute_rpc_command(vdr_input_plugin_t *this)
_to = 1;
break;
}
-/*
+/*
fprintf(stderr, "redraw_needed: 1\n");
-*/
+*/
/* sched_yield(); */
xine_usec_sleep(5000);
_n++;
@@ -519,57 +519,57 @@ static off_t vdr_execute_rpc_command(vdr_input_plugin_t *this)
_t2 = _now();
fprintf(stderr, "vdr: osdflush: n: %d, %.1lf, timeout: %d, result: %d\n", _n, _t2 - _t1, _to, r);
-/*
- fprintf(stderr, "redraw_needed: 0\n");
-
+/*
+ fprintf(stderr, "redraw_needed: 0\n");
+
fprintf(stderr, "vdr: osdflush -\n");
*/
}
break;
-
+
case func_osd_set_position:
{
READ_DATA_OR_FAIL(osd_set_position, LOG_OSD(lprintf("got OSDSETPOSITION\n")));
/*
- fprintf(stderr, "vdr: osdsetposition %d\n", data->window);
-*/
+ fprintf(stderr, "vdr: osdsetposition %d\n", data->window);
+*/
if (data->window >= VDR_MAX_NUM_WINDOWS)
return -1;
-
+
if (0 != this->osd[ data->window ].window)
xine_osd_set_position(this->osd[ data->window ].window, data->x, data->y);
}
break;
-
+
case func_osd_draw_bitmap:
{
READ_DATA_OR_FAIL(osd_draw_bitmap, LOG_OSD(lprintf("got OSDDRAWBITMAP\n")));
/*
fprintf(stderr, "vdr: osddrawbitmap %d, %d, %d, %d, %d, %d\n", data->window, data->x, data->y, data->width, data->height, data->argb);
-*/
+*/
if (this->osd_buffer_size < this->cur_size)
{
if (this->osd_buffer)
free(this->osd_buffer);
-
+
this->osd_buffer_size = 0;
-
+
this->osd_buffer = xine_xmalloc(this->cur_size);
if (!this->osd_buffer)
return -1;
-
+
this->osd_buffer_size = this->cur_size;
}
-
+
n = vdr_read_abort (this->stream, this->fh_control, (char *)this->osd_buffer, this->cur_size);
if (n != this->cur_size)
return -1;
-
+
this->cur_size -= n;
-
+
if (data->window >= VDR_MAX_NUM_WINDOWS)
return -1;
-
+
if (0 != this->osd[ data->window ].window)
{
vdr_osd_t *osd = &this->osd[ data->window ];
@@ -599,7 +599,7 @@ static off_t vdr_execute_rpc_command(vdr_input_plugin_t *this)
}
}
}
-
+
xine_osd_set_argb_buffer(osd->window, (uint32_t *)osd->argb_buffer, data->x, data->y, data->width, data->height);
}
else
@@ -607,42 +607,42 @@ static off_t vdr_execute_rpc_command(vdr_input_plugin_t *this)
}
}
break;
-
+
case func_set_color:
{
uint32_t vdr_color[ 256 ];
-
+
READ_DATA_OR_FAIL(set_color, lprintf("got SETCOLOR\n"));
-
+
if (((data->num + 1) * sizeof (uint32_t)) != this->cur_size)
return -1;
-
+
n = vdr_read_abort (this->stream, this->fh_control, (char *)&vdr_color[ data->index ], this->cur_size);
if (n != this->cur_size)
return -1;
-
+
this->cur_size -= n;
-
+
if (data->window >= VDR_MAX_NUM_WINDOWS)
return -1;
-
+
if (0 != this->osd[ data->window ].window)
{
uint32_t color[ 256 ];
uint8_t trans[ 256 ];
-
+
xine_osd_get_palette(this->osd[ data->window ].window, color, trans);
-
+
{
int i;
-
+
for (i = data->index; i <= (data->index + data->num); i++)
{
int a = (vdr_color[ i ] & 0xff000000) >> 0x18;
int r = (vdr_color[ i ] & 0x00ff0000) >> 0x10;
int g = (vdr_color[ i ] & 0x0000ff00) >> 0x08;
int b = (vdr_color[ i ] & 0x000000ff) >> 0x00;
-
+
int y = (( 66 * r + 129 * g + 25 * b + 128) >> 8) + 16;
int cr = ((112 * r - 94 * g - 18 * b + 128) >> 8) + 128;
int cb = ((-38 * r - 74 * g + 112 * b + 128) >> 8) + 128;
@@ -656,7 +656,7 @@ static off_t vdr_execute_rpc_command(vdr_input_plugin_t *this)
trans[ i ] = a >> 4;
}
}
-
+
xine_osd_set_palette(this->osd[ data->window ].window, color, trans);
}
}
@@ -666,7 +666,7 @@ static off_t vdr_execute_rpc_command(vdr_input_plugin_t *this)
{
char file_name[ 1024 ];
int file_name_len = 0;
-
+
READ_DATA_OR_FAIL(play_external, lprintf("got PLAYEXTERNAL\n"));
file_name_len = this->cur_size;
@@ -678,19 +678,19 @@ static off_t vdr_execute_rpc_command(vdr_input_plugin_t *this)
{
return -1;
}
-
+
n = vdr_read_abort (this->stream, this->fh_control, file_name, file_name_len);
if (n != file_name_len)
return -1;
-
+
if (file_name[ file_name_len - 1 ] != '\0')
return -1;
-
+
this->cur_size -= n;
}
lprintf((file_name_len > 0) ? "----------- play external: %s\n" : "---------- stop external\n", file_name);
-
+
if (file_name_len > 0)
external_stream_play(this, file_name);
else
@@ -710,13 +710,13 @@ static off_t vdr_execute_rpc_command(vdr_input_plugin_t *this)
if (!data->s)
{
pthread_mutex_lock(&this->find_sync_point_lock);
- this->find_sync_point = data->i;
+ this->find_sync_point = data->i;
pthread_mutex_unlock(&this->find_sync_point_lock);
}
-/*
+/*
if (!this->dont_change_xine_volume)
xine_set_param(this->stream, XINE_PARAM_AUDIO_VOLUME, 0);
-*/
+*/
_x_demux_flush_engine(this->stream);
/* fprintf(stderr, "=== CLEAR(%d.1)\n", data->n); */
_x_demux_control_start(this->stream);
@@ -731,7 +731,7 @@ static off_t vdr_execute_rpc_command(vdr_input_plugin_t *this)
_x_trigger_relaxed_frame_drop_mode(this->stream);
/* _x_reset_relaxed_frame_drop_mode(this->stream); */
-/*
+/*
if (!this->dont_change_xine_volume)
xine_set_param(this->stream, XINE_PARAM_AUDIO_VOLUME, this->last_volume);
*/
@@ -764,7 +764,7 @@ static off_t vdr_execute_rpc_command(vdr_input_plugin_t *this)
READ_DATA_OR_FAIL(set_video_window, lprintf("got SET VIDEO WINDOW\n"));
/*
fprintf(stderr, "svw: (%d, %d)x(%d, %d), (%d, %d)\n", data->x, data->y, data->w, data->h, data->wRef, data->hRef);
-*/
+*/
{
xine_event_t event;
@@ -772,44 +772,44 @@ static off_t vdr_execute_rpc_command(vdr_input_plugin_t *this)
|| data->y != 0
|| data->w != data->w_ref
|| data->h != data->h_ref);
-
+
this->video_window_event_data.x = data->x;
this->video_window_event_data.y = data->y;
this->video_window_event_data.w = data->w;
this->video_window_event_data.h = data->h;
this->video_window_event_data.w_ref = data->w_ref;
this->video_window_event_data.h_ref = data->h_ref;
-
+
event.type = XINE_EVENT_VDR_SETVIDEOWINDOW;
event.data = &this->video_window_event_data;
event.data_length = sizeof (this->video_window_event_data);
-
+
xine_event_send(this->stream, &event);
}
}
break;
-
+
case func_select_audio:
{
READ_DATA_OR_FAIL(select_audio, lprintf("got SELECT AUDIO\n"));
this->audio_channels = data->channels;
-
+
{
xine_event_t event;
vdr_select_audio_data_t event_data;
-
+
event_data.channels = this->audio_channels;
-
+
event.type = XINE_EVENT_VDR_SELECTAUDIO;
event.data = &event_data;
event.data_length = sizeof (event_data);
-
+
xine_event_send(this->stream, &event);
}
}
break;
-
+
case func_trick_speed_mode:
{
READ_DATA_OR_FAIL(trick_speed_mode, lprintf("got TRICK SPEED MODE\n"));
@@ -824,12 +824,12 @@ static off_t vdr_execute_rpc_command(vdr_input_plugin_t *this)
this->trick_speed_mode = data->on;
pthread_mutex_unlock(&this->trick_speed_mode_lock);
-
+
_x_demux_seek(this->stream, 0, 0, 0);
{
xine_event_t event;
-
+
event.type = XINE_EVENT_VDR_TRICKSPEEDMODE;
event.data = 0;
event.data_length = 0; /* this->trick_speed_mode; */
@@ -839,7 +839,7 @@ static off_t vdr_execute_rpc_command(vdr_input_plugin_t *this)
}
}
break;
-
+
case func_flush:
{
READ_DATA_OR_FAIL(flush, lprintf("got FLUSH\n"));
@@ -854,31 +854,31 @@ static off_t vdr_execute_rpc_command(vdr_input_plugin_t *this)
xprintf(this->stream->xine, XINE_VERBOSITY_LOG, _("%s: buffer_pool_alloc() failed!\n"), LOG_MODULE);
return -1;
}
-
+
buf->type = BUF_CONTROL_FLUSH_DECODER;
-
+
this->stream->video_fifo->put(this->stream->video_fifo, buf);
}
}
-
+
{
double _t1, _t2;
int _n = 0;
-
+
int vb = -1, ab = -1, vf = -1, af = -1;
-
+
uint8_t timed_out = 0;
-
+
struct timeval now, then;
-
+
if (data->ms_timeout >= 0)
{
gettimeofday(&now, 0);
-
+
then = now;
then.tv_usec += (data->ms_timeout % 1000) * 1000;
then.tv_sec += (data->ms_timeout / 1000);
-
+
if (then.tv_usec >= 1000000)
{
then.tv_usec -= 1000000;
@@ -892,45 +892,45 @@ static off_t vdr_execute_rpc_command(vdr_input_plugin_t *this)
}
_t1 = _now();
-
+
while (1)
{
_x_query_buffer_usage(this->stream, &vb, &ab, &vf, &af);
-
+
if (vb <= 0 && ab <= 0 && vf <= 0 && af <= 0)
break;
-
+
if (data->ms_timeout >= 0
&& timercmp(&now, &then, >=))
{
timed_out++;
break;
}
-
+
/* sched_yield(); */
xine_usec_sleep(5000);
_n++;
-
+
if (data->ms_timeout >= 0)
- gettimeofday(&now, 0);
+ gettimeofday(&now, 0);
}
_t2 = _now();
/* fprintf(stderr, "vdr: flush: n: %d, %.1lf\n", _n, _t2 - _t1); */
-
+
xprintf(this->stream->xine
, XINE_VERBOSITY_LOG
, _("%s: flush buffers (vb: %d, ab: %d, vf: %d, af: %d) %s.\n")
, LOG_MODULE, vb, ab, vf, af
, (timed_out ? "timed out" : "done"));
-
+
{
result_flush_t result_flush;
result_flush.header.func = data->header.func;
result_flush.header.len = sizeof (result_flush);
-
+
result_flush.timed_out = timed_out;
-
+
if (sizeof (result_flush) != vdr_write(this->fh_result, &result_flush, sizeof (result_flush)))
return -1;
}
@@ -942,7 +942,7 @@ static off_t vdr_execute_rpc_command(vdr_input_plugin_t *this)
{
READ_DATA_OR_FAIL(mute, lprintf("got MUTE\n"));
- {
+ {
int param_mute = (this->volume_mode == XINE_VDR_VOLUME_CHANGE_SW) ? XINE_PARAM_AUDIO_AMP_MUTE : XINE_PARAM_AUDIO_MUTE;
xine_set_param(this->stream, param_mute, data->mute);
}
@@ -962,7 +962,7 @@ t0 = _now();
int param_mute = (this->volume_mode == XINE_VDR_VOLUME_CHANGE_SW) ? XINE_PARAM_AUDIO_AMP_MUTE : XINE_PARAM_AUDIO_MUTE;
int param_volume = (this->volume_mode == XINE_VDR_VOLUME_CHANGE_SW) ? XINE_PARAM_AUDIO_AMP_LEVEL : XINE_PARAM_AUDIO_VOLUME;
-
+
this->last_volume = data->volume;
if (do_mute || do_unmute)
@@ -972,7 +972,7 @@ t0 = _now();
case XINE_VDR_MUTE_EXECUTE:
report_change = 1;
xine_set_param(this->stream, param_mute, do_mute);
-
+
case XINE_VDR_MUTE_IGNORE:
if (do_mute)
change_volume = 0;
@@ -987,7 +987,7 @@ t0 = _now();
};
}
t1 = _now();
-
+
if (change_volume)
{
report_change = 1;
@@ -999,18 +999,18 @@ t2 = _now();
{
xine_event_t event;
xine_audio_level_data_t data;
-
+
data.left
= data.right
= xine_get_param(this->stream, param_volume);
data.mute
= xine_get_param(this->stream, param_mute);
t3 = _now();
-
+
event.type = XINE_EVENT_AUDIO_LEVEL;
event.data = &data;
event.data_length = sizeof (data);
-
+
xine_event_send(this->stream, &event);
}
}
@@ -1021,9 +1021,9 @@ t3 = _now();
case func_set_speed:
{
READ_DATA_OR_FAIL(set_speed, lprintf("got SETSPEED\n"));
-
+
lprintf("... got SETSPEED %d\n", data->speed);
-
+
if (data->speed != xine_get_param(this->stream, XINE_PARAM_FINE_SPEED))
xine_set_param(this->stream, XINE_PARAM_FINE_SPEED, data->speed);
}
@@ -1044,7 +1044,7 @@ t3 = _now();
_x_demux_control_newpts(this->stream, data->pts, data->flags);
}
break;
-
+
case func_start:
{
READ_DATA_OR_FAIL(start, lprintf("got START\n"));
@@ -1062,7 +1062,7 @@ t3 = _now();
result_wait_t result_wait;
result_wait.header.func = data->header.func;
result_wait.header.len = sizeof (result_wait);
-
+
if (sizeof (result_wait) != vdr_write(this->fh_result, &result_wait, sizeof (result_wait)))
return -1;
@@ -1097,7 +1097,7 @@ t3 = _now();
xine_current_frame_data_t frame_data;
memset(&frame_data, 0, sizeof (frame_data));
-
+
if (xine_get_current_frame_data(this->stream, &frame_data, XINE_FRAME_DATA_ALLOCATE_IMG))
{
if (frame_data.ratio_code == XINE_VO_ASPECT_SQUARE)
@@ -1112,12 +1112,12 @@ t3 = _now();
if (!frame_data.img)
memset(&frame_data, 0, sizeof (frame_data));
-
+
{
result_grab_image_t result_grab_image;
result_grab_image.header.func = data->header.func;
result_grab_image.header.len = sizeof (result_grab_image) + frame_data.img_size;
-
+
result_grab_image.width = frame_data.width;
result_grab_image.height = frame_data.height;
result_grab_image.ratio = frame_data.ratio_code;
@@ -1127,22 +1127,22 @@ t3 = _now();
result_grab_image.crop_right = frame_data.crop_right;
result_grab_image.crop_top = frame_data.crop_top;
result_grab_image.crop_bottom = frame_data.crop_bottom;
-
+
if (sizeof (result_grab_image) == vdr_write(this->fh_result, &result_grab_image, sizeof (result_grab_image)))
{
if (!frame_data.img_size || (frame_data.img_size == vdr_write(this->fh_result, frame_data.img, frame_data.img_size)))
ret_val = 0;
}
}
-
+
free(frame_data.img);
-
+
if (ret_val != 0)
return ret_val;
}
}
break;
-
+
case func_get_pts:
{
READ_DATA_OR_FAIL(get_pts, lprintf("got GETPTS\n"));
@@ -1164,25 +1164,25 @@ t3 = _now();
{
struct timeval now;
gettimeofday(&now, 0);
-
+
abstime.tv_sec = now.tv_sec + data->ms_timeout / 1000;
abstime.tv_nsec = now.tv_usec * 1000 + (data->ms_timeout % 1000) * 1e6;
-
+
if (abstime.tv_nsec > 1e9)
{
abstime.tv_nsec -= 1e9;
abstime.tv_sec++;
}
}
-
+
while (this->last_disc_type == DISC_STREAMSTART
|| this->vpts_offset_queue_changes)
- {
+ {
if (0 != pthread_cond_timedwait(&this->vpts_offset_queue_changed_cond, &this->vpts_offset_queue_lock, &abstime))
break;
}
}
-
+
if (this->last_disc_type == DISC_STREAMSTART
|| this->vpts_offset_queue_changes)
{
@@ -1219,7 +1219,7 @@ fprintf(stderr, "C =============================================\n");
}
pthread_mutex_unlock(&this->vpts_offset_queue_lock);
-
+
if (sizeof (result_get_pts) != vdr_write(this->fh_result, &result_get_pts, sizeof (result_get_pts)))
return -1;
}
@@ -1229,14 +1229,14 @@ fprintf(stderr, "C =============================================\n");
case func_get_version:
{
READ_DATA_OR_FAIL(get_version, lprintf("got GETVERSION\n"));
-
+
{
result_get_version_t result_get_version;
result_get_version.header.func = data->header.func;
result_get_version.header.len = sizeof (result_get_version);
-
+
result_get_version.version = XINE_VDR_VERSION;
-
+
if (sizeof (result_get_version) != vdr_write(this->fh_result, &result_get_version, sizeof (result_get_version)))
return -1;
}
@@ -1249,19 +1249,19 @@ fprintf(stderr, "C =============================================\n");
{
int format;
-
+
result_video_size_t result_video_size;
result_video_size.header.func = data->header.func;
result_video_size.header.len = sizeof (result_video_size);
-
+
result_video_size.top = -1;
result_video_size.left = -1;
result_video_size.width = -1;
result_video_size.height = -1;
result_video_size.ratio = 0;
-
+
xine_get_current_frame(this->stream, &result_video_size.width, &result_video_size.height, &result_video_size.ratio, &format, 0);
-
+
if (result_video_size.ratio == XINE_VO_ASPECT_SQUARE)
result_video_size.ratio = 10000;
else if (result_video_size.ratio == XINE_VO_ASPECT_4_3)
@@ -1270,7 +1270,7 @@ fprintf(stderr, "C =============================================\n");
result_video_size.ratio = 17778;
else if (result_video_size.ratio == XINE_VO_ASPECT_DVB)
result_video_size.ratio = 21100;
-
+
if (0 != this->frame_size.x
|| 0 != this->frame_size.y
|| 0 != this->frame_size.w
@@ -1296,7 +1296,7 @@ fprintf(stderr, "C =============================================\n");
{
double _t1, _t2;
int _n = 0;
-
+
READ_DATA_OR_FAIL(reset_audio, lprintf("got RESET AUDIO\n"));
if (this->stream->audio_fifo)
@@ -1305,13 +1305,13 @@ fprintf(stderr, "C =============================================\n");
xine_set_param(this->stream, XINE_PARAM_AUDIO_CHANNEL_LOGICAL, -2);
_t1 = _now();
-
+
while (1)
{
int n = xine_get_stream_info(this->stream, XINE_STREAM_INFO_MAX_AUDIO_CHANNEL);
if (n <= 0)
break;
-
+
/* keep the decoder running */
if (this->stream->audio_fifo)
{
@@ -1321,12 +1321,12 @@ fprintf(stderr, "C =============================================\n");
xprintf(this->stream->xine, XINE_VERBOSITY_LOG, _("%s: buffer_pool_alloc() failed!\n"), LOG_MODULE);
return -1;
}
-
+
buf->type = BUF_CONTROL_RESET_TRACK_MAP;
-
+
this->stream->audio_fifo->put(this->stream->audio_fifo, buf);
}
-
+
/* sched_yield(); */
xine_usec_sleep(5000);
_n++;
@@ -1334,7 +1334,7 @@ fprintf(stderr, "C =============================================\n");
_t2 = _now();
/* fprintf(stderr, "vdr: reset_audio: n: %d, %.1lf\n", _n, _t2 - _t1); */
-
+
xine_set_param(this->stream, XINE_PARAM_AUDIO_CHANNEL_LOGICAL, -1);
_x_stream_info_reset(this->stream, XINE_STREAM_INFO_AUDIO_BITRATE);
@@ -1344,22 +1344,22 @@ fprintf(stderr, "C =============================================\n");
}
}
break;
-
+
case func_query_capabilities:
{
READ_DATA_OR_FAIL(query_capabilities, lprintf("got QUERYCAPABILITIES\n"));
-
+
{
result_query_capabilities_t result_query_capabilities;
result_query_capabilities.header.func = data->header.func;
result_query_capabilities.header.len = sizeof (result_query_capabilities);
-
+
result_query_capabilities.osd_max_num_windows = MAX_SHOWING;
result_query_capabilities.osd_palette_max_depth = 8;
result_query_capabilities.osd_palette_is_shared = 0;
result_query_capabilities.osd_supports_argb_layer = this->osd_supports_argb_layer;
result_query_capabilities.osd_supports_custom_extent = this->osd_supports_custom_extent;
-
+
if (sizeof (result_query_capabilities) != vdr_write(this->fh_result, &result_query_capabilities, sizeof (result_query_capabilities)))
return -1;
}
@@ -1369,13 +1369,13 @@ fprintf(stderr, "C =============================================\n");
default:
lprintf("unknown function: %d\n", this->cur_func);
}
-
+
if (this->cur_size != this->cur_done)
{
off_t skip = this->cur_size - this->cur_done;
lprintf("func: %d, skipping: %lld\n", this->cur_func, skip);
-
+
while (skip > BUF_SIZE)
{
n = vdr_read_abort(this->stream, this->fh_control, this->seek_buf, BUF_SIZE);
@@ -1403,14 +1403,14 @@ static void *vdr_rpc_thread_loop(void *arg)
int frontend_lock_failures = 0;
int failed = 0;
int was_startup_phase = this->startup_phase;
-
+
while (!failed
&& !this->rpc_thread_shutdown
&& was_startup_phase == this->startup_phase)
{
struct timeval timeout;
fd_set rset;
-
+
FD_ZERO(&rset);
FD_SET(this->fh_control, &rset);
@@ -1455,10 +1455,10 @@ static void *vdr_rpc_thread_loop(void *arg)
/* close control and result channel here to have vdr-xine initiate a disconnect for the above error case ... */
close(this->fh_control);
this->fh_control = -1;
-
+
close(this->fh_result);
this->fh_result = -1;
-
+
xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
LOG_MODULE ": rpc thread done.\n");
@@ -1466,7 +1466,7 @@ static void *vdr_rpc_thread_loop(void *arg)
this->rpc_thread_shutdown = -1;
pthread_cond_broadcast(&this->rpc_thread_shutdown_cond);
pthread_mutex_unlock(&this->rpc_thread_shutdown_lock);
-
+
return 0;
}
@@ -1480,7 +1480,7 @@ static int internal_write_event_key(vdr_input_plugin_t *this, uint32_t key)
if (sizeof (event) != vdr_write(this->fh_event, &event, sizeof (event)))
return -1;
-
+
return 0;
}
@@ -1499,7 +1499,7 @@ static int internal_write_event_frame_size(vdr_input_plugin_t *this)
if (sizeof (event) != vdr_write(this->fh_event, &event, sizeof (event)))
return -1;
-
+
return 0;
}
@@ -1513,7 +1513,7 @@ static int internal_write_event_play_external(vdr_input_plugin_t *this, uint32_t
if (sizeof (event) != vdr_write(this->fh_event, &event, sizeof (event)))
return -1;
-
+
return 0;
}
@@ -1527,19 +1527,19 @@ static int internal_write_event_discontinuity(vdr_input_plugin_t *this, int32_t
if (sizeof (event) != vdr_write(this->fh_event, &event, sizeof (event)))
return -1;
-
+
return 0;
}
-static off_t vdr_plugin_read(input_plugin_t *this_gen,
+static off_t vdr_plugin_read(input_plugin_t *this_gen,
void *buf_gen, off_t len)
{
vdr_input_plugin_t *this = (vdr_input_plugin_t *) this_gen;
uint8_t *buf = (uint8_t *)buf_gen;
off_t n, total;
-#ifdef LOG_READ
+#ifdef LOG_READ
lprintf ("reading %lld bytes...\n", len);
-#endif
+#endif
total=0;
if (this->curpos < this->preview_size)
{
@@ -1554,7 +1554,7 @@ static off_t vdr_plugin_read(input_plugin_t *this_gen,
this->curpos += n;
total += n;
}
-
+
if( (len-total) > 0 )
{
int retries = 0;
@@ -1568,7 +1568,7 @@ static off_t vdr_plugin_read(input_plugin_t *this_gen,
&& !this->stream_external
&& _x_continue_stream_processing(this->stream)
&& 200 > retries++); /* 200 * 50ms */
-#ifdef LOG_READ
+#ifdef LOG_READ
lprintf ("got %lld bytes (%lld/%lld bytes read)\n",
n,total,len);
#endif
@@ -1586,7 +1586,7 @@ static off_t vdr_plugin_read(input_plugin_t *this_gen,
&& total == 6)
{
pthread_mutex_lock(&this->find_sync_point_lock);
-
+
while (this->find_sync_point
&& total == 6
&& buf[0] == 0x00
@@ -1613,7 +1613,7 @@ static off_t vdr_plugin_read(input_plugin_t *this_gen,
{
break;
}
-
+
l = buf[4] * 256 + buf[5];
if (l <= 0)
break;
@@ -1631,7 +1631,7 @@ static off_t vdr_plugin_read(input_plugin_t *this_gen,
return total;
}
-static buf_element_t *vdr_plugin_read_block(input_plugin_t *this_gen, fifo_buffer_t *fifo,
+static buf_element_t *vdr_plugin_read_block(input_plugin_t *this_gen, fifo_buffer_t *fifo,
off_t todo)
{
off_t total_bytes;
@@ -1678,7 +1678,7 @@ static off_t vdr_plugin_seek(input_plugin_t *this_gen, off_t offset, int origin)
{
if (offset < this->curpos)
{
- if (this->curpos <= this->preview_size)
+ if (this->curpos <= this->preview_size)
this->curpos = offset;
else
lprintf("cannot seek back! (%lld > %lld)\n", this->curpos, offset);
@@ -1751,30 +1751,30 @@ static void vdr_plugin_dispose(input_plugin_t *this_gen)
if (this->rpc_thread_shutdown > -1)
{
this->rpc_thread_shutdown = 1;
-
+
{
struct timeval now;
gettimeofday(&now, 0);
-
+
abstime.tv_sec = now.tv_sec + ms_to_time_out / 1000;
abstime.tv_nsec = now.tv_usec * 1000 + (ms_to_time_out % 1000) * 1e6;
-
+
if (abstime.tv_nsec > 1e9)
{
abstime.tv_nsec -= 1e9;
abstime.tv_sec++;
}
}
-
+
if (0 != pthread_cond_timedwait(&this->rpc_thread_shutdown_cond, &this->rpc_thread_shutdown_lock, &abstime))
{
xprintf(this->stream->xine, XINE_VERBOSITY_LOG, _("%s: cancelling rpc thread in function %d...\n"), LOG_MODULE, this->cur_func);
pthread_cancel(this->rpc_thread);
}
}
-
+
pthread_mutex_unlock(&this->rpc_thread_shutdown_lock);
-
+
xprintf(this->stream->xine, XINE_VERBOSITY_LOG, _("%s: joining rpc thread ...\n"), LOG_MODULE);
pthread_join(this->rpc_thread, 0);
xprintf(this->stream->xine, XINE_VERBOSITY_LOG, _("%s: rpc thread joined.\n"), LOG_MODULE);
@@ -1817,16 +1817,16 @@ static void vdr_plugin_dispose(input_plugin_t *this_gen)
pthread_mutex_destroy(&this->find_sync_point_lock);
pthread_mutex_destroy(&this->adjust_zoom_lock);
-
+
if (this->fh_result != -1)
close(this->fh_result);
-
+
if (this->fh_control != -1)
close(this->fh_control);
if (this->fh_event != -1)
close(this->fh_event);
-
+
for (i = 0; i < VDR_MAX_NUM_WINDOWS; i++)
{
if (0 == this->osd[ i ].window)
@@ -1840,7 +1840,7 @@ static void vdr_plugin_dispose(input_plugin_t *this_gen)
if (this->osd_buffer)
free(this->osd_buffer);
-
+
if ((this->fh != STDIN_FILENO) && (this->fh != -1))
close(this->fh);
@@ -1856,7 +1856,7 @@ static void vdr_plugin_dispose(input_plugin_t *this_gen)
free(this);
}
-static int vdr_plugin_get_optional_data(input_plugin_t *this_gen,
+static int vdr_plugin_get_optional_data(input_plugin_t *this_gen,
void *data, int data_type)
{
vdr_input_plugin_t *this = (vdr_input_plugin_t *)this_gen;
@@ -1995,7 +1995,7 @@ static int vdr_plugin_open_fifo_mrl(input_plugin_t *this_gen)
free(filename_event);
}
-
+
free (filename);
return 1;
}
@@ -2033,7 +2033,7 @@ static int vdr_plugin_open_socket(vdr_input_plugin_t *this, struct hostent *host
_("%s: socket opening (port %d) successful, fd = %d\n"), LOG_MODULE, port, fd);
return fd;
-}
+}
static int vdr_plugin_open_sockets(vdr_input_plugin_t *this)
{
@@ -2056,8 +2056,8 @@ static int vdr_plugin_open_sockets(vdr_input_plugin_t *this)
}
host = gethostbyname(mrl_host);
-
- xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
+
+ xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
_("%s: connecting to vdr.\n"), LOG_MODULE);
if (!host)
@@ -2073,9 +2073,9 @@ static int vdr_plugin_open_sockets(vdr_input_plugin_t *this)
if ((this->fh = vdr_plugin_open_socket(this, host, port + 0)) == -1)
return 0;
-
+
fcntl(this->fh, F_SETFL, ~O_NONBLOCK & fcntl(this->fh, F_GETFL, 0));
-
+
if ((this->fh_control = vdr_plugin_open_socket(this, host, port + 1)) == -1)
return 0;
@@ -2096,10 +2096,10 @@ static int vdr_plugin_open_socket_mrl(input_plugin_t *this_gen)
vdr_input_plugin_t *this = (vdr_input_plugin_t *)this_gen;
lprintf("input_vdr: connecting to vdr-xine-server...\n");
-
+
if (!vdr_plugin_open_sockets(this))
return 0;
-
+
return 1;
}
@@ -2131,14 +2131,14 @@ static void *vdr_metronom_thread_loop(void *arg)
return 0;
}
-
+
static int vdr_plugin_open(input_plugin_t *this_gen)
{
vdr_input_plugin_t *this = (vdr_input_plugin_t *)this_gen;
lprintf("trying to open '%s'...\n", this->mrl);
- if (this->fh == -1)
+ if (this->fh == -1)
{
int err = 0;
@@ -2154,7 +2154,7 @@ static int vdr_plugin_open(input_plugin_t *this_gen)
}
else
{
- xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
_("%s: MRL (%s) invalid! MRL should start with vdr://path/to/fifo/stream or netvdr://host:port where ':port' is optional.\n"), LOG_MODULE,
strerror(err));
return 0;
@@ -2163,10 +2163,10 @@ static int vdr_plugin_open(input_plugin_t *this_gen)
if ((err = pthread_create(&this->metronom_thread, NULL,
vdr_metronom_thread_loop, (void *)this)) != 0)
{
- xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
_("%s: can't create new thread (%s)\n"), LOG_MODULE,
strerror(err));
-
+
return 0;
}
@@ -2180,10 +2180,10 @@ static int vdr_plugin_open(input_plugin_t *this_gen)
if ((err = pthread_create(&this->rpc_thread, NULL,
vdr_rpc_thread_loop, (void *)this)) != 0)
{
- xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
_("%s: can't create new thread (%s)\n"), LOG_MODULE,
strerror(err));
-
+
return 0;
}
}
@@ -2213,7 +2213,7 @@ static void event_handler(void *user_data, const xine_event_t *event)
memcpy(&this->frame_size, event->data, event->data_length);
if (0 != internal_write_event_frame_size(this))
- xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
_("%s: input event write: %s.\n"), LOG_MODULE, strerror(errno));
adjust_zoom(this);
@@ -2223,7 +2223,7 @@ static void event_handler(void *user_data, const xine_event_t *event)
if (XINE_EVENT_VDR_DISCONTINUITY == event->type)
{
if (0 != internal_write_event_discontinuity(this, event->data_length))
- xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
_("%s: input event write: %s.\n"), LOG_MODULE, strerror(errno));
return;
@@ -2234,7 +2234,7 @@ static void event_handler(void *user_data, const xine_event_t *event)
if (0 == event->data_length) /* vdr_video */
{
xine_event_t event;
-
+
event.type = XINE_EVENT_VDR_TRICKSPEEDMODE;
event.data = 0;
event.data_length = 0; /* this->trick_speed_mode; */
@@ -2245,13 +2245,13 @@ static void event_handler(void *user_data, const xine_event_t *event)
{
xine_event_t event;
vdr_select_audio_data_t event_data;
-
+
event_data.channels = this->audio_channels;
-
+
event.type = XINE_EVENT_VDR_SELECTAUDIO;
event.data = &event_data;
event.data_length = sizeof (event_data);
-
+
xine_event_send(this->stream, &event);
}
else
@@ -2323,7 +2323,7 @@ static void event_handler(void *user_data, const xine_event_t *event)
}
if (0 != internal_write_event_key(this, key))
- xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
_("%s: input event write: %s.\n"), LOG_MODULE, strerror(errno));
}
@@ -2398,7 +2398,7 @@ fprintf(stderr, "B =============================================\n");
if (!this->trick_speed_mode)
{
xine_event_t event;
-
+
event.type = XINE_EVENT_VDR_DISCONTINUITY;
event.data = 0;
event.data_length = type;
@@ -2527,7 +2527,7 @@ static void vdr_metronom_got_video_frame(metronom_t *self, vo_frame_t *frame)
pthread_cond_broadcast(&this->input->metronom_thread_request_cond);
pthread_mutex_unlock(&this->input->metronom_thread_lock);
- vdr_metronom_handle_video_discontinuity_impl(self, DISC_ABSOLUTE, frame->pts);
+ vdr_metronom_handle_video_discontinuity_impl(self, DISC_ABSOLUTE, frame->pts);
pthread_mutex_lock(&this->input->metronom_thread_lock);
if (!this->input->metronom_thread_reply)
@@ -2663,7 +2663,7 @@ static input_plugin_t *vdr_class_get_instance(input_class_t *cls_gen, xine_strea
this->frame_size.w = 0;
this->frame_size.h = 0;
this->frame_size.r = 0;
-
+
this->stream_external = 0;
this->event_queue_external = 0;
@@ -2677,7 +2677,7 @@ static input_plugin_t *vdr_class_get_instance(input_class_t *cls_gen, xine_strea
pthread_cond_init(&this->metronom_thread_request_cond, 0);
pthread_cond_init(&this->metronom_thread_reply_cond, 0);
pthread_mutex_init(&this->metronom_thread_call_lock, 0);
-
+
pthread_mutex_init(&this->find_sync_point_lock, 0);
pthread_mutex_init(&this->adjust_zoom_lock, 0);
this->image4_3_zoom_x = 0;
@@ -2725,11 +2725,11 @@ static char **vdr_class_get_autoplay_list(input_class_t *this_gen,
void *vdr_input_init_plugin(xine_t *xine, void *data)
{
vdr_input_class_t *this;
-
+
lprintf("init_class\n");
-
+
this = (vdr_input_class_t *)xine_xmalloc(sizeof (vdr_input_class_t));
-
+
this->xine = xine;
this->mrls[ 0 ] = "vdr:/" VDR_ABS_FIFO_DIR "/stream#demux:mpeg_pes";
diff --git a/src/vdr/post_vdr_audio.c b/src/vdr/post_vdr_audio.c
index 49de8f9cf..d85bb3629 100644
--- a/src/vdr/post_vdr_audio.c
+++ b/src/vdr/post_vdr_audio.c
@@ -1,23 +1,23 @@
/*
* Copyright (C) 2000-2004 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
*/
-
+
/*
* select audio channel plugin for VDR
*/
@@ -40,10 +40,10 @@ typedef struct vdr_audio_post_plugin_s
xine_event_queue_t *event_queue;
xine_stream_t *vdr_stream;
-
+
uint8_t audio_channels;
int num_channels;
-
+
}
vdr_audio_post_plugin_t;
@@ -53,7 +53,7 @@ static void vdr_audio_select_audio(vdr_audio_post_plugin_t *this, uint8_t channe
this->audio_channels = channels;
}
-
+
/* plugin class functions */
static post_plugin_t *vdr_audio_open_plugin(post_class_t *class_gen, int inputs,
xine_audio_port_t **audio_target,
@@ -72,15 +72,15 @@ static void vdr_audio_port_put_buffer(xine_audio_port_t *port_gen, aud
void *vdr_audio_init_plugin(xine_t *xine, void *data)
{
post_class_t *class = (post_class_t *)xine_xmalloc(sizeof (post_class_t));
-
+
if (!class)
return NULL;
-
+
class->open_plugin = vdr_audio_open_plugin;
class->identifier = "vdr_audio";
class->description = N_("modifies every audio frame as requested by VDR");
class->dispose = default_post_class_dispose;
-
+
return class;
}
@@ -92,7 +92,7 @@ static post_plugin_t *vdr_audio_open_plugin(post_class_t *class_gen, int inputs,
post_in_t *input;
post_out_t *output;
post_audio_port_t *port;
-/*
+/*
fprintf(stderr, "~~~~~~~~~~ vdr open plugin\n");
*/
if (!this || !audio_target || !audio_target[ 0 ])
@@ -110,10 +110,10 @@ fprintf(stderr, "~~~~~~~~~~ vdr open plugin\n");
this->post_plugin.xine_post.audio_input[ 0 ] = &port->new_port;
-
+
this->audio_channels = 0;
-
+
return &this->post_plugin;
}
@@ -125,10 +125,10 @@ fprintf(stderr, "~~~~~~~~~~ vdr dispose\n");
if (_x_post_dispose(this_gen))
{
vdr_audio_post_plugin_t *this = (vdr_audio_post_plugin_t *)this_gen;
-
+
if (this->vdr_stream)
xine_event_dispose_queue(this->event_queue);
-
+
free(this_gen);
}
}
@@ -167,13 +167,13 @@ fprintf(stderr, "~~~~~~ vdr_audio\n");
&& !_x_continue_stream_processing(this->vdr_stream))
{
this->vdr_stream = 0;
-
+
xine_event_dispose_queue(this->event_queue);
this->event_queue = 0;
-
+
this->audio_channels = 0;
}
-
+
if (!this->vdr_stream
&& vdr_is_vdr_stream(stream))
{
@@ -181,19 +181,19 @@ fprintf(stderr, "~~~~~~ vdr_audio\n");
if (this->event_queue)
{
this->vdr_stream = stream;
-
+
{
xine_event_t event;
-
+
event.type = XINE_EVENT_VDR_PLUGINSTARTED;
event.data = 0;
event.data_length = 1; /* vdr_audio */
-
+
xine_event_send(this->vdr_stream, &event);
}
}
}
-
+
if (this->event_queue)
{
while ((event = xine_event_get(this->event_queue)))
@@ -201,14 +201,14 @@ fprintf(stderr, "~~~~~~ vdr_audio\n");
if (event->type == XINE_EVENT_VDR_SELECTAUDIO)
{
vdr_select_audio_data_t *data = (vdr_select_audio_data_t *)event->data;
-
+
vdr_audio_select_audio(this, data->channels);
}
xine_event_free(event);
}
}
-
+
if (this->num_channels == 2
&& this->audio_channels != 0
&& this->audio_channels != 3)
@@ -233,11 +233,11 @@ fprintf(stderr, "~~~~~~ vdr_audio\n");
if (this->audio_channels == 2)
src += step;
-/*
+/*
fprintf(stderr, "~~~~~~~~~~ vdr port put buffer: channels: %d, %d\n"
, this->audio_channels
, buf->format.bits);
-*/
+*/
int i, k;
for (i = 0; i < buf->num_frames; i++)
{
@@ -245,21 +245,21 @@ fprintf(stderr, "~~~~~~ vdr_audio\n");
*dst++ = *src++;
src -= step;
-
+
for (k = 0; k < step; k++)
*dst++ = *src++;
src += step;
}
}
-
+
/* pass data to original port */
port->original_port->put_buffer(port->original_port, vdr_buf, stream);
/* free data from origial buffer */
buf->num_frames = 0; /* UNDOCUMENTED, but hey, it works! Force old audio_out buffer free. */
}
-
+
port->original_port->put_buffer(port->original_port, buf, stream);
return;
diff --git a/src/vdr/post_vdr_video.c b/src/vdr/post_vdr_video.c
index 178538655..772374dd5 100644
--- a/src/vdr/post_vdr_video.c
+++ b/src/vdr/post_vdr_video.c
@@ -1,23 +1,23 @@
/*
* Copyright (C) 2000-2004 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
*/
-
+
/*
* frame scaler plugin for VDR
*/
@@ -40,10 +40,10 @@ typedef struct vdr_video_post_plugin_s
xine_event_queue_t *event_queue;
xine_stream_t *vdr_stream;
-
+
int8_t trick_speed_mode;
int8_t enabled;
-
+
int32_t x;
int32_t y;
int32_t w;
@@ -56,7 +56,7 @@ typedef struct vdr_video_post_plugin_s
int32_t old_frame_width;
int32_t old_frame_height;
double old_frame_ratio;
-
+
}
vdr_video_post_plugin_t;
@@ -64,7 +64,7 @@ vdr_video_post_plugin_t;
static void vdr_video_set_video_window(vdr_video_post_plugin_t *this, int32_t x, int32_t y, int32_t w, int32_t h, int32_t w_ref, int32_t h_ref)
{
this->enabled = 0;
-
+
this->x = x;
this->y = y;
this->w = w;
@@ -76,7 +76,7 @@ static void vdr_video_set_video_window(vdr_video_post_plugin_t *this, int32_t x,
this->enabled = 1;
}
-
+
/* plugin class functions */
static post_plugin_t *vdr_video_open_plugin(post_class_t *class_gen, int inputs,
xine_audio_port_t **audio_target,
@@ -95,15 +95,15 @@ static int vdr_video_draw(vo_frame_t *frame, xine_stream_t *stream);
void *vdr_video_init_plugin(xine_t *xine, void *data)
{
post_class_t *class = (post_class_t *)xine_xmalloc(sizeof (post_class_t));
-
+
if (!class)
return NULL;
-
+
class->open_plugin = vdr_video_open_plugin;
class->identifier = "vdr";
class->description = N_("modifies every video frame as requested by VDR");
class->dispose = default_post_class_dispose;
-
+
return class;
}
@@ -115,7 +115,7 @@ static post_plugin_t *vdr_video_open_plugin(post_class_t *class_gen, int inputs,
post_in_t *input;
post_out_t *output;
post_video_port_t *port;
-
+
if (!this || !video_target || !video_target[ 0 ])
{
free(this);
@@ -129,7 +129,7 @@ static post_plugin_t *vdr_video_open_plugin(post_class_t *class_gen, int inputs,
port->route_preprocessing_procs = vdr_video_route_preprocessing_procs;
port->new_frame->draw = vdr_video_draw;
this->post_plugin.xine_post.video_input[ 0 ] = &port->new_port;
-
+
this->enabled = 0;
this->vdr_stream = 0;
this->event_queue = 0;
@@ -139,7 +139,7 @@ static post_plugin_t *vdr_video_open_plugin(post_class_t *class_gen, int inputs,
this->old_frame_height = 0;
this->old_frame_ratio = 0;
this->trick_speed_mode = 0;
-
+
return &this->post_plugin;
}
@@ -148,7 +148,7 @@ static void vdr_video_dispose(post_plugin_t *this_gen)
if (_x_post_dispose(this_gen))
{
vdr_video_post_plugin_t *this = (vdr_video_post_plugin_t *)this_gen;
-
+
if (this->vdr_stream)
{
xine_event_t event;
@@ -158,16 +158,16 @@ static void vdr_video_dispose(post_plugin_t *this_gen)
event_data.y = 0;
event_data.w = 0;
event_data.h = 0;
-
+
event.type = XINE_EVENT_VDR_FRAMESIZECHANGED;
event.data = &event_data;
event.data_length = sizeof (event_data);
-
+
xine_event_send(this->vdr_stream, &event);
xine_event_dispose_queue(this->event_queue);
}
-
+
free(this_gen);
}
}
@@ -201,11 +201,11 @@ static inline void vdr_video_scale(uint8_t *src, uint8_t *dst, int y_inc, int x_
int dx2 = dx + dx;
int w_dst2 = w_dst + w_dst;
int x_eps0 = w_dst - dx2;
-
+
for (yy = 0; yy < y0; yy++)
{
uint8_t *dst0 = dst;
-
+
for (xx = 0; xx < w_dst; xx++)
{
*dst0 = init;
@@ -221,18 +221,18 @@ static inline void vdr_video_scale(uint8_t *src, uint8_t *dst, int y_inc, int x_
uint8_t *src0 = src;
int x_eps = x_eps0;
-
+
for (xx = 0; xx < x0; xx++)
{
*dst0 = init;
dst0 += x_inc;
}
-
+
for (xx = x0; xx < x1; xx++)
{
*dst0 = *src0;
dst0 += x_inc;
-
+
x_eps += w_dst2;
while (x_eps >= 0)
{
@@ -240,7 +240,7 @@ static inline void vdr_video_scale(uint8_t *src, uint8_t *dst, int y_inc, int x_
x_eps -= dx2;
}
}
-
+
for (xx = x1; xx < w_dst; xx++)
{
*dst0 = init;
@@ -256,11 +256,11 @@ static inline void vdr_video_scale(uint8_t *src, uint8_t *dst, int y_inc, int x_
y_eps -= dy2;
}
}
-
+
for (yy = y1; yy < h_dst; yy++)
{
uint8_t *dst0 = dst;
-
+
for (xx = 0; xx < w_dst; xx++)
{
*dst0 = init;
@@ -268,7 +268,7 @@ static inline void vdr_video_scale(uint8_t *src, uint8_t *dst, int y_inc, int x_
}
dst += y_inc;
- }
+ }
}
static void vdr_video_scale_YUY2(vdr_video_post_plugin_t *this, vo_frame_t *src, vo_frame_t *dst)
@@ -276,10 +276,10 @@ static void vdr_video_scale_YUY2(vdr_video_post_plugin_t *this, vo_frame_t *src,
int w = dst->width - dst->crop_left - dst->crop_right;
int h = dst->height - dst->crop_top - dst->crop_bottom;
int offset;
-
+
if (w < 0)
w = 0;
-
+
if (h < 0)
h = 0;
@@ -296,10 +296,10 @@ static void vdr_video_scale_YV12(vdr_video_post_plugin_t *this, vo_frame_t *src,
int w = dst->width - dst->crop_left - dst->crop_right;
int h = dst->height - dst->crop_top - dst->crop_bottom;
int offset;
-
+
if (w < 0)
w = 0;
-
+
if (h < 0)
h = 0;
@@ -324,17 +324,17 @@ static int vdr_video_draw(vo_frame_t *frame, xine_stream_t *stream)
&& !_x_continue_stream_processing(this->vdr_stream))
{
this->vdr_stream = 0;
-
+
xine_event_dispose_queue(this->event_queue);
this->event_queue = 0;
-
+
this->old_frame_left = 0;
this->old_frame_top = 0;
this->old_frame_width = 0;
this->old_frame_height = 0;
this->old_frame_ratio = 0;
}
-
+
if (!this->vdr_stream
&& vdr_is_vdr_stream(stream))
{
@@ -342,19 +342,19 @@ static int vdr_video_draw(vo_frame_t *frame, xine_stream_t *stream)
if (this->event_queue)
{
this->vdr_stream = stream;
-
+
{
xine_event_t event;
-
+
event.type = XINE_EVENT_VDR_PLUGINSTARTED;
event.data = 0;
event.data_length = 0; /* vdr_video */
-
+
xine_event_send(this->vdr_stream, &event);
}
}
}
-
+
if (this->event_queue)
{
while ((event = xine_event_get(this->event_queue)))
@@ -362,7 +362,7 @@ static int vdr_video_draw(vo_frame_t *frame, xine_stream_t *stream)
if (event->type == XINE_EVENT_VDR_SETVIDEOWINDOW)
{
vdr_set_video_window_data_t *data = (vdr_set_video_window_data_t *)event->data;
-
+
vdr_video_set_video_window(this, data->x, data->y, data->w, data->h, data->w_ref, data->h_ref);
}
else if (event->type == XINE_EVENT_VDR_TRICKSPEEDMODE)
@@ -392,7 +392,7 @@ static int vdr_video_draw(vo_frame_t *frame, xine_stream_t *stream)
frame_top = 0;
if (frame_height > frame->height)
frame_height = frame->height;
-
+
if (this->vdr_stream
&& frame_width != 0
&& frame_height != 0
@@ -410,16 +410,16 @@ static int vdr_video_draw(vo_frame_t *frame, xine_stream_t *stream)
event_data.w = frame_width;
event_data.h = frame_height;
event_data.r = frame_ratio;
-
+
xprintf(this->vdr_stream->xine, XINE_VERBOSITY_LOG,
_(LOG_MODULE ": osd: (%d, %d)-(%d, %d)@%lg\n"), frame_left, frame_top, frame_width, frame_height, frame_ratio);
-
+
event.type = XINE_EVENT_VDR_FRAMESIZECHANGED;
event.data = &event_data;
event.data_length = sizeof (event_data);
-
+
xine_event_send(this->vdr_stream, &event);
-
+
this->old_frame_left = frame_left;
this->old_frame_top = frame_top;
this->old_frame_width = frame_width;
@@ -428,15 +428,15 @@ static int vdr_video_draw(vo_frame_t *frame, xine_stream_t *stream)
}
}
/*
- fprintf(stderr, "~~~~~~~~~~~~ trickspeedmode: %d\n", this->trick_speed_mode);
-
+ fprintf(stderr, "~~~~~~~~~~~~ trickspeedmode: %d\n", this->trick_speed_mode);
+
if (this->vdr_stream
&& this->trick_speed_mode)
{
frame->pts = 0;
frame->next->pts = 0;
}
-*/
+*/
#if defined(LOG) && defined(LOG_VERBOSE)
{
int a = 0, b = 0, c = 0, d = 0;
@@ -446,7 +446,7 @@ static int vdr_video_draw(vo_frame_t *frame, xine_stream_t *stream)
}
#endif
- if (!this->enabled
+ if (!this->enabled
|| frame->bad_frame
|| (frame->format != XINE_IMGFMT_YUY2
&& frame->format != XINE_IMGFMT_YV12)
@@ -463,21 +463,21 @@ static int vdr_video_draw(vo_frame_t *frame, xine_stream_t *stream)
frame->width, frame->height, frame->ratio, frame->format, frame->flags | VO_BOTH_FIELDS);
_x_post_frame_copy_down(frame, vdr_frame);
-
+
switch (vdr_frame->format)
{
case XINE_IMGFMT_YUY2:
vdr_video_scale_YUY2(this, frame, vdr_frame);
break;
-
+
case XINE_IMGFMT_YV12:
- vdr_video_scale_YV12(this, frame, vdr_frame);
+ vdr_video_scale_YV12(this, frame, vdr_frame);
break;
}
-
+
skip = vdr_frame->draw(vdr_frame, stream);
_x_post_frame_copy_up(frame, vdr_frame);
vdr_frame->free(vdr_frame);
-
+
return skip;
}
diff --git a/src/video_dec/foovideo.c b/src/video_dec/foovideo.c
index 61a4b1e40..99ec1287b 100644
--- a/src/video_dec/foovideo.c
+++ b/src/video_dec/foovideo.c
@@ -67,7 +67,7 @@ typedef struct foovideo_decoder_s {
/* these are variables exclusive to the foo video decoder */
unsigned char current_yuv_byte;
-
+
} foovideo_decoder_t;
/**************************************************************************
@@ -98,7 +98,7 @@ static void foovideo_decode_data (video_decoder_t *this_gen,
this->video_step = buf->decoder_info[0];
_x_stream_info_set(this->stream, XINE_STREAM_INFO_FRAME_DURATION, this->video_step);
}
-
+
if (buf->decoder_flags & BUF_FLAG_STDHEADER) { /* need to initialize */
(this->stream->video_out->open) (this->stream->video_out, this->stream);
@@ -256,7 +256,7 @@ static void *init_plugin (xine_t *xine, void *data) {
* list of valid buffer types (and add a new one if the one you need does
* not exist). Terminate the list with a 0.
*/
-static const uint32_t video_types[] = {
+static const uint32_t video_types[] = {
/* BUF_VIDEO_FOOVIDEO, */
BUF_VIDEO_VQA,
BUF_VIDEO_SORENSON_V3,
diff --git a/src/video_dec/gdkpixbuf.c b/src/video_dec/gdkpixbuf.c
index 9eea449a5..ed88323fb 100644
--- a/src/video_dec/gdkpixbuf.c
+++ b/src/video_dec/gdkpixbuf.c
@@ -1,18 +1,18 @@
/*
* Copyright (C) 2006 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -65,7 +65,7 @@ typedef struct image_decoder_s {
xine_stream_t *stream;
int video_open;
-
+
GdkPixbufLoader *loader;
} image_decoder_t;
@@ -158,8 +158,8 @@ static void image_decode_data (video_decoder_t *this_gen, buf_element_t *buf) {
* alloc and draw video frame
*/
img = this->stream->video_out->get_frame (this->stream->video_out, width,
- height, (double)width/(double)height,
- XINE_IMGFMT_YUY2,
+ height, (double)width/(double)height,
+ XINE_IMGFMT_YUY2,
VO_BOTH_FIELDS);
img->pts = buf->pts;
img->duration = 3600;
@@ -167,9 +167,9 @@ static void image_decode_data (video_decoder_t *this_gen, buf_element_t *buf) {
yuv444_to_yuy2(&yuv_planes, img->base[0], img->pitches[0]);
free_yuv_planes(&yuv_planes);
-
+
_x_stream_info_set(this->stream, XINE_STREAM_INFO_FRAME_DURATION, img->duration);
-
+
img->draw(img, this->stream);
img->free(img);
}
@@ -178,7 +178,7 @@ static void image_decode_data (video_decoder_t *this_gen, buf_element_t *buf) {
static void image_flush (video_decoder_t *this_gen) {
/* image_decoder_t *this = (image_decoder_t *) this_gen; */
-
+
/*
* flush out any frames that are still stored in the decoder
*/
@@ -187,7 +187,7 @@ static void image_flush (video_decoder_t *this_gen) {
static void image_reset (video_decoder_t *this_gen) {
image_decoder_t *this = (image_decoder_t *) this_gen;
-
+
/*
* reset decoder after engine flush (prepare for new
* video data not related to recently decoded data)
@@ -203,7 +203,7 @@ static void image_reset (video_decoder_t *this_gen) {
static void image_discontinuity (video_decoder_t *this_gen) {
/* image_decoder_t *this = (image_decoder_t *) this_gen; */
-
+
/*
* a time reference discontinuity has happened.
* that is, it must forget any currently held pts value
@@ -231,7 +231,7 @@ static void image_dispose (video_decoder_t *this_gen) {
}
-static video_decoder_t *open_plugin (video_decoder_class_t *class_gen,
+static video_decoder_t *open_plugin (video_decoder_class_t *class_gen,
xine_stream_t *stream) {
image_class_t *cls = (image_class_t *) class_gen;
@@ -277,7 +277,7 @@ static void *init_class (xine_t *xine, void *data) {
*/
lprintf("class opened\n");
-
+
return this;
}
@@ -293,7 +293,7 @@ static const decoder_info_t dec_info_image = {
};
const plugin_info_t xine_plugin_info[] EXPORTED = {
- /* type, API, "name", version, special_info, init_function */
+ /* type, API, "name", version, special_info, init_function */
{ PLUGIN_VIDEO_DECODER, 19, "gdkpixbuf", XINE_VERSION_CODE, &dec_info_image, init_class },
{ PLUGIN_NONE, 0, "", 0, NULL, NULL }
};
diff --git a/src/video_dec/image.c b/src/video_dec/image.c
index 14ca6fefe..a4b6e43bd 100644
--- a/src/video_dec/image.c
+++ b/src/video_dec/image.c
@@ -1,18 +1,18 @@
/*
* Copyright (C) 2003-2005 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -71,7 +71,7 @@ typedef struct image_decoder_s {
xine_stream_t *stream;
int video_open;
-
+
unsigned char *image;
int index;
@@ -89,7 +89,7 @@ static void image_decode_data (video_decoder_t *this_gen, buf_element_t *buf) {
xine_buffer_copyin(this->image, this->index, buf->mem, buf->size);
this->index += buf->size;
-
+
if (buf->decoder_flags & BUF_FLAG_FRAME_END) {
int width, height, i;
int status;
@@ -143,8 +143,8 @@ static void image_decode_data (video_decoder_t *this_gen, buf_element_t *buf) {
* alloc and draw video frame
*/
img = this->stream->video_out->get_frame (this->stream->video_out, width,
- height, (double)width/(double)height,
- XINE_IMGFMT_YUY2,
+ height, (double)width/(double)height,
+ XINE_IMGFMT_YUY2,
VO_BOTH_FIELDS);
img->pts = buf->pts;
img->duration = 3600;
@@ -152,9 +152,9 @@ static void image_decode_data (video_decoder_t *this_gen, buf_element_t *buf) {
yuv444_to_yuy2(&yuv_planes, img->base[0], img->pitches[0]);
free_yuv_planes(&yuv_planes);
-
+
_x_stream_info_set(this->stream, XINE_STREAM_INFO_FRAME_DURATION, img->duration);
-
+
img->draw(img, this->stream);
img->free(img);
}
@@ -163,7 +163,7 @@ static void image_decode_data (video_decoder_t *this_gen, buf_element_t *buf) {
static void image_flush (video_decoder_t *this_gen) {
/* image_decoder_t *this = (image_decoder_t *) this_gen; */
-
+
/*
* flush out any frames that are still stored in the decoder
*/
@@ -172,19 +172,19 @@ static void image_flush (video_decoder_t *this_gen) {
static void image_reset (video_decoder_t *this_gen) {
image_decoder_t *this = (image_decoder_t *) this_gen;
-
+
/*
* reset decoder after engine flush (prepare for new
* video data not related to recently decoded data)
*/
-
+
this->index = 0;
}
static void image_discontinuity (video_decoder_t *this_gen) {
/* image_decoder_t *this = (image_decoder_t *) this_gen; */
-
+
/*
* a time reference discontinuity has happened.
* that is, it must forget any currently held pts value
@@ -208,7 +208,7 @@ static void image_dispose (video_decoder_t *this_gen) {
}
-static video_decoder_t *open_plugin (video_decoder_class_t *class_gen,
+static video_decoder_t *open_plugin (video_decoder_class_t *class_gen,
xine_stream_t *stream) {
image_class_t *cls = (image_class_t *) class_gen;
@@ -254,7 +254,7 @@ static void *init_class (xine_t *xine, void *data) {
*/
lprintf("class opened\n");
-
+
return this;
}
@@ -271,7 +271,7 @@ static const decoder_info_t dec_info_image = {
};
const plugin_info_t xine_plugin_info[] EXPORTED = {
- /* type, API, "name", version, special_info, init_function */
+ /* type, API, "name", version, special_info, init_function */
{ PLUGIN_VIDEO_DECODER, 19, "image", XINE_VERSION_CODE, &dec_info_image, init_class },
{ PLUGIN_NONE, 0, "", 0, NULL, NULL }
};
diff --git a/src/video_dec/libmpeg2/xine_mpeg2_decoder.c b/src/video_dec/libmpeg2/xine_mpeg2_decoder.c
index d72e610ab..c4c7fac2d 100644
--- a/src/video_dec/libmpeg2/xine_mpeg2_decoder.c
+++ b/src/video_dec/libmpeg2/xine_mpeg2_decoder.c
@@ -1,18 +1,18 @@
-/*
+/*
* Copyright (C) 2000-2003 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -73,11 +73,11 @@ static void mpeg2dec_decode_data (video_decoder_t *this_gen, buf_element_t *buf)
}
return;
}
-
+
if (buf->decoder_flags & BUF_FLAG_PREVIEW) {
mpeg2_find_sequence_header (&this->mpeg2, buf->content, buf->content + buf->size);
} else {
-
+
mpeg2_decode_data (&this->mpeg2, buf->content, buf->content + buf->size,
buf->pts);
}
@@ -167,7 +167,7 @@ static const decoder_info_t dec_info_mpeg2 = {
};
const plugin_info_t xine_plugin_info[] EXPORTED = {
- /* type, API, "name", version, special_info, init_function */
+ /* type, API, "name", version, special_info, init_function */
{ PLUGIN_VIDEO_DECODER, 19, "mpeg2", XINE_VERSION_CODE, &dec_info_mpeg2, init_plugin },
{ PLUGIN_NONE, 0, "", 0, NULL, NULL }
};
diff --git a/src/video_dec/libmpeg2new/xine_mpeg2new_decoder.c b/src/video_dec/libmpeg2new/xine_mpeg2new_decoder.c
index bcb0384fd..2678168e2 100644
--- a/src/video_dec/libmpeg2new/xine_mpeg2new_decoder.c
+++ b/src/video_dec/libmpeg2new/xine_mpeg2new_decoder.c
@@ -1,18 +1,18 @@
-/*
+/*
* Copyright (C) 2000-2004 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
@@ -68,7 +68,7 @@ typedef struct mpeg2_video_decoder_s {
img_state_t img_state[30];
uint32_t frame_number;
uint32_t rff_pattern;
-
+
} mpeg2_video_decoder_t;
#ifndef LOG_FRAME_ALLOC_FREE
@@ -85,7 +85,7 @@ static void mpeg2_video_print_bad_state(img_state_t * img_state) {
}
if (m > 3) _x_abort();
if (m == 0) printf("NO FRAMES\n");
-}
+}
#endif
static void mpeg2_video_free_all(img_state_t * img_state) {
@@ -99,7 +99,7 @@ static void mpeg2_video_free_all(img_state_t * img_state) {
img_state[n].id = 0;
}
}
-}
+}
static void mpeg2_video_print_fbuf(const mpeg2_fbuf_t * fbuf) {
@@ -138,7 +138,7 @@ static void mpeg2_video_decode_data (video_decoder_t *this_gen, buf_element_t *b
else
this->force_pan_scan = 0;
}
-
+
return;
}
@@ -151,7 +151,7 @@ static void mpeg2_video_decode_data (video_decoder_t *this_gen, buf_element_t *b
mpeg2_buffer (this->mpeg2dec, current, end);
info = mpeg2_info (this->mpeg2dec);
-
+
while ((state = mpeg2_parse (this->mpeg2dec)) != STATE_BUFFER) {
switch (state) {
case STATE_SEQUENCE:
@@ -194,7 +194,7 @@ static void mpeg2_video_decode_data (video_decoder_t *this_gen, buf_element_t *b
} else {
picture_structure = VO_BOTH_FIELDS;
}
-
+
img = this->stream->video_out->get_frame (this->stream->video_out,
info->sequence->picture_width,
info->sequence->picture_height,
@@ -214,7 +214,7 @@ static void mpeg2_video_decode_data (video_decoder_t *this_gen, buf_element_t *b
img->duration += img->duration/4;
} else {
if( img->repeat_first_field ) {
- img->duration = (img->duration * info->current_picture->nb_fields) / 2;
+ img->duration = (img->duration * info->current_picture->nb_fields) / 2;
}
}
@@ -224,7 +224,7 @@ static void mpeg2_video_decode_data (video_decoder_t *this_gen, buf_element_t *b
img->pts=0;
}
-
+
#ifdef LOG_FRAME_ALLOC_FREE
printf ("libmpeg2:decode_data:get_frame xine=%p (id=%d)\n", img,img->id);
#endif
@@ -506,7 +506,7 @@ static const decoder_info_t dec_info_mpeg2 = {
};
const plugin_info_t xine_plugin_info[] EXPORTED = {
- /* type, API, "name", version, special_info, init_function */
+ /* type, API, "name", version, special_info, init_function */
{ PLUGIN_VIDEO_DECODER, 19, "mpeg2new", XINE_VERSION_CODE, &dec_info_mpeg2, init_plugin },
{ PLUGIN_NONE, 0, "", 0, NULL, NULL }
};
diff --git a/src/video_dec/rgb.c b/src/video_dec/rgb.c
index f661bd63e..678ce8194 100644
--- a/src/video_dec/rgb.c
+++ b/src/video_dec/rgb.c
@@ -27,7 +27,7 @@
* file can be 32-, 24-, 16-, 8-, 4-, 2-, or 1-bit. Any resolutions <= 8
* can also be greyscale depending on what the QT file specifies.
*
- * One more catch: Raw RGB from a Microsoft file is upside down. This is
+ * One more catch: Raw RGB from a Microsoft file is upside down. This is
* indicated by a negative height parameter.
*/
@@ -80,7 +80,7 @@ typedef struct rgb_decoder_s {
unsigned char yuv_palette[256 * 4];
yuv_planes_t yuv_planes;
-
+
} rgb_decoder_t;
static void rgb_decode_data (video_decoder_t *this_gen,
@@ -121,7 +121,7 @@ static void rgb_decode_data (video_decoder_t *this_gen,
this->video_step = buf->decoder_info[0];
_x_stream_info_set(this->stream, XINE_STREAM_INFO_FRAME_DURATION, this->video_step);
}
-
+
if (buf->decoder_flags & BUF_FLAG_STDHEADER) { /* need to initialize */
(this->stream->video_out->open) (this->stream->video_out, this->stream);
@@ -194,11 +194,11 @@ static void rgb_decode_data (video_decoder_t *this_gen,
palette_index = this->buf[buf_ptr++];
- this->yuv_planes.y[row_ptr + pixel_ptr] =
+ this->yuv_planes.y[row_ptr + pixel_ptr] =
this->yuv_palette[palette_index * 4 + 0];
- this->yuv_planes.u[row_ptr + pixel_ptr] =
+ this->yuv_planes.u[row_ptr + pixel_ptr] =
this->yuv_palette[palette_index * 4 + 1];
- this->yuv_planes.v[row_ptr + pixel_ptr] =
+ this->yuv_planes.v[row_ptr + pixel_ptr] =
this->yuv_palette[palette_index * 4 + 2];
} else if (this->bytes_per_pixel == 2) {
@@ -208,11 +208,11 @@ static void rgb_decode_data (video_decoder_t *this_gen,
buf_ptr += 2;
UNPACK_BGR15(packed_pixel, r, g, b);
- this->yuv_planes.y[row_ptr + pixel_ptr] =
+ this->yuv_planes.y[row_ptr + pixel_ptr] =
COMPUTE_Y(r, g, b);
- this->yuv_planes.u[row_ptr + pixel_ptr] =
+ this->yuv_planes.u[row_ptr + pixel_ptr] =
COMPUTE_U(r, g, b);
- this->yuv_planes.v[row_ptr + pixel_ptr] =
+ this->yuv_planes.v[row_ptr + pixel_ptr] =
COMPUTE_V(r, g, b);
} else {
@@ -225,11 +225,11 @@ static void rgb_decode_data (video_decoder_t *this_gen,
/* the next line takes care of 'A' in the 32-bit case */
buf_ptr += this->bytes_per_pixel - 3;
- this->yuv_planes.y[row_ptr + pixel_ptr] =
+ this->yuv_planes.y[row_ptr + pixel_ptr] =
COMPUTE_Y(r, g, b);
- this->yuv_planes.u[row_ptr + pixel_ptr] =
+ this->yuv_planes.u[row_ptr + pixel_ptr] =
COMPUTE_U(r, g, b);
- this->yuv_planes.v[row_ptr + pixel_ptr] =
+ this->yuv_planes.v[row_ptr + pixel_ptr] =
COMPUTE_V(r, g, b);
}
@@ -249,18 +249,18 @@ static void rgb_decode_data (video_decoder_t *this_gen,
}
if (pixel_byte & 0x80) {
- this->yuv_planes.y[row_ptr + pixel_ptr] =
+ this->yuv_planes.y[row_ptr + pixel_ptr] =
this->yuv_palette[1 * 4 + 0];
- this->yuv_planes.u[row_ptr + pixel_ptr] =
+ this->yuv_planes.u[row_ptr + pixel_ptr] =
this->yuv_palette[1 * 4 + 1];
- this->yuv_planes.v[row_ptr + pixel_ptr] =
+ this->yuv_planes.v[row_ptr + pixel_ptr] =
this->yuv_palette[1 * 4 + 2];
} else {
- this->yuv_planes.y[row_ptr + pixel_ptr] =
+ this->yuv_planes.y[row_ptr + pixel_ptr] =
this->yuv_palette[0 * 4 + 0];
- this->yuv_planes.u[row_ptr + pixel_ptr] =
+ this->yuv_planes.u[row_ptr + pixel_ptr] =
this->yuv_palette[0 * 4 + 1];
- this->yuv_planes.v[row_ptr + pixel_ptr] =
+ this->yuv_planes.v[row_ptr + pixel_ptr] =
this->yuv_palette[0 * 4 + 2];
}
pixels_left--;
@@ -274,11 +274,11 @@ static void rgb_decode_data (video_decoder_t *this_gen,
}
palette_index = (pixel_byte & 0xC0) >> 6;
- this->yuv_planes.y[row_ptr + pixel_ptr] =
+ this->yuv_planes.y[row_ptr + pixel_ptr] =
this->yuv_palette[palette_index * 4 + 0];
- this->yuv_planes.u[row_ptr + pixel_ptr] =
+ this->yuv_planes.u[row_ptr + pixel_ptr] =
this->yuv_palette[palette_index * 4 + 1];
- this->yuv_planes.v[row_ptr + pixel_ptr] =
+ this->yuv_planes.v[row_ptr + pixel_ptr] =
this->yuv_palette[palette_index * 4 + 2];
pixels_left--;
@@ -292,11 +292,11 @@ static void rgb_decode_data (video_decoder_t *this_gen,
}
palette_index = (pixel_byte & 0xF0) >> 4;
- this->yuv_planes.y[row_ptr + pixel_ptr] =
+ this->yuv_planes.y[row_ptr + pixel_ptr] =
this->yuv_palette[palette_index * 4 + 0];
- this->yuv_planes.u[row_ptr + pixel_ptr] =
+ this->yuv_planes.u[row_ptr + pixel_ptr] =
this->yuv_palette[palette_index * 4 + 1];
- this->yuv_planes.v[row_ptr + pixel_ptr] =
+ this->yuv_planes.v[row_ptr + pixel_ptr] =
this->yuv_palette[palette_index * 4 + 2];
pixels_left--;
@@ -306,11 +306,11 @@ static void rgb_decode_data (video_decoder_t *this_gen,
palette_index = this->buf[buf_ptr++];
- this->yuv_planes.y[row_ptr + pixel_ptr] =
+ this->yuv_planes.y[row_ptr + pixel_ptr] =
this->yuv_palette[palette_index * 4 + 0];
- this->yuv_planes.u[row_ptr + pixel_ptr] =
+ this->yuv_planes.u[row_ptr + pixel_ptr] =
this->yuv_palette[palette_index * 4 + 1];
- this->yuv_planes.v[row_ptr + pixel_ptr] =
+ this->yuv_planes.v[row_ptr + pixel_ptr] =
this->yuv_palette[palette_index * 4 + 2];
} else if (this->bytes_per_pixel == 2) {
@@ -320,16 +320,16 @@ static void rgb_decode_data (video_decoder_t *this_gen,
buf_ptr += 2;
UNPACK_RGB15(packed_pixel, r, g, b);
- this->yuv_planes.y[row_ptr + pixel_ptr] =
+ this->yuv_planes.y[row_ptr + pixel_ptr] =
COMPUTE_Y(r, g, b);
- this->yuv_planes.u[row_ptr + pixel_ptr] =
+ this->yuv_planes.u[row_ptr + pixel_ptr] =
COMPUTE_U(r, g, b);
- this->yuv_planes.v[row_ptr + pixel_ptr] =
+ this->yuv_planes.v[row_ptr + pixel_ptr] =
COMPUTE_V(r, g, b);
} else {
- /* RGB24 or ARGB32; the next line takes care of 'A' in the
+ /* RGB24 or ARGB32; the next line takes care of 'A' in the
* 32-bit case */
buf_ptr += this->bytes_per_pixel - 3;
@@ -337,11 +337,11 @@ static void rgb_decode_data (video_decoder_t *this_gen,
g = this->buf[buf_ptr++];
b = this->buf[buf_ptr++];
- this->yuv_planes.y[row_ptr + pixel_ptr] =
+ this->yuv_planes.y[row_ptr + pixel_ptr] =
COMPUTE_Y(r, g, b);
- this->yuv_planes.u[row_ptr + pixel_ptr] =
+ this->yuv_planes.u[row_ptr + pixel_ptr] =
COMPUTE_U(r, g, b);
- this->yuv_planes.v[row_ptr + pixel_ptr] =
+ this->yuv_planes.v[row_ptr + pixel_ptr] =
COMPUTE_V(r, g, b);
}
@@ -434,7 +434,7 @@ static void *init_plugin (xine_t *xine, void *data) {
* exported plugin catalog entry
*/
-static const uint32_t video_types[] = {
+static const uint32_t video_types[] = {
BUF_VIDEO_RGB,
0
};
@@ -445,7 +445,7 @@ static const decoder_info_t dec_info_video = {
};
const plugin_info_t xine_plugin_info[] EXPORTED = {
- /* type, API, "name", version, special_info, init_function */
+ /* type, API, "name", version, special_info, init_function */
{ PLUGIN_VIDEO_DECODER, 19, "rgb", XINE_VERSION_CODE, &dec_info_video, init_plugin },
{ PLUGIN_NONE, 0, "", 0, NULL, NULL }
};
diff --git a/src/video_dec/yuv.c b/src/video_dec/yuv.c
index bfad8b713..c1a8b1829 100644
--- a/src/video_dec/yuv.c
+++ b/src/video_dec/yuv.c
@@ -62,7 +62,7 @@ typedef struct yuv_decoder_s {
int width; /* the width of a video frame */
int height; /* the height of a video frame */
double ratio; /* the width to height ratio */
-
+
int progressive;
int top_field_first;
@@ -104,10 +104,10 @@ static void yuv_decode_data (video_decoder_t *this_gen,
this->ratio = (double)buf->decoder_info[1] / (double)buf->decoder_info[2];
else
this->ratio = (double)this->width / (double)this->height;
-
+
this->progressive = buf->decoder_info[3];
this->top_field_first = buf->decoder_info[4];
-
+
free (this->buf);
this->buf = NULL;
@@ -123,7 +123,7 @@ static void yuv_decode_data (video_decoder_t *this_gen,
case BUF_VIDEO_YUY2:
_x_meta_info_set_utf8(this->stream, XINE_META_INFO_VIDEOCODEC, "Raw YUY2");
break;
-
+
case BUF_VIDEO_YV12:
_x_meta_info_set_utf8(this->stream, XINE_META_INFO_VIDEOCODEC, "Raw YV12");
break;
@@ -135,13 +135,13 @@ static void yuv_decode_data (video_decoder_t *this_gen,
case BUF_VIDEO_GREY:
_x_meta_info_set_utf8(this->stream, XINE_META_INFO_VIDEOCODEC, "Greyscale YUV");
break;
-
+
case BUF_VIDEO_I420:
_x_meta_info_set_utf8(this->stream, XINE_META_INFO_VIDEOCODEC, "Raw I420");
break;
}
-
+
_x_stream_info_set(this->stream, XINE_STREAM_INFO_VIDEO_WIDTH, this->width);
_x_stream_info_set(this->stream, XINE_STREAM_INFO_VIDEO_HEIGHT, this->height);
_x_stream_info_set(this->stream, XINE_STREAM_INFO_VIDEO_RATIO, this->ratio*10000);
@@ -164,14 +164,14 @@ static void yuv_decode_data (video_decoder_t *this_gen,
xine_fast_memcpy (&this->buf[this->size], buf->content, buf->size);
this->size += buf->size;
-
+
src = this->buf;
}
if (buf->decoder_flags & BUF_FLAG_FRAME_END) {
if (buf->type == BUF_VIDEO_YUY2) {
-
+
img = this->stream->video_out->get_frame (this->stream->video_out,
this->width, this->height,
this->ratio, XINE_IMGFMT_YUY2, VO_BOTH_FIELDS);
@@ -182,14 +182,14 @@ static void yuv_decode_data (video_decoder_t *this_gen,
/* dst */
img->base[0], img->pitches[0],
/* width x height */
- this->width, this->height);
-
+ this->width, this->height);
+
} else if (buf->type == BUF_VIDEO_YV12) {
img = this->stream->video_out->get_frame (this->stream->video_out,
this->width, this->height,
this->ratio, XINE_IMGFMT_YV12, VO_BOTH_FIELDS);
-
+
yv12_to_yv12(
/* Y */
src, this->width,
@@ -204,7 +204,7 @@ static void yuv_decode_data (video_decoder_t *this_gen,
this->width, this->height);
} else if (buf->type == BUF_VIDEO_I420) {
-
+
img = this->stream->video_out->get_frame (this->stream->video_out,
this->width, this->height,
this->ratio, XINE_IMGFMT_YV12, VO_BOTH_FIELDS);
@@ -231,17 +231,17 @@ static void yuv_decode_data (video_decoder_t *this_gen,
yuv9_to_yv12(
/* Y */
- src,
+ src,
this->width,
- img->base[0],
+ img->base[0],
img->pitches[0],
/* U */
- src + (this->width * this->height),
+ src + (this->width * this->height),
this->width / 4,
img->base[1],
img->pitches[1],
/* V */
- src + (this->width * this->height) +
+ src + (this->width * this->height) +
(this->width * this->height / 16),
this->width / 4,
img->base[2],
@@ -356,8 +356,8 @@ static void *init_plugin (xine_t *xine, void *data) {
* exported plugin catalog entry
*/
-static const uint32_t video_types[] = {
- BUF_VIDEO_YUY2,
+static const uint32_t video_types[] = {
+ BUF_VIDEO_YUY2,
BUF_VIDEO_YV12,
BUF_VIDEO_YVU9,
BUF_VIDEO_GREY,
@@ -371,7 +371,7 @@ static const decoder_info_t dec_info_video = {
};
const plugin_info_t xine_plugin_info[] EXPORTED = {
- /* type, API, "name", version, special_info, init_function */
+ /* type, API, "name", version, special_info, init_function */
{ PLUGIN_VIDEO_DECODER, 19, "yuv", XINE_VERSION_CODE, &dec_info_video, init_plugin },
{ PLUGIN_NONE, 0, "", 0, NULL, NULL }
};
diff --git a/src/video_out/Makefile.am b/src/video_out/Makefile.am
index 7c049b257..d44021faf 100644
--- a/src/video_out/Makefile.am
+++ b/src/video_out/Makefile.am
@@ -5,7 +5,7 @@ AM_CFLAGS = $(DEFAULT_OCFLAGS) $(VISIBILITY_FLAG)
AM_LDFLAGS = $(xineplug_ldflags)
AM_OBJCFLAGS = $(DEFAULT_OCFLAGS) $(VISIBILITY_FLAG)
-SUBDIRS =
+SUBDIRS =
if ENABLE_MACOSX_VIDEO
SUBDIRS += macosx
@@ -197,7 +197,7 @@ xineplug_vo_out_stk_la_SOURCES = video_out_stk.c
xineplug_vo_out_stk_la_LIBADD = $(XINE_LIB) $(LIBSTK_LIBS) $(PTHREAD_LIBS)
xineplug_vo_out_stk_la_CFLAGS = $(AM_CFLAGS) $(LIBSTK_CFLAGS)
-xineplug_vo_out_directx_la_SOURCES = video_out_directx.c
+xineplug_vo_out_directx_la_SOURCES = video_out_directx.c
xineplug_vo_out_directx_la_LIBADD = libyuv2rgb.la $(XINE_LIB) $(DIRECTX_VIDEO_LIBS) $(PTHREAD_LIBS) $(LTLIBINTL)
xineplug_vo_out_directx_la_CPPFLAGS = $(AM_CPPFLAGS) $(DIRECTX_CPPFLAGS)
diff --git a/src/video_out/macosx/video_window.h b/src/video_out/macosx/video_window.h
index b46ac43fe..0a3655c0c 100644
--- a/src/video_out/macosx/video_window.h
+++ b/src/video_out/macosx/video_window.h
@@ -18,7 +18,7 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
*
* Written by Daniel Mack <xine@zonque.org>
- *
+ *
* Most parts of this code were taken from VLC, http://www.videolan.org
* Thanks for the good research!
*/
diff --git a/src/video_out/myglext.h b/src/video_out/myglext.h
index 1a55a4f87..643b31c3d 100644
--- a/src/video_out/myglext.h
+++ b/src/video_out/myglext.h
@@ -13,21 +13,21 @@ extern "C" {
** this file except in compliance with the License. You may obtain a copy
** of the License at Silicon Graphics, Inc., attn: Legal Services, 1600
** Amphitheatre Parkway, Mountain View, CA 94043-1351, or at:
-**
+**
** http://oss.sgi.com/projects/FreeB
-**
+**
** Note that, as provided in the License, the Software is distributed on an
** "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS
** DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND
** CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A
** PARTICULAR PURPOSE, AND NON-INFRINGEMENT.
-**
+**
** Original Code. The Original Code is: OpenGL Sample Implementation,
** Version 1.2.1, released January 26, 2000, developed by Silicon Graphics,
** Inc. The Original Code is Copyright (c) 1991-2004 Silicon Graphics, Inc.
** Copyright in any portions created by third parties is as indicated
** elsewhere herein. All Rights Reserved.
-**
+**
** Additional Notice Provisions: This software was created using the
** OpenGL(R) version 1.2.1 Sample Implementation published by SGI, but has
** not been independently verified as being compliant with the OpenGL(R)
diff --git a/src/video_out/video_out_aa.c b/src/video_out/video_out_aa.c
index 2eaf9e239..1af250162 100644
--- a/src/video_out/video_out_aa.c
+++ b/src/video_out/video_out_aa.c
@@ -1,18 +1,18 @@
-/*
+/*
* Copyright (C) 2000-2004 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -91,7 +91,7 @@ static uint32_t aa_get_capabilities (vo_driver_t *this) {
static void aa_dispose_frame (vo_frame_t *vo_img) {
aa_frame_t *frame = (aa_frame_t *)vo_img;
-
+
av_free (frame->vo_frame.base[0]);
av_free (frame->vo_frame.base[1]);
av_free (frame->vo_frame.base[2]);
@@ -119,19 +119,19 @@ static vo_frame_t *aa_alloc_frame(vo_driver_t *this_gen) {
frame->vo_frame.field = aa_frame_field;
frame->vo_frame.dispose = aa_dispose_frame;
frame->vo_frame.driver = this_gen;
-
+
return (vo_frame_t*) frame;
}
static void aa_update_frame_format (vo_driver_t *this_gen, vo_frame_t *img,
- uint32_t width, uint32_t height,
+ uint32_t width, uint32_t height,
double ratio, int format, int flags) {
aa_driver_t *this = (aa_driver_t*) this_gen;
aa_frame_t *frame = (aa_frame_t *) img;
/* printf ("aa_update_format...\n"); */
- if ((frame->width != width) || (frame->height != height)
+ if ((frame->width != width) || (frame->height != height)
|| (frame->format != format)) {
av_freep (&frame->vo_frame.base[0]);
@@ -194,27 +194,27 @@ static void aa_display_frame (vo_driver_t *this_gen, vo_frame_t *frame_gen) {
if (frame->format == XINE_IMGFMT_YV12) {
for (y = 0; y<aa_imgheight (this->context); y++) {
for (x = 0; x<aa_imgwidth (this->context); x++) {
-
+
*img++ = src_image[((int)((double) x * x_fact) +
frame->width * (int)((double) y * y_fact))];
-
+
}
}
} else {
for (y = 0; y<aa_imgheight (this->context); y++) {
for (x = 0; x<aa_imgwidth (this->context); x++) {
-
+
*img++ = src_image[((int)((double) x * x_fact) * 2 +
frame->width * 2 * (int)((double) y * y_fact))];
-
+
}
}
}
frame->vo_frame.free (&frame->vo_frame);
- aa_fastrender(this->context, 0, 0,
- aa_imgwidth (this->context),
+ aa_fastrender(this->context, 0, 0,
+ aa_imgwidth (this->context),
aa_imgheight (this->context));
aa_flush (this->context);
@@ -223,7 +223,7 @@ static void aa_display_frame (vo_driver_t *this_gen, vo_frame_t *frame_gen) {
static int aa_get_property (vo_driver_t *this_gen, int property) {
aa_driver_t *this = (aa_driver_t*) this_gen;
-
+
if ( property == VO_PROP_ASPECT_RATIO) {
return this->user_ratio ;
} else {
@@ -234,7 +234,7 @@ static int aa_get_property (vo_driver_t *this_gen, int property) {
return 0;
}
-static int aa_set_property (vo_driver_t *this_gen,
+static int aa_set_property (vo_driver_t *this_gen,
int property, int value) {
aa_driver_t *this = (aa_driver_t*) this_gen;
@@ -251,7 +251,7 @@ static int aa_set_property (vo_driver_t *this_gen,
return value;
}
-static void aa_get_property_min_max (vo_driver_t *this_gen,
+static void aa_get_property_min_max (vo_driver_t *this_gen,
int property, int *min, int *max) {
*min = 0;
*max = 0;
@@ -269,9 +269,9 @@ static vo_driver_t *open_plugin (video_driver_class_t *class_gen, const void *vi
aa_driver_t *this;
this = (aa_driver_t*) calloc(1, sizeof(aa_driver_t));
-
+
this->context = (aa_context*) visual_gen;
-
+
this->config = class->config;
this->xine = class->xine;
@@ -290,19 +290,19 @@ static vo_driver_t *open_plugin (video_driver_class_t *class_gen, const void *vi
this->vo_driver.dispose = aa_dispose;
return &this->vo_driver;
-}
+}
static void *init_class (xine_t *xine, void *visual_gen) {
/* aa_context *context = (aa_context*) visual_gen; */
aa_class_t *this;
-
+
this = calloc(1, sizeof(aa_class_t));
-
+
this->driver_class.open_plugin = open_plugin;
this->driver_class.identifier = "AA";
this->driver_class.description = N_("xine video output plugin using the ascii-art library");
this->driver_class.dispose = default_video_driver_class_dispose;
-
+
this->config = xine->config;
this->xine = xine;
@@ -315,7 +315,7 @@ static const vo_info_t vo_info_aa = {
};
const plugin_info_t xine_plugin_info[] EXPORTED = {
- /* type, API, "name", version, special_info, init_function */
+ /* type, API, "name", version, special_info, init_function */
{ PLUGIN_VIDEO_OUT, 22, "aa", XINE_VERSION_CODE, &vo_info_aa, init_class },
{ PLUGIN_NONE, 0, "", 0, NULL, NULL }
};
diff --git a/src/video_out/video_out_caca.c b/src/video_out/video_out_caca.c
index e995cead4..f50a39779 100644
--- a/src/video_out/video_out_caca.c
+++ b/src/video_out/video_out_caca.c
@@ -1,18 +1,18 @@
-/*
+/*
* Copyright (C) 2003, 2004 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -98,7 +98,7 @@ static uint32_t caca_get_capabilities (vo_driver_t *this) {
static void caca_dispose_frame (vo_frame_t *vo_img) {
caca_frame_t *frame = (caca_frame_t *)vo_img;
-
+
av_free (frame->vo_frame.base[0]);
av_free (frame->vo_frame.base[1]);
av_free (frame->vo_frame.base[2]);
@@ -136,17 +136,17 @@ static vo_frame_t *caca_alloc_frame(vo_driver_t *this_gen) {
/* colorspace converter for this frame */
frame->yuv2rgb =
this->yuv2rgb_factory->create_converter (this->yuv2rgb_factory);
-
+
return (vo_frame_t*) frame;
}
static void caca_update_frame_format (vo_driver_t *this_gen, vo_frame_t *img,
- uint32_t width, uint32_t height,
+ uint32_t width, uint32_t height,
double ratio, int format, int flags) {
caca_driver_t *this = (caca_driver_t*) this_gen;
caca_frame_t *frame = (caca_frame_t *) img;
- if ((frame->width != width) || (frame->height != height)
+ if ((frame->width != width) || (frame->height != height)
|| (frame->format != format)) {
av_freep (&frame->vo_frame.base[0]);
@@ -214,7 +214,7 @@ static void caca_display_frame (vo_driver_t *this_gen, vo_frame_t *frame_gen) {
static int caca_get_property (vo_driver_t *this_gen, int property) {
caca_driver_t *this = (caca_driver_t*) this_gen;
-
+
if ( property == VO_PROP_ASPECT_RATIO) {
return this->user_ratio;
} else {
@@ -225,7 +225,7 @@ static int caca_get_property (vo_driver_t *this_gen, int property) {
return 0;
}
-static int caca_set_property (vo_driver_t *this_gen,
+static int caca_set_property (vo_driver_t *this_gen,
int property, int value) {
caca_driver_t *this = (caca_driver_t*) this_gen;
@@ -242,7 +242,7 @@ static int caca_set_property (vo_driver_t *this_gen,
return value;
}
-static void caca_get_property_min_max (vo_driver_t *this_gen,
+static void caca_get_property_min_max (vo_driver_t *this_gen,
int property, int *min, int *max) {
*min = 0;
*max = 0;
@@ -266,7 +266,7 @@ static vo_driver_t *open_plugin (video_driver_class_t *class_gen, const void *vi
caca_driver_t *this;
this = calloc(1, sizeof (caca_driver_t));
-
+
this->config = class->config;
this->xine = class->xine;
@@ -297,18 +297,18 @@ static vo_driver_t *open_plugin (video_driver_class_t *class_gen, const void *vi
caca_refresh_display(this->dp);
return &this->vo_driver;
-}
+}
static void *init_class (xine_t *xine, void *visual_gen) {
caca_class_t *this;
-
+
this = calloc(1, sizeof(caca_class_t));
-
+
this->driver_class.open_plugin = open_plugin;
this->driver_class.identifier = "CACA";
this->driver_class.description = N_("xine video output plugin using the Color AsCii Art library");
this->driver_class.dispose = default_video_driver_class_dispose;
-
+
this->config = xine->config;
this->xine = xine;
@@ -321,7 +321,7 @@ static const vo_info_t vo_info_caca = {
};
const plugin_info_t xine_plugin_info[] EXPORTED = {
- /* type, API, "name", version, special_info, init_function */
+ /* type, API, "name", version, special_info, init_function */
{ PLUGIN_VIDEO_OUT, 22, "caca", XINE_VERSION_CODE, &vo_info_caca, init_class },
{ PLUGIN_NONE, 0, "", 0, NULL, NULL }
};
diff --git a/src/video_out/video_out_directfb.c b/src/video_out/video_out_directfb.c
index 18df07f76..b9a21c179 100644
--- a/src/video_out/video_out_directfb.c
+++ b/src/video_out/video_out_directfb.c
@@ -1,13 +1,13 @@
/*
* Copyright (C) 2000-2006 the xine project and Claudio Ciccani
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
@@ -19,7 +19,7 @@
*
*
* DirectFB based output plugin by Claudio Ciccani <klan@directfb.org>
- *
+ *
* Based on video_out_xv.c and video_out_vidix.c.
*/
@@ -71,18 +71,18 @@ typedef struct directfb_frame_s {
typedef struct directfb_driver_s {
vo_driver_t vo_driver;
-
+
int visual_type;
uint32_t capabilities;
xine_t *xine;
-
+
directfb_frame_t *cur_frame;
/* DirectFB related stuff */
IDirectFB *dfb;
IDirectFBDisplayLayer *underlay;
-
+
/* Video Layer */
IDirectFBDisplayLayer *layer;
IDirectFBSurface *surface;
@@ -93,23 +93,23 @@ typedef struct directfb_driver_s {
DFBColorAdjustment default_cadj;
int default_level;
int visible;
-
+
/* Subpicture layer */
IDirectFBDisplayLayer *spic_layer;
IDirectFBSurface *spic_surface;
-
+
/* for hardware scaling */
IDirectFBSurface *temp;
int temp_frame_width;
int temp_frame_height;
DFBSurfacePixelFormat temp_frame_format;
-
+
/* wheter card supports stretchblit with deinterlacing */
int hw_deinterlace;
-
+
/* wheter to enable deinterlacing */
int deinterlace;
-
+
/* configurable options */
int buffermode;
int vsync;
@@ -117,7 +117,7 @@ typedef struct directfb_driver_s {
uint32_t colorkey;
int flicker_filtering;
int field_parity;
-
+
#ifdef DIRECTFB_X11
/* X11 related stuff */
Display *display;
@@ -126,18 +126,18 @@ typedef struct directfb_driver_s {
GC gc;
int depth;
x11osd *xoverlay;
-
+
void *user_data;
void (*lock_display) (void *user_data);
void (*unlock_display) (void *user_data);
#endif
int ovl_changed;
-
+
/* screen size */
int screen_width;
int screen_height;
-
+
/* size / aspect ratio calculations */
vo_scale_t sc;
@@ -162,7 +162,7 @@ typedef struct {
"no-deinit-check,"\
"disable-module=linux_input,"\
"disable-module=keyboard"
-
+
#define XDIRECTFB_OPTIONS "no-banner,"\
"no-sighandler,"\
"no-deinit-check"
@@ -189,7 +189,7 @@ typedef struct {
else \
XLockDisplay (this->display); \
} while (0)
-
+
#define UNLOCK_DISPLAY() \
do { \
if (this->unlock_display) \
@@ -197,7 +197,7 @@ typedef struct {
else \
XUnlockDisplay (this->display); \
} while (0)
-
+
/*** driver functions ***/
@@ -215,11 +215,11 @@ static void directfb_frame_dispose (vo_frame_t *vo_img) {
if (frame) {
if (frame->surface) {
- if (frame->locked)
+ if (frame->locked)
frame->surface->Unlock (frame->surface);
frame->surface->Release (frame->surface);
}
-
+
free (frame);
}
}
@@ -230,19 +230,19 @@ static vo_frame_t *directfb_alloc_frame (vo_driver_t *this_gen) {
frame = (directfb_frame_t *) calloc(1, sizeof(directfb_frame_t));
if (!frame) {
- xprintf (this->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->xine, XINE_VERBOSITY_DEBUG,
"video_out_directfb: directfb_alloc_frame: out of memory\n");
return NULL;
}
pthread_mutex_init (&frame->vo_frame.mutex, NULL);
-
- frame->vo_frame.proc_slice = NULL;
+
+ frame->vo_frame.proc_slice = NULL;
frame->vo_frame.proc_frame = NULL;
- frame->vo_frame.field = directfb_frame_field;
+ frame->vo_frame.field = directfb_frame_field;
frame->vo_frame.dispose = directfb_frame_dispose;
frame->vo_frame.driver = this_gen;
-
+
return &frame->vo_frame;
}
@@ -253,18 +253,18 @@ static void directfb_update_frame_format (vo_driver_t *this_gen,
directfb_driver_t *this = (directfb_driver_t *) this_gen;
directfb_frame_t *frame = (directfb_frame_t *) frame_gen;
DFBSurfacePixelFormat format = (fmt == XINE_IMGFMT_YUY2) ? DSPF_YUY2 : DSPF_YV12;
-
+
if (frame->surface == NULL ||
frame->width != width ||
frame->height != height ||
- frame->format != format)
+ frame->format != format)
{
DFBSurfaceDescription dsc;
DFBResult ret;
-
+
lprintf ("frame %p: format changed to %dx%d %s.\n",
frame, width, height, (format == DSPF_YUY2) ? "YUY2" : "YV12");
-
+
if (frame->surface) {
if (frame->locked)
frame->surface->Unlock (frame->surface);
@@ -272,26 +272,26 @@ static void directfb_update_frame_format (vo_driver_t *this_gen,
frame->surface = NULL;
frame->locked = 0;
}
-
+
dsc.flags = DSDESC_CAPS | DSDESC_WIDTH |
DSDESC_HEIGHT | DSDESC_PIXELFORMAT;
dsc.caps = DSCAPS_SYSTEMONLY | DSCAPS_INTERLACED;
dsc.width = (width + 7) & ~7;
dsc.height = (height + 1) & ~1;
dsc.pixelformat = format;
-
+
ret = this->dfb->CreateSurface (this->dfb, &dsc, &frame->surface);
if (ret != DFB_OK) {
DirectFBError ("IDirectFB::CreateSurface()", ret);
return;
}
-
+
frame->width = width;
frame->height = height;
frame->format = format;
-
- ret = frame->surface->Lock (frame->surface,
- DSLF_READ | DSLF_WRITE,
+
+ ret = frame->surface->Lock (frame->surface,
+ DSLF_READ | DSLF_WRITE,
(void**)&frame->vo_frame.base[0],
(int *)&frame->vo_frame.pitches[0]);
if (ret != DFB_OK) {
@@ -299,17 +299,17 @@ static void directfb_update_frame_format (vo_driver_t *this_gen,
return;
}
frame->locked = 1;
-
+
if (frame->format == DSPF_YV12) {
frame->vo_frame.pitches[1] = frame->vo_frame.pitches[0]/2;
frame->vo_frame.pitches[2] = frame->vo_frame.pitches[0]/2;
- frame->vo_frame.base[2] = frame->vo_frame.base[0] +
+ frame->vo_frame.base[2] = frame->vo_frame.base[0] +
dsc.height * frame->vo_frame.pitches[0];
frame->vo_frame.base[1] = frame->vo_frame.base[2] +
dsc.height/2 * frame->vo_frame.pitches[2];
}
}
-
+
frame->ratio = ratio;
}
@@ -331,7 +331,7 @@ static uint32_t directfb_colorkey_to_pixel (directfb_driver_t *this) {
default:
break;
}
-
+
return this->colorkey;
}
#endif
@@ -342,11 +342,11 @@ static void directfb_clean_output_area (directfb_driver_t *this) {
#ifdef DIRECTFB_X11
if (this->config.options & DLOP_DST_COLORKEY) {
int i;
-
+
LOCK_DISPLAY();
-
+
XSetForeground (this->display, this->gc, BlackPixel(this->display, this->screen));
-
+
for (i = 0; i < 4; i++) {
if (this->sc.border[i].w && this->sc.border[i].h) {
XFillRectangle (this->display, this->drawable, this->gc,
@@ -354,18 +354,18 @@ static void directfb_clean_output_area (directfb_driver_t *this) {
this->sc.border[i].w, this->sc.border[i].h);
}
}
-
+
XSetForeground (this->display, this->gc, directfb_colorkey_to_pixel(this));
- XFillRectangle (this->display, this->drawable, this->gc,
+ XFillRectangle (this->display, this->drawable, this->gc,
this->sc.output_xoffset, this->sc.output_yoffset,
this->sc.output_width, this->sc.output_height);
-
-
+
+
if (this->xoverlay) {
x11osd_resize (this->xoverlay, this->sc.gui_width, this->sc.gui_height);
this->ovl_changed = 1;
}
-
+
XFlush (this->display);
UNLOCK_DISPLAY();
@@ -384,7 +384,7 @@ static void directfb_clean_output_area (directfb_driver_t *this) {
rect[i].w = MAX(this->sc.border[i].w, 0);
rect[i].h = MAX(this->sc.border[i].h, 0);
}
-
+
this->surface->GetCapabilities (this->surface, &caps);
if (caps & DSCAPS_DOUBLE)
bufs++;
@@ -392,7 +392,7 @@ static void directfb_clean_output_area (directfb_driver_t *this) {
bufs++;
this->surface->SetColor (this->surface, 0x00, 0x00, 0x00, 0xff);
- for (i = 0; i < bufs; i++) {
+ for (i = 0; i < bufs; i++) {
this->surface->FillRectangles (this->surface, &rect[0], 4);
this->surface->Flip (this->surface, NULL, 0);
}
@@ -409,7 +409,7 @@ static void directfb_overlay_begin (vo_driver_t *this_gen,
#ifdef DIRECTFB_X11
if (this->xoverlay) {
LOCK_DISPLAY();
- x11osd_clear (this->xoverlay);
+ x11osd_clear (this->xoverlay);
UNLOCK_DISPLAY();
}
#endif
@@ -419,7 +419,7 @@ static void directfb_overlay_begin (vo_driver_t *this_gen,
this->spic_surface->Clear (this->spic_surface, 0, 0, 0, 0);
}
}
-
+
this->alphablend_extra_data.offset_x = frame_gen->overlay_offset_x;
this->alphablend_extra_data.offset_y = frame_gen->overlay_offset_y;
}
@@ -435,28 +435,28 @@ static void directfb_subpicture_paint (directfb_driver_t *this,
int xoffset;
int yoffset;
int x, y, i;
-
+
memset (colors, 0, sizeof(colors));
-
+
xoffset = this->sc.gui_win_x+overlay->x;
yoffset = this->sc.gui_win_y+overlay->y;
-
+
clip.x1 = xoffset;
clip.y1 = yoffset;
clip.x2 = xoffset + overlay->width - 1;
clip.y2 = yoffset + overlay->height - 1;
this->spic_surface->SetClip (this->spic_surface, &clip);
-
+
for (x = 0, y= 0, i = 0; i < overlay->num_rle; i++) {
int idx = overlay->rle[i].color;
int len = overlay->rle[i].len;
-
+
while (len > 0) {
clut_t color = ((clut_t *)overlay->color)[idx];
uint8_t alpha = overlay->trans[idx];
int index = idx;
int width;
-
+
if ((len+x) > overlay->width) {
width = overlay->width - x;
len -= width;
@@ -465,7 +465,7 @@ static void directfb_subpicture_paint (directfb_driver_t *this,
width = len;
len = 0;
}
-
+
if ((y >= overlay->hili_top) &&
(y <= overlay->hili_bottom) &&
(x <= overlay->hili_right))
@@ -478,28 +478,28 @@ static void directfb_subpicture_paint (directfb_driver_t *this,
color = ((clut_t *)overlay->hili_color)[idx];
alpha = overlay->hili_trans[idx];
index += OVL_PALETTE_SIZE;
-
+
if (x+width-1 > overlay->hili_right) {
width -= overlay->hili_right - x;
len += overlay->hili_right - x;
}
}
}
-
+
if (alpha) {
if (n_rects == MAX_RECTS || (p_index != -1 && p_index != index)) {
lprintf ("flushing %d rect(s).\n", n_rects);
this->spic_surface->FillRectangles (this->spic_surface, rects, n_rects);
n_rects = 0;
}
-
+
if (p_index != index) {
if (!colors[index].a) {
YCBCR_TO_RGB (color.y, color.cb, color.cr,
colors[index].r, colors[index].g, colors[index].b);
colors[index].a = alpha | (alpha << 4);
}
-
+
lprintf ("colour change to %02x%02x%02x%02x.\n",
colors[index].a, colors[index].r,
colors[index].g, colors[index].b);
@@ -508,7 +508,7 @@ static void directfb_subpicture_paint (directfb_driver_t *this,
colors[index].b, colors[index].a);
p_index = index;
}
-
+
rects[n_rects].x = x + xoffset;
rects[n_rects].y = y + yoffset;
rects[n_rects].w = width;
@@ -520,10 +520,10 @@ static void directfb_subpicture_paint (directfb_driver_t *this,
n_rects--;
rects[n_rects].h++;
}
- }
+ }
n_rects++;
}
-
+
x += width;
if (x == overlay->width) {
if (++y == overlay->height)
@@ -532,7 +532,7 @@ static void directfb_subpicture_paint (directfb_driver_t *this,
}
}
}
-
+
if (n_rects) {
lprintf ("flushing %d remaining rect(s).\n", n_rects);
this->spic_surface->FillRectangles (this->spic_surface, rects, n_rects);
@@ -543,17 +543,17 @@ static void directfb_overlay_blend (vo_driver_t *this_gen,
vo_frame_t *frame_gen, vo_overlay_t *overlay) {
directfb_driver_t *this = (directfb_driver_t *) this_gen;
directfb_frame_t *frame = (directfb_frame_t *) frame_gen;
-
+
if (!overlay->rle)
return;
-
+
if (overlay->unscaled) {
if (!this->ovl_changed)
return;
#ifdef DIRECTFB_X11
if (this->xoverlay) {
LOCK_DISPLAY();
- x11osd_blend (this->xoverlay, overlay);
+ x11osd_blend (this->xoverlay, overlay);
UNLOCK_DISPLAY();
}
#endif
@@ -570,7 +570,7 @@ static void directfb_overlay_blend (vo_driver_t *this_gen,
&this->alphablend_extra_data);
}
else {
- _x_blend_yuv (frame->vo_frame.base, overlay,
+ _x_blend_yuv (frame->vo_frame.base, overlay,
frame->width, frame->height,
frame->vo_frame.pitches,
&this->alphablend_extra_data);
@@ -602,20 +602,20 @@ static void directfb_overlay_end (vo_driver_t *this_gen, vo_frame_t *frame_gen)
static int directfb_redraw_needed (vo_driver_t *this_gen) {
directfb_driver_t *this = (directfb_driver_t *) this_gen;
directfb_frame_t *frame = this->cur_frame;
-
+
if (!frame)
return 1;
-
- this->sc.delivered_width = frame->width;
- this->sc.delivered_height = frame->height;
- this->sc.delivered_ratio = frame->ratio;
+
+ this->sc.delivered_width = frame->width;
+ this->sc.delivered_height = frame->height;
+ this->sc.delivered_ratio = frame->ratio;
this->sc.crop_left = frame->vo_frame.crop_left;
this->sc.crop_right = frame->vo_frame.crop_right;
this->sc.crop_top = frame->vo_frame.crop_top;
this->sc.crop_bottom = frame->vo_frame.crop_bottom;
-
+
_x_vo_scale_compute_ideal_size (&this->sc);
-
+
if (_x_vo_scale_redraw_needed (&this->sc)) {
lprintf ("redraw needed.\n");
_x_vo_scale_compute_output_size (&this->sc);
@@ -624,20 +624,20 @@ static int directfb_redraw_needed (vo_driver_t *this_gen) {
this->layer->SetSourceRectangle (this->layer,
this->sc.displayed_xoffset,
this->sc.displayed_yoffset,
- this->sc.displayed_width,
+ this->sc.displayed_width,
this->sc.displayed_height );
this->layer->SetScreenRectangle (this->layer,
- this->sc.gui_win_x+this->sc.output_xoffset,
+ this->sc.gui_win_x+this->sc.output_xoffset,
this->sc.gui_win_y+this->sc.output_yoffset,
this->sc.output_width,
this->sc.output_height);
}
-
+
directfb_clean_output_area (this);
-
+
return 1;
}
-
+
return 0;
}
@@ -645,30 +645,30 @@ static int directfb_redraw_needed (vo_driver_t *this_gen) {
static void directfb_display_frame (vo_driver_t *this_gen, vo_frame_t *frame_gen) {
directfb_driver_t *this = (directfb_driver_t *) this_gen;
directfb_frame_t *frame = (directfb_frame_t *) frame_gen;
-
+
if (this->cur_frame)
this->cur_frame->vo_frame.free (&this->cur_frame->vo_frame);
this->cur_frame = frame;
-
+
this->config.flags = DLCONF_NONE;
-
+
if (frame->width != this->config.width) {
this->config.flags |= DLCONF_WIDTH;
this->config.width = frame->width;
}
-
+
if (frame->height != this->config.height) {
this->config.flags |= DLCONF_HEIGHT;
this->config.height = frame->height;
}
-
- if (this->type & DLTF_VIDEO) {
+
+ if (this->type & DLTF_VIDEO) {
if (frame->format != this->config.pixelformat) {
this->config.flags |= DLCONF_PIXELFORMAT;
this->config.pixelformat = frame->format;
}
}
-
+
if (this->caps & DLCAPS_DEINTERLACING) {
if (this->deinterlace &&
!(this->config.options & DLOP_DEINTERLACING)) {
@@ -681,14 +681,14 @@ static void directfb_display_frame (vo_driver_t *this_gen, vo_frame_t *frame_gen
this->config.options &= ~DLOP_DEINTERLACING;
}
}
-
+
if (this->config.flags) {
DFBDisplayLayerConfigFlags failed = 0;
-
+
lprintf ("changing layer configuration to %dx%d %s.\n",
this->config.width, this->config.height,
(this->config.pixelformat == DSPF_YUY2) ? "YUY2" : "YV12");
-
+
this->layer->TestConfiguration (this->layer, &this->config, &failed);
this->config.flags &= ~failed;
if (this->config.flags) {
@@ -700,7 +700,7 @@ static void directfb_display_frame (vo_driver_t *this_gen, vo_frame_t *frame_gen
lprintf ("failed=0x%08x.\n", failed);
}
-
+
if (this->sc.delivered_width != frame->width ||
this->sc.delivered_height != frame->height ||
this->sc.delivered_ratio != frame->ratio)
@@ -708,9 +708,9 @@ static void directfb_display_frame (vo_driver_t *this_gen, vo_frame_t *frame_gen
lprintf ("forcing redraw.\n");
this->sc.force_redraw = 1;
}
-
+
directfb_redraw_needed (&this->vo_driver);
-
+
if (!this->visible) {
this->layer->SetOpacity (this->layer, 0xff);
this->visible = 1;
@@ -720,13 +720,13 @@ static void directfb_display_frame (vo_driver_t *this_gen, vo_frame_t *frame_gen
frame->surface->Unlock (frame->surface);
frame->locked = 0;
}
-
+
if (this->deinterlace) {
if (!(this->config.options & DLOP_DEINTERLACING)) {
- frame->surface->SetField (frame->surface,
+ frame->surface->SetField (frame->surface,
frame->vo_frame.top_field_first ? 0 : 1);
this->surface->SetBlittingFlags (this->surface, DSBLIT_DEINTERLACE);
- }
+ }
else {
this->surface->SetField (this->surface,
frame->vo_frame.top_field_first ? 0 : 1);
@@ -734,13 +734,13 @@ static void directfb_display_frame (vo_driver_t *this_gen, vo_frame_t *frame_gen
} else {
this->surface->SetBlittingFlags (this->surface, DSBLIT_NOFX);
}
-
+
this->surface->Blit (this->surface, frame->surface, NULL, 0, 0);
this->surface->Flip (this->surface, NULL,
(this->vsync) ? DSFLIP_WAITFORSYNC : DSFLIP_ONSYNC);
-
- frame->surface->Lock (frame->surface,
- DSLF_READ | DSLF_WRITE,
+
+ frame->surface->Lock (frame->surface,
+ DSLF_READ | DSLF_WRITE,
(void**)&frame->vo_frame.base[0],
(int *)&frame->vo_frame.pitches[0]);
frame->locked = 1;
@@ -753,28 +753,28 @@ static void directfb_display_frame2 (vo_driver_t *this_gen, vo_frame_t *frame_ge
DFBSurfaceBlittingFlags flags;
DFBRectangle s, d;
DFBResult ret;
-
+
if (this->cur_frame)
this->cur_frame->vo_frame.free (&this->cur_frame->vo_frame);
this->cur_frame = frame;
-
+
/* TODO: try to change video mode when frame size changes */
-
+
if (this->type & DLTF_VIDEO) {
if (frame->format != this->config.pixelformat) {
this->config.flags = DLCONF_PIXELFORMAT;
this->config.pixelformat = frame->format;
-
+
lprintf ("changing layer pixelformat to %s.\n",
(this->config.pixelformat == DSPF_YUY2) ? "YUY2" : "YV12");
-
+
ret = this->layer->SetConfiguration (this->layer, &this->config);
this->layer->GetConfiguration (this->layer, &this->config);
lprintf ("%s.\n", ret ? "failed" : "ok");
}
- }
-
+ }
+
if (this->temp) {
/* try to reduce video memory fragmentation */
if (this->temp_frame_width < frame->width ||
@@ -784,27 +784,27 @@ static void directfb_display_frame2 (vo_driver_t *this_gen, vo_frame_t *frame_ge
DFBSurfaceDescription dsc;
lprintf ("reallocating temporary surface.\n");
-
+
this->temp->Release (this->temp);
this->temp = NULL;
-
+
dsc.flags = DSDESC_CAPS | DSDESC_WIDTH |
DSDESC_HEIGHT | DSDESC_PIXELFORMAT;
dsc.caps = DSCAPS_INTERLACED;
dsc.width = frame->width;
dsc.height = frame->height;
dsc.pixelformat = this->config.pixelformat;
-
+
ret = this->dfb->CreateSurface (this->dfb, &dsc, &this->temp);
if (ret != DFB_OK)
DirectFBError ("IDirectFB::CreateSurface()", ret);
-
+
this->temp_frame_width = frame->width;
this->temp_frame_height = frame->height;
this->temp_frame_format = this->config.pixelformat;
}
}
-
+
if (this->sc.delivered_width != frame->width ||
this->sc.delivered_height != frame->height ||
this->sc.delivered_ratio != frame->ratio)
@@ -812,7 +812,7 @@ static void directfb_display_frame2 (vo_driver_t *this_gen, vo_frame_t *frame_ge
lprintf ("forcing redraw.\n");
this->sc.force_redraw = 1;
}
-
+
directfb_redraw_needed (&this->vo_driver);
if (!this->visible) {
@@ -824,24 +824,24 @@ static void directfb_display_frame2 (vo_driver_t *this_gen, vo_frame_t *frame_ge
frame->surface->Unlock (frame->surface);
frame->locked = 0;
}
-
+
/* source rectangle */
s.x = this->sc.displayed_xoffset;
s.y = this->sc.displayed_yoffset;
s.w = this->sc.displayed_width;
s.h = this->sc.displayed_height;
-
+
/* destination rectangle */
d.x = this->sc.gui_win_x+this->sc.output_xoffset;
d.y = this->sc.gui_win_y+this->sc.output_yoffset;
d.w = this->sc.output_width;
d.h = this->sc.output_height;
-
+
flags = (this->deinterlace) ? DSBLIT_DEINTERLACE : DSBLIT_NOFX;
-
+
if (this->temp) {
if (this->hw_deinterlace) {
- this->temp->SetField (this->temp,
+ this->temp->SetField (this->temp,
frame->vo_frame.top_field_first ? 0 : 1);
this->surface->SetBlittingFlags (this->surface, flags);
}
@@ -850,23 +850,23 @@ static void directfb_display_frame2 (vo_driver_t *this_gen, vo_frame_t *frame_ge
frame->vo_frame.top_field_first ? 0 : 1);
this->temp->SetBlittingFlags (this->temp, flags);
}
-
+
this->temp->Blit (this->temp, frame->surface, &s, 0, 0);
s.x = 0; s.y = 0;
this->surface->StretchBlit (this->surface, this->temp, &s, &d);
- }
+ }
else {
frame->surface->SetField (frame->surface,
frame->vo_frame.top_field_first ? 0 : 1);
this->surface->SetBlittingFlags (this->surface, flags);
this->surface->StretchBlit (this->surface, frame->surface, &s, &d);
}
-
+
this->surface->Flip (this->surface, NULL,
(this->vsync) ? DSFLIP_WAITFORSYNC : DSFLIP_ONSYNC);
-
- frame->surface->Lock (frame->surface,
- DSLF_READ | DSLF_WRITE,
+
+ frame->surface->Lock (frame->surface,
+ DSLF_READ | DSLF_WRITE,
(void**)&frame->vo_frame.base[0],
(int *)&frame->vo_frame.pitches[0]);
frame->locked = 1;
@@ -874,48 +874,48 @@ static void directfb_display_frame2 (vo_driver_t *this_gen, vo_frame_t *frame_ge
static int directfb_get_property (vo_driver_t *this_gen, int property) {
directfb_driver_t *this = (directfb_driver_t *) this_gen;
-
+
switch (property) {
case VO_PROP_INTERLACED:
return this->deinterlace;
-
+
case VO_PROP_ASPECT_RATIO:
return this->sc.user_ratio;
-
+
case VO_PROP_HUE:
if (this->caps & DLCAPS_HUE)
return this->cadj.hue;
break;
-
+
case VO_PROP_SATURATION:
if (this->caps & DLCAPS_SATURATION)
return this->cadj.saturation;
break;
-
+
case VO_PROP_CONTRAST:
if (this->caps & DLCAPS_CONTRAST)
return this->cadj.contrast;
break;
-
+
case VO_PROP_BRIGHTNESS:
if (this->caps & DLCAPS_BRIGHTNESS)
return this->cadj.brightness;
break;
-
+
case VO_PROP_COLORKEY:
if (this->caps & DLCAPS_DST_COLORKEY)
return this->colorkey;
break;
-
+
case VO_PROP_ZOOM_X:
return this->sc.zoom_factor_x * XINE_VO_ZOOM_STEP;
-
+
case VO_PROP_ZOOM_Y:
return this->sc.zoom_factor_y * XINE_VO_ZOOM_STEP;
-
+
case VO_PROP_WINDOW_WIDTH:
return this->sc.gui_width;
-
+
case VO_PROP_WINDOW_HEIGHT:
return this->sc.gui_height;
@@ -925,21 +925,21 @@ static int directfb_get_property (vo_driver_t *this_gen, int property) {
default:
break;
}
-
+
return 0;
}
-static int directfb_set_property (vo_driver_t *this_gen,
+static int directfb_set_property (vo_driver_t *this_gen,
int property, int value) {
directfb_driver_t *this = (directfb_driver_t *) this_gen;
-
+
switch (property) {
case VO_PROP_INTERLACED:
xprintf (this->xine, XINE_VERBOSITY_DEBUG,
"video_out_directfb: deinterlacing set to %d.\n", value);
this->deinterlace = value;
break;
-
+
case VO_PROP_ASPECT_RATIO:
if (value >= XINE_VO_ASPECT_NUM_RATIOS)
value = XINE_VO_ASPECT_NUM_RATIOS-1;
@@ -950,7 +950,7 @@ static int directfb_set_property (vo_driver_t *this_gen,
_x_vo_scale_compute_ideal_size (&this->sc);
this->sc.force_redraw = 1;
break;
-
+
case VO_PROP_HUE:
if (this->caps & DLCAPS_HUE) {
if (value > 0xffff)
@@ -962,7 +962,7 @@ static int directfb_set_property (vo_driver_t *this_gen,
this->layer->SetColorAdjustment (this->layer, &this->cadj);
}
break;
-
+
case VO_PROP_SATURATION:
if (this->caps & DLCAPS_SATURATION) {
if (value > 0xffff)
@@ -974,7 +974,7 @@ static int directfb_set_property (vo_driver_t *this_gen,
this->layer->SetColorAdjustment (this->layer, &this->cadj);
}
break;
-
+
case VO_PROP_CONTRAST:
if (this->caps & DLCAPS_CONTRAST) {
if (value > 0xffff)
@@ -986,7 +986,7 @@ static int directfb_set_property (vo_driver_t *this_gen,
this->layer->SetColorAdjustment (this->layer, &this->cadj);
}
break;
-
+
case VO_PROP_BRIGHTNESS:
if (this->caps & DLCAPS_BRIGHTNESS) {
if (value > 0xffff)
@@ -998,7 +998,7 @@ static int directfb_set_property (vo_driver_t *this_gen,
this->layer->SetColorAdjustment (this->layer, &this->cadj);
}
break;
-
+
case VO_PROP_COLORKEY:
if (this->caps & DLCAPS_DST_COLORKEY) {
if (value > 0xffffff)
@@ -1012,7 +1012,7 @@ static int directfb_set_property (vo_driver_t *this_gen,
directfb_clean_output_area (this);
}
break;
-
+
case VO_PROP_ZOOM_X:
if (value >= XINE_VO_ZOOM_MIN && value <= XINE_VO_ZOOM_MAX) {
xprintf (this->xine, XINE_VERBOSITY_DEBUG,
@@ -1022,7 +1022,7 @@ static int directfb_set_property (vo_driver_t *this_gen,
this->sc.force_redraw = 1;
}
break;
-
+
case VO_PROP_ZOOM_Y:
if (value >= XINE_VO_ZOOM_MIN && value <= XINE_VO_ZOOM_MAX) {
xprintf (this->xine, XINE_VERBOSITY_DEBUG,
@@ -1032,29 +1032,29 @@ static int directfb_set_property (vo_driver_t *this_gen,
this->sc.force_redraw = 1;
}
break;
-
+
default:
break;
- }
-
+ }
+
return value;
}
static void directfb_get_property_min_max (vo_driver_t *this_gen,
int property, int *min, int *max) {
directfb_driver_t *this = (directfb_driver_t *) this_gen;
-
+
switch (property) {
case VO_PROP_INTERLACED:
*min = 0;
*max = 1;
return;
-
+
case VO_PROP_ASPECT_RATIO:
- *min = 0;
+ *min = 0;
*max = XINE_VO_ASPECT_NUM_RATIOS-1;
return;
-
+
case VO_PROP_HUE:
if (this->caps & DLCAPS_HUE) {
*min = 0x0000;
@@ -1062,7 +1062,7 @@ static void directfb_get_property_min_max (vo_driver_t *this_gen,
return;
}
break;
-
+
case VO_PROP_SATURATION:
if (this->caps & DLCAPS_SATURATION) {
*min = 0x0000;
@@ -1070,7 +1070,7 @@ static void directfb_get_property_min_max (vo_driver_t *this_gen,
return;
}
break;
-
+
case VO_PROP_CONTRAST:
if (this->caps & DLCAPS_CONTRAST) {
*min = 0x0000;
@@ -1078,7 +1078,7 @@ static void directfb_get_property_min_max (vo_driver_t *this_gen,
return;
}
break;
-
+
case VO_PROP_BRIGHTNESS:
if (this->caps & DLCAPS_BRIGHTNESS) {
*min = 0x0000;
@@ -1086,7 +1086,7 @@ static void directfb_get_property_min_max (vo_driver_t *this_gen,
return;
}
break;
-
+
case VO_PROP_COLORKEY:
if (this->caps & DLCAPS_DST_COLORKEY) {
*min = 0x000000;
@@ -1094,25 +1094,25 @@ static void directfb_get_property_min_max (vo_driver_t *this_gen,
return;
}
break;
-
+
case VO_PROP_ZOOM_X:
case VO_PROP_ZOOM_Y:
*min = XINE_VO_ZOOM_MIN;
*max = XINE_VO_ZOOM_MAX;
return;
-
+
default:
break;
}
-
+
*min = 0;
*max = 0;
}
-static int directfb_gui_data_exchange (vo_driver_t *this_gen,
+static int directfb_gui_data_exchange (vo_driver_t *this_gen,
int data_type, void *data) {
directfb_driver_t *this = (directfb_driver_t *) this_gen;
-
+
switch (data_type) {
case XINE_GUI_SEND_DRAWABLE_CHANGED:
lprintf ("drawable changed.\n");
@@ -1126,11 +1126,11 @@ static int directfb_gui_data_exchange (vo_driver_t *this_gen,
if (this->xoverlay) {
x11osd_drawable_changed (this->xoverlay, this->drawable);
this->ovl_changed = 1;
- }
+ }
UNLOCK_DISPLAY();
this->sc.force_redraw = 1;
}
-#endif
+#endif
directfb_clean_output_area (this);
break;
@@ -1148,13 +1148,13 @@ static int directfb_gui_data_exchange (vo_driver_t *this_gen,
#endif
directfb_clean_output_area (this);
break;
-
+
case XINE_GUI_SEND_TRANSLATE_GUI_TO_VIDEO: {
int x1, y1, x2, y2;
x11_rectangle_t *rect = data;
-
+
_x_vo_scale_translate_gui2video (&this->sc,
- rect->x, rect->y,
+ rect->x, rect->y,
&x1, &y1);
_x_vo_scale_translate_gui2video (&this->sc,
rect->x + rect->w, rect->y + rect->h,
@@ -1164,11 +1164,11 @@ static int directfb_gui_data_exchange (vo_driver_t *this_gen,
rect->w = x2-x1;
rect->h = y2-y1;
} break;
-
+
default:
return -1;
}
-
+
return 0;
}
@@ -1177,7 +1177,7 @@ static void directfb_dispose (vo_driver_t *this_gen) {
if (this->cur_frame)
this->cur_frame->vo_frame.dispose (&this->cur_frame->vo_frame);
-
+
#ifdef DIRECTFB_X11
if (this->visual_type == XINE_VISUAL_TYPE_X11 ||
this->visual_type == XINE_VISUAL_TYPE_X11_2) {
@@ -1191,25 +1191,25 @@ static void directfb_dispose (vo_driver_t *this_gen) {
if (this->temp)
this->temp->Release (this->temp);
-
+
if (this->spic_surface)
this->spic_surface->Release (this->spic_surface);
-
+
if (this->spic_layer)
this->spic_layer->Release (this->spic_layer);
-
+
if (this->surface)
this->surface->Release (this->surface);
-
+
if (this->layer) {
this->layer->SetColorAdjustment (this->layer, &this->default_cadj);
this->layer->SetLevel (this->layer, this->default_level);
this->layer->Release (this->layer);
}
-
+
if (this->underlay)
this->underlay->Release (this->underlay);
-
+
if (this->dfb)
this->dfb->Release (this->dfb);
@@ -1222,12 +1222,12 @@ static void directfb_dispose (vo_driver_t *this_gen) {
static void update_config_cb (void *data, xine_cfg_entry_t *entry) {
directfb_driver_t *this = (directfb_driver_t *) data;
-
+
lprintf ("update_config_cb(%s).\n", entry->key);
-
+
if (strcmp (entry->key, "video.device.directfb_buffermode") == 0) {
DFBDisplayLayerConfig config = { .flags = DLCONF_BUFFERMODE };
-
+
switch (entry->num_value) {
case 0:
config.buffermode = DLBM_FRONTONLY;
@@ -1239,46 +1239,46 @@ static void update_config_cb (void *data, xine_cfg_entry_t *entry) {
config.buffermode = DLBM_BACKVIDEO;
break;
}
-
+
if (config.buffermode != this->config.buffermode) {
if (this->layer->SetConfiguration (this->layer, &config ) != DFB_OK) {
xprintf (this->xine, XINE_VERBOSITY_LOG,
- "video_out_directfb: failed to set buffermode to %d!\n",
+ "video_out_directfb: failed to set buffermode to %d!\n",
entry->num_value);
return;
}
-
+
this->layer->GetConfiguration (this->layer, &this->config);
}
}
else if (strcmp (entry->key, "video.device.directfb_colorkeying") == 0) {
DFBDisplayLayerConfig config = { .flags = DLCONF_OPTIONS };
-
+
if (entry->num_value)
config.options = this->config.options | DLOP_DST_COLORKEY;
else
config.options = this->config.options & ~DLOP_DST_COLORKEY;
-
+
if (config.options != this->config.options) {
if (this->layer->SetConfiguration (this->layer, &config) != DFB_OK) {
xprintf (this->xine, XINE_VERBOSITY_LOG,
- "video_out_directfb: failed to set colour keying to %d!\n",
+ "video_out_directfb: failed to set colour keying to %d!\n",
entry->num_value);
return;
}
-
+
this->layer->GetConfiguration (this->layer, &this->config);
directfb_clean_output_area (this);
}
- }
+ }
else if (strcmp (entry->key, "video.device.directfb_colorkey") == 0) {
this->colorkey = entry->num_value;
this->layer->SetDstColorKey (this->layer, (this->colorkey & 0xff0000) >> 16,
(this->colorkey & 0x00ff00) >> 8,
- (this->colorkey & 0x0000ff) >> 0);
+ (this->colorkey & 0x0000ff) >> 0);
#ifdef DIRECTFB_X11
if (this->xoverlay) {
- x11osd_colorkey (this->xoverlay,
+ x11osd_colorkey (this->xoverlay,
directfb_colorkey_to_pixel(this), &this->sc);
}
#endif
@@ -1286,52 +1286,52 @@ static void update_config_cb (void *data, xine_cfg_entry_t *entry) {
}
else if (strcmp (entry->key, "video.device.directfb_flicker_filtering") == 0) {
DFBDisplayLayerConfig config = { .flags = DLCONF_OPTIONS };
-
+
if (entry->num_value)
config.options = this->config.options | DLOP_FLICKER_FILTERING;
else
config.options = this->config.options & ~DLOP_FLICKER_FILTERING;
-
+
if (config.options != this->config.options) {
if (this->layer->SetConfiguration (this->layer, &config) != DFB_OK) {
xprintf (this->xine, XINE_VERBOSITY_LOG,
- "video_out_directfb: failed to set flicker_filtering to %d!\n",
+ "video_out_directfb: failed to set flicker_filtering to %d!\n",
entry->num_value);
return;
}
-
+
this->layer->GetConfiguration (this->layer, &this->config);
}
}
else if (strcmp (entry->key, "video.device.directfb_field_parity") == 0) {
DFBDisplayLayerConfig config = { .flags = DLCONF_OPTIONS };
-
+
if (entry->num_value)
config.options = this->config.options | DLOP_FIELD_PARITY;
else
config.options = this->config.options & ~DLOP_FIELD_PARITY;
-
+
if (config.options != this->config.options) {
if (this->layer->SetConfiguration (this->layer, &config) != DFB_OK) {
xprintf (this->xine, XINE_VERBOSITY_LOG,
- "video_out_directfb: failed to set field_parity to %d!\n",
+ "video_out_directfb: failed to set field_parity to %d!\n",
entry->num_value);
return;
}
-
+
this->layer->GetConfiguration (this->layer, &this->config);
- }
+ }
}
else if (strcmp (entry->key, "video.device.directfb_vsync") == 0) {
this->vsync = entry->num_value;
}
}
-
+
static void init_config (directfb_driver_t *this) {
config_values_t *config = this->xine->config;
static const char *const buffermode_enum[] = {"single", "double", "triple", 0};
static const char *const fieldparity_enum[] = {"none", "top", "bottom", 0};
-
+
this->buffermode = config->register_enum (config,
"video.device.directfb_buffermode", this->buffermode, (char**)buffermode_enum,
_("video layer buffering mode"),
@@ -1339,14 +1339,14 @@ static void init_config (directfb_driver_t *this) {
"Double or triple buffering give a smoother playback, "
"but consume more video memory."),
10, update_config_cb, (void *)this);
-
+
this->vsync = config->register_bool (config,
"video.device.directfb_vsync", this->vsync,
_("wait for vertical retrace"),
_("Enable synchronizing the update of the video image to the "
"repainting of the entire screen (\"vertical retrace\")."),
10, update_config_cb, (void *)this);
-
+
if (this->caps & DLCAPS_DST_COLORKEY) {
this->colorkeying = config->register_bool (config,
"video.device.directfb_colorkeying", this->colorkeying,
@@ -1354,7 +1354,7 @@ static void init_config (directfb_driver_t *this) {
_("Enable using a colour key to tell the graphics card "
"where to overlay the video image."),
20, update_config_cb, (void *)this);
-
+
this->colorkey = config->register_range (config,
"video.device.directfb_colorkey", this->colorkey, 0, 0xffffff,
_("video colour key"),
@@ -1363,7 +1363,7 @@ static void init_config (directfb_driver_t *this) {
"if you experience windows becoming transparent."),
10, update_config_cb, (void *)this);
}
-
+
if (this->caps & DLCAPS_FLICKER_FILTERING) {
this->flicker_filtering = config->register_bool( config,
"video.device.directfb_flicker_filtering", this->flicker_filtering,
@@ -1371,7 +1371,7 @@ static void init_config (directfb_driver_t *this) {
_("Enable Flicker Filetring for a smooth output on an interlaced display."),
10, update_config_cb, (void *)this);
}
-
+
if (this->caps & DLCAPS_FIELD_PARITY) {
this->field_parity = config->register_enum( config,
"video.device.directfb_field_parity", this->field_parity, (char**)fieldparity_enum,
@@ -1385,7 +1385,7 @@ static void init_config (directfb_driver_t *this) {
static DFBEnumerationResult find_overlay (DFBDisplayLayerID id,
DFBDisplayLayerDescription dsc, void *ctx) {
DFBDisplayLayerID *ret_id = (DFBDisplayLayerID *) ctx;
-
+
if (dsc.type & DLTF_VIDEO &&
dsc.caps & DLCAPS_SURFACE &&
dsc.caps & DLCAPS_SCREEN_LOCATION) {
@@ -1393,27 +1393,27 @@ static DFBEnumerationResult find_overlay (DFBDisplayLayerID id,
*ret_id = id;
return DFENUM_CANCEL;
}
-
+
return DFENUM_OK;
}
static DFBEnumerationResult find_underlay (DFBDisplayLayerID id,
DFBDisplayLayerDescription dsc, void *ctx) {
DFBDisplayLayerID *ret_id = (DFBDisplayLayerID *) ctx;
-
+
if (dsc.caps & DLCAPS_SURFACE) {
lprintf ("underlay's id = %d.\n", id);
*ret_id = id;
return DFENUM_CANCEL;
}
-
+
return DFENUM_OK;
}
static DFBEnumerationResult find_subpicture (DFBDisplayLayerID id,
DFBDisplayLayerDescription dsc, void *ctx) {
DFBDisplayLayerID *ret_id = (DFBDisplayLayerID *) ctx;
-
+
if (id != DLID_PRIMARY &&
dsc.caps & DLCAPS_SURFACE &&
dsc.caps & DLCAPS_ALPHACHANNEL) {
@@ -1421,33 +1421,33 @@ static DFBEnumerationResult find_subpicture (DFBDisplayLayerID id,
*ret_id = id;
return DFENUM_CANCEL;
}
-
+
return DFENUM_OK;
}
static void init_subpicture (directfb_driver_t *this) {
DFBResult ret;
-
+
/* subpicture layer supported by Unichrome and Radeon */
if (this->caps & DLCAPS_LEVELS && this->underlay) {
DFBDisplayLayerDescription dsc;
-
+
this->underlay->GetDescription (this->underlay, &dsc);
if (dsc.caps & DLCAPS_ALPHACHANNEL) {
DFBDisplayLayerConfig config;
-
- /* enable alphachannel on the underlay */
+
+ /* enable alphachannel on the underlay */
config.flags = DLCONF_PIXELFORMAT | DLCONF_OPTIONS;
config.pixelformat = DSPF_ARGB;
config.options = DLOP_ALPHACHANNEL;
-
+
ret = this->underlay->SetConfiguration (this->underlay, &config);
if (ret) {
/* try AiRGB if the previous failed */
- config.pixelformat = DSPF_AiRGB;
+ config.pixelformat = DSPF_AiRGB;
ret = this->underlay->SetConfiguration (this->underlay, &config);
}
-
+
if (ret == DFB_OK) {
this->underlay->AddRef (this->underlay);
this->spic_layer = this->underlay;
@@ -1456,33 +1456,33 @@ static void init_subpicture (directfb_driver_t *this) {
}
}
}
-#if 0
+#if 0
/* most common type of supicture layer */
if (!this->spic_layer) {
IDirectFBScreen *screen;
DFBDisplayLayerID video_id, id = -1;
-
+
this->layer->GetID (this->layer, &video_id);
-
+
if (this->layer->GetScreen (this->layer, &screen) == DFB_OK) {
screen->EnumDisplayLayers (screen, find_subpicture, (void *)&id);
screen->Release (screen);
}
-
- if (id != -1 && id != video_id) {
+
+ if (id != -1 && id != video_id) {
ret = this->dfb->GetDisplayLayer (this->dfb, id, &this->spic_layer);
if (ret == DFB_OK) {
DFBDisplayLayerConfig config;
-
+
this->spic_layer->GetConfiguration (this->spic_layer, &config);
-
+
config.flags = DLCONF_OPTIONS;
config.options = DLOP_ALPHACHANNEL;
if (!DFB_PIXELFORMAT_HAS_ALPHA(config.pixelformat)) {
config.flags |= DLCONF_PIXELFORMAT;
config.pixelformat = DSPF_ALUT44;
}
-
+
ret = this->spic_layer->SetConfiguration (this->spic_layer, &config);
if (ret) {
lprintf ("failed to set subpicture layer configuration!\n");
@@ -1495,7 +1495,7 @@ static void init_subpicture (directfb_driver_t *this) {
}
}
}
-#endif
+#endif
if (this->spic_layer) {
ret = this->spic_layer->GetSurface (this->spic_layer, &this->spic_surface);
if (ret) {
@@ -1504,10 +1504,10 @@ static void init_subpicture (directfb_driver_t *this) {
this->spic_layer = NULL;
return;
}
-
+
this->spic_surface->Clear (this->spic_surface, 0, 0, 0, 0);
this->spic_surface->Flip (this->spic_surface, NULL, 0);
-
+
xprintf (this->xine, XINE_VERBOSITY_LOG,
_("video_out_directfb: using hardware subpicture acceleration.\n"));
}
@@ -1520,18 +1520,18 @@ static DFBResult init_device (directfb_driver_t *this) {
DFBResult ret;
config.flags = DLCONF_NONE;
-
+
if (this->type & DLTF_VIDEO) {
xprintf (this->xine, XINE_VERBOSITY_LOG,
_("video_out_directfb: layer supports video output.\n"));
config.flags |= DLCONF_PIXELFORMAT;
-
+
/* test for YV12 support */
config.pixelformat = DSPF_YV12;
ret = this->layer->TestConfiguration (this->layer, &config, NULL);
if (ret) {
- xprintf (this->xine, XINE_VERBOSITY_LOG,
+ xprintf (this->xine, XINE_VERBOSITY_LOG,
_("video_out_directfb: layer doesn't support YV12!\n"));
/* test for YUY2 support */
@@ -1546,7 +1546,7 @@ static DFBResult init_device (directfb_driver_t *this) {
}
}
}
-
+
#if DIRECTFB_VERSION_CODE < VERSION_CODE(0,9,25)
if (!(this->type & DLTF_VIDEO)) {
xprintf (this->xine, XINE_VERBOSITY_LOG,
@@ -1554,12 +1554,12 @@ static DFBResult init_device (directfb_driver_t *this) {
"need at least DirectFB 0.9.25 to play on this layer!\n"));
return DFB_UNSUPPORTED;
}
-#endif
-
+#endif
+
/* set layer configuration */
config.flags |= DLCONF_BUFFERMODE | DLCONF_OPTIONS;
config.options = DLOP_NONE;
-
+
switch (this->buffermode) {
case 0:
config.buffermode = DLBM_FRONTONLY;
@@ -1571,22 +1571,22 @@ static DFBResult init_device (directfb_driver_t *this) {
config.buffermode = DLBM_BACKVIDEO;
break;
}
-
+
if (this->colorkeying)
config.options |= DLOP_DST_COLORKEY;
-
+
if (this->flicker_filtering)
config.options |= DLOP_FLICKER_FILTERING;
-
+
if (this->field_parity)
config.options |= DLOP_FIELD_PARITY;
-
+
/* test current configuration */
ret = this->layer->TestConfiguration (this->layer, &config, &failed);
if (failed & DLCONF_BUFFERMODE) {
xprintf (this->xine, XINE_VERBOSITY_LOG,
_("video_out_directfb: layer doesn't support buffermode %d!\n"),
- this->buffermode);
+ this->buffermode);
config.flags &= ~DLCONF_BUFFERMODE;
}
if (failed & DLCONF_OPTIONS) {
@@ -1595,7 +1595,7 @@ static DFBResult init_device (directfb_driver_t *this) {
config.options);
config.flags &= ~DLCONF_OPTIONS;
}
-
+
ret = this->layer->SetConfiguration (this->layer, &config);
/* this should never happen */
if (ret) {
@@ -1603,31 +1603,31 @@ static DFBResult init_device (directfb_driver_t *this) {
return ret;
}
- this->layer->GetConfiguration (this->layer, &this->config);
-
+ this->layer->GetConfiguration (this->layer, &this->config);
+
if (this->caps & DLCAPS_DST_COLORKEY) {
this->layer->SetDstColorKey (this->layer, (this->colorkey & 0xff0000) >> 16,
(this->colorkey & 0x00ff00) >> 8,
(this->colorkey & 0x0000ff) >> 0);
}
-
+
if (this->field_parity)
this->layer->SetFieldParity (this->layer, this->field_parity-1);
-
+
/* get current color cadjustment */
this->layer->GetColorAdjustment (this->layer, &this->default_cadj);
this->cadj = this->default_cadj;
-
+
/* get current level */
this->layer->GetLevel (this->layer, &this->default_level);
-
+
/* retrieve layer's surface */
ret = this->layer->GetSurface (this->layer, &surface);
if (ret != DFB_OK) {
DirectFBError ("IDirectFBDisplayLayer::GetSurface()", ret);
return ret;
}
-
+
/* clear surface buffers */
surface->Clear (surface, 0x00, 0x00, 0x00, 0xff);
surface->Flip (surface, NULL, 0);
@@ -1635,33 +1635,33 @@ static DFBResult init_device (directfb_driver_t *this) {
surface->Flip (surface, NULL, 0);
surface->Clear (surface, 0x00, 0x00, 0x00, 0xff);
surface->Flip (surface, NULL, 0);
-
+
this->surface = surface;
-
- if (this->caps & DLCAPS_SCREEN_LOCATION) {
+
+ if (this->caps & DLCAPS_SCREEN_LOCATION) {
IDirectFBScreen *screen = NULL;
DFBDisplayLayerID id = -1;
this->screen_width = 640;
this->screen_height = 480;
-
+
this->layer->GetScreen (this->layer, &screen);
if (screen) {
screen->EnumDisplayLayers (screen, find_underlay, (void *)&id);
screen->Release (screen);
}
-
+
this->dfb->GetDisplayLayer (this->dfb, id, &this->underlay);
- if (this->underlay) {
+ if (this->underlay) {
this->underlay->GetConfiguration (this->underlay, &config);
this->screen_width = config.width;
this->screen_height = config.height;
-
+
if (this->visual_type == XINE_VISUAL_TYPE_FB) {
this->underlay->SetCooperativeLevel (this->underlay, DLSCL_EXCLUSIVE);
this->underlay->SetConfiguration (this->underlay, &config);
}
- }
+ }
}
else {
/* playing to underlay,
@@ -1669,42 +1669,42 @@ static DFBResult init_device (directfb_driver_t *this) {
IDirectFBSurface *temp;
DFBSurfaceDescription dsc;
DFBAccelerationMask mask = DFXL_NONE;
-
+
this->layer->AddRef (this->layer);
this->underlay = this->layer;
-
+
dsc.flags = DSDESC_CAPS | DSDESC_WIDTH |
DSDESC_HEIGHT | DSDESC_PIXELFORMAT;
dsc.caps = DSCAPS_INTERLACED;
dsc.width = 320;
dsc.height = 240;
dsc.pixelformat = this->config.pixelformat;
-
+
if (this->dfb->CreateSurface (this->dfb, &dsc, &temp) == DFB_OK) {
this->surface->GetAccelerationMask (this->surface, temp, &mask);
-
+
if (mask & DFXL_STRETCHBLIT) {
xprintf (this->xine, XINE_VERBOSITY_LOG,
_("video_out_directfb: "
"using hardware accelerated image scaling.\n"));
this->temp = temp;
-
+
/* check if stretchblit with deinterlacing is supported */
this->surface->SetBlittingFlags (this->surface, DSBLIT_DEINTERLACE);
this->surface->GetAccelerationMask (this->surface, temp, &mask);
this->surface->SetBlittingFlags (this->surface, DSBLIT_NOFX);
-
+
this->hw_deinterlace = (mask & DFXL_STRETCHBLIT) ? 1 : 0;
if (this->hw_deinterlace) {
xprintf (this->xine, XINE_VERBOSITY_LOG,
_("video_out_directfb: "
"image scaling with deinterlacing is hardware accelerated.\n"));
}
-
+
/* used to decide reallocation */
temp->GetSize (temp, &this->temp_frame_width, &this->temp_frame_height);
temp->GetPixelFormat (temp, &this->temp_frame_format);
- }
+ }
else
temp->Release (temp);
}
@@ -1714,11 +1714,11 @@ static DFBResult init_device (directfb_driver_t *this) {
}
xprintf (this->xine, XINE_VERBOSITY_DEBUG,
- "video_out_directfb: screen size is %dx%d.\n",
+ "video_out_directfb: screen size is %dx%d.\n",
this->screen_width, this->screen_height);
-
+
return DFB_OK;
-}
+}
static void directfb_frame_output_cb (void *user_data, int video_width, int video_height,
double video_pixel_aspect, int *dest_x, int *dest_y,
@@ -1736,7 +1736,7 @@ static void directfb_frame_output_cb (void *user_data, int video_width, int vide
*win_y = 0;
}
-/*** DirectFB plugin functions ***/
+/*** DirectFB plugin functions ***/
static inline int convert_caps (DFBDisplayLayerCapabilities caps)
{
@@ -1766,18 +1766,18 @@ static vo_driver_t *open_plugin_fb (video_driver_class_t *class_gen, const void
this = calloc(1, sizeof(directfb_driver_t));
if (!this)
return NULL;
-
+
this->visual_type = XINE_VISUAL_TYPE_FB;
this->xine = class->xine;
-
- /* initialize DirectFB */
+
+ /* initialize DirectFB */
ret = DirectFBInit (&argn, &argp);
if (ret != DFB_OK) {
DirectFBError ("DirectFBInit()", ret);
free (this);
return NULL;
}
-
+
/* create the main interface or retrieve an already existing one */
ret = DirectFBCreate (&this->dfb);
if (ret != DFB_OK) {
@@ -1785,7 +1785,7 @@ static vo_driver_t *open_plugin_fb (video_driver_class_t *class_gen, const void
free (this);
return NULL;
}
-
+
/* allow user/application to select a different layer */
id = config->register_num (config,
"video.device.directfb_layer_id", -1,
@@ -1794,7 +1794,7 @@ static vo_driver_t *open_plugin_fb (video_driver_class_t *class_gen, const void
20, NULL, 0);
if (id == -1) {
IDirectFBScreen *screen;
-
+
/* retrieve an interface to the current screen */
ret = this->dfb->GetScreen (this->dfb, DSCID_PRIMARY, &screen);
if (ret != DFB_OK) {
@@ -1803,7 +1803,7 @@ static vo_driver_t *open_plugin_fb (video_driver_class_t *class_gen, const void
free (this);
return NULL;
}
-
+
/* find an overlay layer on the current screen */
id = DLID_PRIMARY;
screen->EnumDisplayLayers (screen, find_overlay, (void*)&id);
@@ -1812,11 +1812,11 @@ static vo_driver_t *open_plugin_fb (video_driver_class_t *class_gen, const void
xprintf (this->xine, XINE_VERBOSITY_LOG,
_("video_out_directfb: using display layer #%d.\n"), id);
-
+
ret = this->dfb->GetDisplayLayer (this->dfb, id, &this->layer);
if (ret == DFB_OK) {
DFBDisplayLayerDescription dsc;
- this->layer->SetCooperativeLevel (this->layer, DLSCL_EXCLUSIVE);
+ this->layer->SetCooperativeLevel (this->layer, DLSCL_EXCLUSIVE);
this->layer->SetOpacity (this->layer, 0x00);
this->layer->GetDescription (this->layer, &dsc);
this->type = dsc.type;
@@ -1830,7 +1830,7 @@ static vo_driver_t *open_plugin_fb (video_driver_class_t *class_gen, const void
free (this);
return NULL;
}
-
+
this->capabilities = convert_caps (this->caps);
/* set default configuration */
this->buffermode = 1; // double
@@ -1839,7 +1839,7 @@ static vo_driver_t *open_plugin_fb (video_driver_class_t *class_gen, const void
this->colorkey = DEFAULT_COLORKEY;
this->flicker_filtering = 0;
this->field_parity = 0;
-
+
/* get user configuration */
init_config (this);
@@ -1850,19 +1850,19 @@ static vo_driver_t *open_plugin_fb (video_driver_class_t *class_gen, const void
free (this);
return NULL;
}
-
+
/* initialize subpicture layer (if available) */
init_subpicture (this);
if (this->spic_layer)
this->capabilities |= VO_CAP_UNSCALED_OVERLAY;
_x_alphablend_init (&this->alphablend_extra_data, this->xine);
-
+
_x_vo_scale_init (&this->sc, 1, 0, this->xine->config);
this->sc.user_ratio = XINE_VO_ASPECT_AUTO;
this->sc.gui_width = this->screen_width;
- this->sc.gui_height = this->screen_height;
-
+ this->sc.gui_height = this->screen_height;
+
if (visual) {
this->sc.frame_output_cb = visual->frame_output_cb;
this->sc.user_data = visual->user_data;
@@ -1939,18 +1939,18 @@ static vo_driver_t *open_plugin_x11 (video_driver_class_t *class_gen, const void
this = calloc(1, sizeof(directfb_driver_t));
if (!this)
return NULL;
-
+
this->visual_type = class->visual_type;
this->xine = class->xine;
-
- /* initialize DirectFB */
+
+ /* initialize DirectFB */
ret = DirectFBInit (&argn, &argp);
if (ret != DFB_OK) {
DirectFBError ("DirectFBInit()", ret);
free (this);
return NULL;
}
-
+
/* create the main interface or retrieve an already existing one */
ret = DirectFBCreate (&this->dfb);
if (ret != DFB_OK) {
@@ -1958,7 +1958,7 @@ static vo_driver_t *open_plugin_x11 (video_driver_class_t *class_gen, const void
free (this);
return NULL;
}
-
+
/* retrieve an interface to the current screen */
ret = this->dfb->GetScreen (this->dfb, DSCID_PRIMARY, &screen);
if (ret != DFB_OK) {
@@ -1967,7 +1967,7 @@ static vo_driver_t *open_plugin_x11 (video_driver_class_t *class_gen, const void
free (this);
return NULL;
}
-
+
/* find an overlay layer on the current screen */
ret = screen->EnumDisplayLayers (screen, find_overlay, (void*)&id);
screen->Release (screen);
@@ -1977,7 +1977,7 @@ static vo_driver_t *open_plugin_x11 (video_driver_class_t *class_gen, const void
free (this);
return NULL;
}
-
+
if (id != DLID_PRIMARY) {
DFBDisplayLayerDescription dsc;
/* get overlay access */
@@ -1998,7 +1998,7 @@ static vo_driver_t *open_plugin_x11 (video_driver_class_t *class_gen, const void
this->layer = NULL;
}
}
-
+
if (!this->layer) {
xprintf (this->xine, XINE_VERBOSITY_LOG,
_("video_out_directfb: no usable display layer was found!\n"));
@@ -2006,10 +2006,10 @@ static vo_driver_t *open_plugin_x11 (video_driver_class_t *class_gen, const void
free (this);
return NULL;
}
-
+
xprintf (this->xine, XINE_VERBOSITY_LOG,
_("video_out_directfb: using display layer #%d.\n"), id);
-
+
this->capabilities = convert_caps (this->caps);
/* set default configuration */
this->buffermode = 1; // double
@@ -2018,7 +2018,7 @@ static vo_driver_t *open_plugin_x11 (video_driver_class_t *class_gen, const void
this->colorkey = DEFAULT_COLORKEY;
this->flicker_filtering = 0;
this->field_parity = 0;
-
+
/* get user configuration */
init_config (this);
@@ -2029,42 +2029,42 @@ static vo_driver_t *open_plugin_x11 (video_driver_class_t *class_gen, const void
free (this);
return NULL;
}
-
+
this->display = visual->display;
this->screen = visual->screen;
this->drawable = visual->d;
this->gc = XCreateGC (this->display, this->drawable, 0, NULL);
-
+
XGetWindowAttributes (this->display, this->drawable, &attrs);
this->depth = attrs.depth;
_x_alphablend_init (&this->alphablend_extra_data, this->xine);
-
+
_x_vo_scale_init (&this->sc, 1, 0, this->xine->config);
this->sc.user_ratio = XINE_VO_ASPECT_AUTO;
this->sc.gui_width = attrs.width;
this->sc.gui_height = attrs.height;
this->sc.frame_output_cb = visual->frame_output_cb;
this->sc.user_data = visual->user_data;
-
+
if (this->visual_type == XINE_VISUAL_TYPE_X11_2) {
this->user_data = visual->user_data;
this->lock_display = visual->lock_display;
this->unlock_display = visual->unlock_display;
- }
-
+ }
+
if (this->colorkeying) {
this->xoverlay = x11osd_create (this->xine, this->display, this->screen,
this->drawable, X11OSD_COLORKEY);
if (this->xoverlay) {
- x11osd_colorkey (this->xoverlay,
+ x11osd_colorkey (this->xoverlay,
directfb_colorkey_to_pixel(this), &this->sc);
}
} else {
this->xoverlay = x11osd_create (this->xine, this->display, this->screen,
this->drawable, X11OSD_SHAPED);
}
-
+
if (this->xoverlay)
this->capabilities |= VO_CAP_UNSCALED_OVERLAY;
@@ -2099,13 +2099,13 @@ static void *init_class_x11 (xine_t *xine, void *visual_gen) {
"video_out_directfb: %s!\n", error);
return NULL;
}
-
+
if (!visual) {
xprintf (xine, XINE_VERBOSITY_DEBUG,
"video_out_directfb: x11 visual is required!\n");
return NULL;
}
-
+
/* check if we are running under XDirectFB */
if (strcmp (XServerVendor (visual->display), "Denis Oliver Kropp"))
return NULL;
@@ -2128,7 +2128,7 @@ static void *init_class_x11_2 (xine_t *xine, void *visual_gen) {
this = init_class_x11( xine, visual_gen );
if (this)
this->visual_type = XINE_VISUAL_TYPE_X11_2;
-
+
return this;
}
diff --git a/src/video_out/video_out_directx.c b/src/video_out/video_out_directx.c
index 0c6294f51..26f1c1178 100644
--- a/src/video_out/video_out_directx.c
+++ b/src/video_out/video_out_directx.c
@@ -1,18 +1,18 @@
-/*
+/*
* Copyright (C) 2000-2005 the xine project
- *
+ *
* This file is part of xine, a unix video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -118,7 +118,7 @@ typedef struct {
LPDIRECTDRAW ddobj; /* direct draw object */
LPDIRECTDRAWSURFACE primary; /* primary dd surface */
- LPDIRECTDRAWSURFACE secondary; /* secondary dd surface */
+ LPDIRECTDRAWSURFACE secondary; /* secondary dd surface */
LPDIRECTDRAWCLIPPER ddclipper; /* dd clipper object */
uint8_t * contents; /* secondary contents */
win32_frame_t *current; /* current frame */
@@ -151,7 +151,7 @@ typedef struct {
*
* ----------------------------------------- */
-/* Display formatted error message in
+/* Display formatted error message in
* popup message box.*/
static void Error( HWND hwnd, LPSTR szfmt, ... )
@@ -169,7 +169,7 @@ static void UpdateRect( win32_visual_t * win32_visual )
{
if( win32_visual->FullScreen )
{
- SetRect( &win32_visual->WndRect, 0, 0,
+ SetRect( &win32_visual->WndRect, 0, 0,
GetSystemMetrics( SM_CXSCREEN ),
GetSystemMetrics( SM_CYSCREEN ) );
}
@@ -181,12 +181,12 @@ static void UpdateRect( win32_visual_t * win32_visual )
}
}
-/* Create our direct draw object, primary
+/* Create our direct draw object, primary
* surface and clipper object.
*
- * NOTE : The primary surface is more or
+ * NOTE : The primary surface is more or
* less a viewport into the parent desktop
- * window and will always have a pixel format
+ * window and will always have a pixel format
* identical to the current display mode. */
static boolean CreatePrimary( win32_driver_t * win32_driver )
@@ -276,7 +276,7 @@ static boolean CreatePrimary( win32_driver_t * win32_driver )
}
/* Create our secondary ( off screen ) buffer.
- * The optimal secondary buffer is a h/w
+ * The optimal secondary buffer is a h/w
* overlay with the same pixel format as the
* xine frame type. However, since this is
* not always supported by the host h/w,
@@ -327,7 +327,7 @@ static boolean CreateSecondary( win32_driver_t * win32_driver, int width, int he
/* the requested format is XINE_IMGFMT_YV12 */
ddsd.dwFlags = DDSD_CAPS | DDSD_WIDTH | DDSD_HEIGHT | DDSD_PIXELFORMAT;
- ddsd.ddsCaps.dwCaps = DDSCAPS_VIDEOMEMORY | DDSCAPS_OVERLAY;
+ ddsd.ddsCaps.dwCaps = DDSCAPS_VIDEOMEMORY | DDSCAPS_OVERLAY;
ddsd.ddpfPixelFormat.dwSize = sizeof(DDPIXELFORMAT);
ddsd.ddpfPixelFormat.dwFlags = DDPF_FOURCC;
ddsd.ddpfPixelFormat.dwYUVBitCount = 16;
@@ -343,7 +343,7 @@ static boolean CreateSecondary( win32_driver_t * win32_driver, int width, int he
/* the requested format is XINE_IMGFMT_YUY2 */
ddsd.dwFlags = DDSD_CAPS | DDSD_WIDTH | DDSD_HEIGHT | DDSD_PIXELFORMAT;
- ddsd.ddsCaps.dwCaps = DDSCAPS_VIDEOMEMORY | DDSCAPS_OVERLAY;
+ ddsd.ddsCaps.dwCaps = DDSCAPS_VIDEOMEMORY | DDSCAPS_OVERLAY;
ddsd.ddpfPixelFormat.dwSize = sizeof(DDPIXELFORMAT);
ddsd.ddpfPixelFormat.dwFlags = DDPF_FOURCC;
ddsd.ddpfPixelFormat.dwYUVBitCount = 16;
@@ -360,7 +360,7 @@ static boolean CreateSecondary( win32_driver_t * win32_driver, int width, int he
/* the requested format is IMGFMT_RGB */
ddsd.dwFlags = DDSD_CAPS | DDSD_WIDTH | DDSD_HEIGHT | DDSD_PIXELFORMAT;
- ddsd.ddsCaps.dwCaps = DDSCAPS_VIDEOMEMORY | DDSCAPS_OVERLAY;
+ ddsd.ddsCaps.dwCaps = DDSCAPS_VIDEOMEMORY | DDSCAPS_OVERLAY;
ddsd.ddpfPixelFormat.dwSize = sizeof(DDPIXELFORMAT);
ddsd.ddpfPixelFormat.dwFlags = DDPF_RGB;
ddsd.ddpfPixelFormat.dwYUVBitCount = 24;
@@ -371,7 +371,7 @@ static boolean CreateSecondary( win32_driver_t * win32_driver, int width, int he
lprintf("CreateSecondary() - act_format = (RGB) %d\n", IMGFMT_RGB);
win32_driver->act_format = IMGFMT_RGB;
- }
+ }
#endif /* RGB_SUPPORT */
lprintf("CreateSecondary() - IDirectDraw_CreateSurface()\n");
@@ -423,7 +423,7 @@ static void Destroy( win32_driver_t * win32_driver )
IDirectDraw_Release( win32_driver->ddobj );
_x_alphablend_free(&win32_driver->alphablend_extra_data);
-
+
free( win32_driver );
}
@@ -447,7 +447,7 @@ static boolean CheckPixelFormat( win32_driver_t * win32_driver )
Error( 0, "IDirectDrawSurface_GetPixelFormat ( CheckPixelFormat ) : error 0x%lx", result );
return 0;
}
-
+
/* store pixel format for CreateSecondary */
win32_driver->primary_pixel_format = ddpf;
@@ -508,7 +508,7 @@ static boolean CheckPixelFormat( win32_driver_t * win32_driver )
/* Create a Direct draw surface from
* a bitmap resource..
*
- * NOTE : This is not really useful
+ * NOTE : This is not really useful
* anymore since the xine logo code is
* being pushed to the backend. */
@@ -547,7 +547,7 @@ static LPDIRECTDRAWSURFACE CreateBMP( win32_driver_t * win32_driver, int resourc
Error( 0, "CreateSurface ( bitmap ) : could not create dd surface" );
return 0;
}
-
+
/* get a handle to our surface dc,
* create a compat dc and load
* our bitmap into the compat dc */
@@ -572,7 +572,7 @@ static LPDIRECTDRAWSURFACE CreateBMP( win32_driver_t * win32_driver, int resourc
}
#endif
-/* Merge overlay with the current primary
+/* Merge overlay with the current primary
* surface. This funtion is only used when
* a h/w overlay of the current frame type
* is supported. */
@@ -583,7 +583,7 @@ static boolean Overlay( LPDIRECTDRAWSURFACE src_surface, RECT * src_rect,
{
DWORD dw_color_key;
DDPIXELFORMAT ddpf;
- DDOVERLAYFX ddofx;
+ DDOVERLAYFX ddofx;
int flags;
HRESULT result;
@@ -903,7 +903,7 @@ static vo_frame_t * win32_alloc_frame( vo_driver_t * vo_driver )
}
-static void win32_update_frame_format( vo_driver_t * vo_driver, vo_frame_t * vo_frame, uint32_t width,
+static void win32_update_frame_format( vo_driver_t * vo_driver, vo_frame_t * vo_frame, uint32_t width,
uint32_t height, double ratio, int format, int flags )
{
win32_driver_t *win32_driver = ( win32_driver_t * ) vo_driver;
@@ -953,7 +953,7 @@ static void win32_update_frame_format( vo_driver_t * vo_driver, vo_frame_t * vo_
#endif
else
{
- xprintf (win32_driver->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (win32_driver->xine, XINE_VERBOSITY_DEBUG,
"vo_out_directx : !!! unsupported image format %04x !!!\n", format );
exit (1);
}
@@ -1015,13 +1015,13 @@ static void win32_display_frame( vo_driver_t * vo_driver, vo_frame_t * vo_frame
#if NEW_YUV
win32_driver->yuv2rgb->configure( win32_driver->yuv2rgb,
win32_driver->width, win32_driver->height,
- win32_frame->vo_frame.pitches[0], win32_frame->vo_frame.pitches[1],
+ win32_frame->vo_frame.pitches[0], win32_frame->vo_frame.pitches[1],
win32_driver->width, win32_driver->height,
win32_driver->width * win32_driver->bytespp);
#else
yuv2rgb_setup( win32_driver->yuv2rgb,
win32_driver->width, win32_driver->height,
- win32_frame->vo_frame.pitches[0], win32_frame->vo_frame.pitches[1],
+ win32_frame->vo_frame.pitches[0], win32_frame->vo_frame.pitches[1],
win32_driver->width, win32_driver->height,
win32_driver->width * win32_driver->bytespp );
@@ -1041,7 +1041,7 @@ static void win32_display_frame( vo_driver_t * vo_driver, vo_frame_t * vo_frame
#if NEW_YUV
win32_driver->yuv2rgb->configure( win32_driver->yuv2rgb,
win32_driver->width, win32_driver->height,
- win32_frame->vo_frame.pitches[0], win32_frame->vo_frame.pitches[0] / 2,
+ win32_frame->vo_frame.pitches[0], win32_frame->vo_frame.pitches[0] / 2,
win32_driver->width, win32_driver->height,
win32_driver->width * win32_driver->bytespp );
#else
@@ -1087,14 +1087,14 @@ static void win32_display_frame( vo_driver_t * vo_driver, vo_frame_t * vo_frame
src += vo_frame->pitches[0];
dst += win32_driver->ddsd.lPitch;
}
-
+
src = frame->base[2];
for (line = 0; line < frame->height/2 ; line++){
xine_fast_memcpy( dst, src, frame->width/2);
src += vo_frame->pitches[2];
dst += win32_driver->ddsd.lPitch/2;
}
-
+
src = frame->base[1];
for (line = 0; line < frame->height/2 ; line++){
xine_fast_memcpy( dst, src, frame->width/2);
@@ -1102,10 +1102,10 @@ static void win32_display_frame( vo_driver_t * vo_driver, vo_frame_t * vo_frame
dst += win32_driver->ddsd.lPitch/2;
}
break;
-
+
case XINE_IMGFMT_YUY2:
default:
- src = frame->base[0];
+ src = frame->base[0];
for (line = 0; line < frame->height ; line++){
xine_fast_memcpy( dst, src, frame->width*2);
src += vo_frame->pitches[0];
@@ -1184,7 +1184,7 @@ static int win32_gui_data_exchange( vo_driver_t * vo_driver, int data_type, void
{
HRESULT result;
HWND newWndHnd = (HWND) data;
-
+
/* set cooperative level */
result = IDirectDraw_SetCooperativeLevel( win32_driver->ddobj, newWndHnd, DDSCL_NORMAL );
if( result != DD_OK )
@@ -1217,15 +1217,15 @@ static int win32_redraw_needed(vo_driver_t* this_gen)
int ret = 0;
/* TC - May need to revisit this! */
-#ifdef TC
+#ifdef TC
win32_driver_t *win32_driver = (win32_driver_t *) this_gen;
if( _x_vo_scale_redraw_needed( &win32_driver->sc ) ) {
- win32_gui_data_exchange(this_gen, GUI_WIN32_MOVED_OR_RESIZED, 0);
+ win32_gui_data_exchange(this_gen, GUI_WIN32_MOVED_OR_RESIZED, 0);
ret = 1;
}
#endif
-
+
return ret;
}
@@ -1246,7 +1246,7 @@ static vo_driver_t *open_plugin (video_driver_class_t *class_gen, const void *wi
_x_alphablend_init(&win32_driver->alphablend_extra_data, class->xine);
-
+
win32_driver->xine = class->xine;
/* Make sure that the DirectX drivers are available and present! */
@@ -1302,7 +1302,7 @@ static void *init_class (xine_t *xine, void *visual_gen) {
directx->xine = xine;
directx->config = xine->config;
-
+
return directx;
}
diff --git a/src/video_out/video_out_fb.c b/src/video_out/video_out_fb.c
index f37b345ce..e6e30af7e 100644
--- a/src/video_out/video_out_fb.c
+++ b/src/video_out/video_out_fb.c
@@ -1,13 +1,13 @@
/*
* Copyright (C) 2000-2007 the xine project and Fredrik Noring
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
@@ -27,7 +27,7 @@
* @author Fredrik Noring <noring@nocrew.org>:
* Zero copy buffers and clean up.
*
- * @author Aaron Holtzman <aholtzma@ess.engr.uvic.ca>:
+ * @author Aaron Holtzman <aholtzma@ess.engr.uvic.ca>:
* Based on xine's video_out_xshm.c, based on mpeg2dec code from
*
* @author Geert Uytterhoeven and Chris Lawrence:
@@ -52,8 +52,8 @@
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
-#include <fcntl.h>
-
+#include <fcntl.h>
+
#include "xine.h"
#include <xine/video_out.h>
@@ -95,13 +95,13 @@ typedef struct fb_frame_s
int format;
int flags;
-
+
vo_scale_t sc;
yuv2rgb_t *yuv2rgb; /* yuv2rgb converter for this frame */
uint8_t *rgb_dst;
int yuv_stride;
-
+
int bytes_per_line;
uint8_t* video_mem; /* mmapped video memory */
@@ -118,12 +118,12 @@ typedef struct fb_driver_s
int fd;
int mem_size;
uint8_t* video_mem_base; /* mmapped video memory */
-
+
int depth, bpp, bytes_per_pixel;
-
+
int total_num_native_buffers;
int used_num_buffers;
-
+
int yuv2rgb_mode;
int yuv2rgb_swap;
int yuv2rgb_brightness;
@@ -136,11 +136,11 @@ typedef struct fb_driver_s
/* size / aspect ratio calculations */
vo_scale_t sc;
-
+
int fb_bytes_per_line;
fb_frame_t *cur_frame, *old_frame;
-
+
struct fb_var_screeninfo fb_var;
struct fb_fix_screeninfo fb_fix;
@@ -165,10 +165,10 @@ static uint32_t fb_get_capabilities(vo_driver_t *this_gen)
static void fb_frame_proc_slice(vo_frame_t *vo_img, uint8_t **src)
{
fb_frame_t *frame = (fb_frame_t *)vo_img ;
-
+
vo_img->proc_called = 1;
-
- if( frame->vo_frame.crop_left || frame->vo_frame.crop_top ||
+
+ if( frame->vo_frame.crop_left || frame->vo_frame.crop_top ||
frame->vo_frame.crop_right || frame->vo_frame.crop_bottom )
{
/* we don't support crop, so don't even waste cpu cycles.
@@ -188,18 +188,18 @@ static void fb_frame_proc_slice(vo_frame_t *vo_img, uint8_t **src)
static void fb_frame_field(vo_frame_t *vo_img, int which_field)
{
fb_frame_t *frame = (fb_frame_t *)vo_img ;
-
+
switch(which_field)
{
case VO_TOP_FIELD:
frame->rgb_dst = frame->data;
break;
-
+
case VO_BOTTOM_FIELD:
frame->rgb_dst = frame->data +
frame->bytes_per_line ;
break;
-
+
case VO_BOTH_FIELDS:
frame->rgb_dst = frame->data;
break;
@@ -232,16 +232,16 @@ static vo_frame_t *fb_alloc_frame(vo_driver_t *this_gen)
memcpy(&frame->sc, &this->sc, sizeof(vo_scale_t));
pthread_mutex_init(&frame->vo_frame.mutex, NULL);
-
+
/* supply required functions */
frame->vo_frame.proc_slice = fb_frame_proc_slice;
frame->vo_frame.proc_frame = NULL;
- frame->vo_frame.field = fb_frame_field;
+ frame->vo_frame.field = fb_frame_field;
frame->vo_frame.dispose = fb_frame_dispose;
frame->vo_frame.driver = this_gen;
-
+
frame->this = this;
-
+
/* colorspace converter for this frame */
frame->yuv2rgb =
this->yuv2rgb_factory->create_converter(this->yuv2rgb_factory);
@@ -272,7 +272,7 @@ static void fb_compute_ideal_size(fb_driver_t *this, fb_frame_t *frame)
static void fb_compute_rgb_size(fb_driver_t *this, fb_frame_t *frame)
{
_x_vo_scale_compute_output_size(&frame->sc);
-
+
/* avoid problems in yuv2rgb */
if(frame->sc.output_height < (frame->sc.delivered_height+15) >> 4)
frame->sc.output_height = (frame->sc.delivered_height+15) >> 4;
@@ -281,7 +281,7 @@ static void fb_compute_rgb_size(fb_driver_t *this, fb_frame_t *frame)
frame->sc.output_width = 8;
/* yuv2rgb_mlib needs an even YUV2 width */
- if (frame->sc.output_width & 1)
+ if (frame->sc.output_width & 1)
frame->sc.output_width++;
lprintf("frame source %d x %d => screen output %d x %d%s\n",
@@ -309,7 +309,7 @@ static void setup_colorspace_converter(fb_frame_t *frame, int flags)
frame->bytes_per_line * 2);
frame->yuv_stride = frame->bytes_per_line * 2;
break;
-
+
case VO_BOTH_FIELDS:
frame->yuv2rgb->
configure(frame->yuv2rgb,
@@ -331,7 +331,7 @@ static void frame_reallocate(fb_driver_t *this, fb_frame_t *frame,
av_freep(&frame->vo_frame.base[0]);
av_freep(&frame->vo_frame.base[1]);
av_freep(&frame->vo_frame.base[2]);
-
+
if(this->use_zero_copy)
{
frame->data = frame->video_mem +
@@ -351,7 +351,7 @@ static void frame_reallocate(fb_driver_t *this, fb_frame_t *frame,
frame->vo_frame.pitches[0] = 8*((width + 7) / 8);
frame->vo_frame.pitches[1] = 8*((width + 15) / 16);
frame->vo_frame.pitches[2] = 8*((width + 15) / 16);
-
+
frame->vo_frame.base[0] = av_mallocz(frame->vo_frame.pitches[0] * height);
frame->vo_frame.base[1] = av_mallocz(frame->vo_frame.pitches[1] * ((height+1)/2));
frame->vo_frame.base[2] = av_mallocz(frame->vo_frame.pitches[2] * ((height+1)/2));
@@ -359,11 +359,11 @@ static void frame_reallocate(fb_driver_t *this, fb_frame_t *frame,
else
{
frame->vo_frame.pitches[0] = 8 * ((width + 3) / 4);
-
+
frame->vo_frame.base[0] = av_mallocz(frame->vo_frame.pitches[0] * height);
}
}
-
+
static void fb_update_frame_format(vo_driver_t *this_gen,
vo_frame_t *frame_gen,
uint32_t width, uint32_t height,
@@ -371,7 +371,7 @@ static void fb_update_frame_format(vo_driver_t *this_gen,
{
fb_driver_t *this = (fb_driver_t *)this_gen;
fb_frame_t *frame = (fb_frame_t *)frame_gen;
-
+
flags &= VO_BOTH_FIELDS;
/* Find out if we need to adapt this frame. */
@@ -401,7 +401,7 @@ static void fb_update_frame_format(vo_driver_t *this_gen,
else
frame->bytes_per_line = frame->sc.output_width *
this->bytes_per_pixel;
-
+
setup_colorspace_converter(frame, flags);
}
@@ -413,7 +413,7 @@ static void fb_overlay_clut_yuv2rgb(fb_driver_t *this,
{
size_t i;
clut_t* clut = (clut_t*)overlay->color;
-
+
if(!overlay->rgb_clut)
{
for(i = 0;
@@ -429,11 +429,11 @@ static void fb_overlay_clut_yuv2rgb(fb_driver_t *this,
}
overlay->rgb_clut++;
}
-
+
if(!overlay->hili_rgb_clut)
{
clut = (clut_t*) overlay->hili_color;
-
+
for(i = 0;
i < sizeof(overlay->color)/sizeof(overlay->color[0]);
i++)
@@ -475,7 +475,7 @@ static void fb_overlay_blend (vo_driver_t *this_gen, vo_frame_t *frame_gen,
frame->sc.delivered_height,
&this->alphablend_extra_data);
break;
-
+
case 24:
_x_blend_rgb24(frame->data,
overlay,
@@ -485,7 +485,7 @@ static void fb_overlay_blend (vo_driver_t *this_gen, vo_frame_t *frame_gen,
frame->sc.delivered_height,
&this->alphablend_extra_data);
break;
-
+
case 32:
_x_blend_rgb32(frame->data,
overlay,
@@ -495,7 +495,7 @@ static void fb_overlay_blend (vo_driver_t *this_gen, vo_frame_t *frame_gen,
frame->sc.delivered_height,
&this->alphablend_extra_data);
break;
- }
+ }
}
}
@@ -517,11 +517,11 @@ static void fb_display_frame(vo_driver_t *this_gen, vo_frame_t *frame_gen)
this->sc.output_width = frame->sc.output_width;
this->sc.output_height = frame->sc.output_height;
- xprintf(this->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->xine, XINE_VERBOSITY_DEBUG,
"video_out_fb: gui size %d x %d, frame size %d x %d\n",
this->sc.gui_width, this->sc.gui_height,
frame->sc.output_width, frame->sc.output_height);
-
+
memset(this->video_mem_base, 0, this->mem_size);
}
@@ -538,10 +538,10 @@ static void fb_display_frame(vo_driver_t *this_gen, vo_frame_t *frame_gen)
(&this->old_frame->vo_frame);
this->old_frame = this->cur_frame;
this->cur_frame = frame;
-
+
this->fb_var.yoffset = frame->yoffset;
if(ioctl(this->fd, FBIOPAN_DISPLAY, &this->fb_var) == -1)
- xprintf(this->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->xine, XINE_VERBOSITY_DEBUG,
"video_out_fb: ioctl FBIOPAN_DISPLAY failed: %s\n", strerror(errno));
}
else
@@ -550,14 +550,14 @@ static void fb_display_frame(vo_driver_t *this_gen, vo_frame_t *frame_gen)
frame->sc.output_yoffset * this->fb_bytes_per_line +
frame->sc.output_xoffset * this->bytes_per_pixel;
src = frame->data;
-
+
for(y = 0; y < frame->sc.output_height; y++)
{
xine_fast_memcpy(dst, src, frame->bytes_per_line);
src += frame->bytes_per_line;
dst += this->fb_bytes_per_line;
- }
-
+ }
+
frame->vo_frame.free(&frame->vo_frame);
}
}
@@ -580,7 +580,7 @@ static int fb_get_property(vo_driver_t *this_gen, int property)
case VO_PROP_WINDOW_WIDTH:
return this->sc.gui_width;
-
+
case VO_PROP_WINDOW_HEIGHT:
return this->sc.gui_height;
@@ -597,7 +597,7 @@ static int fb_get_property(vo_driver_t *this_gen, int property)
return this->cur_frame->sc.output_yoffset;
default:
- xprintf(this->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->xine, XINE_VERBOSITY_DEBUG,
"video_out_fb: tried to get unsupported property %d\n", property);
}
@@ -614,7 +614,7 @@ static int fb_set_property(vo_driver_t *this_gen, int property, int value)
if(value>=XINE_VO_ASPECT_NUM_RATIOS)
value = XINE_VO_ASPECT_AUTO;
this->sc.user_ratio = value;
- xprintf(this->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->xine, XINE_VERBOSITY_DEBUG,
"video_out_fb: aspect ratio changed to %s\n", _x_vo_scale_aspect_ratio_name_table[value]);
break;
@@ -643,7 +643,7 @@ static int fb_set_property(vo_driver_t *this_gen, int property, int value)
break;
default:
- xprintf(this->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->xine, XINE_VERBOSITY_DEBUG,
"video_out_fb: tried to set unsupported property %d\n", property);
}
@@ -681,8 +681,8 @@ static int fb_gui_data_exchange(vo_driver_t *this_gen,
static void fb_dispose(vo_driver_t *this_gen)
{
fb_driver_t *this = (fb_driver_t *)this_gen;
-
- munmap(0, this->mem_size);
+
+ munmap(0, this->mem_size);
close(this->fd);
_x_alphablend_free(&this->alphablend_extra_data);
@@ -693,7 +693,7 @@ static void fb_dispose(vo_driver_t *this_gen)
static int get_fb_var_screeninfo(int fd, struct fb_var_screeninfo *var, xine_t *xine)
{
int i;
-
+
if(ioctl(fd, FBIOGET_VSCREENINFO, var))
{
xprintf(xine, XINE_VERBOSITY_DEBUG, "video_out_fb: ioctl FBIOGET_VSCREENINFO: %s\n", strerror(errno));
@@ -714,7 +714,7 @@ static int get_fb_var_screeninfo(int fd, struct fb_var_screeninfo *var, xine_t *
continue;
break;
}
-
+
/* Get proper value for maximized var->yres_virtual. */
if(ioctl(fd, FBIOGET_VSCREENINFO, var) == -1)
{
@@ -814,26 +814,26 @@ static int open_fb_device(config_values_t *config, xine_t *xine)
{
device_name = "/dev/fb1";
fd = open(device_name, O_RDWR);
-
+
if(fd < 0)
- {
+ {
device_name = "/dev/fb0";
fd = open(device_name, O_RDWR);
}
}
-
+
if(fd < 0)
{
- xprintf(xine, XINE_VERBOSITY_DEBUG,
+ xprintf(xine, XINE_VERBOSITY_DEBUG,
"video_out_fb: Unable to open device \"%s\", aborting: %s\n", device_name, strerror(errno));
return -1;
}
-
+
config->update_string(config, devkey, device_name);
return fd;
}
-
+
static int mode_visual(fb_driver_t *this, config_values_t *config,
struct fb_var_screeninfo *var,
struct fb_fix_screeninfo *fix)
@@ -859,7 +859,7 @@ static int mode_visual(fb_driver_t *this, config_values_t *config,
if(!var->blue.offset)
return MODE_16_RGB;
return MODE_16_BGR;
-
+
case 15:
if(!var->blue.offset)
return MODE_15_RGB;
@@ -867,16 +867,16 @@ static int mode_visual(fb_driver_t *this, config_values_t *config,
case 8:
if(!var->blue.offset)
- return MODE_8_RGB;
- return MODE_8_BGR;
+ return MODE_8_RGB;
+ return MODE_8_BGR;
}
}
-
+
xprintf(this->xine, XINE_VERBOSITY_LOG, _("%s: Your video mode was not recognized, sorry.\n"), LOG_MODULE);
return 0;
}
-
+
static int setup_yuv2rgb(fb_driver_t *this, config_values_t *config,
struct fb_var_screeninfo *var,
struct fb_fix_screeninfo *fix)
@@ -890,13 +890,13 @@ static int setup_yuv2rgb(fb_driver_t *this, config_values_t *config,
this->yuv2rgb_contrast = this->yuv2rgb_saturation = 128;
this->yuv2rgb_factory = yuv2rgb_factory_init(this->yuv2rgb_mode,
- this->yuv2rgb_swap,
+ this->yuv2rgb_swap,
this->yuv2rgb_cmap);
this->yuv2rgb_factory->set_csc_levels (this->yuv2rgb_factory,
this->yuv2rgb_brightness,
this->yuv2rgb_contrast,
this->yuv2rgb_saturation);
-
+
return 1;
}
@@ -917,7 +917,7 @@ static void setup_buffers(fb_driver_t *this,
* bpp <= 32
* msb_right = 0
*/
-
+
this->bytes_per_pixel = (this->fb_var.bits_per_pixel + 7)/8;
this->bpp = this->bytes_per_pixel * 8;
this->depth = this->fb_var.red.length +
@@ -926,9 +926,9 @@ static void setup_buffers(fb_driver_t *this,
this->total_num_native_buffers = var->yres_virtual / var->yres;
this->used_num_buffers = 0;
-
+
this->cur_frame = this->old_frame = 0;
-
+
xprintf(this->xine, XINE_VERBOSITY_LOG,
_("%s: %d video RAM buffers are available.\n"), LOG_MODULE, this->total_num_native_buffers);
@@ -938,7 +938,7 @@ static void setup_buffers(fb_driver_t *this,
xprintf(this->xine, XINE_VERBOSITY_LOG,
_("WARNING: %s: Zero copy buffers are DISABLED because only %d buffers\n"
" are available which is less than the recommended %d buffers. Lowering\n"
- " the frame buffer resolution might help.\n"),
+ " the frame buffer resolution might help.\n"),
LOG_MODULE, this->total_num_native_buffers, RECOMMENDED_NUM_BUFFERS);
}
else
@@ -966,11 +966,11 @@ static vo_driver_t *fb_open_plugin(video_driver_class_t *class_gen,
fb_driver_t *this;
fb_class_t *class;
fb_visual_t *visual = NULL;
-
+
if (visual_gen) {
visual = (fb_visual_t *) visual_gen;
}
-
+
class = (fb_class_t *)class_gen;
config = class->config;
@@ -980,7 +980,7 @@ static vo_driver_t *fb_open_plugin(video_driver_class_t *class_gen,
return NULL;
_x_alphablend_init(&this->alphablend_extra_data, class->xine);
-
+
register_callbacks(this);
this->fd = open_fb_device(config, class->xine);
@@ -992,7 +992,7 @@ static vo_driver_t *fb_open_plugin(video_driver_class_t *class_gen,
goto error;
if (!set_fb_palette (this->fd, &this->fb_var))
goto error;
-
+
this->xine = class->xine;
if(this->fb_fix.line_length)
@@ -1001,7 +1001,7 @@ static vo_driver_t *fb_open_plugin(video_driver_class_t *class_gen,
this->fb_bytes_per_line =
(this->fb_var.xres_virtual *
this->fb_var.bits_per_pixel)/8;
-
+
_x_vo_scale_init(&this->sc, 0, 0, config);
this->sc.gui_width = this->fb_var.xres;
this->sc.gui_height = this->fb_var.yres;
@@ -1027,10 +1027,10 @@ static vo_driver_t *fb_open_plugin(video_driver_class_t *class_gen,
this->fb_var.red.length, this->fb_var.red.offset,
this->fb_var.green.length, this->fb_var.green.offset,
this->fb_var.blue.length, this->fb_var.blue.offset);
-
+
if(!setup_yuv2rgb(this, config, &this->fb_var, &this->fb_fix))
goto error;
-
+
/* mmap whole video memory */
this->mem_size = this->fb_fix.smem_len;
this->video_mem_base = mmap(0, this->mem_size, PROT_READ | PROT_WRITE,
@@ -1064,7 +1064,7 @@ static const vo_info_t vo_info_fb =
/* exported plugin catalog entry */
const plugin_info_t xine_plugin_info[] EXPORTED = {
- /* type, API, "name", version, special_info, init_function */
+ /* type, API, "name", version, special_info, init_function */
{ PLUGIN_VIDEO_OUT, 22, "fb", XINE_VERSION_CODE, &vo_info_fb, fb_init_class },
{ PLUGIN_NONE, 0, "", 0, NULL, NULL }
};
diff --git a/src/video_out/video_out_none.c b/src/video_out/video_out_none.c
index fc5d5d56e..b6bba95da 100644
--- a/src/video_out/video_out_none.c
+++ b/src/video_out/video_out_none.c
@@ -72,7 +72,7 @@ static void free_framedata(none_frame_t* frame) {
static void none_frame_dispose(vo_frame_t *vo_frame) {
none_frame_t *frame = (none_frame_t *)vo_frame;
- free_framedata(frame);
+ free_framedata(frame);
free (frame);
}
@@ -87,7 +87,7 @@ static uint32_t none_get_capabilities(vo_driver_t *vo_driver) {
static vo_frame_t *none_alloc_frame(vo_driver_t *vo_driver) {
/* none_driver_t *this = (none_driver_t *) vo_driver; */
none_frame_t *frame;
-
+
frame = calloc(1, sizeof(none_frame_t));
if(!frame)
return NULL;
@@ -97,43 +97,43 @@ static vo_frame_t *none_alloc_frame(vo_driver_t *vo_driver) {
frame->vo_frame.base[0] = NULL;
frame->vo_frame.base[1] = NULL;
frame->vo_frame.base[2] = NULL;
-
+
frame->vo_frame.proc_slice = NULL;
frame->vo_frame.proc_frame = NULL;
frame->vo_frame.field = none_frame_field;
frame->vo_frame.dispose = none_frame_dispose;
frame->vo_frame.driver = vo_driver;
-
+
return (vo_frame_t *)frame;
}
static void none_update_frame_format(vo_driver_t *vo_driver, vo_frame_t *vo_frame,
- uint32_t width, uint32_t height,
+ uint32_t width, uint32_t height,
double ratio, int format, int flags) {
none_driver_t *this = (none_driver_t *) vo_driver;
none_frame_t *frame = (none_frame_t *) vo_frame;
if((frame->width != width) || (frame->height != height) || (frame->format != format)) {
-
+
free_framedata(frame);
-
+
frame->width = width;
frame->height = height;
frame->format = format;
-
+
switch(format) {
- case XINE_IMGFMT_YV12:
+ case XINE_IMGFMT_YV12:
{
int y_size, uv_size;
-
+
frame->vo_frame.pitches[0] = 8*((width + 7) / 8);
frame->vo_frame.pitches[1] = 8*((width + 15) / 16);
frame->vo_frame.pitches[2] = 8*((width + 15) / 16);
-
+
y_size = frame->vo_frame.pitches[0] * height;
uv_size = frame->vo_frame.pitches[1] * ((height+1)/2);
-
+
frame->vo_frame.base[0] = malloc (y_size + 2*uv_size);
frame->vo_frame.base[1] = frame->vo_frame.base[0]+y_size+uv_size;
frame->vo_frame.base[2] = frame->vo_frame.base[0]+y_size;
@@ -152,14 +152,14 @@ static void none_update_frame_format(vo_driver_t *vo_driver, vo_frame_t *vo_fram
break;
}
-
- if((format == XINE_IMGFMT_YV12
- && (frame->vo_frame.base[0] == NULL
- || frame->vo_frame.base[1] == NULL
+
+ if((format == XINE_IMGFMT_YV12
+ && (frame->vo_frame.base[0] == NULL
+ || frame->vo_frame.base[1] == NULL
|| frame->vo_frame.base[2] == NULL))
|| (format == XINE_IMGFMT_YUY2 && frame->vo_frame.base[0] == NULL)) {
xprintf (this->xine, XINE_VERBOSITY_DEBUG,
- "video_out_none: error. (framedata allocation failed: out of memory)\n");
+ "video_out_none: error. (framedata allocation failed: out of memory)\n");
free_framedata(frame);
}
}
@@ -170,19 +170,19 @@ static void none_update_frame_format(vo_driver_t *vo_driver, vo_frame_t *vo_fram
static void none_display_frame(vo_driver_t *vo_driver, vo_frame_t *vo_frame) {
/* none_driver_t *driver = (none_driver_t *)vo_driver; */
none_frame_t *frame = (none_frame_t *)vo_frame;
-
+
frame->vo_frame.free(&frame->vo_frame);
}
static int none_get_property(vo_driver_t *vo_driver, int property) {
none_driver_t *driver = (none_driver_t *)vo_driver;
-
+
switch(property) {
case VO_PROP_ASPECT_RATIO:
return driver->ratio;
break;
-
+
default:
break;
}
@@ -192,7 +192,7 @@ static int none_get_property(vo_driver_t *vo_driver, int property) {
static int none_set_property(vo_driver_t *vo_driver, int property, int value) {
none_driver_t *driver = (none_driver_t *)vo_driver;
-
+
switch(property) {
case VO_PROP_ASPECT_RATIO:
@@ -208,7 +208,7 @@ static int none_set_property(vo_driver_t *vo_driver, int property, int value) {
return value;
}
-static void none_get_property_min_max(vo_driver_t *vo_driver,
+static void none_get_property_min_max(vo_driver_t *vo_driver,
int property, int *min, int *max) {
*min = 0;
*max = 0;
@@ -242,13 +242,13 @@ static int none_redraw_needed(vo_driver_t *vo_driver) {
static vo_driver_t *open_plugin(video_driver_class_t *driver_class, const void *visual) {
none_class_t *class = (none_class_t *) driver_class;
none_driver_t *driver;
-
+
driver = calloc(1, sizeof(none_driver_t));
-
+
driver->config = class->config;
driver->xine = class->xine;
driver->ratio = XINE_VO_ASPECT_AUTO;
-
+
driver->vo_driver.get_capabilities = none_get_capabilities;
driver->vo_driver.alloc_frame = none_alloc_frame ;
driver->vo_driver.update_frame_format = none_update_frame_format;
@@ -262,16 +262,16 @@ static vo_driver_t *open_plugin(video_driver_class_t *driver_class, const void *
driver->vo_driver.gui_data_exchange = none_gui_data_exchange;
driver->vo_driver.dispose = none_dispose;
driver->vo_driver.redraw_needed = none_redraw_needed;
-
+
return &driver->vo_driver;
-}
+}
/*
* Class related functions.
*/
static void *init_class (xine_t *xine, void *visual) {
none_class_t *this;
-
+
this = calloc(1, sizeof(none_class_t));
this->driver_class.open_plugin = open_plugin;
@@ -291,7 +291,7 @@ static const vo_info_t vo_info_none = {
};
const plugin_info_t xine_plugin_info[] EXPORTED = {
- /* type, API, "name", version, special_info, init_function */
+ /* type, API, "name", version, special_info, init_function */
{ PLUGIN_VIDEO_OUT, 22, "none", XINE_VERSION_CODE, &vo_info_none, init_class },
{ PLUGIN_NONE, 0, "", 0, NULL, NULL }
};
diff --git a/src/video_out/video_out_opengl.c b/src/video_out/video_out_opengl.c
index d66e85ae9..f39a8714c 100644
--- a/src/video_out/video_out_opengl.c
+++ b/src/video_out/video_out_opengl.c
@@ -1,13 +1,13 @@
/*
* Copyright (C) 2000-2003 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
@@ -147,7 +147,7 @@ typedef struct {
double ratio;
uint8_t *rgb, *rgb_dst;
-
+
yuv2rgb_t *yuv2rgb; /* yuv2rgb converter set up for this frame */
} opengl_frame_t;
@@ -203,7 +203,7 @@ typedef struct {
PFNMYGLPROGRAMENVPARAMETER4FARBPROC glProgramEnvParameter4fARB;
PFNMYGLGENTEXTURESEXTPROC glGenTexturesEXT;
PFNMYGLBINDTEXTUREEXTPROC glBindTextureEXT;
-
+
int yuv2rgb_brightness;
int yuv2rgb_contrast;
int yuv2rgb_saturation;
@@ -238,7 +238,7 @@ typedef struct {
int (*setup)(opengl_driver_t *);
/* Flag: needs output converted to rgb (is able to do YUV otherwise) */
int needsrgb;
- /* Default action: what to do if there's no new image
+ /* Default action: what to do if there's no new image
* typically either RENDER_NONE or RENDER_DRAW (for animated render's) */
enum render_e defaction;
/* Fallback: change to following render backend if this one doesn't work */
@@ -332,7 +332,7 @@ static void render_cyl (opengl_driver_t *this, opengl_frame_t *frame) {
float off;
float tx, ty;
struct timeval curtime;
-
+
glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);
/* Calc timing + texture coords */
@@ -346,10 +346,10 @@ static void render_cyl (opengl_driver_t *this, opengl_frame_t *frame) {
glMatrixMode (GL_MODELVIEW);
glLoadIdentity ();
glTranslatef (0, 0, -10);
- glRotatef (off * CYCLE_FACTOR1, 1, 0, 0);
- glRotatef (off, 0, 0, 1);
- glRotatef (off * CYCLE_FACTOR2, 0, 1, 0);
-
+ glRotatef (off * CYCLE_FACTOR1, 1, 0, 0);
+ glRotatef (off, 0, 0, 1);
+ glRotatef (off * CYCLE_FACTOR2, 0, 1, 0);
+
/* Note that this is not aspect ratio corrected */
glBegin (GL_QUADS);
for (i = 0; i < CYL_TESSELATION; i++) {
@@ -368,7 +368,7 @@ static void render_cyl (opengl_driver_t *this, opengl_frame_t *frame) {
}
/* Animated spinning environment mapped torus */
-#define DIST_FACTOR 16.568542 /* 2 * (sqrt(2)-1) * 20 */
+#define DIST_FACTOR 16.568542 /* 2 * (sqrt(2)-1) * 20 */
static void render_env_tor (opengl_driver_t *this, opengl_frame_t *frame) {
float off;
float x1, y1, x2, y2, tx, ty;
@@ -402,7 +402,7 @@ static void render_env_tor (opengl_driver_t *this, opengl_frame_t *frame) {
glLoadIdentity ();
glDepthFunc (GL_ALWAYS);
glDepthMask (GL_FALSE);
-
+
glBegin (GL_QUADS);
glColor3f (1, 1, 1);
glTexCoord2f (tx, 0); glVertex3f (x2, y2, -20);
@@ -410,7 +410,7 @@ static void render_env_tor (opengl_driver_t *this, opengl_frame_t *frame) {
glTexCoord2f (0, ty); glVertex3f (x1, y1, -20);
glTexCoord2f (tx, ty); glVertex3f (x2, y1, -20);
glEnd ();
-
+
glPopMatrix ();
glDepthFunc (GL_LEQUAL);
glDepthMask (GL_TRUE);
@@ -447,7 +447,7 @@ static int render_help_image_tex (opengl_driver_t *this, int new_w, int new_h,
tex_w <<= 1;
while (tex_h < new_h)
tex_h <<= 1;
-
+
if (tex_w != this->tex_width || tex_h != this->tex_height) {
char *tmp = calloc (tex_w * tex_h, 4); /* 4 enough until RGBA */
if (this->glBindTextureEXT)
@@ -463,7 +463,7 @@ static int render_help_image_tex (opengl_driver_t *this, int new_w, int new_h,
this->tex_width = tex_w;
this->tex_height = tex_h;
lprintf ("* new texsize: %dx%d\n", tex_w, tex_h);
- }
+ }
this->last_width = new_w;
this->last_height = new_h;
return 1;
@@ -486,7 +486,7 @@ static int render_help_image_tiledtex (opengl_driver_t *this,
tex_w <<= 1;
while (tex_h < new_h)
tex_h <<= 1;
-
+
if (tex_w != this->tex_width || tex_h != this->tex_height) {
char *tmp = calloc (tex_w * tex_h, 4); /* 4 enough until RGBA */
if (this->glBindTextureEXT)
@@ -526,7 +526,7 @@ static int render_help_image_tiledtex (opengl_driver_t *this,
this->tex_width = tex_w;
this->tex_height = tex_h;
lprintf ("* new texsize: %dx%d on %d tiles\n", tex_w, tex_h, num);
- }
+ }
this->last_width = new_w;
this->last_height = new_h;
return 1;
@@ -715,7 +715,7 @@ static void *getdladdr (const GLubyte *_funcName) {
handle = dlopen (NULL, RTLD_LAZY);
}
return dlsym (handle, funcName);
-
+
#else /* all other Un*xes */
return dlsym (0, funcName);
@@ -888,7 +888,7 @@ static int render_setup_cyl (opengl_driver_t *this) {
static int render_setup_torus (opengl_driver_t *this) {
int i, j, k;
int ret;
-
+
ret = render_setup_3d (this);
ret &= render_help_setup_tex (this);
@@ -942,7 +942,7 @@ static int render_setup_fp_yuv (opengl_driver_t *this) {
"MAD res, { 0, -.391, 2.018 }, tmp.xxxw, res;"
"MAD result.color, { 1.596, -.813, 0 }, tmp.yyyw, res;"
"END";
-
+
ret = render_setup_tex2d (this);
if (! this->has_fragprog)
return 0;
@@ -968,7 +968,7 @@ static int render_setup_fp_yuv (opengl_driver_t *this) {
*/
/* name, display, image, setup, needsrgb, defaction, fallback */
static const opengl_render_t opengl_rb[] = {
- { "2D_Tex_Fragprog", render_tex2d, render_image_fp_yuv,
+ { "2D_Tex_Fragprog", render_tex2d, render_image_fp_yuv,
render_setup_fp_yuv, 0, RENDER_NONE, 1 },
{ "2D_Tex", render_tex2d, render_image_tex,
render_setup_tex2d, 1, RENDER_NONE, 2 },
@@ -1009,10 +1009,10 @@ static void *render_run (opengl_driver_t *this) {
struct timeval curtime;
struct timespec timeout;
const opengl_render_t *render;
-
+
lprintf ("* render thread created\n");
while (1) {
-
+
/* Wait for render action */
pthread_mutex_lock (&this->render_action_mutex);
if (! this->render_action) {
@@ -1216,28 +1216,28 @@ static uint32_t opengl_get_capabilities (vo_driver_t *this_gen) {
static void opengl_frame_proc_slice (vo_frame_t *vo_img, uint8_t **src) {
opengl_frame_t *frame = (opengl_frame_t *) vo_img ;
/* opengl_driver_t *this = (opengl_driver_t *) vo_img->driver; */
-
+
vo_img->proc_called = 1;
if (! frame->rgb_dst)
return;
/* lprintf ("%p: frame_copy src %p=%p to %p\n", frame, src[0], frame->chunk[0], frame->rgb_dst); */
- if( frame->vo_frame.crop_left || frame->vo_frame.crop_top ||
+ if( frame->vo_frame.crop_left || frame->vo_frame.crop_top ||
frame->vo_frame.crop_right || frame->vo_frame.crop_bottom )
{
/* TODO: opengl *could* support this?!? */
/* cropping will be performed by video_out.c */
return;
}
-
+
if (frame->format == XINE_IMGFMT_YV12)
frame->yuv2rgb->yuv2rgb_fun (frame->yuv2rgb, frame->rgb_dst,
src[0], src[1], src[2]);
else
frame->yuv2rgb->yuy22rgb_fun (frame->yuv2rgb, frame->rgb_dst,
src[0]);
-
+
/* lprintf ("frame_copy...done\n"); */
}
@@ -1248,7 +1248,7 @@ static void opengl_frame_field (vo_frame_t *vo_img, int which_field) {
/* lprintf ("%p: frame_field rgb %p which_field %x\n", frame, frame->rgb, which_field); */
if (! opengl_rb[this->render_fun_id].needsrgb) {
- frame->rgb_dst = NULL;
+ frame->rgb_dst = NULL;
return;
}
@@ -1296,7 +1296,7 @@ static vo_frame_t *opengl_alloc_frame (vo_driver_t *this_gen) {
*/
frame->vo_frame.proc_slice = opengl_frame_proc_slice;
frame->vo_frame.proc_frame = NULL;
- frame->vo_frame.field = opengl_frame_field;
+ frame->vo_frame.field = opengl_frame_field;
frame->vo_frame.dispose = opengl_frame_dispose;
frame->vo_frame.driver = this_gen;
@@ -1350,7 +1350,7 @@ static void opengl_update_frame_format (vo_driver_t *this_gen,
/* lprintf ("updating frame to %d x %d (ratio=%g, format=%08x)\n", width, height, ratio, format); */
flags &= VO_BOTH_FIELDS;
-
+
XLockDisplay (this->display);
/* (re-) allocate render space */
@@ -1401,7 +1401,7 @@ static void opengl_update_frame_format (vo_driver_t *this_gen,
frame->height = height;
frame->format = format;
- XUnlockDisplay (this->display);
+ XUnlockDisplay (this->display);
opengl_frame_field ((vo_frame_t *)frame, flags);
}
@@ -1435,7 +1435,7 @@ static void opengl_overlay_clut_yuv2rgb(opengl_driver_t *this, vo_overlay_t *ov
}
}
-static void opengl_overlay_begin (vo_driver_t *this_gen,
+static void opengl_overlay_begin (vo_driver_t *this_gen,
vo_frame_t *frame_gen, int changed) {
opengl_driver_t *this = (opengl_driver_t *) this_gen;
@@ -1443,10 +1443,10 @@ static void opengl_overlay_begin (vo_driver_t *this_gen,
if (this->ovl_changed && this->xoverlay) {
XLockDisplay (this->display);
- x11osd_clear(this->xoverlay);
+ x11osd_clear(this->xoverlay);
XUnlockDisplay (this->display);
}
-
+
this->alphablend_extra_data.offset_x = frame_gen->overlay_offset_x;
this->alphablend_extra_data.offset_y = frame_gen->overlay_offset_y;
}
@@ -1463,7 +1463,7 @@ static void opengl_overlay_end (vo_driver_t *this_gen, vo_frame_t *vo_img) {
this->ovl_changed = 0;
}
-static void opengl_overlay_blend (vo_driver_t *this_gen,
+static void opengl_overlay_blend (vo_driver_t *this_gen,
vo_frame_t *frame_gen, vo_overlay_t *overlay) {
opengl_driver_t *this = (opengl_driver_t *) this_gen;
opengl_frame_t *frame = (opengl_frame_t *) frame_gen;
@@ -1473,7 +1473,7 @@ static void opengl_overlay_blend (vo_driver_t *this_gen,
if (overlay->unscaled) {
if (this->ovl_changed && this->xoverlay) {
XLockDisplay (this->display);
- x11osd_blend (this->xoverlay, overlay);
+ x11osd_blend (this->xoverlay, overlay);
XUnlockDisplay (this->display);
}
} else {
@@ -1514,7 +1514,7 @@ static int opengl_redraw_needed (vo_driver_t *this_gen) {
opengl_compute_ideal_size(this);
- if( _x_vo_scale_redraw_needed( &this->sc ) ) {
+ if( _x_vo_scale_redraw_needed( &this->sc ) ) {
opengl_compute_rgb_size(this);
pthread_mutex_lock (&this->render_action_mutex);
if (this->render_action <= RENDER_CLEAN) {
@@ -1524,10 +1524,10 @@ static int opengl_redraw_needed (vo_driver_t *this_gen) {
pthread_mutex_unlock (&this->render_action_mutex);
ret = 1;
}
- }
+ }
else
ret = 1;
-
+
/* lprintf ("done...redraw_needed: %d\n", ret); */
return ret;
}
@@ -1547,7 +1547,7 @@ static void opengl_display_frame (vo_driver_t *this_gen, vo_frame_t *frame_gen)
this->frame[0] = frame;
this->render_frame_changed = 1;
/* lprintf ("video_out_opengl: cur_frame updated to %d\n", frame->vo_frame.id); */
-
+
/*
* let's see if this frame is different in size / aspect
* ratio from the previous one
@@ -1558,7 +1558,7 @@ static void opengl_display_frame (vo_driver_t *this_gen, vo_frame_t *frame_gen)
/* lprintf("frame format changed\n"); */
this->sc.force_redraw = 1; /* trigger re-calc of output size */
}
-
+
/*
* tell gui that we are about to display a frame,
* ask for offset and output size
@@ -1594,14 +1594,14 @@ static int opengl_get_property (vo_driver_t *this_gen, int property) {
case VO_PROP_WINDOW_HEIGHT:
return this->sc.gui_height;
default:
- xprintf(this->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->xine, XINE_VERBOSITY_DEBUG,
"video_out_opengl: tried to get unsupported property %d\n", property);
}
return 0;
}
-static int opengl_set_property (vo_driver_t *this_gen,
+static int opengl_set_property (vo_driver_t *this_gen,
int property, int value) {
opengl_driver_t *this = (opengl_driver_t *) this_gen;
@@ -1613,7 +1613,7 @@ static int opengl_set_property (vo_driver_t *this_gen,
opengl_compute_ideal_size (this);
this->sc.force_redraw = 1; /* trigger re-calc of output size */
- xprintf(this->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->xine, XINE_VERBOSITY_DEBUG,
"video_out_opengl: aspect ratio changed to %s\n", _x_vo_scale_aspect_ratio_name_table[value]);
break;
case VO_PROP_BRIGHTNESS:
@@ -1641,7 +1641,7 @@ static int opengl_set_property (vo_driver_t *this_gen,
this->sc.force_redraw = 1;
break;
default:
- xprintf (this->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->xine, XINE_VERBOSITY_DEBUG,
"video_out_opengl: tried to set unsupported property %d\n", property);
}
@@ -1664,7 +1664,7 @@ static void opengl_get_property_min_max (vo_driver_t *this_gen,
}
}
-static int opengl_gui_data_exchange (vo_driver_t *this_gen,
+static int opengl_gui_data_exchange (vo_driver_t *this_gen,
int data_type, void *data) {
opengl_driver_t *this = (opengl_driver_t *) this_gen;
@@ -1679,7 +1679,7 @@ static int opengl_gui_data_exchange (vo_driver_t *this_gen,
/* lprintf ("expose event\n"); */
if (this->frame[0]) {
XExposeEvent * xev = (XExposeEvent *) data;
-
+
if (xev && xev->count == 0) {
pthread_mutex_lock (&this->render_action_mutex);
if (this->render_action <= RENDER_CLEAN) {
@@ -1716,9 +1716,9 @@ static int opengl_gui_data_exchange (vo_driver_t *this_gen,
&this->render_action_mutex);
pthread_mutex_unlock (&this->render_action_mutex);
break;
-
+
case XINE_GUI_SEND_DRAWABLE_CHANGED:
-
+
pthread_mutex_lock (&this->render_action_mutex);
this->render_action = RENDER_RELEASE;
pthread_cond_signal (&this->render_action_cond);
@@ -1746,7 +1746,7 @@ static int opengl_gui_data_exchange (vo_driver_t *this_gen,
if (this->frame[0]) {
x11_rectangle_t *rect = data;
int x1, y1, x2, y2;
-
+
_x_vo_scale_translate_gui2video(&this->sc,
rect->x, rect->y,
&x1, &y1);
@@ -1775,7 +1775,7 @@ static void opengl_dispose (vo_driver_t *this_gen) {
this->render_action = RENDER_EXIT;
pthread_cond_signal (&this->render_action_cond);
pthread_mutex_unlock (&this->render_action_mutex);
- pthread_join (this->render_thread, NULL);
+ pthread_join (this->render_thread, NULL);
pthread_mutex_destroy (&this->render_action_mutex);
pthread_cond_destroy (&this->render_action_cond);
pthread_cond_destroy (&this->render_return_cond);
@@ -1793,7 +1793,7 @@ static void opengl_dispose (vo_driver_t *this_gen) {
}
_x_alphablend_free(&this->alphablend_extra_data);
-
+
free (this);
}
@@ -1820,7 +1820,7 @@ static vo_driver_t *opengl_open_plugin (video_driver_class_t *class_gen, const v
opengl_driver_t *this;
char **render_fun_names;
int i;
-
+
this = (opengl_driver_t *) calloc(1, sizeof(opengl_driver_t));
if (!this)
@@ -1834,9 +1834,9 @@ static vo_driver_t *opengl_open_plugin (video_driver_class_t *class_gen, const v
this->sc.dest_size_cb = visual->dest_size_cb;
this->sc.user_data = visual->user_data;
this->sc.user_ratio = XINE_VO_ASPECT_AUTO;
-
+
_x_alphablend_init (&this->alphablend_extra_data, class->xine);
-
+
this->drawable = visual->d;
this->gui_width = this->gui_height = -1;
this->last_width = this->last_height = -1;
@@ -1846,7 +1846,7 @@ static vo_driver_t *opengl_open_plugin (video_driver_class_t *class_gen, const v
this->ovl_changed = 0;
this->xine = class->xine;
this->config = config;
-
+
this->vo_driver.get_capabilities = opengl_get_capabilities;
this->vo_driver.alloc_frame = opengl_alloc_frame;
this->vo_driver.update_frame_format = opengl_update_frame_format;
@@ -1864,8 +1864,8 @@ static vo_driver_t *opengl_open_plugin (video_driver_class_t *class_gen, const v
this->yuv2rgb_brightness = 0;
this->yuv2rgb_contrast = 128;
this->yuv2rgb_saturation = 128;
-
- this->yuv2rgb_factory = yuv2rgb_factory_init (YUV_FORMAT, YUV_SWAP_MODE,
+
+ this->yuv2rgb_factory = yuv2rgb_factory_init (YUV_FORMAT, YUV_SWAP_MODE,
NULL);
this->yuv2rgb_factory->set_csc_levels (this->yuv2rgb_factory,
this->yuv2rgb_brightness,
@@ -1917,7 +1917,7 @@ static vo_driver_t *opengl_open_plugin (video_driver_class_t *class_gen, const v
"it also reduces flickering a lot.\n"
"It should not have any performance impact."),
20, NULL, NULL);
-
+
pthread_mutex_init (&this->render_action_mutex, NULL);
pthread_cond_init (&this->render_action_cond, NULL);
pthread_cond_init (&this->render_return_cond, NULL);
@@ -1947,7 +1947,7 @@ static vo_driver_t *opengl_open_plugin (video_driver_class_t *class_gen, const v
xprintf (this->xine, XINE_VERBOSITY_LOG,
"video_out_opengl: default visual not OpenGL capable\n"
" plugin will only work with clients supporting XINE_GUI_SEND_SELECT_VISUAL.\n");
-
+
return &this->vo_driver;
}
@@ -2036,7 +2036,7 @@ static const vo_info_t vo_info_opengl = {
*/
const plugin_info_t xine_plugin_info[] EXPORTED = {
- /* type, API, "name", version, special_info, init_function */
+ /* type, API, "name", version, special_info, init_function */
{ PLUGIN_VIDEO_OUT, 22, "opengl", XINE_VERSION_CODE, &vo_info_opengl, opengl_init_class },
{ PLUGIN_NONE, 0, "", 0, NULL, NULL }
};
diff --git a/src/video_out/video_out_pgx32.c b/src/video_out/video_out_pgx32.c
index a69c26ee1..ac19ef382 100644
--- a/src/video_out/video_out_pgx32.c
+++ b/src/video_out/video_out_pgx32.c
@@ -1,18 +1,18 @@
-/*
+/*
* Copyright (C) 2000-2004 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -149,7 +149,7 @@ typedef struct {
double ratio;
} pgx32_frame_t;
-typedef struct {
+typedef struct {
vo_driver_t vo_driver;
vo_scale_t vo_scale;
@@ -210,7 +210,7 @@ static int setup_dga(pgx32_driver_t *this)
}
if (strcmp("TSIgfxp", ident.name) != 0) {
- xprintf(this->class->xine, XINE_VERBOSITY_LOG, _("video_out_pgx32: Error: '%s' is not a pgx32 framebuffer device\n"), devname);
+ xprintf(this->class->xine, XINE_VERBOSITY_LOG, _("video_out_pgx32: Error: '%s' is not a pgx32 framebuffer device\n"), devname);
XDgaUnGrabDrawable(this->dgadraw);
XUnlockDisplay(this->display);
return 0;
@@ -485,7 +485,7 @@ static void pgx32_display_frame(vo_driver_t *this_gen, vo_frame_t *frame_gen)
_x_vo_scale_compute_ideal_size(&this->vo_scale);
}
- if (_x_vo_scale_redraw_needed(&this->vo_scale)) {
+ if (_x_vo_scale_redraw_needed(&this->vo_scale)) {
int i;
_x_vo_scale_compute_output_size(&this->vo_scale);
@@ -589,7 +589,7 @@ static void pgx32_overlay_blend(vo_driver_t *this_gen, vo_frame_t *frame_gen, vo
{
/*pgx32_driver_t *this = (pgx32_driver_t *)(void *)this_gen;*/
pgx32_frame_t *frame = (pgx32_frame_t *)frame_gen;
-
+
if (overlay->rle) {
int i, j, x, y, len, width;
int use_clip_palette;
@@ -757,7 +757,7 @@ static int pgx32_redraw_needed(vo_driver_t *this_gen)
{
pgx32_driver_t *this = (pgx32_driver_t *)(void *)this_gen;
- if (_x_vo_scale_redraw_needed(&this->vo_scale)) {
+ if (_x_vo_scale_redraw_needed(&this->vo_scale)) {
this->vo_scale.force_redraw = 1;
return 1;
}
@@ -775,7 +775,7 @@ static void pgx32_dispose(vo_driver_t *this_gen)
munmap((void *)this->vregs, GFXP_REGS_MMAPLEN);
_x_alphablend_free(&this->alphablend_extra_data);
-
+
free(this);
}
@@ -799,7 +799,7 @@ static vo_driver_t *pgx32_init_driver(video_driver_class_t *class_gen, const voi
}
_x_alphablend_init(&this->alphablend_extra_data, class->xine);
-
+
this->vo_driver.get_capabilities = pgx32_get_capabilities;
this->vo_driver.alloc_frame = pgx32_alloc_frame;
this->vo_driver.update_frame_format = pgx32_update_frame_format;
diff --git a/src/video_out/video_out_pgx64.c b/src/video_out/video_out_pgx64.c
index 8482de06a..d30985e39 100644
--- a/src/video_out/video_out_pgx64.c
+++ b/src/video_out/video_out_pgx64.c
@@ -1,18 +1,18 @@
/*
* Copyright (C) 2000-2004 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -213,7 +213,7 @@ typedef struct {
uint8_t *buffer_ptrs[3];
} pgx64_frame_t;
-typedef struct {
+typedef struct {
vo_driver_t vo_driver;
vo_scale_t vo_scale;
@@ -670,7 +670,7 @@ static void pgx64_display_frame(vo_driver_t *this_gen, vo_frame_t *frame_gen)
DGA_DRAW_UNLOCK(this->dgadraw);
XUnlockDisplay(this->display);
- if (_x_vo_scale_redraw_needed(&this->vo_scale)) {
+ if (_x_vo_scale_redraw_needed(&this->vo_scale)) {
short int *cliprects, wx0, wy0, wx1, wy1, cx0, cy0, cx1, cy1;
int dgavis;
@@ -990,7 +990,7 @@ static void pgx64_overlay_key_blend(vo_driver_t *this_gen, vo_frame_t *frame_gen
if (x + width - 1 > overlay->hili_right) {
width -= overlay->hili_right - x;
len += overlay->hili_right - x;
- }
+ }
}
}
@@ -998,7 +998,7 @@ static void pgx64_overlay_key_blend(vo_driver_t *this_gen, vo_frame_t *frame_gen
int j;
clut_t *src_clut;
uint8_t *src_trans;
-
+
if (use_clip_palette) {
src_clut = (clut_t *)&overlay->hili_color;
src_trans = (uint8_t *)&overlay->hili_trans;
@@ -1034,7 +1034,7 @@ static void pgx64_overlay_key_blend(vo_driver_t *this_gen, vo_frame_t *frame_gen
else {
palette[use_clip_palette][j] = BlackPixel(this->display, this->screen);
}
- }
+ }
}
else {
palette[use_clip_palette][j] = this->colour_key;
@@ -1272,7 +1272,7 @@ static int pgx64_redraw_needed(vo_driver_t *this_gen)
DGA_DRAW_UNLOCK(this->dgadraw);
XUnlockDisplay(this->display);
- if (modif || _x_vo_scale_redraw_needed(&this->vo_scale)) {
+ if (modif || _x_vo_scale_redraw_needed(&this->vo_scale)) {
this->vo_scale.force_redraw = 1;
this->chromakey_regen_needed = 1;
return 1;
@@ -1319,7 +1319,7 @@ static void pgx64_config_changed(void *user_data, xine_cfg_entry_t *entry)
if (strcmp(entry->key, "video.device.pgx64_colour_key") == 0) {
pgx64_set_property(this_gen, VO_PROP_COLORKEY, entry->num_value);
update_colour_key_rgb(this);
- }
+ }
else if (strcmp(entry->key, "video.device.pgx64_chromakey_en") == 0) {
this->chromakey_en = entry->num_value;
}
diff --git a/src/video_out/video_out_raw.c b/src/video_out/video_out_raw.c
index fbb7fc5f0..50f385959 100644
--- a/src/video_out/video_out_raw.c
+++ b/src/video_out/video_out_raw.c
@@ -1,3 +1,4 @@
+
/*
* Copyright (C) 2007-2008 the xine project
*
@@ -155,12 +156,12 @@ static int raw_process_ovl( raw_driver_t *this_gen, vo_overlay_t *overlay )
x = pos%ovl->ovl_w;
y = pos/ovl->ovl_w;
if ( (x>=overlay->hili_left && x<=overlay->hili_right) && (y>=overlay->hili_top && y<=overlay->hili_bottom) ) {
- colors = hili_colors;
- trans = hili_trans;
+ colors = hili_colors;
+ trans = hili_trans;
}
else {
- colors = low_colors;
- trans = low_trans;
+ colors = low_colors;
+ trans = low_trans;
}
rlelen = rle->len;
clr = rle->color;
@@ -176,7 +177,7 @@ static int raw_process_ovl( raw_driver_t *this_gen, vo_overlay_t *overlay )
rgba[3] = alpha*255/15;
}
rgba+= 4;
- ++pos;
+ ++pos;
}
++rle;
--num_rle;
@@ -190,7 +191,7 @@ static void raw_overlay_begin (vo_driver_t *this_gen, vo_frame_t *frame_gen, int
raw_driver_t *this = (raw_driver_t *) this_gen;
if ( !changed )
- return;
+ return;
++this->ovl_changed;
}
diff --git a/src/video_out/video_out_sdl.c b/src/video_out/video_out_sdl.c
index 32c0c41cf..bc26c6300 100644
--- a/src/video_out/video_out_sdl.c
+++ b/src/video_out/video_out_sdl.c
@@ -83,7 +83,7 @@ struct sdl_driver_s {
vo_driver_t vo_driver;
config_values_t *config;
-
+
int hw_accel;
SDL_Surface *surface;
@@ -100,7 +100,7 @@ struct sdl_driver_s {
int screen;
Drawable drawable;
#endif
-
+
vo_scale_t sc;
xine_t *xine;
@@ -142,7 +142,7 @@ static vo_frame_t *sdl_alloc_frame (vo_driver_t *this_gen) {
if (!frame)
return NULL;
-
+
pthread_mutex_init (&frame->vo_frame.mutex, NULL);
/*
@@ -207,8 +207,8 @@ static void sdl_update_frame_format (vo_driver_t *this_gen,
if (frame->overlay == NULL)
return;
- /*
- * This needs to be done becuase I have found that
+ /*
+ * This needs to be done becuase I have found that
* pixels isn't setup until this is called.
*/
SDL_LockYUVOverlay (frame->overlay);
@@ -242,7 +242,7 @@ static void sdl_overlay_blend (vo_driver_t *this_gen, vo_frame_t *frame_gen, vo_
this->alphablend_extra_data.offset_x = frame_gen->overlay_offset_x;
this->alphablend_extra_data.offset_y = frame_gen->overlay_offset_y;
-
+
if (overlay->rle) {
if( frame->format == XINE_IMGFMT_YV12 )
_x_blend_yuv( frame->vo_frame.base, overlay, frame->width, frame->height, frame->vo_frame.pitches, &this->alphablend_extra_data);
@@ -354,7 +354,7 @@ static void sdl_display_frame (vo_driver_t *this_gen, vo_frame_t *frame_gen) {
static int sdl_get_property (vo_driver_t *this_gen, int property) {
sdl_driver_t *this = (sdl_driver_t *) this_gen;
-
+
switch (property) {
case VO_PROP_WINDOW_WIDTH:
return this->sc.gui_width;
@@ -383,7 +383,7 @@ static int sdl_set_property (vo_driver_t *this_gen,
if (value>=XINE_VO_ASPECT_NUM_RATIOS)
value = XINE_VO_ASPECT_AUTO;
this->sc.user_ratio = value;
- xprintf(this->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->xine, XINE_VERBOSITY_DEBUG,
"video_out_sdl: aspect ratio changed to %s\n", _x_vo_scale_aspect_ratio_name_table[value]);
sdl_compute_ideal_size (this);
@@ -458,7 +458,7 @@ static void sdl_dispose (vo_driver_t * this_gen) {
SDL_QuitSubSystem (SDL_INIT_VIDEO);
_x_alphablend_free(&this->alphablend_extra_data);
-
+
free(this);
}
@@ -476,16 +476,16 @@ static vo_driver_t *open_plugin (video_driver_class_t *class_gen, const void *vi
#ifdef HAVE_X11
XWindowAttributes window_attributes;
#endif
-
+
this = (sdl_driver_t *) calloc(1, sizeof(sdl_driver_t));
if (!this)
return NULL;
_x_alphablend_init(&this->alphablend_extra_data, class->xine);
-
+
this->sdlflags = SDL_HWSURFACE | SDL_RESIZABLE;
-
- this->hw_accel = class->config->register_bool(class->config,
+
+ this->hw_accel = class->config->register_bool(class->config,
"video.device.sdl_hw_accel", 1,
_("use hardware acceleration if available"),
_("When your system supports it, hardware acceleration provided by your "
@@ -525,7 +525,7 @@ static vo_driver_t *open_plugin (video_driver_class_t *class_gen, const void *vi
if (!SDL_ListModes (vidInfo->vfmt, SDL_HWSURFACE | SDL_RESIZABLE)) {
this->sdlflags = SDL_RESIZABLE;
if (!SDL_ListModes (vidInfo->vfmt, SDL_RESIZABLE)) {
- xprintf (this->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->xine, XINE_VERBOSITY_DEBUG,
"video_out_sdl: open_plugin - sdl couldn't get any acceptable video mode\n");
return NULL;
}
@@ -533,7 +533,7 @@ static vo_driver_t *open_plugin (video_driver_class_t *class_gen, const void *vi
this->bpp = vidInfo->vfmt->BitsPerPixel;
if (this->bpp < 16) {
- xprintf(this->xine, XINE_VERBOSITY_LOG,
+ xprintf(this->xine, XINE_VERBOSITY_LOG,
_("sdl has to emulate a 16 bit surfaces, that will slow things down.\n"));
this->bpp = 16;
}
@@ -580,17 +580,17 @@ static vo_driver_t *open_plugin (video_driver_class_t *class_gen, const void *vi
static void *init_class (xine_t *xine, void *visual_gen) {
/* x11_visual_t *visual = (x11_visual_t *) visual_gen; */
sdl_class_t *this;
-
+
/* check if we have SDL */
if ((SDL_Init (SDL_INIT_VIDEO)) < 0) {
- xprintf (xine, XINE_VERBOSITY_DEBUG,
+ xprintf (xine, XINE_VERBOSITY_DEBUG,
"video_out_sdl: open_plugin - sdl video initialization failed.\n");
return NULL;
}
SDL_QuitSubSystem (SDL_INIT_VIDEO);
this = (sdl_class_t*) calloc(1, sizeof(sdl_class_t));
-
+
this->driver_class.open_plugin = open_plugin;
this->driver_class.identifier = "SDL";
this->driver_class.description = N_("xine video output plugin using the Simple Direct Media Layer");
diff --git a/src/video_out/video_out_stk.c b/src/video_out/video_out_stk.c
index 9e3a4ae30..eb6ccb0a9 100644
--- a/src/video_out/video_out_stk.c
+++ b/src/video_out/video_out_stk.c
@@ -22,7 +22,7 @@
*
* based on video_out_sdl from
* Miguel Freitas
- *
+ *
* based on mpeg2dec code from
* Ryan C. Gordon <icculus@lokigames.com> and
* Dominik Schnitzer <aeneas@linuxvideo.org>
@@ -82,9 +82,9 @@ typedef struct stk_driver_s {
vo_driver_t vo_driver;
/* stk private data */
- config_values_t* config;
- surface_t* surface;
- xine_panel_t* xine_panel;
+ config_values_t* config;
+ surface_t* surface;
+ xine_panel_t* xine_panel;
uint8_t bpp; /* do we need this ? */
pthread_mutex_t mutex;
uint32_t capabilities;
@@ -171,25 +171,25 @@ static void stk_update_frame_format (vo_driver_t *this_gen, vo_frame_t *frame_ge
//printf("video_out_stk: update_frame_format()\n");
if ((frame->width != width) || (frame->height != height) || (frame->format != format)) {
- lprintf("update_frame_format - %d=%d, %d=%d, %d=%d\n",
+ lprintf("update_frame_format - %d=%d, %d=%d, %d=%d\n",
frame->width, width, frame->height, height, frame->format, format);
- lprintf("vo_frame data - width, height, format: %d, %d, %d\n",
+ lprintf("vo_frame data - width, height, format: %d, %d, %d\n",
frame->vo_frame.width, frame->vo_frame.height, frame->vo_frame.format);
-
+
/* (re-) allocate image */
if (frame->overlay) {
- stk_overlay_free(frame->overlay);
+ stk_overlay_free(frame->overlay);
frame->overlay = NULL;
}
if (format == XINE_IMGFMT_YV12) {
lprintf ("format YV12\n");
- frame->overlay = stk_surface_create_overlay(this->surface, width, height,
+ frame->overlay = stk_surface_create_overlay(this->surface, width, height,
STK_FORMAT_YV12);
} else if (format == XINE_IMGFMT_YUY2) {
lprintf("format YUY2\n");
- frame->overlay = stk_surface_create_overlay(this->surface, width, height,
+ frame->overlay = stk_surface_create_overlay(this->surface, width, height,
STK_FORMAT_YUY2);
}
@@ -197,7 +197,7 @@ static void stk_update_frame_format (vo_driver_t *this_gen, vo_frame_t *frame_ge
return;
/* From the SDL driver:
- * This needs to be done becuase I have found that
+ * This needs to be done becuase I have found that
* pixels isn't setup until this is called.
*/
stk_overlay_lock(frame->overlay);
@@ -224,7 +224,7 @@ static void stk_overlay_blend (vo_driver_t *this_gen, vo_frame_t *frame_gen, vo_
stk_driver_t* this = (stk_driver_t*)this_gen;
stk_frame_t* frame = (stk_frame_t*)frame_gen;
//printf("video_out_stk: overlay_blend()\n");
-
+
this->alphablend_extra_data.offset_x = frame_gen->overlay_offset_x;
this->alphablend_extra_data.offset_y = frame_gen->overlay_offset_y;
@@ -238,7 +238,7 @@ static void stk_overlay_blend (vo_driver_t *this_gen, vo_frame_t *frame_gen, vo_
}
static void stk_check_events (stk_driver_t* this) {
- /* SDL checks for a resize, our video panels aren't resizeable... */
+ /* SDL checks for a resize, our video panels aren't resizeable... */
//printf("video_out_stk: check_events()\n");
}
@@ -247,7 +247,7 @@ static int stk_redraw_needed (vo_driver_t* this_gen) {
stk_driver_t* this = (stk_driver_t*)this_gen;
int ret = 0;
static int last_gui_width, last_gui_height;
-
+
//printf("video_out_stk: redraw_needed()\n");
if( last_gui_width != this->sc.gui_width ||
@@ -273,7 +273,7 @@ static void stk_display_frame (vo_driver_t *this_gen, vo_frame_t *frame_gen) {
stk_frame_t* frame = (stk_frame_t*)frame_gen;
//printf("video_out_stk: display_frame()\n");
-
+
pthread_mutex_lock(&this->mutex);
if ( (frame->width != this->sc.delivered_width)
@@ -308,7 +308,7 @@ static void stk_display_frame (vo_driver_t *this_gen, vo_frame_t *frame_gen) {
static int stk_get_property (vo_driver_t* this_gen, int property) {
stk_driver_t* this = (stk_driver_t *)this_gen;
-
+
//printf("video_out_stk: get_property()\n");
if (property == VO_PROP_ASPECT_RATIO)
@@ -321,7 +321,7 @@ static int stk_set_property (vo_driver_t* this_gen, int property, int value) {
stk_driver_t* this = (stk_driver_t*)this_gen;
//printf("video_out_stk: set_property()\n");
-
+
if ( property == VO_PROP_ASPECT_RATIO) {
if (value>=XINE_VO_ASPECT_NUM_RATIOS)
value = XINE_VO_ASPECT_AUTO;
@@ -341,7 +341,7 @@ static void stk_get_property_min_max (vo_driver_t *this_gen, int property, int *
//printf("video_out_stk: get_property_min_max()\n");
}
-static int stk_gui_data_exchange (vo_driver_t *this_gen, int data_type, void *data) {
+static int stk_gui_data_exchange (vo_driver_t *this_gen, int data_type, void *data) {
stk_driver_t *this = (stk_driver_t*)this_gen;
switch (data_type)
@@ -349,9 +349,9 @@ static int stk_gui_data_exchange (vo_driver_t *this_gen, int data_type, void *da
case XINE_GUI_SEND_COMPLETION_EVENT:
break;
- case XINE_GUI_SEND_EXPOSE_EVENT:
+ case XINE_GUI_SEND_EXPOSE_EVENT:
break;
-
+
case XINE_GUI_SEND_DRAWABLE_CHANGED:
this->xine_panel = (xine_panel_t*)data;
this->surface = stk_xine_panel_surface(this->xine_panel);
@@ -365,18 +365,18 @@ static int stk_gui_data_exchange (vo_driver_t *this_gen, int data_type, void *da
case XINE_GUI_SEND_TRANSLATE_GUI_TO_VIDEO:
break;
}
-
+
return 0;
}
static void stk_dispose (vo_driver_t * this_gen) {
stk_driver_t* this = (stk_driver_t*)this_gen;
-
+
//printf("video_out_stk: dispose()\n");
-
- /* FIXME: any libstk deleting must be done in the app or library
+
+ /* FIXME: any libstk deleting must be done in the app or library
* since we didn't create the surface */
-
+
_x_alphablend_free(&this->alphablend_extra_data);
free(this);
@@ -386,9 +386,9 @@ static vo_driver_t *open_plugin(video_driver_class_t *class_gen, const void *vis
stk_class_t * class = (stk_class_t *) class_gen;
/* allocate the video output driver class */
stk_driver_t* this;
-
+
//printf("video_out_stk: open_plugin()\n");
-
+
this = calloc(1, sizeof (stk_driver_t));
if (!this)
return NULL;
@@ -432,7 +432,7 @@ static vo_driver_t *open_plugin(video_driver_class_t *class_gen, const void *vis
/* FIXME: move this to the stk SDL driver code */
xine_setenv("SDL_VIDEO_YUV_HWACCEL", "1", 1);
xine_setenv("SDL_VIDEO_X11_NODIRECTCOLOR", "1", 1);
-
+
xprintf (this->xine, XINE_VERBOSITY_DEBUG,
"video_out_stk: warning, xine's STK driver is EXPERIMENTAL\n");
return &this->vo_driver;
@@ -444,7 +444,7 @@ static vo_driver_t *open_plugin(video_driver_class_t *class_gen, const void *vis
*/
static void *init_class (xine_t *xine, void *visual_gen) {
stk_class_t* this;
-
+
//printf("video_out_stk: init_class()\n");
this = calloc(1, sizeof(stk_class_t));
@@ -453,7 +453,7 @@ static void *init_class (xine_t *xine, void *visual_gen) {
this->driver_class.identifier = "stk";
this->driver_class.description = N_("xine video output plugin using the Libstk Surface Set-top Toolkit");
this->driver_class.dispose = default_video_driver_class_dispose;
-
+
this->config = xine->config;
this->xine = xine;
diff --git a/src/video_out/video_out_vidix.c b/src/video_out/video_out_vidix.c
index 957d6ce1a..74529ebec 100644
--- a/src/video_out/video_out_vidix.c
+++ b/src/video_out/video_out_vidix.c
@@ -7,7 +7,7 @@
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
@@ -65,7 +65,7 @@
#ifdef HAVE_X11
#include "x11osd.h"
#endif
-
+
#define NUM_FRAMES 3
typedef struct vidix_driver_s vidix_driver_t;
@@ -109,16 +109,16 @@ struct vidix_driver_s {
uint32_t colourkey;
int use_doublebuffer;
-
+
int supports_yv12;
-
+
pthread_mutex_t mutex;
vidix_property_t props[VO_NUM_PROPERTIES];
uint32_t capabilities;
int visual_type;
-
+
/* X11 related stuff */
#ifdef HAVE_X11
Display *display;
@@ -128,17 +128,17 @@ struct vidix_driver_s {
x11osd *xoverlay;
int ovl_changed;
#endif
-
+
/* fb related stuff */
int fb_width;
int fb_height;
-
+
int depth;
vo_scale_t sc;
int delivered_format;
-
+
xine_t *xine;
alphablend_t alphablend_extra_data;
@@ -151,7 +151,7 @@ typedef struct vidix_class_s {
VDL_HANDLE vidix_handler;
vidix_capability_t vidix_cap;
-
+
xine_t *xine;
} vidix_class_t;
@@ -175,7 +175,7 @@ static void free_framedata(vidix_frame_t* frame)
}
static void write_frame_YUV420P2(vidix_driver_t* this, vidix_frame_t* frame)
-{
+{
uint8_t* y = frame->vo_frame.base[0] + this->sc.displayed_xoffset +
this->sc.displayed_yoffset*frame->vo_frame.pitches[0];
uint8_t* cb = frame->vo_frame.base[1] + this->sc.displayed_xoffset/2 +
@@ -183,16 +183,16 @@ static void write_frame_YUV420P2(vidix_driver_t* this, vidix_frame_t* frame)
uint8_t* cr = frame->vo_frame.base[2]+this->sc.displayed_xoffset/2 +
this->sc.displayed_yoffset*frame->vo_frame.pitches[2]/2;
uint8_t* dst8 = (this->vidix_mem +
- this->vidix_play.offsets[this->next_frame] +
+ this->vidix_play.offsets[this->next_frame] +
this->vidix_play.offset.y);
- int h, w;
-
+ int h, w;
+
for(h = 0; h < this->sc.displayed_height; h++) {
xine_fast_memcpy(dst8, y, this->sc.displayed_width);
y += frame->vo_frame.pitches[0];
dst8 += this->dstrides.y;
}
-
+
dst8 = (this->vidix_mem + this->vidix_play.offsets[this->next_frame] +
this->vidix_play.offset.v);
@@ -211,7 +211,7 @@ static void write_frame_sfb(vidix_driver_t* this, vidix_frame_t* frame)
{
uint8_t *base = this->vidix_mem+this->vidix_play.offsets[this->next_frame];
- switch(frame->format) {
+ switch(frame->format) {
case XINE_IMGFMT_YUY2:
yuy2_to_yuy2(
/* src */
@@ -223,7 +223,7 @@ static void write_frame_sfb(vidix_driver_t* this, vidix_frame_t* frame)
/* width x height */
this->sc.displayed_width, this->sc.displayed_height);
break;
-
+
case XINE_IMGFMT_YV12: {
uint8_t* y = frame->vo_frame.base[0] + this->sc.displayed_xoffset +
this->sc.displayed_yoffset*frame->vo_frame.pitches[0];
@@ -231,7 +231,7 @@ static void write_frame_sfb(vidix_driver_t* this, vidix_frame_t* frame)
this->sc.displayed_yoffset*frame->vo_frame.pitches[1]/2;
uint8_t* cr = frame->vo_frame.base[2] + this->sc.displayed_xoffset/2 +
this->sc.displayed_yoffset*frame->vo_frame.pitches[2]/2;
-
+
if(this->supports_yv12) {
if(this->vidix_play.flags & VID_PLAY_INTERLEAVED_UV)
write_frame_YUV420P2(this, frame);
@@ -262,9 +262,9 @@ static void write_frame_sfb(vidix_driver_t* this, vidix_frame_t* frame)
frame->vo_frame.progressive_frame);
break;
}
-
+
default:
- xprintf(this->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->xine, XINE_VERBOSITY_DEBUG,
"video_out_vidix: error. (unknown frame format %04x)\n", frame->format);
break;
}
@@ -276,11 +276,11 @@ static void vidix_clean_output_area(vidix_driver_t *this) {
if(this->visual_type == XINE_VISUAL_TYPE_X11) {
#ifdef HAVE_X11
int i;
-
- XLockDisplay(this->display);
-
+
+ XLockDisplay(this->display);
+
XSetForeground(this->display, this->gc, BlackPixel(this->display, this->screen));
-
+
for( i = 0; i < 4; i++ ) {
if( this->sc.border[i].w && this->sc.border[i].h ) {
XFillRectangle(this->display, this->drawable, this->gc,
@@ -288,15 +288,15 @@ static void vidix_clean_output_area(vidix_driver_t *this) {
this->sc.border[i].w, this->sc.border[i].h);
}
}
-
+
XSetForeground(this->display, this->gc, this->colourkey);
XFillRectangle(this->display, this->drawable, this->gc, this->sc.output_xoffset, this->sc.output_yoffset, this->sc.output_width, this->sc.output_height);
-
+
if (this->xoverlay) {
x11osd_resize (this->xoverlay, this->sc.gui_width, this->sc.gui_height);
this->ovl_changed = 1;
}
-
+
XFlush(this->display);
XUnlockDisplay(this->display);
@@ -326,12 +326,12 @@ static void vidix_update_colourkey(vidix_driver_t *this) {
default:
break;
}
-
+
vidix_clean_output_area(this);
-
+
vdlSetGrKeys(this->vidix_handler, &this->vidix_grkey);
}
-
+
static uint32_t vidix_get_capabilities (vo_driver_t *this_gen) {
@@ -362,7 +362,7 @@ static void vidix_frame_dispose (vo_frame_t *vo_img) {
vidix_frame_t *frame = (vidix_frame_t *) vo_img ;
- free_framedata(frame);
+ free_framedata(frame);
free (frame);
}
@@ -375,7 +375,7 @@ static vo_frame_t *vidix_alloc_frame (vo_driver_t *this_gen) {
return NULL;
pthread_mutex_init (&frame->vo_frame.mutex, NULL);
-
+
frame->vo_frame.base[0] = NULL;
frame->vo_frame.base[1] = NULL;
frame->vo_frame.base[2] = NULL;
@@ -407,33 +407,33 @@ static void vidix_config_playback (vidix_driver_t *this) {
uint32_t apitch;
int err,i;
-
+
_x_vo_scale_compute_output_size( &this->sc );
-
+
/* We require that the displayed xoffset and width are even.
* To prevent displaying more than we're supposed to we round the
* xoffset up and the width down */
this->sc.displayed_xoffset = (this->sc.displayed_xoffset+1) & ~1;
this->sc.displayed_width = this->sc.displayed_width & ~1;
-
+
/* For yv12 source displayed yoffset and height need to be even too */
if(this->delivered_format == XINE_IMGFMT_YV12) {
this->sc.displayed_yoffset = (this->sc.displayed_yoffset+1) & ~1;
this->sc.displayed_height = this->sc.displayed_height & ~1;
}
-
+
if( this->vidix_started > 0 ) {
lprintf("video_out_vidix: overlay off\n");
vdlPlaybackOff(this->vidix_handler);
}
memset(&this->vidix_play,0,sizeof(vidix_playback_t));
-
+
if(this->delivered_format == XINE_IMGFMT_YV12 && this->supports_yv12)
this->vidix_play.fourcc = IMGFMT_YV12;
else
this->vidix_play.fourcc = IMGFMT_YUY2;
-
+
this->vidix_play.capability = this->vidix_cap.flags; /* every ;) */
this->vidix_play.blend_factor = 0; /* for now */
this->vidix_play.src.x = 0;
@@ -449,7 +449,7 @@ static void vidix_config_playback (vidix_driver_t *this) {
if((err=vdlConfigPlayback(this->vidix_handler,&this->vidix_play))!=0)
{
- xprintf(this->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->xine, XINE_VERBOSITY_DEBUG,
"video_out_vidix: Can't configure playback: %s\n",strerror(err));
this->vidix_started = -1;
return;
@@ -458,27 +458,27 @@ static void vidix_config_playback (vidix_driver_t *this) {
lprintf("video_out_vidix: dga_addr = %p frame_size = %u frames = %u\n",
this->vidix_play.dga_addr, this->vidix_play.frame_size,
this->vidix_play.num_frames );
-
+
lprintf("video_out_vidix: offsets[0..2] = %u %u %u\n",
this->vidix_play.offsets[0], this->vidix_play.offsets[1],
this->vidix_play.offsets[2] );
-
+
lprintf("video_out_vidix: offset.y/u/v = %u/%u/%u\n",
this->vidix_play.offset.y, this->vidix_play.offset.u,
this->vidix_play.offset.v );
-
+
lprintf("video_out_vidix: src.x/y/w/h = %u/%u/%u/%u\n",
this->vidix_play.src.x, this->vidix_play.src.y,
this->vidix_play.src.w, this->vidix_play.src.h );
-
+
lprintf("video_out_vidix: dest.x/y/w/h = %u/%u/%u/%u\n",
this->vidix_play.dest.x, this->vidix_play.dest.y,
this->vidix_play.dest.w, this->vidix_play.dest.h );
-
+
lprintf("video_out_vidix: dest.pitch.y/u/v = %u/%u/%u\n",
this->vidix_play.dest.pitch.y, this->vidix_play.dest.pitch.u,
this->vidix_play.dest.pitch.v );
-
+
this->vidix_mem = this->vidix_play.dga_addr;
this->next_frame = 0;
@@ -502,7 +502,7 @@ static void vidix_config_playback (vidix_driver_t *this) {
this->dstrides.y = (this->sc.displayed_width*2 + apitch) & ~apitch;
break;
default:
- xprintf(this->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->xine, XINE_VERBOSITY_DEBUG,
"video_out_vidix: error. (unknown frame format: %04x)\n", this->delivered_format);
}
@@ -517,7 +517,7 @@ static void vidix_update_frame_format (vo_driver_t *this_gen,
double ratio, int format, int flags) {
vidix_driver_t *this = (vidix_driver_t *) this_gen;
vidix_frame_t *frame = (vidix_frame_t *) frame_gen;
-
+
if ((frame->width != width)
|| (frame->height != height)
|| (frame->format != format)) {
@@ -525,9 +525,9 @@ static void vidix_update_frame_format (vo_driver_t *this_gen,
/*
* (re-) allocate image
*/
-
+
free_framedata(frame);
-
+
frame->width = width;
frame->height = height;
frame->format = format;
@@ -548,15 +548,15 @@ static void vidix_update_frame_format (vo_driver_t *this_gen,
frame->vo_frame.base[2] = NULL;
break;
default:
- xprintf(this->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->xine, XINE_VERBOSITY_DEBUG,
"video_out_vidix: error. (unknown frame format: %04x)\n", format);
}
-
+
if((format == XINE_IMGFMT_YV12 && (frame->vo_frame.base[0] == NULL || frame->vo_frame.base[1] == NULL || frame->vo_frame.base[2] == NULL))
|| (format == XINE_IMGFMT_YUY2 && frame->vo_frame.base[0] == NULL)) {
- xprintf(this->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->xine, XINE_VERBOSITY_DEBUG,
"video_out_vidix: error. (framedata allocation failed: out of memory)\n");
-
+
free_framedata(frame);
}
}
@@ -564,7 +564,7 @@ static void vidix_update_frame_format (vo_driver_t *this_gen,
frame->ratio = ratio;
}
-static void vidix_overlay_begin (vo_driver_t *this_gen,
+static void vidix_overlay_begin (vo_driver_t *this_gen,
vo_frame_t *frame_gen, int changed) {
vidix_driver_t *this = (vidix_driver_t *) this_gen;
@@ -573,11 +573,11 @@ static void vidix_overlay_begin (vo_driver_t *this_gen,
if( this->ovl_changed && this->xoverlay ) {
XLockDisplay (this->display);
- x11osd_clear(this->xoverlay);
+ x11osd_clear(this->xoverlay);
XUnlockDisplay (this->display);
}
#endif
-
+
this->alphablend_extra_data.offset_x = frame_gen->overlay_offset_x;
this->alphablend_extra_data.offset_y = frame_gen->overlay_offset_y;
}
@@ -603,17 +603,17 @@ static void vidix_overlay_blend (vo_driver_t *this_gen, vo_frame_t *frame_gen, v
vidix_frame_t *frame = (vidix_frame_t *) frame_gen;
vidix_driver_t *this = (vidix_driver_t *) this_gen;
-
+
if (overlay->rle) {
if( overlay->unscaled ) {
#ifdef HAVE_X11
if( this->ovl_changed && this->xoverlay ) {
XLockDisplay (this->display);
- x11osd_blend(this->xoverlay, overlay);
+ x11osd_blend(this->xoverlay, overlay);
XUnlockDisplay (this->display);
}
#endif
- } else {
+ } else {
if( frame->format == XINE_IMGFMT_YV12 )
_x_blend_yuv( frame->vo_frame.base, overlay, frame->width, frame->height, frame->vo_frame.pitches, &this->alphablend_extra_data);
else
@@ -649,25 +649,25 @@ static void vidix_display_frame (vo_driver_t *this_gen, vo_frame_t *frame_gen) {
if ( (frame->width != this->sc.delivered_width)
|| (frame->height != this->sc.delivered_height)
- || (frame->ratio != this->sc.delivered_ratio)
+ || (frame->ratio != this->sc.delivered_ratio)
|| (frame->format != this->delivered_format ) ) {
lprintf("video_out_vidix: change frame format\n");
-
+
this->sc.delivered_width = frame->width;
this->sc.delivered_height = frame->height;
this->sc.delivered_ratio = frame->ratio;
this->delivered_format = frame->format;
-
+
this->sc.crop_left = frame->vo_frame.crop_left;
this->sc.crop_right = frame->vo_frame.crop_right;
this->sc.crop_top = frame->vo_frame.crop_top;
this->sc.crop_bottom = frame->vo_frame.crop_bottom;
-
+
vidix_compute_ideal_size( this );
this->sc.force_redraw = 1;
}
-
- /*
+
+ /*
* check if we have to reconfigure vidix because of
* format/window position change
*/
@@ -692,7 +692,7 @@ static void vidix_display_frame (vo_driver_t *this_gen, vo_frame_t *frame_gen) {
static int vidix_get_property (vo_driver_t *this_gen, int property) {
vidix_driver_t *this = (vidix_driver_t *) this_gen;
-
+
switch (property) {
case VO_PROP_WINDOW_WIDTH:
this->props[property].value = this->sc.gui_width;
@@ -713,7 +713,7 @@ static int vidix_get_property (vo_driver_t *this_gen, int property) {
this->props[property].value = this->sc.output_yoffset;
break;
}
-
+
lprintf ("video_out_vidix: property #%d = %d\n", property,
this->props[property].value);
@@ -726,91 +726,91 @@ static int vidix_set_property (vo_driver_t *this_gen,
vidix_driver_t *this = (vidix_driver_t *) this_gen;
int err;
-
+
if ((value >= this->props[property].min) &&
(value <= this->props[property].max))
{
this->props[property].value = value;
-
+
if ( property == VO_PROP_ASPECT_RATIO) {
if(value >= XINE_VO_ASPECT_NUM_RATIOS)
value = this->props[property].value = XINE_VO_ASPECT_AUTO;
lprintf("video_out_vidix: aspect ratio changed to %s\n",
_x_vo_scale_aspect_ratio_name_table[value]);
-
- this->sc.user_ratio = value;
+
+ this->sc.user_ratio = value;
vidix_compute_ideal_size (this);
this->sc.force_redraw = 1;
- }
+ }
if ( property == VO_PROP_ZOOM_X ) {
this->sc.zoom_factor_x = (double)value / (double)XINE_VO_ZOOM_STEP;
vidix_compute_ideal_size (this);
this->sc.force_redraw = 1;
- }
+ }
if ( property == VO_PROP_ZOOM_Y ) {
this->sc.zoom_factor_y = (double)value / (double)XINE_VO_ZOOM_STEP;
vidix_compute_ideal_size (this);
this->sc.force_redraw = 1;
- }
-
+ }
+
if ( property == VO_PROP_HUE ) {
this->vidix_eq.cap = VEQ_CAP_HUE;
this->vidix_eq.hue = value;
-
+
if((err = vdlPlaybackSetEq(this->vidix_handler, &this->vidix_eq)) != 0)
xprintf(this->xine, XINE_VERBOSITY_DEBUG, "video_out_vidix: can't set hue: %s\n", strerror(err));
}
-
+
if ( property == VO_PROP_SATURATION ) {
this->vidix_eq.cap = VEQ_CAP_SATURATION;
this->vidix_eq.saturation = value;
-
+
if((err = vdlPlaybackSetEq(this->vidix_handler, &this->vidix_eq)) != 0)
xprintf(this->xine, XINE_VERBOSITY_DEBUG, "video_out_vidix: can't set saturation: %s\n", strerror(err));
}
-
+
if ( property == VO_PROP_BRIGHTNESS ) {
this->vidix_eq.cap = VEQ_CAP_BRIGHTNESS;
this->vidix_eq.brightness = value;
-
+
if((err = vdlPlaybackSetEq(this->vidix_handler, &this->vidix_eq)) != 0)
xprintf(this->xine, XINE_VERBOSITY_DEBUG, "video_out_vidix: can't set brightness: %s\n", strerror(err));
}
-
+
if ( property == VO_PROP_CONTRAST ) {
this->vidix_eq.cap = VEQ_CAP_CONTRAST;
this->vidix_eq.contrast = value;
-
+
if((err = vdlPlaybackSetEq(this->vidix_handler, &this->vidix_eq)) != 0)
xprintf(this->xine, XINE_VERBOSITY_DEBUG, "video_out_vidix: can't set contrast: %s\n", strerror(err));
}
}
-
+
return value;
}
static void vidix_ckey_callback(vo_driver_t *this_gen, xine_cfg_entry_t *entry) {
- vidix_driver_t *this = (vidix_driver_t *) this_gen;
-
+ vidix_driver_t *this = (vidix_driver_t *) this_gen;
+
if(strcmp(entry->key, "video.device.vidix_colour_key_red") == 0) {
this->vidix_grkey.ckey.red = entry->num_value;
}
-
+
if(strcmp(entry->key, "video.device.vidix_colour_key_green") == 0) {
this->vidix_grkey.ckey.green = entry->num_value;
}
-
+
if(strcmp(entry->key, "video.device.vidix_colour_key_blue") == 0) {
this->vidix_grkey.ckey.blue = entry->num_value;
}
-
+
vidix_update_colourkey(this);
this->sc.force_redraw = 1;
}
@@ -818,7 +818,7 @@ static void vidix_ckey_callback(vo_driver_t *this_gen, xine_cfg_entry_t *entry)
static void vidix_db_callback(vo_driver_t *this_gen, xine_cfg_entry_t *entry) {
- vidix_driver_t *this = (vidix_driver_t *) this_gen;
+ vidix_driver_t *this = (vidix_driver_t *) this_gen;
this->use_doublebuffer = entry->num_value;
this->sc.force_redraw = 1;
@@ -828,16 +828,16 @@ static void vidix_db_callback(vo_driver_t *this_gen, xine_cfg_entry_t *entry) {
static void vidix_rgb_callback(vo_driver_t *this_gen, xine_cfg_entry_t *entry) {
int err;
vidix_driver_t *this = (vidix_driver_t *) this_gen;
-
+
this->vidix_eq.cap = VEQ_CAP_RGB_INTENSITY;
-
+
if(!strcmp(entry->key, "video.output.vidix_red_intensity")) {
this->vidix_eq.red_intensity = entry->num_value;
} else if(!strcmp(entry->key, "video.output.vidix_green_intensity")) {
this->vidix_eq.green_intensity = entry->num_value;
} else if(!strcmp(entry->key, "video.output.vidix_blue_intensity")) {
this->vidix_eq.blue_intensity = entry->num_value;
- }
+ }
if((err = vdlPlaybackSetEq(this->vidix_handler, &this->vidix_eq)))
xprintf(this->xine, XINE_VERBOSITY_DEBUG, "video_out_vidix: can't set rgb intensity: %s\n", strerror(err));
@@ -860,12 +860,12 @@ static int vidix_gui_data_exchange (vo_driver_t *this_gen,
vidix_driver_t *this = (vidix_driver_t *) this_gen;
pthread_mutex_lock(&this->mutex);
-
+
switch (data_type) {
case XINE_GUI_SEND_DRAWABLE_CHANGED:
lprintf ("video_out_vidix: GUI_DATA_EX_DRAWABLE_CHANGED\n");
-
+
if(this->visual_type == XINE_VISUAL_TYPE_X11) {
#ifdef HAVE_X11
this->drawable = (Drawable) data;
@@ -879,7 +879,7 @@ static int vidix_gui_data_exchange (vo_driver_t *this_gen,
#endif
}
break;
-
+
case XINE_GUI_SEND_EXPOSE_EVENT:
lprintf ("video_out_vidix: GUI_DATA_EX_EXPOSE_EVENT\n");
vidix_clean_output_area(this);
@@ -908,7 +908,7 @@ static int vidix_gui_data_exchange (vo_driver_t *this_gen,
rect->h = y2-y1;
}
break;
-
+
default:
ret = -1;
}
@@ -916,7 +916,7 @@ static int vidix_gui_data_exchange (vo_driver_t *this_gen,
return ret;
}
-
+
static void vidix_exit (vo_driver_t *this_gen) {
vidix_driver_t *this = (vidix_driver_t *) this_gen;
@@ -937,7 +937,7 @@ static void vidix_exit (vo_driver_t *this_gen) {
#endif
_x_alphablend_free(&this->alphablend_extra_data);
-
+
free (this);
}
@@ -946,30 +946,30 @@ static vidix_driver_t *open_plugin (video_driver_class_t *class_gen) {
config_values_t *config = class->config;
vidix_driver_t *this;
int err;
-
+
this = (vidix_driver_t *) calloc(1, sizeof(vidix_driver_t));
if (!this)
return NULL;
_x_alphablend_init(&this->alphablend_extra_data, class->xine);
-
+
pthread_mutex_init (&this->mutex, NULL);
this->vidix_handler = class->vidix_handler;
this->vidix_cap = class->vidix_cap;
_x_vo_scale_init( &this->sc, 1, /*this->vidix_cap.flags & FLAG_UPSCALER,*/ 0, config );
-
+
this->xine = class->xine;
this->config = config;
-
+
this->got_frame_data = 0;
this->capabilities = VO_CAP_CROP | VO_CAP_ZOOM_X | VO_CAP_ZOOM_Y;
/* Find what equalizer flags are supported */
if(this->vidix_cap.flags & FLAG_EQUALIZER) {
if((err = vdlPlaybackGetEq(this->vidix_handler, &this->vidix_eq)) != 0) {
- xprintf(this->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->xine, XINE_VERBOSITY_DEBUG,
"video_out_vidix: couldn't get equalizer capabilities: %s\n", strerror(err));
} else {
if(this->vidix_eq.cap & VEQ_CAP_BRIGHTNESS) {
@@ -978,51 +978,51 @@ static vidix_driver_t *open_plugin (video_driver_class_t *class_gen) {
this->props[VO_PROP_BRIGHTNESS].min = -1000;
this->props[VO_PROP_BRIGHTNESS].max = 1000;
}
-
+
if(this->vidix_eq.cap & VEQ_CAP_CONTRAST) {
this->capabilities |= VO_CAP_CONTRAST;
this->props[VO_PROP_CONTRAST].value = 0;
this->props[VO_PROP_CONTRAST].min = -1000;
this->props[VO_PROP_CONTRAST].max = 1000;
}
-
+
if(this->vidix_eq.cap & VEQ_CAP_SATURATION) {
this->capabilities |= VO_CAP_SATURATION;
this->props[VO_PROP_SATURATION].value = 0;
this->props[VO_PROP_SATURATION].min = -1000;
this->props[VO_PROP_SATURATION].max = 1000;
}
-
+
if(this->vidix_eq.cap & VEQ_CAP_HUE) {
this->capabilities |= VO_CAP_HUE;
this->props[VO_PROP_HUE].value = 0;
this->props[VO_PROP_HUE].min = -1000;
this->props[VO_PROP_HUE].max = 1000;
}
-
+
if(this->vidix_eq.cap & VEQ_CAP_RGB_INTENSITY) {
this->vidix_eq.red_intensity = config->register_range(config,
- "video.output.vidix_red_intensity", 0, -1000, 1000,
+ "video.output.vidix_red_intensity", 0, -1000, 1000,
_("red intensity"), _("The intensity of the red colour components."), 10,
- (void*) vidix_rgb_callback, this);
+ (void*) vidix_rgb_callback, this);
this->vidix_eq.green_intensity = config->register_range(config,
- "video.output.vidix_green_intensity", 0, -1000, 1000,
+ "video.output.vidix_green_intensity", 0, -1000, 1000,
_("green intensity"), _("The intensity of the green colour components."), 10,
(void*) vidix_rgb_callback, this);
this->vidix_eq.blue_intensity = config->register_range(config,
- "video.output.vidix_blue_intensity", 0, -1000, 1000,
+ "video.output.vidix_blue_intensity", 0, -1000, 1000,
_("blue intensity"), _("The intensity of the blue colour components."), 10,
(void*) vidix_rgb_callback, this);
-
+
if((err = vdlPlaybackSetEq(this->vidix_handler, &this->vidix_eq)))
- xprintf(this->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->xine, XINE_VERBOSITY_DEBUG,
"video_out_vidix: can't set rgb intensity: %s\n", strerror(err));
- }
+ }
}
}
-
+
/* Configuration for double buffering */
this->use_doublebuffer = config->register_bool(config,
"video.device.vidix_double_buffer", 1, _("enable double buffering"),
@@ -1030,20 +1030,20 @@ static vidix_driver_t *open_plugin (video_driver_class_t *class_gen) {
"screen (\"vertical retrace\"). This eliminates flickering and tearing artifacts, but will use "
"more graphics memory."), 20,
(void*) vidix_db_callback, this);
-
+
/* Set up remaining props */
this->props[VO_PROP_ASPECT_RATIO].value = XINE_VO_ASPECT_AUTO;
this->props[VO_PROP_ASPECT_RATIO].min = 0;
this->props[VO_PROP_ASPECT_RATIO].max = XINE_VO_ASPECT_NUM_RATIOS;
-
+
this->props[VO_PROP_ZOOM_X].value = 100;
this->props[VO_PROP_ZOOM_X].min = XINE_VO_ZOOM_MIN;
this->props[VO_PROP_ZOOM_X].max = XINE_VO_ZOOM_MAX;
-
+
this->props[VO_PROP_ZOOM_Y].value = 100;
this->props[VO_PROP_ZOOM_Y].min = XINE_VO_ZOOM_MIN;
this->props[VO_PROP_ZOOM_Y].max = XINE_VO_ZOOM_MAX;
-
+
this->vo_driver.get_capabilities = vidix_get_capabilities;
this->vo_driver.alloc_frame = vidix_alloc_frame;
this->vo_driver.update_frame_format = vidix_update_frame_format;
@@ -1064,23 +1064,23 @@ static vidix_driver_t *open_plugin (video_driver_class_t *class_gen) {
static void query_fourccs (vidix_driver_t *this) {
vidix_fourcc_t vidix_fourcc;
int err;
-
+
/* Detect if YUY2 is supported */
memset(&vidix_fourcc, 0, sizeof(vidix_fourcc_t));
vidix_fourcc.fourcc = IMGFMT_YUY2;
vidix_fourcc.depth = this->depth;
-
+
if((err = vdlQueryFourcc(this->vidix_handler, &vidix_fourcc)) == 0) {
this->capabilities |= VO_CAP_YUY2;
xprintf(this->xine, XINE_VERBOSITY_LOG,
_("video_out_vidix: adaptor supports the yuy2 format\n"));
}
-
+
/* Detect if YV12 is supported - we always support yv12 but we need
to know if we have to convert */
this->capabilities |= VO_CAP_YV12;
vidix_fourcc.fourcc = IMGFMT_YV12;
-
+
if((err = vdlQueryFourcc(this->vidix_handler, &vidix_fourcc)) == 0) {
this->supports_yv12 = 1;
xprintf(this->xine, XINE_VERBOSITY_LOG,
@@ -1092,14 +1092,14 @@ static void query_fourccs (vidix_driver_t *this) {
static void *init_class (xine_t *xine, void *visual_gen) {
vidix_class_t *this;
int err;
-
+
this = (vidix_class_t *) calloc(1, sizeof(vidix_class_t));
if (!this)
return NULL;
-
+
if(vdlGetVersion() != VIDIX_VERSION)
{
- xprintf(xine, XINE_VERBOSITY_LOG,
+ xprintf(xine, XINE_VERBOSITY_LOG,
_("video_out_vidix: You have wrong version of VIDIX library\n"));
free(this);
return NULL;
@@ -1114,18 +1114,18 @@ static void *init_class (xine_t *xine, void *visual_gen) {
}
if((err=vdlGetCapability(this->vidix_handler,&this->vidix_cap)) != 0)
{
- xprintf(xine, XINE_VERBOSITY_DEBUG,
+ xprintf(xine, XINE_VERBOSITY_DEBUG,
"video_out_vidix: Couldn't get capability: %s\n",strerror(err));
free(this);
return NULL;
}
- xprintf(xine, XINE_VERBOSITY_LOG,
+ xprintf(xine, XINE_VERBOSITY_LOG,
_("video_out_vidix: using driver: %s by %s\n"), this->vidix_cap.name, this->vidix_cap.author);
this->xine = xine;
this->config = xine->config;
-
+
return this;
}
@@ -1134,63 +1134,63 @@ static vo_driver_t *vidix_open_plugin (video_driver_class_t *class_gen, const vo
vidix_driver_t *this = open_plugin(class_gen);
config_values_t *config = this->config;
x11_visual_t *visual = (x11_visual_t *) visual_gen;
- XWindowAttributes window_attributes;
-
+ XWindowAttributes window_attributes;
+
this->visual_type = XINE_VISUAL_TYPE_X11;
-
+
this->display = visual->display;
this->screen = visual->screen;
this->drawable = visual->d;
this->gc = XCreateGC(this->display, this->drawable, 0, NULL);
this->xoverlay = NULL;
this->ovl_changed = 0;
-
+
XGetWindowAttributes(this->display, this->drawable, &window_attributes);
this->sc.gui_width = window_attributes.width;
this->sc.gui_height = window_attributes.height;
this->depth = window_attributes.depth;
-
+
this->sc.frame_output_cb = visual->frame_output_cb;
this->sc.user_data = visual->user_data;
-
- /* We'll assume all drivers support colour keying (which they do
+
+ /* We'll assume all drivers support colour keying (which they do
at the moment) */
this->vidix_grkey.ckey.op = CKEY_TRUE;
-
+
/* Colour key components */
this->vidix_grkey.ckey.red = config->register_range(config,
- "video.device.vidix_colour_key_red", 255, 0, 255,
+ "video.device.vidix_colour_key_red", 255, 0, 255,
_("video overlay colour key red component"),
_("The colour key is used to tell the graphics card where to overlay the video image. "
"Try different values, if you experience windows becoming transparent."), 20,
- (void*) vidix_ckey_callback, this);
-
+ (void*) vidix_ckey_callback, this);
+
this->vidix_grkey.ckey.green = config->register_range(config,
- "video.device.vidix_colour_key_green", 0, 0, 255,
+ "video.device.vidix_colour_key_green", 0, 0, 255,
_("video overlay colour key green component"),
_("The colour key is used to tell the graphics card where to overlay the video image. "
"Try different values, if you experience windows becoming transparent."), 20,
- (void*) vidix_ckey_callback, this);
-
+ (void*) vidix_ckey_callback, this);
+
this->vidix_grkey.ckey.blue = config->register_range(config,
- "video.device.vidix_colour_key_blue", 255, 0, 255,
+ "video.device.vidix_colour_key_blue", 255, 0, 255,
_("video overlay colour key blue component"),
_("The colour key is used to tell the graphics card where to overlay the video image. "
"Try different values, if you experience windows becoming transparent."), 20,
- (void*) vidix_ckey_callback, this);
-
+ (void*) vidix_ckey_callback, this);
+
vidix_update_colourkey(this);
query_fourccs(this);
XLockDisplay (this->display);
- if(this->colourkey) {
+ if(this->colourkey) {
this->xoverlay = x11osd_create (this->xine, this->display, this->screen,
this->drawable, X11OSD_COLORKEY);
if(this->xoverlay)
x11osd_colorkey(this->xoverlay, this->colourkey, &this->sc);
} else {
- this->xoverlay = x11osd_create (this->xine, this->display, this->screen,
+ this->xoverlay = x11osd_create (this->xine, this->display, this->screen,
this->drawable, X11OSD_SHAPED);
}
XUnlockDisplay (this->display);
@@ -1204,14 +1204,14 @@ static vo_driver_t *vidix_open_plugin (video_driver_class_t *class_gen, const vo
static void *vidix_init_class (xine_t *xine, void *visual_gen) {
vidix_class_t *this = init_class (xine, visual_gen);
-
+
if(this) {
this->driver_class.open_plugin = vidix_open_plugin;
this->driver_class.identifier = "vidix";
this->driver_class.description = N_("xine video output plugin using libvidix for x11");
this->driver_class.dispose = default_video_driver_class_dispose;
}
-
+
return this;
}
@@ -1228,9 +1228,9 @@ static vo_driver_t *vidixfb_open_plugin (video_driver_class_t *class_gen, const
char *device;
int fd;
struct fb_var_screeninfo fb_var;
-
+
this->visual_type = XINE_VISUAL_TYPE_FB;
-
+
/* Register config option for fb device */
device = config->register_filename(config, "video.device.vidixfb_device", "/dev/fb0", XINE_CONFIG_STRING_IS_DEVICE_NAME,
_("framebuffer device name"),
@@ -1239,53 +1239,53 @@ static vo_driver_t *vidixfb_open_plugin (video_driver_class_t *class_gen, const
"can be used to fill this file with arbitrary content. So you should be careful that "
"the value you enter really is a proper framebuffer device."),
XINE_CONFIG_SECURITY, NULL, NULL);
-
+
/* Open fb device for reading */
if((fd = open("/dev/fb0", O_RDONLY)) < 0) {
- xprintf(this->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->xine, XINE_VERBOSITY_DEBUG,
"video_out_vidix: unable to open frame buffer device \"%s\": %s\n", device, strerror(errno));
return NULL;
}
-
+
/* Read screen info */
if(ioctl(fd, FBIOGET_VSCREENINFO, &fb_var) != 0) {
- xprintf(this->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->xine, XINE_VERBOSITY_DEBUG,
"video_out_vidix: error in ioctl FBIOGET_VSCREENINFO: %s", strerror(errno));
close(fd);
return NULL;
}
-
+
/* Store screen bpp and dimensions */
this->depth = fb_var.bits_per_pixel;
this->fb_width = fb_var.xres;
this->fb_height = fb_var.yres;
-
+
/* Close device */
close(fd);
-
+
this->sc.frame_output_cb = vidixfb_frame_output_cb;
this->sc.user_data = this;
-
+
/* Make sure colour keying is turned off */
this->vidix_grkey.ckey.op = CKEY_FALSE;
vdlSetGrKeys(this->vidix_handler, &this->vidix_grkey);
-
+
query_fourccs(this);
-
+
return &this->vo_driver;
}
static void *vidixfb_init_class (xine_t *xine, void *visual_gen) {
vidix_class_t *this = init_class (xine, visual_gen);
-
+
if(this) {
this->driver_class.open_plugin = vidixfb_open_plugin;
this->driver_class.identifier = "vidixfb";
this->driver_class.description = N_("xine video output plugin using libvidix for linux frame buffer");
this->driver_class.dispose = default_video_driver_class_dispose;
}
-
+
return this;
}
@@ -1300,7 +1300,7 @@ static const vo_info_t vo_info_vidixfb = {
*/
const plugin_info_t xine_plugin_info[] EXPORTED = {
- /* type, API, "name", version, special_info, init_function */
+ /* type, API, "name", version, special_info, init_function */
#ifdef HAVE_X11
{ PLUGIN_VIDEO_OUT, 22, "vidix", XINE_VERSION_CODE, &vo_info_vidix, vidix_init_class },
#endif
diff --git a/src/video_out/video_out_xcbshm.c b/src/video_out/video_out_xcbshm.c
index 9adafa44b..abc1f8b73 100644
--- a/src/video_out/video_out_xcbshm.c
+++ b/src/video_out/video_out_xcbshm.c
@@ -1,13 +1,13 @@
/*
* Copyright (C) 2000-2003, 2007-2008 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
@@ -23,7 +23,7 @@
* Aaron Holtzman <aholtzma@ess.engr.uvic.ca>
*
* xine-specific code by Guenter Bartsch <bartscgr@studbox.uni-stuttgart.de>
- *
+ *
* ported to xcb by Christoph Pfister - Feb 2007
*/
@@ -77,7 +77,7 @@ typedef struct {
int flags;
vo_scale_t sc;
-
+
uint8_t *image;
int bytes_per_line;
xcb_shm_seg_t shmseg;
@@ -100,7 +100,7 @@ typedef struct {
int bpp;
int scanline_pad;
int use_shm;
-
+
int yuv2rgb_brightness;
int yuv2rgb_contrast;
int yuv2rgb_saturation;
@@ -108,7 +108,7 @@ typedef struct {
yuv2rgb_factory_t *yuv2rgb_factory;
vo_scale_t sc;
-
+
xshm_frame_t *cur_frame;
xcbosd *xoverlay;
int ovl_changed;
@@ -130,7 +130,7 @@ typedef struct {
/*
- * allocate an XImage, try XShm first but fall back to
+ * allocate an XImage, try XShm first but fall back to
* plain X11 if XShm should fail
*/
static void create_ximage(xshm_driver_t *this, xshm_frame_t *frame, int width, int height)
@@ -156,9 +156,9 @@ static void create_ximage(xshm_driver_t *this, xshm_frame_t *frame, int width, i
_("%s: => not using MIT Shared Memory extension.\n"), LOG_MODULE);
goto shm_fail1;
}
-
+
frame->image = shmat(shmid, 0, 0);
-
+
if (frame->image == ((void *) -1)) {
xprintf(this->xine, XINE_VERBOSITY_LOG,
_("%s: shared memory error (address error) when allocating image \n"), LOG_MODULE);
@@ -180,10 +180,10 @@ static void create_ximage(xshm_driver_t *this, xshm_frame_t *frame, int width, i
goto shm_fail3;
}
- /*
+ /*
* Now that the Xserver has learned about and attached to the
* shared memory segment, delete it. It's actually deleted by
- * the kernel when all users of that segment have detached from
+ * the kernel when all users of that segment have detached from
* it. Gives an automatic shared memory cleanup in case we crash.
*/
@@ -236,10 +236,10 @@ static uint32_t xshm_get_capabilities (vo_driver_t *this_gen) {
static void xshm_frame_proc_slice (vo_frame_t *vo_img, uint8_t **src) {
xshm_frame_t *frame = (xshm_frame_t *) vo_img ;
/*xshm_driver_t *this = (xshm_driver_t *) vo_img->driver; */
-
- vo_img->proc_called = 1;
-
- if( frame->vo_frame.crop_left || frame->vo_frame.crop_top ||
+
+ vo_img->proc_called = 1;
+
+ if( frame->vo_frame.crop_left || frame->vo_frame.crop_top ||
frame->vo_frame.crop_right || frame->vo_frame.crop_bottom )
{
/* we don't support crop, so don't even waste cpu cycles.
@@ -247,7 +247,7 @@ static void xshm_frame_proc_slice (vo_frame_t *vo_img, uint8_t **src) {
*/
return;
}
-
+
lprintf ("copy... (format %d)\n", frame->format);
if (frame->format == XINE_IMGFMT_YV12)
@@ -256,7 +256,7 @@ static void xshm_frame_proc_slice (vo_frame_t *vo_img, uint8_t **src) {
else
frame->yuv2rgb->yuy22rgb_fun (frame->yuv2rgb, frame->rgb_dst,
src[0]);
-
+
lprintf ("copy...done\n");
}
@@ -313,10 +313,10 @@ static vo_frame_t *xshm_alloc_frame (vo_driver_t *this_gen) {
/*
* supply required functions/fields
*/
-
+
frame->vo_frame.proc_slice = xshm_frame_proc_slice;
frame->vo_frame.proc_frame = NULL;
- frame->vo_frame.field = xshm_frame_field;
+ frame->vo_frame.field = xshm_frame_field;
frame->vo_frame.dispose = xshm_frame_dispose;
frame->vo_frame.driver = this_gen;
@@ -376,7 +376,7 @@ static void xshm_update_frame_format (vo_driver_t *this_gen,
frame->sc.video_pixel_aspect,
&gui_width, &gui_height,
&gui_pixel_aspect);
-
+
/* find out if we need to adapt this frame */
do_adapt = 0;
@@ -401,7 +401,7 @@ static void xshm_update_frame_format (vo_driver_t *this_gen,
frame->sc.user_ratio = this->sc.user_ratio;
xshm_compute_ideal_size (this, frame);
-
+
/* now we have updated video_aspect_pixel we use the callback */
/* again to obtain the correct gui_width and gui_height values. */
frame->sc.dest_size_cb (frame->sc.user_data, width, height,
@@ -409,20 +409,20 @@ static void xshm_update_frame_format (vo_driver_t *this_gen,
&gui_width, &gui_height,
&gui_pixel_aspect);
}
-
+
if ((frame->sc.gui_width != gui_width) ||
(frame->sc.gui_height != gui_height) ||
do_adapt) {
-
+
do_adapt = 1;
frame->sc.gui_width = gui_width;
frame->sc.gui_height = gui_height;
-
+
xshm_compute_rgb_size (this, frame);
-
+
lprintf ("gui_size has changed => adapt\n");
}
-
+
/* ok, now do what we have to do */
@@ -465,7 +465,7 @@ static void xshm_update_frame_format (vo_driver_t *this_gen,
lprintf ("stripe out_ht=%i, deliv_ht=%i\n",
frame->sc.output_height, frame->sc.delivered_height);
- /*
+ /*
* set up colorspace converter
*/
@@ -521,7 +521,7 @@ static void xshm_overlay_clut_yuv2rgb(xshm_driver_t *this, vo_overlay_t *overla
}
}
-static void xshm_overlay_begin (vo_driver_t *this_gen,
+static void xshm_overlay_begin (vo_driver_t *this_gen,
vo_frame_t *frame_gen, int changed) {
xshm_driver_t *this = (xshm_driver_t *) this_gen;
@@ -532,7 +532,7 @@ static void xshm_overlay_begin (vo_driver_t *this_gen,
xcbosd_clear(this->xoverlay);
pthread_mutex_unlock(&this->main_mutex);
}
-
+
this->alphablend_extra_data.offset_x = frame_gen->overlay_offset_x;
this->alphablend_extra_data.offset_y = frame_gen->overlay_offset_y;
}
@@ -549,7 +549,7 @@ static void xshm_overlay_end (vo_driver_t *this_gen, vo_frame_t *vo_img) {
this->ovl_changed = 0;
}
-static void xshm_overlay_blend (vo_driver_t *this_gen,
+static void xshm_overlay_blend (vo_driver_t *this_gen,
vo_frame_t *frame_gen, vo_overlay_t *overlay) {
xshm_driver_t *this = (xshm_driver_t *) this_gen;
xshm_frame_t *frame = (xshm_frame_t *) frame_gen;
@@ -565,7 +565,7 @@ static void xshm_overlay_blend (vo_driver_t *this_gen,
} else {
if (!overlay->rgb_clut || !overlay->hili_rgb_clut)
xshm_overlay_clut_yuv2rgb (this, overlay, frame);
-
+
switch (this->bpp) {
case 16:
_x_blend_rgb16(frame->image, overlay,
@@ -586,7 +586,7 @@ static void xshm_overlay_blend (vo_driver_t *this_gen,
&this->alphablend_extra_data);
break;
default:
- xprintf(this->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->xine, XINE_VERBOSITY_DEBUG,
"xine-lib:video_out_xcbshm:xshm_overlay_blend: Cannot blend bpp:%i\n", this->bpp);
/* it should never get here, unless a user tries to play in bpp:8 */
break;
@@ -599,11 +599,11 @@ static void clean_output_area (xshm_driver_t *this, xshm_frame_t *frame) {
int i;
xcb_rectangle_t rects[4];
int rects_count = 0;
-
+
memcpy( this->sc.border, frame->sc.border, sizeof(this->sc.border) );
-
+
pthread_mutex_lock(&this->main_mutex);
-
+
for( i = 0; i < 4; i++ ) {
if( this->sc.border[i].w && this->sc.border[i].h )
rects[rects_count].x = this->sc.border[i].x;
@@ -620,7 +620,7 @@ static void clean_output_area (xshm_driver_t *this, xshm_frame_t *frame) {
xcbosd_resize(this->xoverlay, this->sc.gui_width, this->sc.gui_height);
this->ovl_changed = 1;
}
-
+
pthread_mutex_unlock(&this->main_mutex);
}
@@ -632,15 +632,15 @@ static int xshm_redraw_needed (vo_driver_t *this_gen) {
this->sc.delivered_height = this->cur_frame->sc.delivered_height;
this->sc.delivered_width = this->cur_frame->sc.delivered_width;
this->sc.video_pixel_aspect = this->cur_frame->sc.video_pixel_aspect;
- if( _x_vo_scale_redraw_needed( &this->sc ) ) {
+ if( _x_vo_scale_redraw_needed( &this->sc ) ) {
clean_output_area (this, this->cur_frame);
ret = 1;
}
- }
+ }
else
ret = 1;
-
+
return ret;
}
@@ -653,22 +653,22 @@ static void xshm_display_frame (vo_driver_t *this_gen, vo_frame_t *frame_gen) {
frame->vo_frame.id,
frame->sc.output_width, frame->sc.output_height);
- /*
+ /*
* tell gui that we are about to display a frame,
* ask for offset
*/
-
+
this->sc.delivered_height = frame->sc.delivered_height;
this->sc.delivered_width = frame->sc.delivered_width;
this->sc.video_pixel_aspect = frame->sc.video_pixel_aspect;
- if( _x_vo_scale_redraw_needed( &this->sc ) ) {
+ if( _x_vo_scale_redraw_needed( &this->sc ) ) {
clean_output_area (this, frame);
}
-
+
if (this->cur_frame) {
- if ( (this->cur_frame->sc.output_width != frame->sc.output_width)
+ if ( (this->cur_frame->sc.output_width != frame->sc.output_width)
|| (this->cur_frame->sc.output_height != frame->sc.output_height)
|| (this->cur_frame->sc.output_xoffset != frame->sc.output_xoffset)
|| (this->cur_frame->sc.output_yoffset != frame->sc.output_yoffset) )
@@ -678,10 +678,10 @@ static void xshm_display_frame (vo_driver_t *this_gen, vo_frame_t *frame_gen) {
}
this->cur_frame = frame;
-
+
pthread_mutex_lock(&this->main_mutex);
lprintf ("display locked...\n");
-
+
if (frame->shmseg) {
lprintf ("put image (shm)\n");
@@ -732,14 +732,14 @@ static int xshm_get_property (vo_driver_t *this_gen, int property) {
case VO_PROP_OUTPUT_YOFFSET:
return this->cur_frame->sc.output_yoffset;
default:
- xprintf(this->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->xine, XINE_VERBOSITY_DEBUG,
LOG_MODULE ": tried to get unsupported property %d\n", property);
}
return 0;
}
-static int xshm_set_property (vo_driver_t *this_gen,
+static int xshm_set_property (vo_driver_t *this_gen,
int property, int value) {
xshm_driver_t *this = (xshm_driver_t *) this_gen;
@@ -748,7 +748,7 @@ static int xshm_set_property (vo_driver_t *this_gen,
if (value>=XINE_VO_ASPECT_NUM_RATIOS)
value = XINE_VO_ASPECT_AUTO;
this->sc.user_ratio = value;
- xprintf(this->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->xine, XINE_VERBOSITY_DEBUG,
LOG_MODULE ": aspect ratio changed to %s\n", _x_vo_scale_aspect_ratio_name_table[value]);
break;
@@ -780,7 +780,7 @@ static int xshm_set_property (vo_driver_t *this_gen,
break;
default:
- xprintf (this->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->xine, XINE_VERBOSITY_DEBUG,
LOG_MODULE ": tried to set unsupported property %d\n", property);
}
@@ -806,7 +806,7 @@ static void xshm_get_property_min_max (vo_driver_t *this_gen,
}
}
-static int xshm_gui_data_exchange (vo_driver_t *this_gen,
+static int xshm_gui_data_exchange (vo_driver_t *this_gen,
int data_type, void *data) {
xshm_driver_t *this = (xshm_driver_t *) this_gen;
@@ -817,17 +817,17 @@ static int xshm_gui_data_exchange (vo_driver_t *this_gen,
#endif
case XINE_GUI_SEND_EXPOSE_EVENT:
-
+
lprintf ("expose event\n");
if (this->cur_frame) {
xcb_expose_event_t *xev = (xcb_expose_event_t *) data;
-
+
if (xev && xev->count == 0) {
int i;
xcb_rectangle_t rects[4];
int rects_count = 0;
-
+
pthread_mutex_lock(&this->main_mutex);
if (this->cur_frame->shmseg)
xcb_shm_put_image(this->connection, this->window, this->gc, this->cur_frame->sc.output_width,
@@ -862,7 +862,7 @@ static int xshm_gui_data_exchange (vo_driver_t *this_gen,
}
}
break;
-
+
case XINE_GUI_SEND_DRAWABLE_CHANGED:
this->window = (xcb_window_t) data;
@@ -881,7 +881,7 @@ static int xshm_gui_data_exchange (vo_driver_t *this_gen,
if (this->cur_frame) {
x11_rectangle_t *rect = data;
int x1, y1, x2, y2;
-
+
_x_vo_scale_translate_gui2video(&this->cur_frame->sc,
rect->x, rect->y,
&x1, &y1);
@@ -904,16 +904,16 @@ static int xshm_gui_data_exchange (vo_driver_t *this_gen,
static void xshm_dispose (vo_driver_t *this_gen) {
xshm_driver_t *this = (xshm_driver_t *) this_gen;
-
+
if (this->cur_frame)
this->cur_frame->vo_frame.dispose (&this->cur_frame->vo_frame);
this->yuv2rgb_factory->dispose (this->yuv2rgb_factory);
-
+
pthread_mutex_lock(&this->main_mutex);
xcb_free_gc(this->connection, this->gc);
pthread_mutex_unlock(&this->main_mutex);
-
+
if( this->xoverlay ) {
pthread_mutex_lock(&this->main_mutex);
xcbosd_destroy(this->xoverlay);
@@ -923,7 +923,7 @@ static void xshm_dispose (vo_driver_t *this_gen) {
pthread_mutex_destroy(&this->main_mutex);
_x_alphablend_free(&this->alphablend_extra_data);
-
+
free (this);
}
@@ -1008,7 +1008,7 @@ static vo_driver_t *xshm_open_plugin(video_driver_class_t *class_gen, const void
xcb_get_geometry_reply_t *geometry_reply;
const xcb_query_extension_reply_t *query_extension_reply;
-
+
this = (xshm_driver_t *) calloc(1, sizeof(xshm_driver_t));
if (!this)
@@ -1017,7 +1017,7 @@ static vo_driver_t *xshm_open_plugin(video_driver_class_t *class_gen, const void
pthread_mutex_init(&this->main_mutex, NULL);
_x_alphablend_init(&this->alphablend_extra_data, class->xine);
-
+
this->connection = visual->connection;
this->screen = visual->screen;
this->window = visual->window;
@@ -1026,15 +1026,15 @@ static vo_driver_t *xshm_open_plugin(video_driver_class_t *class_gen, const void
this->sc.frame_output_cb = visual->frame_output_cb;
this->sc.dest_size_cb = visual->dest_size_cb;
this->sc.user_data = visual->user_data;
-
+
this->sc.user_ratio = XINE_VO_ASPECT_AUTO;
-
+
this->cur_frame = NULL;
this->gc = xcb_generate_id(this->connection);
xcb_create_gc(this->connection, this->gc, this->window, XCB_GC_FOREGROUND, &this->screen->black_pixel);
this->xoverlay = NULL;
this->ovl_changed = 0;
-
+
this->xine = class->xine;
this->vo_driver.get_capabilities = xshm_get_capabilities;
@@ -1102,7 +1102,7 @@ static vo_driver_t *xshm_open_plugin(video_driver_class_t *class_gen, const void
query_extension_reply = xcb_get_extension_data(this->connection, &xcb_shm_id);
if (query_extension_reply && query_extension_reply->present) {
this->use_shm = 1;
- }
+ }
else {
xprintf(this->xine, XINE_VERBOSITY_LOG,
_("%s: MIT shared memory extension not present on display.\n"), LOG_MODULE);
@@ -1141,7 +1141,7 @@ static vo_driver_t *xshm_open_plugin(video_driver_class_t *class_gen, const void
*/
cpu_byte_order = htonl(1) == 1 ? XCB_IMAGE_ORDER_MSB_FIRST : XCB_IMAGE_ORDER_LSB_FIRST;
swapped = cpu_byte_order != image_byte_order;
-
+
xprintf(this->xine, XINE_VERBOSITY_DEBUG,
LOG_MODULE ": video mode depth is %d (%d bpp), %s, %sswapped,\n"
LOG_MODULE ": red: %08x, green: %08x, blue: %08x\n",
@@ -1203,16 +1203,16 @@ static vo_driver_t *xshm_open_plugin(video_driver_class_t *class_gen, const void
}
if (!mode) {
- xprintf (this->xine, XINE_VERBOSITY_LOG,
+ xprintf (this->xine, XINE_VERBOSITY_LOG,
_("%s: your video mode was not recognized, sorry :-(\n"), LOG_MODULE);
return NULL;
}
-
+
this->yuv2rgb_brightness = 0;
this->yuv2rgb_contrast = 128;
this->yuv2rgb_saturation = 128;
-
- this->yuv2rgb_factory = yuv2rgb_factory_init (mode, swapped,
+
+ this->yuv2rgb_factory = yuv2rgb_factory_init (mode, swapped,
this->yuv2rgb_cmap);
this->yuv2rgb_factory->set_csc_levels (this->yuv2rgb_factory,
this->yuv2rgb_brightness,
@@ -1253,7 +1253,7 @@ static const vo_info_t vo_info_xshm = {
*/
const plugin_info_t xine_plugin_info[] EXPORTED = {
- /* type, API, "name", version, special_info, init_function */
+ /* type, API, "name", version, special_info, init_function */
{ PLUGIN_VIDEO_OUT, 22, "xshm", XINE_VERSION_CODE, &vo_info_xshm, xshm_init_class },
{ PLUGIN_NONE, 0, "", 0, NULL, NULL }
};
diff --git a/src/video_out/video_out_xcbxv.c b/src/video_out/video_out_xcbxv.c
index 1564375b7..15b14c791 100644
--- a/src/video_out/video_out_xcbxv.c
+++ b/src/video_out/video_out_xcbxv.c
@@ -191,7 +191,7 @@ static vo_frame_t *xv_alloc_frame (vo_driver_t *this_gen) {
frame = (xv_frame_t *) calloc(1, sizeof(xv_frame_t));
if (!frame)
return NULL;
-
+
pthread_mutex_init (&frame->vo_frame.mutex, NULL);
/*
@@ -380,7 +380,7 @@ static void xv_update_frame_format (vo_driver_t *this_gen,
if(format == XINE_IMGFMT_YUY2) {
frame->vo_frame.pitches[0] = frame->xv_pitches[0];
frame->vo_frame.base[0] = frame->image + frame->xv_offsets[0];
- }
+ }
else {
frame->vo_frame.pitches[0] = frame->xv_pitches[0];
frame->vo_frame.pitches[1] = frame->xv_pitches[2];
@@ -428,12 +428,12 @@ static void xv_clean_output_area (xv_driver_t *this) {
this->sc.output_width, this->sc.output_height };
xcb_poly_fill_rectangle(this->connection, this->window, this->gc, 1, &rectangle);
}
-
+
if (this->xoverlay) {
xcbosd_resize(this->xoverlay, this->sc.gui_width, this->sc.gui_height);
this->ovl_changed = 1;
}
-
+
pthread_mutex_unlock(&this->main_mutex);
}
@@ -456,7 +456,7 @@ static void xv_compute_output_size (xv_driver_t *this) {
_x_vo_scale_compute_output_size( &this->sc );
}
-static void xv_overlay_begin (vo_driver_t *this_gen,
+static void xv_overlay_begin (vo_driver_t *this_gen,
vo_frame_t *frame_gen, int changed) {
xv_driver_t *this = (xv_driver_t *) this_gen;
@@ -467,7 +467,7 @@ static void xv_overlay_begin (vo_driver_t *this_gen,
xcbosd_clear(this->xoverlay);
pthread_mutex_unlock(&this->main_mutex);
}
-
+
this->alphablend_extra_data.offset_x = frame_gen->overlay_offset_x;
this->alphablend_extra_data.offset_y = frame_gen->overlay_offset_y;
}
@@ -484,7 +484,7 @@ static void xv_overlay_end (vo_driver_t *this_gen, vo_frame_t *vo_img) {
this->ovl_changed = 0;
}
-static void xv_overlay_blend (vo_driver_t *this_gen,
+static void xv_overlay_blend (vo_driver_t *this_gen,
vo_frame_t *frame_gen, vo_overlay_t *overlay) {
xv_driver_t *this = (xv_driver_t *) this_gen;
xv_frame_t *frame = (xv_frame_t *) frame_gen;
@@ -498,11 +498,11 @@ static void xv_overlay_blend (vo_driver_t *this_gen,
}
} else {
if (frame->format == XINE_IMGFMT_YV12)
- _x_blend_yuv(frame->vo_frame.base, overlay,
+ _x_blend_yuv(frame->vo_frame.base, overlay,
frame->width, frame->height, frame->vo_frame.pitches,
&this->alphablend_extra_data);
else
- _x_blend_yuy2(frame->vo_frame.base[0], overlay,
+ _x_blend_yuy2(frame->vo_frame.base[0], overlay,
frame->width, frame->height, frame->vo_frame.pitches[0],
&this->alphablend_extra_data);
}
@@ -546,7 +546,7 @@ static int xv_redraw_needed (vo_driver_t *this_gen) {
this->sc.delivered_height = this->cur_frame->height;
this->sc.delivered_width = this->cur_frame->width;
this->sc.delivered_ratio = this->cur_frame->ratio;
-
+
this->sc.crop_left = this->cur_frame->vo_frame.crop_left;
this->sc.crop_right = this->cur_frame->vo_frame.crop_right;
this->sc.crop_top = this->cur_frame->vo_frame.crop_top;
@@ -575,7 +575,7 @@ static void xv_display_frame (vo_driver_t *this_gen, vo_frame_t *frame_gen) {
/*
printf (LOG_MODULE ": xv_display_frame...\n");
*/
-
+
/*
* queue frames (deinterlacing)
* free old frames
@@ -665,7 +665,7 @@ static int xv_get_property (vo_driver_t *this_gen, int property) {
static void xv_property_callback (void *property_gen, xine_cfg_entry_t *entry) {
xv_property_t *property = (xv_property_t *) property_gen;
xv_driver_t *this = property->this;
-
+
pthread_mutex_lock(&this->main_mutex);
xcb_xv_set_port_attribute(this->connection, this->xv_port,
property->atom, entry->num_value);
@@ -699,7 +699,7 @@ static int xv_set_property (vo_driver_t *this_gen,
this->props[property].entry->num_value = this->props[property].value;
return this->props[property].value;
- }
+ }
else {
switch (property) {
case VO_PROP_ASPECT_RATIO:
@@ -707,7 +707,7 @@ static int xv_set_property (vo_driver_t *this_gen,
value = XINE_VO_ASPECT_AUTO;
this->props[property].value = value;
- xprintf(this->xine, XINE_VERBOSITY_LOG,
+ xprintf(this->xine, XINE_VERBOSITY_LOG,
LOG_MODULE ": VO_PROP_ASPECT_RATIO(%d)\n", this->props[property].value);
this->sc.user_ratio = value;
@@ -721,7 +721,7 @@ static int xv_set_property (vo_driver_t *this_gen,
this->props[property].value = value;
xprintf(this->xine, XINE_VERBOSITY_LOG,
LOG_MODULE ": VO_PROP_ZOOM_X = %d\n", this->props[property].value);
-
+
this->sc.zoom_factor_x = (double)value / (double)XINE_VO_ZOOM_STEP;
xv_compute_ideal_size (this);
@@ -813,7 +813,7 @@ static int xv_gui_data_exchange (vo_driver_t *this_gen,
if(this->xoverlay)
xcbosd_expose(this->xoverlay);
-
+
xcb_flush(this->connection);
pthread_mutex_unlock(&this->main_mutex);
}
@@ -862,7 +862,7 @@ static void xv_store_port_attribute(xv_driver_t *this, char *name) {
xcb_xv_get_port_attribute_cookie_t get_attribute_cookie;
xcb_xv_get_port_attribute_reply_t *get_attribute_reply;
-
+
pthread_mutex_lock(&this->main_mutex);
atom_cookie = xcb_intern_atom(this->connection, 0, strlen(name), name);
atom_reply = xcb_intern_atom_reply(this->connection, atom_cookie, NULL);
@@ -870,7 +870,7 @@ static void xv_store_port_attribute(xv_driver_t *this, char *name) {
get_attribute_reply = xcb_xv_get_port_attribute_reply(this->connection, get_attribute_cookie, NULL);
free(atom_reply);
pthread_mutex_unlock(&this->main_mutex);
-
+
if (get_attribute_reply != NULL) {
xv_portattribute_t *attr;
@@ -888,26 +888,26 @@ static void xv_restore_port_attributes(xv_driver_t *this) {
xcb_intern_atom_cookie_t atom_cookie;
xcb_intern_atom_reply_t *atom_reply;
-
+
while ((ite = xine_list_front(this->port_attributes)) != NULL) {
xv_portattribute_t *attr = xine_list_get_value(this->port_attributes, ite);
xine_list_remove (this->port_attributes, ite);
-
+
pthread_mutex_lock(&this->main_mutex);
atom_cookie = xcb_intern_atom(this->connection, 0, strlen(attr->name), attr->name);
atom_reply = xcb_intern_atom_reply(this->connection, atom_cookie, NULL);
xcb_xv_set_port_attribute(this->connection, this->xv_port, atom_reply->atom, attr->value);
free(atom_reply);
pthread_mutex_unlock(&this->main_mutex);
-
+
free( attr->name );
free( attr );
}
-
+
pthread_mutex_lock(&this->main_mutex);
xcb_flush(this->connection);
pthread_mutex_unlock(&this->main_mutex);
-
+
xine_list_delete( this->port_attributes );
}
@@ -939,7 +939,7 @@ static void xv_dispose (vo_driver_t *this_gen) {
pthread_mutex_destroy(&this->main_mutex);
_x_alphablend_free(&this->alphablend_extra_data);
-
+
free (this);
}
@@ -954,7 +954,7 @@ static int xv_check_yv12(xcb_connection_t *connection, xcb_xv_port_t port) {
if (!list_formats_reply)
return 1; /* no formats listed; probably due to an invalid port no. */
format_it = xcb_xv_list_image_formats_format_iterator(list_formats_reply);
-
+
for (; format_it.rem; xcb_xv_image_format_info_next(&format_it))
if ((format_it.data->id == XINE_IMGFMT_YV12) &&
(! (strcmp ((char *) format_it.data->guid, "YV12")))) {
@@ -981,7 +981,7 @@ static void xv_check_capability (xv_driver_t *this,
xcb_intern_atom_cookie_t atom_cookie;
xcb_intern_atom_reply_t *atom_reply;
-
+
/*
* some Xv drivers (Gatos ATI) report some ~0 as max values, this is confusing.
*/
@@ -1011,7 +1011,7 @@ static void xv_check_capability (xv_driver_t *this,
/* might be overridden using config entry */
if(strcmp(str_prop, "XV_AUTOPAINT_COLORKEY") == 0)
int_default = 0;
-
+
if (config_name) {
/* is this a boolean property ? */
if ((attr->min == 0) && (attr->max == 1)) {
@@ -1028,12 +1028,12 @@ static void xv_check_capability (xv_driver_t *this,
entry = this->config->lookup_entry (this->config, config_name);
- if((entry->num_value < this->props[property].min) ||
+ if((entry->num_value < this->props[property].min) ||
(entry->num_value > this->props[property].max)) {
- this->config->update_num(this->config, config_name,
+ this->config->update_num(this->config, config_name,
((this->props[property].min + this->props[property].max) >> 1));
-
+
entry = this->config->lookup_entry (this->config, config_name);
}
@@ -1175,7 +1175,7 @@ static vo_driver_t *open_plugin(video_driver_class_t *class_gen, const void *vis
pthread_mutex_init(&this->main_mutex, NULL);
_x_alphablend_init(&this->alphablend_extra_data, class->xine);
-
+
this->connection = visual->connection;
this->screen = visual->screen;
this->window = visual->window;
@@ -1241,16 +1241,16 @@ static vo_driver_t *open_plugin(video_driver_class_t *class_gen, const void *vis
_("%s: Xv extension is present but I couldn't find a usable yuv12 port.\n"
"\tLooks like your graphics hardware driver doesn't support Xv?!\n"),
LOG_MODULE);
-
+
/* XvFreeAdaptorInfo (adaptor_info); this crashed on me (gb)*/
return NULL;
- }
+ }
else
xprintf(class->xine, XINE_VERBOSITY_LOG,
_("%s: using Xv port %d from adaptor %s for hardware "
"colour space conversion and scaling.\n"), LOG_MODULE, xv_port,
xcb_xv_adaptor_info_name(adaptor_it.data));
-
+
this->xv_port = xv_port;
_x_vo_scale_init (&this->sc, 1, 0, config );
@@ -1366,10 +1366,10 @@ static vo_driver_t *open_plugin(video_driver_class_t *class_gen, const void *vis
VIDEO_DEVICE_XV_DOUBLE_BUFFER_HELP,
20, xv_update_XV_DOUBLE_BUFFER, this);
config->update_num(config,"video.device.xv_double_buffer",xv_double_buffer);
- } else if(!strcmp(name, sync_atoms[this->sync_is_vsync = 0]) ||
- !strcmp(name, sync_atoms[this->sync_is_vsync = 1])) {
+ } else if(!strcmp(name, sync_atoms[this->sync_is_vsync = 0]) ||
+ !strcmp(name, sync_atoms[this->sync_is_vsync = 1])) {
int xv_sync_to_vblank;
- xv_sync_to_vblank =
+ xv_sync_to_vblank =
config->register_bool (config, "video.device.xv_sync_to_vblank", 1,
_("enable vblank sync"),
_("This option will synchronize the update of the video image to the "
@@ -1402,10 +1402,10 @@ static vo_driver_t *open_plugin(video_driver_class_t *class_gen, const void *vis
list_formats_reply = xcb_xv_list_image_formats_reply(this->connection, list_formats_cookie, NULL);
format_it = xcb_xv_list_image_formats_format_iterator(list_formats_reply);
-
+
this->xv_format_yv12 = 0;
this->xv_format_yuy2 = 0;
-
+
for (; format_it.rem; xcb_xv_image_format_info_next(&format_it)) {
lprintf ("Xv image format: 0x%x (%4.4s) %s\n",
format_it.data->id, (char*)&format_it.data->id,
@@ -1422,7 +1422,7 @@ static vo_driver_t *open_plugin(video_driver_class_t *class_gen, const void *vis
case XINE_IMGFMT_YUY2:
this->xv_format_yuy2 = format_it.data->id;
this->capabilities |= VO_CAP_YUY2;
- xprintf(this->xine, XINE_VERBOSITY_LOG,
+ xprintf(this->xine, XINE_VERBOSITY_LOG,
_("%s: this adaptor supports the %s format.\n"), LOG_MODULE, "YUY2");
break;
default:
@@ -1432,7 +1432,7 @@ static vo_driver_t *open_plugin(video_driver_class_t *class_gen, const void *vis
free(list_formats_reply);
- this->use_pitch_alignment =
+ this->use_pitch_alignment =
config->register_bool (config, "video.device.xv_pitch_alignment", 0,
VIDEO_DEVICE_XV_PITCH_ALIGNMENT_HELP,
10, xv_update_xv_pitch_alignment, this);
diff --git a/src/video_out/video_out_xshm.c b/src/video_out/video_out_xshm.c
index efb4a55d2..675575e80 100644
--- a/src/video_out/video_out_xshm.c
+++ b/src/video_out/video_out_xshm.c
@@ -1,13 +1,13 @@
/*
* Copyright (C) 2000-2003, 2008 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
@@ -82,7 +82,7 @@ typedef struct {
int flags;
vo_scale_t sc;
-
+
XImage *image;
XShmSegmentInfo shminfo;
@@ -104,7 +104,7 @@ typedef struct {
int depth, bpp, bytes_per_pixel, image_byte_order;
int use_shm;
XColor black;
-
+
int yuv2rgb_brightness;
int yuv2rgb_contrast;
int yuv2rgb_saturation;
@@ -112,7 +112,7 @@ typedef struct {
yuv2rgb_factory_t *yuv2rgb_factory;
vo_scale_t sc;
-
+
xshm_frame_t *cur_frame;
x11osd *xoverlay;
int ovl_changed;
@@ -168,11 +168,11 @@ static void x11_DeInstallXErrorHandler (xshm_driver_t *this) {
}
/*
- * allocate an XImage, try XShm first but fall back to
+ * allocate an XImage, try XShm first but fall back to
* plain X11 if XShm should fail
*/
/* called xlocked */
-static XImage *create_ximage (xshm_driver_t *this, XShmSegmentInfo *shminfo,
+static XImage *create_ximage (xshm_driver_t *this, XShmSegmentInfo *shminfo,
int width, int height) {
XImage *myimage = NULL;
@@ -181,16 +181,16 @@ static XImage *create_ximage (xshm_driver_t *this, XShmSegmentInfo *shminfo,
/*
* try shm
*/
-
+
gX11Fail = 0;
x11_InstallXErrorHandler (this);
- myimage = XShmCreateImage(this->display,
+ myimage = XShmCreateImage(this->display,
this->visual,
this->depth,
ZPixmap, NULL,
shminfo,
- width,
+ width,
height);
if (myimage == NULL ) {
@@ -201,15 +201,15 @@ static XImage *create_ximage (xshm_driver_t *this, XShmSegmentInfo *shminfo,
this->use_shm = 0;
goto finishShmTesting;
}
-
+
this->bpp = myimage->bits_per_pixel;
this->bytes_per_pixel = this->bpp / 8;
this->image_byte_order = myimage->byte_order;
-
+
shminfo->shmid=shmget(IPC_PRIVATE,
- myimage->bytes_per_line * myimage->height,
+ myimage->bytes_per_line * myimage->height,
IPC_CREAT | 0777);
-
+
if (shminfo->shmid < 0 ) {
xprintf(this->xine, XINE_VERBOSITY_LOG,
_("%s: %s: allocating image\n"), LOG_MODULE, strerror(errno));
@@ -218,9 +218,9 @@ static XImage *create_ximage (xshm_driver_t *this, XShmSegmentInfo *shminfo,
this->use_shm = 0;
goto finishShmTesting;
}
-
+
shminfo->shmaddr = (char *) shmat(shminfo->shmid, 0, 0);
-
+
if (shminfo->shmaddr == ((char *) -1)) {
xprintf(this->xine, XINE_VERBOSITY_LOG,
_("%s: shared memory error (address error) when allocating image \n"), LOG_MODULE);
@@ -231,12 +231,12 @@ static XImage *create_ximage (xshm_driver_t *this, XShmSegmentInfo *shminfo,
this->use_shm = 0;
goto finishShmTesting;
}
-
+
shminfo->readOnly = False;
myimage->data = shminfo->shmaddr;
-
+
XShmAttach(this->display, shminfo);
-
+
XSync(this->display, False);
if (gX11Fail) {
@@ -251,10 +251,10 @@ static XImage *create_ximage (xshm_driver_t *this, XShmSegmentInfo *shminfo,
goto finishShmTesting;
}
- /*
+ /*
* Now that the Xserver has learned about and attached to the
* shared memory segment, delete it. It's actually deleted by
- * the kernel when all users of that segment have detached from
+ * the kernel when all users of that segment have detached from
* it. Gives an automatic shared memory cleanup in case we crash.
*/
shmctl (shminfo->shmid, IPC_RMID, 0);
@@ -276,7 +276,7 @@ static XImage *create_ximage (xshm_driver_t *this, XShmSegmentInfo *shminfo,
this->depth,
ZPixmap, 0,
NULL,
- width,
+ width,
height,
8, 0);
@@ -292,8 +292,8 @@ static XImage *create_ximage (xshm_driver_t *this, XShmSegmentInfo *shminfo,
}
/* called xlocked */
-static void dispose_ximage (xshm_driver_t *this,
- XShmSegmentInfo *shminfo,
+static void dispose_ximage (xshm_driver_t *this,
+ XShmSegmentInfo *shminfo,
XImage *myimage) {
if (this->use_shm) {
@@ -306,7 +306,7 @@ static void dispose_ximage (xshm_driver_t *this,
shminfo->shmid = -1;
}
- }
+ }
else
XDestroyImage (myimage);
}
@@ -329,10 +329,10 @@ static uint32_t xshm_get_capabilities (vo_driver_t *this_gen) {
static void xshm_frame_proc_slice (vo_frame_t *vo_img, uint8_t **src) {
xshm_frame_t *frame = (xshm_frame_t *) vo_img ;
/*xshm_driver_t *this = (xshm_driver_t *) vo_img->driver; */
-
- vo_img->proc_called = 1;
-
- if( frame->vo_frame.crop_left || frame->vo_frame.crop_top ||
+
+ vo_img->proc_called = 1;
+
+ if( frame->vo_frame.crop_left || frame->vo_frame.crop_top ||
frame->vo_frame.crop_right || frame->vo_frame.crop_bottom )
{
/* we don't support crop, so don't even waste cpu cycles.
@@ -340,7 +340,7 @@ static void xshm_frame_proc_slice (vo_frame_t *vo_img, uint8_t **src) {
*/
return;
}
-
+
lprintf ("copy... (format %d)\n", frame->format);
if (frame->format == XINE_IMGFMT_YV12)
@@ -349,7 +349,7 @@ static void xshm_frame_proc_slice (vo_frame_t *vo_img, uint8_t **src) {
else
frame->yuv2rgb->yuy22rgb_fun (frame->yuv2rgb, frame->rgb_dst,
src[0]);
-
+
lprintf ("copy...done\n");
}
@@ -406,10 +406,10 @@ static vo_frame_t *xshm_alloc_frame (vo_driver_t *this_gen) {
/*
* supply required functions/fields
*/
-
+
frame->vo_frame.proc_slice = xshm_frame_proc_slice;
frame->vo_frame.proc_frame = NULL;
- frame->vo_frame.field = xshm_frame_field;
+ frame->vo_frame.field = xshm_frame_field;
frame->vo_frame.dispose = xshm_frame_dispose;
frame->vo_frame.driver = this_gen;
@@ -469,7 +469,7 @@ static void xshm_update_frame_format (vo_driver_t *this_gen,
frame->sc.video_pixel_aspect,
&gui_width, &gui_height,
&gui_pixel_aspect);
-
+
/* find out if we need to adapt this frame */
do_adapt = 0;
@@ -494,7 +494,7 @@ static void xshm_update_frame_format (vo_driver_t *this_gen,
frame->sc.user_ratio = this->sc.user_ratio;
xshm_compute_ideal_size (this, frame);
-
+
/* now we have updated video_aspect_pixel we use the callback */
/* again to obtain the correct gui_width and gui_height values. */
frame->sc.dest_size_cb (frame->sc.user_data, width, height,
@@ -502,20 +502,20 @@ static void xshm_update_frame_format (vo_driver_t *this_gen,
&gui_width, &gui_height,
&gui_pixel_aspect);
}
-
+
if ((frame->sc.gui_width != gui_width) ||
(frame->sc.gui_height != gui_height) ||
do_adapt) {
-
+
do_adapt = 1;
frame->sc.gui_width = gui_width;
frame->sc.gui_height = gui_height;
-
+
xshm_compute_rgb_size (this, frame);
-
+
lprintf ("gui_size has changed => adapt\n");
}
-
+
/* ok, now do what we have to do */
@@ -561,7 +561,7 @@ static void xshm_update_frame_format (vo_driver_t *this_gen,
lprintf ("stripe out_ht=%i, deliv_ht=%i\n",
frame->sc.output_height, frame->sc.delivered_height);
- /*
+ /*
* set up colorspace converter
*/
@@ -617,7 +617,7 @@ static void xshm_overlay_clut_yuv2rgb(xshm_driver_t *this, vo_overlay_t *overla
}
}
-static void xshm_overlay_begin (vo_driver_t *this_gen,
+static void xshm_overlay_begin (vo_driver_t *this_gen,
vo_frame_t *frame_gen, int changed) {
xshm_driver_t *this = (xshm_driver_t *) this_gen;
@@ -625,10 +625,10 @@ static void xshm_overlay_begin (vo_driver_t *this_gen,
if( this->ovl_changed && this->xoverlay ) {
LOCK_DISPLAY(this);
- x11osd_clear(this->xoverlay);
+ x11osd_clear(this->xoverlay);
UNLOCK_DISPLAY(this);
}
-
+
this->alphablend_extra_data.offset_x = frame_gen->overlay_offset_x;
this->alphablend_extra_data.offset_y = frame_gen->overlay_offset_y;
}
@@ -645,7 +645,7 @@ static void xshm_overlay_end (vo_driver_t *this_gen, vo_frame_t *vo_img) {
this->ovl_changed = 0;
}
-static void xshm_overlay_blend (vo_driver_t *this_gen,
+static void xshm_overlay_blend (vo_driver_t *this_gen,
vo_frame_t *frame_gen, vo_overlay_t *overlay) {
xshm_driver_t *this = (xshm_driver_t *) this_gen;
xshm_frame_t *frame = (xshm_frame_t *) frame_gen;
@@ -655,13 +655,13 @@ static void xshm_overlay_blend (vo_driver_t *this_gen,
if( overlay->unscaled ) {
if( this->ovl_changed && this->xoverlay ) {
LOCK_DISPLAY(this);
- x11osd_blend(this->xoverlay, overlay);
+ x11osd_blend(this->xoverlay, overlay);
UNLOCK_DISPLAY(this);
}
} else {
if (!overlay->rgb_clut || !overlay->hili_rgb_clut)
xshm_overlay_clut_yuv2rgb (this, overlay, frame);
-
+
switch (this->bpp) {
case 16:
_x_blend_rgb16 ((uint8_t *)frame->image->data, overlay,
@@ -682,7 +682,7 @@ static void xshm_overlay_blend (vo_driver_t *this_gen,
&this->alphablend_extra_data);
break;
default:
- xprintf(this->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->xine, XINE_VERBOSITY_DEBUG,
"xine-lib:video_out_xshm:xshm_overlay_blend: Cannot blend bpp:%i\n", this->bpp);
/* it should never get here, unless a user tries to play in bpp:8 */
break;
@@ -693,12 +693,12 @@ static void xshm_overlay_blend (vo_driver_t *this_gen,
static void clean_output_area (xshm_driver_t *this, xshm_frame_t *frame) {
int i;
-
+
memcpy( this->sc.border, frame->sc.border, sizeof(this->sc.border) );
-
+
LOCK_DISPLAY(this);
XSetForeground (this->display, this->gc, this->black.pixel);
-
+
for( i = 0; i < 4; i++ ) {
if( this->sc.border[i].w && this->sc.border[i].h )
XFillRectangle(this->display, this->drawable, this->gc,
@@ -709,7 +709,7 @@ static void clean_output_area (xshm_driver_t *this, xshm_frame_t *frame) {
x11osd_resize (this->xoverlay, this->sc.gui_width, this->sc.gui_height);
this->ovl_changed = 1;
}
-
+
UNLOCK_DISPLAY(this);
}
@@ -721,15 +721,15 @@ static int xshm_redraw_needed (vo_driver_t *this_gen) {
this->sc.delivered_height = this->cur_frame->sc.delivered_height;
this->sc.delivered_width = this->cur_frame->sc.delivered_width;
this->sc.video_pixel_aspect = this->cur_frame->sc.video_pixel_aspect;
- if( _x_vo_scale_redraw_needed( &this->sc ) ) {
+ if( _x_vo_scale_redraw_needed( &this->sc ) ) {
clean_output_area (this, this->cur_frame);
ret = 1;
}
- }
+ }
else
ret = 1;
-
+
return ret;
}
@@ -742,22 +742,22 @@ static void xshm_display_frame (vo_driver_t *this_gen, vo_frame_t *frame_gen) {
frame->vo_frame.id,
frame->sc.output_width, frame->sc.output_height);
- /*
+ /*
* tell gui that we are about to display a frame,
* ask for offset
*/
-
+
this->sc.delivered_height = frame->sc.delivered_height;
this->sc.delivered_width = frame->sc.delivered_width;
this->sc.video_pixel_aspect = frame->sc.video_pixel_aspect;
- if( _x_vo_scale_redraw_needed( &this->sc ) ) {
+ if( _x_vo_scale_redraw_needed( &this->sc ) ) {
clean_output_area (this, frame);
}
-
+
if (this->cur_frame) {
- if ( (this->cur_frame->sc.output_width != frame->sc.output_width)
+ if ( (this->cur_frame->sc.output_width != frame->sc.output_width)
|| (this->cur_frame->sc.output_height != frame->sc.output_height)
|| (this->cur_frame->sc.output_xoffset != frame->sc.output_xoffset)
|| (this->cur_frame->sc.output_yoffset != frame->sc.output_yoffset) )
@@ -767,10 +767,10 @@ static void xshm_display_frame (vo_driver_t *this_gen, vo_frame_t *frame_gen) {
}
this->cur_frame = frame;
-
+
LOCK_DISPLAY(this);
lprintf ("display locked...\n");
-
+
if (this->use_shm) {
lprintf ("put image (shm)\n");
@@ -821,14 +821,14 @@ static int xshm_get_property (vo_driver_t *this_gen, int property) {
case VO_PROP_OUTPUT_YOFFSET:
return this->cur_frame->sc.output_yoffset;
default:
- xprintf(this->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->xine, XINE_VERBOSITY_DEBUG,
LOG_MODULE ": tried to get unsupported property %d\n", property);
}
return 0;
}
-static int xshm_set_property (vo_driver_t *this_gen,
+static int xshm_set_property (vo_driver_t *this_gen,
int property, int value) {
xshm_driver_t *this = (xshm_driver_t *) this_gen;
@@ -837,7 +837,7 @@ static int xshm_set_property (vo_driver_t *this_gen,
if (value>=XINE_VO_ASPECT_NUM_RATIOS)
value = XINE_VO_ASPECT_AUTO;
this->sc.user_ratio = value;
- xprintf(this->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(this->xine, XINE_VERBOSITY_DEBUG,
LOG_MODULE ": aspect ratio changed to %s\n", _x_vo_scale_aspect_ratio_name_table[value]);
break;
@@ -869,7 +869,7 @@ static int xshm_set_property (vo_driver_t *this_gen,
break;
default:
- xprintf (this->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->xine, XINE_VERBOSITY_DEBUG,
LOG_MODULE ": tried to set unsupported property %d\n", property);
}
@@ -895,7 +895,7 @@ static void xshm_get_property_min_max (vo_driver_t *this_gen,
}
}
-static int xshm_gui_data_exchange (vo_driver_t *this_gen,
+static int xshm_gui_data_exchange (vo_driver_t *this_gen,
int data_type, void *data) {
xshm_driver_t *this = (xshm_driver_t *) this_gen;
@@ -906,15 +906,15 @@ static int xshm_gui_data_exchange (vo_driver_t *this_gen,
#endif
case XINE_GUI_SEND_EXPOSE_EVENT:
-
+
lprintf ("expose event\n");
if (this->cur_frame) {
XExposeEvent * xev = (XExposeEvent *) data;
-
+
if (xev && xev->count == 0) {
int i;
-
+
LOCK_DISPLAY(this);
if (this->use_shm) {
XShmPutImage(this->display,
@@ -924,7 +924,7 @@ static int xshm_gui_data_exchange (vo_driver_t *this_gen,
False);
}
else {
- XPutImage(this->display,
+ XPutImage(this->display,
this->drawable, this->gc, this->cur_frame->image,
0, 0, this->cur_frame->sc.output_xoffset, this->cur_frame->sc.output_yoffset,
this->cur_frame->sc.output_width, this->cur_frame->sc.output_height);
@@ -947,7 +947,7 @@ static int xshm_gui_data_exchange (vo_driver_t *this_gen,
}
}
break;
-
+
case XINE_GUI_SEND_DRAWABLE_CHANGED:
this->drawable = (Drawable) data;
@@ -965,7 +965,7 @@ static int xshm_gui_data_exchange (vo_driver_t *this_gen,
if (this->cur_frame) {
x11_rectangle_t *rect = data;
int x1, y1, x2, y2;
-
+
_x_vo_scale_translate_gui2video(&this->cur_frame->sc,
rect->x, rect->y,
&x1, &y1);
@@ -988,16 +988,16 @@ static int xshm_gui_data_exchange (vo_driver_t *this_gen,
static void xshm_dispose (vo_driver_t *this_gen) {
xshm_driver_t *this = (xshm_driver_t *) this_gen;
-
+
if (this->cur_frame)
this->cur_frame->vo_frame.dispose (&this->cur_frame->vo_frame);
this->yuv2rgb_factory->dispose (this->yuv2rgb_factory);
-
+
LOCK_DISPLAY(this);
XFreeGC(this->display, this->gc);
UNLOCK_DISPLAY(this);
-
+
if( this->xoverlay ) {
LOCK_DISPLAY(this);
x11osd_destroy (this->xoverlay);
@@ -1005,7 +1005,7 @@ static void xshm_dispose (vo_driver_t *this_gen) {
}
_x_alphablend_free(&this->alphablend_extra_data);
-
+
free (this);
}
@@ -1017,7 +1017,7 @@ static int ImlibPaletteLUTGet(xshm_driver_t *this) {
int format_ret;
long length;
Atom to_get;
-
+
retval = NULL;
length = 0x7fffffff;
to_get = XInternAtom(this->display, "_IMLIB_COLORMAP", False);
@@ -1029,7 +1029,7 @@ static int ImlibPaletteLUTGet(xshm_driver_t *this) {
if (format_ret == 8) {
unsigned int i;
unsigned long j;
-
+
j = 1 + retval[0]*4;
this->yuv2rgb_cmap = malloc(sizeof(uint8_t) * 32 * 32 * 32);
for (i = 0; i < 32 * 32 * 32 && j < num_ret; i++)
@@ -1077,14 +1077,14 @@ static vo_driver_t *xshm_open_plugin_2 (video_driver_class_t *class_gen, const v
int swapped;
int cpu_byte_order;
XColor dummy;
-
+
this = (xshm_driver_t *) calloc(1, sizeof(xshm_driver_t));
if (!this)
return NULL;
_x_alphablend_init(&this->alphablend_extra_data, class->xine);
-
+
this->display = visual->display;
this->screen = visual->screen;
@@ -1097,9 +1097,9 @@ static vo_driver_t *xshm_open_plugin_2 (video_driver_class_t *class_gen, const v
this->sc.frame_output_cb = visual->frame_output_cb;
this->sc.dest_size_cb = visual->dest_size_cb;
this->sc.user_data = visual->user_data;
-
+
this->sc.user_ratio = XINE_VO_ASPECT_AUTO;
-
+
this->drawable = visual->d;
this->cur_frame = NULL;
LOCK_DISPLAY(this);
@@ -1107,7 +1107,7 @@ static vo_driver_t *xshm_open_plugin_2 (video_driver_class_t *class_gen, const v
UNLOCK_DISPLAY(this);
this->xoverlay = NULL;
this->ovl_changed = 0;
-
+
this->x11_old_error_handler = NULL;
this->xine = class->xine;
@@ -1124,7 +1124,7 @@ static vo_driver_t *xshm_open_plugin_2 (video_driver_class_t *class_gen, const v
this->vo_driver.gui_data_exchange = xshm_gui_data_exchange;
this->vo_driver.dispose = xshm_dispose;
this->vo_driver.redraw_needed = xshm_redraw_needed;
-
+
LOCK_DISPLAY(this);
XAllocNamedColor (this->display,
DefaultColormap (this->display, this->screen),
@@ -1146,7 +1146,7 @@ static vo_driver_t *xshm_open_plugin_2 (video_driver_class_t *class_gen, const v
UNLOCK_DISPLAY(this);
this->visual = attribs.visual;
this->depth = attribs.depth;
-
+
if (this->depth>16)
xprintf(this->xine, XINE_VERBOSITY_LOG,
_("\n\nWARNING: current display depth is %d. For better performance\n"
@@ -1159,7 +1159,7 @@ static vo_driver_t *xshm_open_plugin_2 (video_driver_class_t *class_gen, const v
LOCK_DISPLAY(this);
if (XShmQueryExtension(this->display)) {
this->use_shm = 1;
- }
+ }
else {
xprintf(this->xine, XINE_VERBOSITY_LOG,
_("%s: MIT shared memory extension not present on display.\n"), LOG_MODULE);
@@ -1181,7 +1181,7 @@ static vo_driver_t *xshm_open_plugin_2 (video_driver_class_t *class_gen, const v
*/
cpu_byte_order = htonl(1) == 1 ? MSBFirst : LSBFirst;
swapped = cpu_byte_order != this->image_byte_order;
-
+
xprintf(this->xine, XINE_VERBOSITY_DEBUG,
LOG_MODULE ": video mode depth is %d (%d bpp), %s, %sswapped,\n"
LOG_MODULE ": red: %08lx, green: %08lx, blue: %08lx\n",
@@ -1245,16 +1245,16 @@ static vo_driver_t *xshm_open_plugin_2 (video_driver_class_t *class_gen, const v
}
if (!mode) {
- xprintf (this->xine, XINE_VERBOSITY_LOG,
+ xprintf (this->xine, XINE_VERBOSITY_LOG,
_("%s: your video mode was not recognized, sorry :-(\n"), LOG_MODULE);
return NULL;
}
-
+
this->yuv2rgb_brightness = 0;
this->yuv2rgb_contrast = 128;
this->yuv2rgb_saturation = 128;
-
- this->yuv2rgb_factory = yuv2rgb_factory_init (mode, swapped,
+
+ this->yuv2rgb_factory = yuv2rgb_factory_init (mode, swapped,
this->yuv2rgb_cmap);
this->yuv2rgb_factory->set_csc_levels (this->yuv2rgb_factory,
this->yuv2rgb_brightness,
@@ -1282,7 +1282,7 @@ static vo_driver_t *xshm_open_plugin_old (video_driver_class_t *class_gen, const
visual.frame_output_cb = old_visual->frame_output_cb;
visual.lock_display = NULL;
visual.unlock_display = NULL;
-
+
return xshm_open_plugin_2(class_gen, (void *)&visual);
}
@@ -1327,7 +1327,7 @@ static const vo_info_t vo_info_xshm_2 = {
*/
const plugin_info_t xine_plugin_info[] EXPORTED = {
- /* type, API, "name", version, special_info, init_function */
+ /* type, API, "name", version, special_info, init_function */
{ PLUGIN_VIDEO_OUT, 22, "xshm", XINE_VERSION_CODE, &vo_info_xshm, xshm_init_class },
{ PLUGIN_VIDEO_OUT, 22, "xshm", XINE_VERSION_CODE, &vo_info_xshm_2, xshm_init_class_2 },
{ PLUGIN_NONE, 0, "", 0, NULL, NULL }
diff --git a/src/video_out/video_out_xv.c b/src/video_out/video_out_xv.c
index 0856cd308..bca1b97f7 100644
--- a/src/video_out/video_out_xv.c
+++ b/src/video_out/video_out_xv.c
@@ -213,7 +213,7 @@ static vo_frame_t *xv_alloc_frame (vo_driver_t *this_gen) {
frame = (xv_frame_t *) calloc(1, sizeof(xv_frame_t));
if (!frame)
return NULL;
-
+
pthread_mutex_init (&frame->vo_frame.mutex, NULL);
/*
@@ -230,7 +230,7 @@ static vo_frame_t *xv_alloc_frame (vo_driver_t *this_gen) {
static int HandleXError (Display *display, XErrorEvent *xevent) {
char str [1024];
-
+
XGetErrorText (display, xevent->error_code, str, 1024);
printf ("received X error event: %s\n", str);
gX11Fail = 1;
@@ -305,7 +305,7 @@ static XvImage *create_ximage (xv_driver_t *this, XShmSegmentInfo *shminfo,
lprintf( "XvImage height %d\n", image->height );
lprintf( "XvImage data_size %d\n", image->data_size );
lprintf( "XvImage num_planes %d\n", image->num_planes );
-
+
for( q=0; q < image->num_planes; q++)
{
lprintf( "XvImage pitches[%d] %d\n", q, image->pitches[q] );
@@ -424,10 +424,10 @@ static void dispose_ximage (xv_driver_t *this,
shminfo->shmid = -1;
}
- }
+ }
else {
free (myimage->data);
-
+
XFree (myimage);
}
}
@@ -465,7 +465,7 @@ static void xv_update_frame_format (vo_driver_t *this_gen,
if(format == XINE_IMGFMT_YUY2) {
frame->vo_frame.pitches[0] = frame->image->pitches[0];
frame->vo_frame.base[0] = frame->image->data + frame->image->offsets[0];
- }
+ }
else {
frame->vo_frame.pitches[0] = frame->image->pitches[0];
frame->vo_frame.pitches[1] = frame->image->pitches[2];
@@ -506,12 +506,12 @@ static void xv_clean_output_area (xv_driver_t *this) {
this->sc.output_xoffset, this->sc.output_yoffset,
this->sc.output_width, this->sc.output_height);
}
-
+
if (this->xoverlay) {
x11osd_resize (this->xoverlay, this->sc.gui_width, this->sc.gui_height);
this->ovl_changed = 1;
}
-
+
UNLOCK_DISPLAY(this);
}
@@ -534,7 +534,7 @@ static void xv_compute_output_size (xv_driver_t *this) {
_x_vo_scale_compute_output_size( &this->sc );
}
-static void xv_overlay_begin (vo_driver_t *this_gen,
+static void xv_overlay_begin (vo_driver_t *this_gen,
vo_frame_t *frame_gen, int changed) {
xv_driver_t *this = (xv_driver_t *) this_gen;
@@ -542,10 +542,10 @@ static void xv_overlay_begin (vo_driver_t *this_gen,
if( this->ovl_changed && this->xoverlay ) {
LOCK_DISPLAY(this);
- x11osd_clear(this->xoverlay);
+ x11osd_clear(this->xoverlay);
UNLOCK_DISPLAY(this);
}
-
+
this->alphablend_extra_data.offset_x = frame_gen->overlay_offset_x;
this->alphablend_extra_data.offset_y = frame_gen->overlay_offset_y;
}
@@ -562,7 +562,7 @@ static void xv_overlay_end (vo_driver_t *this_gen, vo_frame_t *vo_img) {
this->ovl_changed = 0;
}
-static void xv_overlay_blend (vo_driver_t *this_gen,
+static void xv_overlay_blend (vo_driver_t *this_gen,
vo_frame_t *frame_gen, vo_overlay_t *overlay) {
xv_driver_t *this = (xv_driver_t *) this_gen;
xv_frame_t *frame = (xv_frame_t *) frame_gen;
@@ -571,16 +571,16 @@ static void xv_overlay_blend (vo_driver_t *this_gen,
if( overlay->unscaled ) {
if( this->ovl_changed && this->xoverlay ) {
LOCK_DISPLAY(this);
- x11osd_blend(this->xoverlay, overlay);
+ x11osd_blend(this->xoverlay, overlay);
UNLOCK_DISPLAY(this);
}
} else {
if (frame->format == XINE_IMGFMT_YV12)
- _x_blend_yuv(frame->vo_frame.base, overlay,
+ _x_blend_yuv(frame->vo_frame.base, overlay,
frame->width, frame->height, frame->vo_frame.pitches,
&this->alphablend_extra_data);
else
- _x_blend_yuy2(frame->vo_frame.base[0], overlay,
+ _x_blend_yuy2(frame->vo_frame.base[0], overlay,
frame->width, frame->height, frame->vo_frame.pitches[0],
&this->alphablend_extra_data);
}
@@ -624,7 +624,7 @@ static int xv_redraw_needed (vo_driver_t *this_gen) {
this->sc.delivered_height = this->cur_frame->height;
this->sc.delivered_width = this->cur_frame->width;
this->sc.delivered_ratio = this->cur_frame->ratio;
-
+
this->sc.crop_left = this->cur_frame->vo_frame.crop_left;
this->sc.crop_right = this->cur_frame->vo_frame.crop_right;
this->sc.crop_top = this->cur_frame->vo_frame.crop_top;
@@ -663,7 +663,7 @@ static void xv_display_frame (vo_driver_t *this_gen, vo_frame_t *frame_gen) {
/*
printf (LOG_MODULE ": xv_display_frame...\n");
*/
-
+
/*
* queue frames (deinterlacing)
* free old frames
@@ -724,7 +724,7 @@ static void xv_display_frame (vo_driver_t *this_gen, vo_frame_t *frame_gen) {
if( factor > 1 )
{
- lprintf( "%s PutImage %dX interval (%fs)\n",
+ lprintf( "%s PutImage %dX interval (%fs)\n",
LOG_MODULE, factor, elapse_time );
}
}
@@ -766,7 +766,7 @@ static int xv_get_property (vo_driver_t *this_gen, int property) {
static void xv_property_callback (void *property_gen, xine_cfg_entry_t *entry) {
xv_property_t *property = (xv_property_t *) property_gen;
xv_driver_t *this = property->this;
-
+
LOCK_DISPLAY(this);
XvSetPortAttribute (this->display, this->xv_port,
property->atom,
@@ -798,7 +798,7 @@ static int xv_set_property (vo_driver_t *this_gen,
this->props[property].entry->num_value = this->props[property].value;
return this->props[property].value;
- }
+ }
else {
switch (property) {
@@ -807,7 +807,7 @@ static int xv_set_property (vo_driver_t *this_gen,
value = XINE_VO_ASPECT_AUTO;
this->props[property].value = value;
- xprintf(this->xine, XINE_VERBOSITY_LOG,
+ xprintf(this->xine, XINE_VERBOSITY_LOG,
LOG_MODULE ": VO_PROP_ASPECT_RATIO(%d)\n", this->props[property].value);
this->sc.user_ratio = value;
@@ -821,7 +821,7 @@ static int xv_set_property (vo_driver_t *this_gen,
this->props[property].value = value;
xprintf(this->xine, XINE_VERBOSITY_LOG,
LOG_MODULE ": VO_PROP_ZOOM_X = %d\n", this->props[property].value);
-
+
this->sc.zoom_factor_x = (double)value / (double)XINE_VO_ZOOM_STEP;
xv_compute_ideal_size (this);
@@ -903,7 +903,7 @@ static int xv_gui_data_exchange (vo_driver_t *this_gen,
if(this->xoverlay)
x11osd_expose(this->xoverlay);
-
+
XSync(this->display, False);
UNLOCK_DISPLAY(this);
}
@@ -948,39 +948,39 @@ static int xv_gui_data_exchange (vo_driver_t *this_gen,
static void xv_store_port_attribute(xv_driver_t *this, const char *name) {
Atom atom;
xv_portattribute_t *attr;
-
+
attr = (xv_portattribute_t *)malloc( sizeof(xv_portattribute_t) );
attr->name = strdup(name);
-
+
LOCK_DISPLAY(this);
atom = XInternAtom (this->display, attr->name, False);
XvGetPortAttribute (this->display, this->xv_port, atom, &attr->value);
UNLOCK_DISPLAY(this);
-
+
xine_list_push_back (this->port_attributes, attr);
}
static void xv_restore_port_attributes(xv_driver_t *this) {
Atom atom;
xine_list_iterator_t ite;
-
+
while ((ite = xine_list_front(this->port_attributes)) != NULL) {
xv_portattribute_t *attr = xine_list_get_value(this->port_attributes, ite);
xine_list_remove (this->port_attributes, ite);
-
+
LOCK_DISPLAY(this);
atom = XInternAtom (this->display, attr->name, False);
XvSetPortAttribute (this->display, this->xv_port, atom, attr->value);
UNLOCK_DISPLAY(this);
-
+
free( attr->name );
free( attr );
}
-
+
LOCK_DISPLAY(this);
XSync(this->display, False);
UNLOCK_DISPLAY(this);
-
+
xine_list_delete( this->port_attributes );
}
@@ -1012,7 +1012,7 @@ static void xv_dispose (vo_driver_t *this_gen) {
}
_x_alphablend_free(&this->alphablend_extra_data);
-
+
free (this);
}
@@ -1023,7 +1023,7 @@ static int xv_check_yv12 (Display *display, XvPortID port) {
int i;
formatValues = XvListImageFormats (display, port, &formats);
-
+
for (i = 0; i < formats; i++)
if ((formatValues[i].id == XINE_IMGFMT_YV12) &&
(! (strcmp (formatValues[i].guid, "YV12")))) {
@@ -1044,7 +1044,7 @@ static void xv_check_capability (xv_driver_t *this,
int int_default;
cfg_entry_t *entry;
const char *str_prop = attr.name;
-
+
/*
* some Xv drivers (Gatos ATI) report some ~0 as max values, this is confusing.
*/
@@ -1065,7 +1065,7 @@ static void xv_check_capability (xv_driver_t *this,
/* might be overridden using config entry */
if(strcmp(str_prop, "XV_AUTOPAINT_COLORKEY") == 0)
int_default = 0;
-
+
if (config_name) {
/* is this a boolean property ? */
if ((attr.min_value == 0) && (attr.max_value == 1)) {
@@ -1082,12 +1082,12 @@ static void xv_check_capability (xv_driver_t *this,
entry = this->config->lookup_entry (this->config, config_name);
- if((entry->num_value < this->props[property].min) ||
+ if((entry->num_value < this->props[property].min) ||
(entry->num_value > this->props[property].max)) {
- this->config->update_num(this->config, config_name,
+ this->config->update_num(this->config, config_name,
((this->props[property].min + this->props[property].max) >> 1));
-
+
entry = this->config->lookup_entry (this->config, config_name);
}
@@ -1217,7 +1217,7 @@ static vo_driver_t *open_plugin_2 (video_driver_class_t *class_gen, const void *
return NULL;
_x_alphablend_init(&this->alphablend_extra_data, class->xine);
-
+
this->display = visual->display;
this->screen = visual->screen;
this->config = config;
@@ -1280,19 +1280,19 @@ static vo_driver_t *open_plugin_2 (video_driver_class_t *class_gen, const void *
_("%s: Xv extension is present but I couldn't find a usable yuv12 port.\n"
"\tLooks like your graphics hardware driver doesn't support Xv?!\n"),
LOG_MODULE);
-
+
/* XvFreeAdaptorInfo (adaptor_info); this crashed on me (gb)*/
UNLOCK_DISPLAY(this);
return NULL;
- }
+ }
else
xprintf(class->xine, XINE_VERBOSITY_LOG,
_("%s: using Xv port %ld from adaptor %s for hardware "
"colour space conversion and scaling.\n"), LOG_MODULE, xv_port,
adaptor_info[adaptor_num].name);
-
+
UNLOCK_DISPLAY(this);
-
+
this->xv_port = xv_port;
_x_vo_scale_init (&this->sc, 1, 0, config );
@@ -1365,7 +1365,7 @@ static vo_driver_t *open_plugin_2 (video_driver_class_t *class_gen, const void *
const char *const name = attr[k].name;
/* store initial port attribute value */
xv_store_port_attribute(this, name);
-
+
if(!strcmp(name, "XV_HUE")) {
if (!strncmp(adaptor_info[adaptor_num].name, "NV", 2)) {
xprintf (this->xine, XINE_VERBOSITY_NONE, LOG_MODULE ": ignoring broken XV_HUE settings on NVidia cards\n");
@@ -1419,7 +1419,7 @@ static vo_driver_t *open_plugin_2 (video_driver_class_t *class_gen, const void *
} else if(((this->sync_is_vsync = 0), !strcmp(name, sync_atoms[0])) ||
((this->sync_is_vsync = 1), !strcmp(name, sync_atoms[1]))) {
int xv_sync_to_vblank;
- xv_sync_to_vblank =
+ xv_sync_to_vblank =
config->register_bool (config, "video.device.xv_sync_to_vblank", 1,
_("enable vblank sync"),
_("This option will synchronize the update of the video image to the "
@@ -1450,10 +1450,10 @@ static vo_driver_t *open_plugin_2 (video_driver_class_t *class_gen, const void *
fo = XvListImageFormats(this->display, this->xv_port, (int*)&formats);
UNLOCK_DISPLAY(this);
-
+
this->xv_format_yv12 = 0;
this->xv_format_yuy2 = 0;
-
+
for(i = 0; i < formats; i++) {
lprintf ("Xv image format: 0x%x (%4.4s) %s\n",
fo[i].id, (char*)&fo[i].id,
@@ -1469,7 +1469,7 @@ static vo_driver_t *open_plugin_2 (video_driver_class_t *class_gen, const void *
case XINE_IMGFMT_YUY2:
this->xv_format_yuy2 = fo[i].id;
this->capabilities |= VO_CAP_YUY2;
- xprintf(this->xine, XINE_VERBOSITY_LOG,
+ xprintf(this->xine, XINE_VERBOSITY_LOG,
_("%s: this adaptor supports the %s format.\n"), LOG_MODULE, "YUY2");
break;
default:
@@ -1493,7 +1493,7 @@ static vo_driver_t *open_plugin_2 (video_driver_class_t *class_gen, const void *
dispose_ximage (this, &myshminfo, myimage);
UNLOCK_DISPLAY(this);
- this->use_pitch_alignment =
+ this->use_pitch_alignment =
config->register_bool (config, "video.device.xv_pitch_alignment", 0,
VIDEO_DEVICE_XV_PITCH_ALIGNMENT_HELP,
10, xv_update_xv_pitch_alignment, this);
@@ -1529,7 +1529,7 @@ static vo_driver_t *open_plugin_old (video_driver_class_t *class_gen, const void
visual.frame_output_cb = old_visual->frame_output_cb;
visual.lock_display = NULL;
visual.unlock_display = NULL;
-
+
return open_plugin_2(class_gen, (void *)&visual);
}
diff --git a/src/video_out/video_out_xvmc.c b/src/video_out/video_out_xvmc.c
index b6cae552e..79fea9ce5 100644
--- a/src/video_out/video_out_xvmc.c
+++ b/src/video_out/video_out_xvmc.c
@@ -7,7 +7,7 @@
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
@@ -90,7 +90,7 @@ typedef struct {
XvMCMacroBlock *macroblockbaseptr; /* pointer to base MacroBlock in MB array */
XvMCMacroBlockArray *macro_blocks; /* pointer to memory for macroblock array */
int slices;
-} xvmc_macroblocks_t;
+} xvmc_macroblocks_t;
typedef struct {
void *xid;
@@ -146,8 +146,8 @@ struct xvmc_driver_s {
int max_surface_height;
int num_frame_buffers;
- int surface_width;
- int surface_height;
+ int surface_width;
+ int surface_height;
int surface_ratio;
int surface_format;
int surface_flags;
@@ -165,7 +165,7 @@ struct xvmc_driver_s {
/* display anatomy */
double display_ratio; /* given by visual parameter
from init function */
-
+
xvmc_property_t props[VO_NUM_PROPERTIES];
uint32_t capabilities;
@@ -178,7 +178,7 @@ struct xvmc_driver_s {
/* size / aspect ratio calculations */
- /*
+ /*
* "delivered" size:
* frame dimension / aspect as delivered by the decoder
* used (among other things) to detect frame size changes
@@ -186,7 +186,7 @@ struct xvmc_driver_s {
int delivered_duration;
- /*
+ /*
* "ideal" size :
* displayed width/height corrected by aspect ratio
*/
@@ -195,13 +195,13 @@ struct xvmc_driver_s {
height = width * ratio_factor */
/* gui callback */
-
+
void (*frame_output_cb) (void *user_data,
int video_width, int video_height,
- int *dest_x, int *dest_y,
+ int *dest_x, int *dest_y,
int *dest_height, int *dest_width,
int *win_x, int *win_y);
-
+
int use_colorkey;
uint32_t colorkey;
@@ -237,19 +237,19 @@ static void xvmc_render_macro_blocks(vo_frame_t *current_image,
/**************************************************************************/
-/*
+/*
* dmvector: differential motion vector
* mvx, mvy: decoded mv components (always in field format)
*/
-static void calc_DMV(int DMV[][2], int *dmvector,
+static void calc_DMV(int DMV[][2], int *dmvector,
int mvx, int mvy, int picture_structure, int top_field_first) {
-
+
if (picture_structure==VO_BOTH_FIELDS) {
if (top_field_first) {
/* vector for prediction of top field from bottom field */
DMV[0][0] = ((mvx +(mvx>0))>>1) + dmvector[0];
DMV[0][1] = ((mvy +(mvy>0))>>1) + dmvector[1] - 1;
-
+
/* vector for prediction of bottom field from top field */
DMV[1][0] = ((3*mvx+(mvx>0))>>1) + dmvector[0];
DMV[1][1] = ((3*mvy+(mvy>0))>>1) + dmvector[1] + 1;
@@ -258,7 +258,7 @@ static void calc_DMV(int DMV[][2], int *dmvector,
/* vector for prediction of top field from bottom field */
DMV[0][0] = ((3*mvx+(mvx>0))>>1) + dmvector[0];
DMV[0][1] = ((3*mvy+(mvy>0))>>1) + dmvector[1] - 1;
-
+
/* vector for prediction of bottom field from top field */
DMV[1][0] = ((mvx +(mvx>0))>>1) + dmvector[0];
DMV[1][1] = ((mvy +(mvy>0))>>1) + dmvector[1] + 1;
@@ -268,7 +268,7 @@ static void calc_DMV(int DMV[][2], int *dmvector,
/* vector for prediction from field of opposite 'parity' */
DMV[0][0] = ((mvx+(mvx>0))>>1) + dmvector[0];
DMV[0][1] = ((mvy+(mvy>0))>>1) + dmvector[1];
-
+
/* correct for vertical field shift */
if (picture_structure==VO_TOP_FIELD)
DMV[0][1]--;
@@ -277,11 +277,11 @@ static void calc_DMV(int DMV[][2], int *dmvector,
}
}
-static void xvmc_proc_macro_block(int x, int y, int mb_type, int motion_type,
- int (*mv_field_sel)[2], int *dmvector, int cbp,
- int dct_type, vo_frame_t *current_frame,
- vo_frame_t *forward_ref_frame,
- vo_frame_t *backward_ref_frame, int picture_structure,
+static void xvmc_proc_macro_block(int x, int y, int mb_type, int motion_type,
+ int (*mv_field_sel)[2], int *dmvector, int cbp,
+ int dct_type, vo_frame_t *current_frame,
+ vo_frame_t *forward_ref_frame,
+ vo_frame_t *backward_ref_frame, int picture_structure,
int second_field, int (*f_mot_pmv)[2], int (*b_mot_pmv)[2]) {
xvmc_driver_t *this = (xvmc_driver_t *) current_frame->driver;
xvmc_macroblocks_t *mbs = &this->macroblocks;
@@ -290,10 +290,10 @@ static void xvmc_proc_macro_block(int x, int y, int mb_type, int motion_type,
mbs->macroblockptr->x = x;
mbs->macroblockptr->y = y;
-
+
if(mb_type & XINE_MACROBLOCK_INTRA) {
mbs->macroblockptr->macroblock_type = XVMC_MB_TYPE_INTRA;
- }
+ }
else {
mbs->macroblockptr->macroblock_type = 0;
/* XvMC doesn't support skips */
@@ -302,7 +302,7 @@ static void xvmc_proc_macro_block(int x, int y, int mb_type, int motion_type,
motion_type = (picture_structure == VO_BOTH_FIELDS) ? XINE_MC_FRAME : XINE_MC_FIELD;
mbs->macroblockptr->PMV[0][0][0] = 0;
mbs->macroblockptr->PMV[0][0][1] = 0;
- }
+ }
else {
if(mb_type & XINE_MACROBLOCK_MOTION_BACKWARD) {
mbs->macroblockptr->macroblock_type |= XVMC_MB_TYPE_MOTION_BACKWARD;
@@ -334,17 +334,17 @@ static void xvmc_proc_macro_block(int x, int y, int mb_type, int motion_type,
calc_DMV(DMV,dmvector, f_mot_pmv[0][0],
f_mot_pmv[0][1]>>1, picture_structure,
top_field_first);
-
+
mbs->macroblockptr->PMV[1][0][0] = DMV[0][0];
mbs->macroblockptr->PMV[1][0][1] = DMV[0][1];
mbs->macroblockptr->PMV[1][1][0] = DMV[1][0];
mbs->macroblockptr->PMV[1][1][1] = DMV[1][1];
- }
+ }
else {
calc_DMV(DMV,dmvector, f_mot_pmv[0][0],
f_mot_pmv[0][1]>>1, picture_structure,
top_field_first);
-
+
mbs->macroblockptr->PMV[0][1][0] = DMV[0][0];
mbs->macroblockptr->PMV[0][1][1] = DMV[0][1];
}
@@ -370,7 +370,7 @@ static void xvmc_proc_macro_block(int x, int y, int mb_type, int motion_type,
mbs->macroblockptr->dct_type = dct_type;
mbs->macroblockptr->coded_block_pattern = cbp;
- while(cbp) {
+ while(cbp) {
if(cbp & 1) mbs->macroblockptr->index--;
cbp >>= 1;
}
@@ -438,7 +438,7 @@ static void xvmc_proc_macro_block(int x, int y, int mb_type, int motion_type,
picture_structure,
second_field ? XVMC_SECOND_FIELD : 0,
mbs);
-
+
mbs->num_blocks = 0;
mbs->macroblockptr = mbs->macroblockbaseptr;
mbs->xine_mc.blockptr = mbs->xine_mc.blockbaseptr;
@@ -462,9 +462,9 @@ static void xvmc_frame_dispose (vo_frame_t *vo_img) {
lprintf ("xvmc_frame_dispose\n");
- /*
+ /*
* TODO - clean up of images/surfaces and frames
- * Note this function is not really needed
+ * Note this function is not really needed
* set_context does the work
*/
@@ -490,9 +490,9 @@ static void xvmc_render_macro_blocks(vo_frame_t *current_image,
(long) forward_frame);
/* lprintf ("slices %d 0x%08lx 0x%08lx 0x%08lx\n",macroblocks->slices,
(long) current_frame->surface, (long) backward_frame->surface,
- (long) forward_frame->surface);
+ (long) forward_frame->surface);
*/
-
+
flags = second_field;
if(forward_frame) {
@@ -504,7 +504,7 @@ static void xvmc_render_macro_blocks(vo_frame_t *current_image,
flags,
macroblocks->slices, 0, macroblocks->macro_blocks,
macroblocks->blocks);
- }
+ }
else {
XvMCRenderSurface(this->display, &this->context, picture_structure,
&current_frame->surface,
@@ -514,7 +514,7 @@ static void xvmc_render_macro_blocks(vo_frame_t *current_image,
macroblocks->slices, 0, macroblocks->macro_blocks,
macroblocks->blocks);
}
- }
+ }
else {
if(backward_frame) {
XvMCRenderSurface(this->display, &this->context, picture_structure,
@@ -524,7 +524,7 @@ static void xvmc_render_macro_blocks(vo_frame_t *current_image,
flags,
macroblocks->slices, 0, macroblocks->macro_blocks,
macroblocks->blocks);
- }
+ }
else {
XvMCRenderSurface(this->display, &this->context, picture_structure,
&current_frame->surface,
@@ -557,7 +557,7 @@ static vo_frame_t *xvmc_alloc_frame (vo_driver_t *this_gen) {
/* keep track of frames and how many frames alocated. */
this->frames[this->num_frame_buffers++] = frame;
-
+
pthread_mutex_init (&frame->vo_frame.mutex, NULL);
/*
@@ -584,12 +584,12 @@ static cxid_t *xvmc_set_context (xvmc_driver_t *this,
xvmc_macroblocks_t *macroblocks = (xvmc_macroblocks_t *) macro_blocks;
lprintf ("xvmc_set_context %dx%d %04x\n",width,height,format);
-
+
/* initialize block & macro block pointers first time */
if(macroblocks->blocks == NULL || macroblocks->macro_blocks == NULL) {
macroblocks->blocks = calloc(1, sizeof(XvMCBlockArray));
macroblocks->macro_blocks = calloc(1, sizeof(XvMCMacroBlockArray));
-
+
lprintf("macroblocks->blocks %lx ->macro_blocks %lx\n",
macroblocks->blocks,macroblocks->macro_blocks);
}
@@ -605,11 +605,11 @@ static cxid_t *xvmc_set_context (xvmc_driver_t *this,
return(&this->context_id);
- }
- else {
+ }
+ else {
if(this->context_id.xid != NULL) {
- /*
+ /*
* flush any drawing and wait till we are done with the old stuff
* blow away the old stuff
*/
@@ -632,8 +632,8 @@ static cxid_t *xvmc_set_context (xvmc_driver_t *this,
width,height, this->surface_type_id, (int)this->xv_port);
/* now create a new context */
- result = XvMCCreateContext(this->display, this->xv_port,
- this->surface_type_id,
+ result = XvMCCreateContext(this->display, this->xv_port,
+ this->surface_type_id,
width, height, XVMC_DIRECT, &this->context);
if(result != Success) {
@@ -661,7 +661,7 @@ static cxid_t *xvmc_set_context (xvmc_driver_t *this,
slices = (slices * width/16);
lprintf("CreateBlocks slices %d\n",slices);
-
+
result = XvMCCreateBlocks(this->display, &this->context, slices * 6,
macroblocks->blocks);
if(result != Success) {
@@ -744,7 +744,7 @@ static XvImage *create_ximage (xvmc_driver_t *this, XShmSegmentInfo *shminfo,
static void dispose_ximage (xvmc_driver_t *this,
XShmSegmentInfo *shminfo,
XvImage *myimage) {
-
+
lprintf ("dispose_ximage\n");
XFree(myimage);
}
@@ -772,9 +772,9 @@ static void xvmc_update_frame_format (vo_driver_t *this_gen,
lprintf ("updating frame to %d x %d (ratio=%f, format=%08x)\n",
width, height, ratio, format);
- /* Note that since we are rendering in hardware, we do not need to
+ /* Note that since we are rendering in hardware, we do not need to
* allocate any ximage's for the software rendering buffers.
- */
+ */
frame->width = width;
frame->height = height;
frame->format = format;
@@ -784,7 +784,7 @@ static void xvmc_update_frame_format (vo_driver_t *this_gen,
xvmc->macroblocks = (xine_macroblocks_t *)&this->macroblocks;
this->macroblocks.num_blocks = 0;
this->macroblocks.macroblockptr = this->macroblocks.macroblockbaseptr;
- this->macroblocks.xine_mc.blockptr =
+ this->macroblocks.xine_mc.blockptr =
this->macroblocks.xine_mc.blockbaseptr;
if( flags & VO_NEW_SEQUENCE_FLAG ) {
xvmc_set_context (this, width, height, ratio, format, flags,
@@ -799,14 +799,14 @@ static void xvmc_clean_output_area (xvmc_driver_t *this) {
XSetForeground (this->display, this->gc, this->black.pixel);
XFillRectangle (this->display, this->drawable, this->gc,
this->sc.gui_x, this->sc.gui_y, this->sc.gui_width, this->sc.gui_height);
-
+
if (this->use_colorkey) {
XSetForeground (this->display, this->gc, this->colorkey);
XFillRectangle (this->display, this->drawable, this->gc,
- this->sc.output_xoffset, this->sc.output_yoffset,
+ this->sc.output_xoffset, this->sc.output_yoffset,
this->sc.output_width, this->sc.output_height);
}
-
+
XUnlockDisplay (this->display);
}
@@ -827,27 +827,27 @@ static void xvmc_compute_output_size (xvmc_driver_t *this) {
_x_vo_scale_compute_output_size( &this->sc );
}
-static void xvmc_overlay_blend (vo_driver_t *this_gen,
+static void xvmc_overlay_blend (vo_driver_t *this_gen,
vo_frame_t *frame_gen, vo_overlay_t *overlay) {
xvmc_driver_t *this = (xvmc_driver_t *) this_gen;
xvmc_frame_t *frame = (xvmc_frame_t *) frame_gen;
lprintf ("xvmc_overlay_blend\n");
-
+
this->alphablend_extra_data.offset_x = frame_gen->overlay_offset_x;
this->alphablend_extra_data.offset_y = frame_gen->overlay_offset_y;
/* Alpha Blend here
* As XV drivers improve to support Hardware overlay, we will change this function.
*/
-
+
if (overlay->rle) {
if (frame->format == XINE_IMGFMT_YV12)
- _x_blend_yuv(frame->vo_frame.base, overlay,
+ _x_blend_yuv(frame->vo_frame.base, overlay,
frame->width, frame->height, frame->vo_frame.pitches,
&this->alphablend_extra_data);
else if (frame->format != XINE_IMGFMT_XVMC)
- _x_blend_yuy2(frame->vo_frame.base[0], overlay,
+ _x_blend_yuy2(frame->vo_frame.base[0], overlay,
frame->width, frame->height, frame->vo_frame.pitches[0],
&this->alphablend_extra_data);
else
@@ -892,16 +892,16 @@ static int xvmc_redraw_needed (vo_driver_t *this_gen) {
int ret = 0;
if(this->cur_frame) {
-
+
this->sc.delivered_height = this->cur_frame->height;
this->sc.delivered_width = this->cur_frame->width;
this->sc.delivered_ratio = this->cur_frame->ratio;
-
+
this->sc.crop_left = this->cur_frame->vo_frame.crop_left;
this->sc.crop_right = this->cur_frame->vo_frame.crop_right;
this->sc.crop_top = this->cur_frame->vo_frame.crop_top;
this->sc.crop_bottom = this->cur_frame->vo_frame.crop_bottom;
-
+
xvmc_compute_ideal_size(this);
if(_x_vo_scale_redraw_needed(&this->sc)) {
@@ -922,49 +922,49 @@ static void xvmc_display_frame (vo_driver_t *this_gen, vo_frame_t *frame_gen) {
lprintf ("xvmc_display_frame %d %x\n",frame_gen->id,frame_gen);
- /*
+ /*
* queue frames (deinterlacing)
* free old frames
*/
-
+
xvmc_add_recent_frame (this, frame); /* deinterlacing */
-
+
this->cur_frame = frame;
-
+
/*
* let's see if this frame is different in size / aspect
* ratio from the previous one
*/
-
+
if ( (frame->width != this->sc.delivered_width)
|| (frame->height != this->sc.delivered_height)
|| (frame->ratio != this->sc.delivered_ratio) ) {
lprintf("frame format changed\n");
-
- /*
+
+ /*
this->delivered_width = frame->width;
this->delivered_height = frame->height;
this->delivered_ratio = frame->ratio;
this->delivered_duration = frame->vo_frame.duration;
-
+
xvmc_compute_ideal_size (this);
*/
/* this->gui_width = 0; */ /* trigger re-calc of output size */
this->sc.force_redraw = 1; /* trigger re-calc of output size */
}
-
- /*
+
+ /*
* tell gui that we are about to display a frame,
* ask for offset and output size
*/
xvmc_redraw_needed (this_gen);
-
+
XLockDisplay (this->display);
- /* Make sure the surface has finished rendering before we display */
+ /* Make sure the surface has finished rendering before we display */
XvMCSyncSurface(this->display, &this->cur_frame->surface);
-
+
XvMCPutSurface(this->display, &this->cur_frame->surface,
this->drawable,
this->sc.displayed_xoffset, this->sc.displayed_yoffset,
@@ -972,9 +972,9 @@ static void xvmc_display_frame (vo_driver_t *this_gen, vo_frame_t *frame_gen) {
this->sc.output_xoffset, this->sc.output_yoffset,
this->sc.output_width, this->sc.output_height,
XVMC_FRAME_PICTURE);
-
+
XUnlockDisplay (this->display);
-
+
/*
printf ("video_out_xvmc: xvmc_display_frame... done\n");
*/
@@ -984,7 +984,7 @@ static int xvmc_get_property (vo_driver_t *this_gen, int property) {
xvmc_driver_t *this = (xvmc_driver_t *) this_gen;
lprintf ("xvmc_get_property\n");
-
+
switch (property) {
case VO_PROP_WINDOW_WIDTH:
this->props[property].value = this->sc.gui_width;
@@ -1005,7 +1005,7 @@ static int xvmc_get_property (vo_driver_t *this_gen, int property) {
this->props[property].value = this->sc.output_yoffset;
break;
}
-
+
return this->props[property].value;
}
@@ -1014,7 +1014,7 @@ static void xvmc_property_callback (void *property_gen, xine_cfg_entry_t *entry)
xvmc_driver_t *this = property->this;
lprintf ("xvmc_property_callback\n");
-
+
XLockDisplay(this->display);
XvSetPortAttribute (this->display, this->xv_port,
property->atom, entry->num_value);
@@ -1026,7 +1026,7 @@ static int xvmc_set_property (vo_driver_t *this_gen,
xvmc_driver_t *this = (xvmc_driver_t *) this_gen;
lprintf ("xvmc_set_property %d value %d\n",property,value);
-
+
if (this->props[property].atom != None) {
/* value is out of bound */
if((value < this->props[property].min) || (value > this->props[property].max))
@@ -1042,9 +1042,9 @@ static int xvmc_set_property (vo_driver_t *this_gen,
if (this->props[property].entry)
this->props[property].entry->num_value = this->props[property].value;
-
+
return this->props[property].value;
- }
+ }
else {
switch (property) {
case VO_PROP_ASPECT_RATIO:
@@ -1053,7 +1053,7 @@ static int xvmc_set_property (vo_driver_t *this_gen,
this->props[property].value = value;
lprintf("VO_PROP_ASPECT_RATIO(%d)\n", this->props[property].value);
-
+
xvmc_compute_ideal_size (this);
xvmc_compute_output_size (this);
xvmc_clean_output_area (this);
@@ -1063,7 +1063,7 @@ static int xvmc_set_property (vo_driver_t *this_gen,
case VO_PROP_ZOOM_X:
if ((value >= XINE_VO_ZOOM_MIN) && (value <= XINE_VO_ZOOM_MAX)) {
this->props[property].value = value;
- xprintf (this->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->xine, XINE_VERBOSITY_DEBUG,
"video_out_xvmc: VO_PROP_ZOOM_X = %d\n", this->props[property].value);
this->sc.zoom_factor_x = (double)value / (double)XINE_VO_ZOOM_STEP;
@@ -1075,7 +1075,7 @@ static int xvmc_set_property (vo_driver_t *this_gen,
case VO_PROP_ZOOM_Y:
if ((value >= XINE_VO_ZOOM_MIN) && (value <= XINE_VO_ZOOM_MAX)) {
this->props[property].value = value;
- xprintf (this->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->xine, XINE_VERBOSITY_DEBUG,
"video_out_xvmc: VO_PROP_ZOOM_Y = %d\n", this->props[property].value);
this->sc.zoom_factor_y = (double)value / (double)XINE_VO_ZOOM_STEP;
@@ -1083,7 +1083,7 @@ static int xvmc_set_property (vo_driver_t *this_gen,
this->sc.force_redraw = 1; /* trigger re-calc of output size */
}
break;
- }
+ }
}
return value;
@@ -1092,9 +1092,9 @@ static int xvmc_set_property (vo_driver_t *this_gen,
static void xvmc_get_property_min_max (vo_driver_t *this_gen,
int property, int *min, int *max) {
xvmc_driver_t *this = (xvmc_driver_t *) this_gen;
-
+
lprintf ("xvmc_get_property_min_max\n");
-
+
*min = this->props[property].min;
*max = this->props[property].max;
}
@@ -1104,32 +1104,32 @@ static int xvmc_gui_data_exchange (vo_driver_t *this_gen,
xvmc_driver_t *this = (xvmc_driver_t *) this_gen;
lprintf ("xvmc_gui_data_exchange\n");
-
+
switch (data_type) {
case XINE_GUI_SEND_EXPOSE_EVENT: {
/* XExposeEvent * xev = (XExposeEvent *) data; */
/* FIXME : take care of completion events */
lprintf ("XINE_GUI_SEND_EXPOSE_EVENT\n");
-
+
if (this->cur_frame) {
int i;
-
+
XLockDisplay (this->display);
-
+
XSetForeground (this->display, this->gc, this->black.pixel);
-
+
for( i = 0; i < 4; i++ ) {
if( this->sc.border[i].w && this->sc.border[i].h )
XFillRectangle(this->display, this->drawable, this->gc,
this->sc.border[i].x, this->sc.border[i].y,
this->sc.border[i].w, this->sc.border[i].h);
}
-
+
if (this->use_colorkey) {
XSetForeground (this->display, this->gc, this->colorkey);
XFillRectangle (this->display, this->drawable, this->gc,
- this->sc.output_xoffset, this->sc.output_yoffset,
+ this->sc.output_xoffset, this->sc.output_yoffset,
this->sc.output_width, this->sc.output_height);
}
@@ -1140,7 +1140,7 @@ static int xvmc_gui_data_exchange (vo_driver_t *this_gen,
this->sc.output_xoffset, this->sc.output_yoffset,
this->sc.output_width, this->sc.output_height,
XVMC_FRAME_PICTURE);
-
+
XSync(this->display, False);
XUnlockDisplay (this->display);
}
@@ -1159,18 +1159,18 @@ static int xvmc_gui_data_exchange (vo_driver_t *this_gen,
int x1, y1, x2, y2;
x11_rectangle_t *rect = data;
- /*
+ /*
xvmc_translate_gui2video(this, rect->x, rect->y,
- &x1, &y1);
+ &x1, &y1);
xvmc_translate_gui2video(this, rect->x + rect->w, rect->y + rect->h,
- &x2, &y2);
+ &x2, &y2);
*/
-
+
_x_vo_scale_translate_gui2video(&this->sc, rect->x, rect->y,
&x1, &y1);
_x_vo_scale_translate_gui2video(&this->sc, rect->x + rect->w, rect->y + rect->h,
&x2, &y2);
-
+
rect->x = x1;
rect->y = y1;
rect->w = x2-x1;
@@ -1188,9 +1188,9 @@ static int xvmc_gui_data_exchange (vo_driver_t *this_gen,
static void xvmc_dispose (vo_driver_t *this_gen) {
xvmc_driver_t *this = (xvmc_driver_t *) this_gen;
int i;
-
+
lprintf ("xvmc_dispose\n");
-
+
if(this->context_id.xid) {
XLockDisplay(this->display);
for(i = 0; i < this->num_frame_buffers; i++) {
@@ -1200,7 +1200,7 @@ static void xvmc_dispose (vo_driver_t *this_gen) {
}
/* XvMCDestroyBlocks(this->display, &macroblocks->blocks); */
/* XvMCDestroyMacroBlocks(this->display, &macroblocks->macro_blocks); */
- XvMCDestroyContext(this->display, &this->context);
+ XvMCDestroyContext(this->display, &this->context);
XUnlockDisplay(this->display);
}
@@ -1246,16 +1246,16 @@ static void xvmc_check_capability (xvmc_driver_t *this,
XvGetPortAttribute (this->display, this->xv_port,
this->props[property].atom, &int_default);
- xprintf (this->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->xine, XINE_VERBOSITY_DEBUG,
"video_out_xvmc: port attribute %s (%d) value is %d\n", str_prop, property, int_default);
-
+
if (config_name) {
/* is this a boolean property ? */
if ((attr.min_value == 0) && (attr.max_value == 1)) {
this->config->register_bool (this->config, config_name, int_default,
config_desc,
config_help, 20, xvmc_property_callback, &this->props[property]);
-
+
} else {
this->config->register_range (this->config, config_name, int_default,
this->props[property].min, this->props[property].max,
@@ -1273,7 +1273,7 @@ static void xvmc_check_capability (xvmc_driver_t *this,
this->use_colorkey = 1;
this->colorkey = entry->num_value;
}
- }
+ }
else
this->props[property].value = int_default;
}
@@ -1283,7 +1283,7 @@ static void xvmc_update_XV_DOUBLE_BUFFER(void *this_gen, xine_cfg_entry_t *entry
xvmc_driver_t *this = (xvmc_driver_t *) this_gen;
Atom atom;
int xvmc_double_buffer;
-
+
xvmc_double_buffer = entry->num_value;
XLockDisplay(this->display);
@@ -1308,12 +1308,12 @@ static vo_driver_t *open_plugin (video_driver_class_t *class_gen, const void *vi
XvAdaptorInfo *adaptor_info;
unsigned int adaptor_num;
/* XvImage *myimage; */
-
+
lprintf ("open_plugin\n");
-
+
/* TODO ??? */
this = calloc(1, sizeof (xvmc_driver_t));
-
+
if (!this)
return NULL;
@@ -1389,9 +1389,9 @@ static vo_driver_t *open_plugin (video_driver_class_t *class_gen, const void *vi
/*
* check this adaptor's capabilities
*/
- if(this->acceleration&XINE_VO_IDCT_ACCEL)
+ if(this->acceleration&XINE_VO_IDCT_ACCEL)
this->capabilities |= VO_CAP_XVMC_IDCT;
-
+
XLockDisplay(this->display);
attr = XvQueryPortAttributes(this->display, xv_port, &nattr);
if(attr && nattr) {
@@ -1445,7 +1445,7 @@ static vo_driver_t *open_plugin (video_driver_class_t *class_gen, const void *vi
}
}
XFree(attr);
- }
+ }
else {
xprintf(this->xine, XINE_VERBOSITY_DEBUG, "video_out_xvmc: no port attributes defined.\n");
}
@@ -1459,12 +1459,12 @@ static vo_driver_t *open_plugin (video_driver_class_t *class_gen, const void *vi
this->xvmc_format_yv12 = 0;
this->xvmc_format_yuy2 = 0;
-
+
for(i = 0; i < formats; i++) {
lprintf ("XvMC image format: 0x%x (%4.4s) %s\n",
fo[i].id, (char*)&fo[i].id,
(fo[i].format == XvPacked) ? "packed" : "planar");
-
+
switch (fo[i].id) {
case XINE_IMGFMT_YV12:
this->xvmc_format_yv12 = fo[i].id;
@@ -1475,7 +1475,7 @@ static vo_driver_t *open_plugin (video_driver_class_t *class_gen, const void *vi
case XINE_IMGFMT_YUY2:
this->xvmc_format_yuy2 = fo[i].id;
this->capabilities |= VO_CAP_YUY2;
- xprintf(this->xine, XINE_VERBOSITY_LOG,
+ xprintf(this->xine, XINE_VERBOSITY_LOG,
_("%s: this adaptor supports the %s format.\n"), LOG_MODULE, "YUY2");
break;
default:
@@ -1495,7 +1495,7 @@ static vo_driver_t *open_plugin (video_driver_class_t *class_gen, const void *vi
*/
/*
XLockDisplay(this->display);
- myimage = create_ximage (this, &myshminfo, 100, 100,
+ myimage = create_ximage (this, &myshminfo, 100, 100,
(this->xvmc_format_yv12 != 0) ? XINE_IMGFMT_YV12 : IMGFMT_YUY2);
dispose_ximage (this, &myshminfo, myimage);
XUnLockDisplay(this->display);
@@ -1534,7 +1534,7 @@ static void *init_class (xine_t *xine, void *visual_gen) {
int surface_type = 0;
display = visual->display;
-
+
/*
* check for Xv and XvMC video support
*/
@@ -1575,20 +1575,20 @@ static void *init_class (xine_t *xine, void *visual_gen) {
for(surface_num = 0; surface_num < types; surface_num++) {
if((surfaceInfo[surface_num].chroma_format == XVMC_CHROMA_FORMAT_420) &&
(surfaceInfo[surface_num].mc_type == (XVMC_IDCT | XVMC_MPEG_2))) {
-
+
max_width = surfaceInfo[surface_num].max_width;
max_height = surfaceInfo[surface_num].max_height;
-
+
for(j = 0; j < adaptor_info[adaptor_num].num_ports; j++) {
/* try to grab a port */
- if(Success == XvGrabPort(display,
- adaptor_info[adaptor_num].base_id + j, CurrentTime)) {
+ if(Success == XvGrabPort(display,
+ adaptor_info[adaptor_num].base_id + j, CurrentTime)) {
xv_port = adaptor_info[adaptor_num].base_id + j;
surface_type = surfaceInfo[surface_num].surface_type_id;
break;
}
}
-
+
if(xv_port)
break;
}
@@ -1600,22 +1600,22 @@ static void *init_class (xine_t *xine, void *visual_gen) {
for(surface_num = 0; surface_num < types; surface_num++) {
if((surfaceInfo[surface_num].chroma_format == XVMC_CHROMA_FORMAT_420) &&
((surfaceInfo[surface_num].mc_type == (XVMC_MOCOMP | XVMC_MPEG_2)))) {
-
+
xprintf (xine, XINE_VERBOSITY_DEBUG, "Found XVMC_MOCOMP\n");
max_width = surfaceInfo[surface_num].max_width;
max_height = surfaceInfo[surface_num].max_height;
for(j = 0; j < adaptor_info[adaptor_num].num_ports; j++) {
/* try to grab a port */
- if(Success == XvGrabPort(display,
- adaptor_info[adaptor_num].base_id + j, CurrentTime)) {
+ if(Success == XvGrabPort(display,
+ adaptor_info[adaptor_num].base_id + j, CurrentTime)) {
xv_port = adaptor_info[adaptor_num].base_id + j;
surface_type = surfaceInfo[surface_num].surface_type_id;
break;
}
}
- if(xv_port)
+ if(xv_port)
break;
}
}
@@ -1623,7 +1623,7 @@ static void *init_class (xine_t *xine, void *visual_gen) {
if(xv_port) {
lprintf ("port %ld surface %d\n",xv_port,j);
- IDCTaccel = 0;
+ IDCTaccel = 0;
if(surfaceInfo[surface_num].flags & XVMC_OVERLAID_SURFACE)
useOverlay = 1;
if(surfaceInfo[surface_num].flags & XVMC_INTRA_UNSIGNED)
@@ -1642,7 +1642,7 @@ static void *init_class (xine_t *xine, void *visual_gen) {
}
}
} /* outer for adaptor_num loop */
-
+
if (!xv_port) {
xprintf (xine, XINE_VERBOSITY_LOG,
@@ -1652,13 +1652,13 @@ static void *init_class (xine_t *xine, void *visual_gen) {
/* XvFreeAdaptorInfo (adaptor_info); this crashed on me (gb)*/
XUnlockDisplay(display);
return NULL;
- }
+ }
else {
- xprintf (xine, XINE_VERBOSITY_LOG,
+ xprintf (xine, XINE_VERBOSITY_LOG,
_("video_out_xvmc: using Xv port %ld from adaptor %s\n"
" for hardware colour space conversion and scaling\n"),
xv_port, adaptor_info[adaptor_num].name);
-
+
if(IDCTaccel&XINE_VO_IDCT_ACCEL)
xprintf (xine, XINE_VERBOSITY_LOG, _(" idct and motion compensation acceleration \n"));
else if (IDCTaccel&XINE_VO_MOTION_ACCEL)
@@ -1670,7 +1670,7 @@ static void *init_class (xine_t *xine, void *visual_gen) {
}
XUnlockDisplay(display);
-
+
this = (xvmc_class_t *) malloc (sizeof (xvmc_class_t));
if (!this)
diff --git a/src/video_out/video_out_xxmc.c b/src/video_out/video_out_xxmc.c
index d0e141c70..5f131855f 100644
--- a/src/video_out/video_out_xxmc.c
+++ b/src/video_out/video_out_xxmc.c
@@ -4,7 +4,7 @@
*
* This file is part of xine, a free video player.
*
- * xine is free software; you can redistribute it and/or modify it
+ * xine is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
@@ -40,7 +40,7 @@
static int gX11Fail;
-static void xxmc_frame_updates(xxmc_driver_t *driver, xxmc_frame_t *frame,
+static void xxmc_frame_updates(xxmc_driver_t *driver, xxmc_frame_t *frame,
int init_macroblocks);
static void dispose_ximage (xxmc_driver_t *this, XShmSegmentInfo *shminfo,
XvImage *myimage);
@@ -69,7 +69,7 @@ static const unsigned int accel_priority[] = {
* Additional thread safety, since the plugin may decide to destroy a context
* while it's surfaces are still active in the video-out loop.
* When / If XvMC libs are reasonably thread-safe, the locks can be made
- * more efficient by allowing multiple threads in that do not destroy
+ * more efficient by allowing multiple threads in that do not destroy
* the context or surfaces that may be active in other threads.
*/
@@ -92,7 +92,7 @@ void xvmc_context_reader_lock(context_lock_t *c)
#ifdef XVMC_THREAD_SAFE
c->num_readers++;
pthread_mutex_unlock(&c->mutex);
-#endif
+#endif
}
void xvmc_context_reader_unlock(context_lock_t *c)
@@ -103,9 +103,9 @@ void xvmc_context_reader_unlock(context_lock_t *c)
if (--(c->num_readers) == 0) {
pthread_cond_broadcast(&c->cond);
}
- }
+ }
#endif
- pthread_mutex_unlock(&c->mutex);
+ pthread_mutex_unlock(&c->mutex);
}
static void xvmc_context_writer_lock(context_lock_t *c)
@@ -115,7 +115,7 @@ static void xvmc_context_writer_lock(context_lock_t *c)
while(c->num_readers) {
pthread_cond_wait(&c->cond, &c->mutex);
}
-#endif
+#endif
}
static void xvmc_context_writer_unlock(context_lock_t *c)
@@ -131,34 +131,34 @@ static void xvmc_context_writer_unlock(context_lock_t *c)
-static void xxmc_xvmc_dump_surfaces(xxmc_driver_t *this )
+static void xxmc_xvmc_dump_surfaces(xxmc_driver_t *this )
{
int
i;
xvmc_surface_handler_t *handler = &this->xvmc_surf_handler;
for (i=0; i<XVMC_MAX_SURFACES; ++i) {
- xprintf(this->xine, XINE_VERBOSITY_DEBUG, "%d %d;",handler->surfInUse[i],
+ xprintf(this->xine, XINE_VERBOSITY_DEBUG, "%d %d;",handler->surfInUse[i],
handler->surfValid[i]);
}
- xprintf(this->xine, XINE_VERBOSITY_DEBUG, "\n");
+ xprintf(this->xine, XINE_VERBOSITY_DEBUG, "\n");
}
-static void xxmc_xvmc_dump_subpictures(xxmc_driver_t *this)
+static void xxmc_xvmc_dump_subpictures(xxmc_driver_t *this)
{
int
i;
xvmc_surface_handler_t *handler = &this->xvmc_surf_handler;
for (i=0; i<XVMC_MAX_SUBPICTURES; ++i) {
- xprintf(this->xine, XINE_VERBOSITY_DEBUG, "%d %d;",handler->subInUse[i],
+ xprintf(this->xine, XINE_VERBOSITY_DEBUG, "%d %d;",handler->subInUse[i],
handler->subValid[i]);
}
- xprintf(this->xine, XINE_VERBOSITY_DEBUG, "\n");
+ xprintf(this->xine, XINE_VERBOSITY_DEBUG, "\n");
}
-static void xxmc_xvmc_surface_handler_construct(xxmc_driver_t *this)
+static void xxmc_xvmc_surface_handler_construct(xxmc_driver_t *this)
{
xvmc_surface_handler_t *handler = &this->xvmc_surf_handler;
@@ -208,11 +208,11 @@ static void xxmc_xvmc_destroy_subpictures(xxmc_driver_t *this)
}
pthread_mutex_unlock(&handler->mutex);
}
-
-static XvMCSurface *xxmc_xvmc_alloc_surface(xxmc_driver_t *this,
+
+static XvMCSurface *xxmc_xvmc_alloc_surface(xxmc_driver_t *this,
XvMCContext *context)
{
- xvmc_surface_handler_t *handler = &this->xvmc_surf_handler;
+ xvmc_surface_handler_t *handler = &this->xvmc_surf_handler;
int i;
pthread_mutex_lock(&handler->mutex);
@@ -228,7 +228,7 @@ static XvMCSurface *xxmc_xvmc_alloc_surface(xxmc_driver_t *this,
for (i=0; i<XVMC_MAX_SURFACES; ++i) {
if (!handler->surfInUse[i]) {
XVMCLOCKDISPLAY( this->display );
- if (Success != XvMCCreateSurface( this->display, context,
+ if (Success != XvMCCreateSurface( this->display, context,
handler->surfaces + i)) {
XVMCUNLOCKDISPLAY( this->display );
pthread_mutex_unlock(&handler->mutex);
@@ -247,13 +247,13 @@ static XvMCSurface *xxmc_xvmc_alloc_surface(xxmc_driver_t *this,
return NULL;
}
-static void xxmc_xvmc_free_surface(xxmc_driver_t *this, XvMCSurface *surf)
+static void xxmc_xvmc_free_surface(xxmc_driver_t *this, XvMCSurface *surf)
{
xvmc_surface_handler_t *handler = &this->xvmc_surf_handler;
unsigned
index = surf - handler->surfaces;
- if (index >= XVMC_MAX_SURFACES) return;
+ if (index >= XVMC_MAX_SURFACES) return;
pthread_mutex_lock(&handler->mutex);
xprintf (this->xine, XINE_VERBOSITY_DEBUG,
LOG_MODULE ": Disposing of surface %d\n",index);
@@ -277,7 +277,7 @@ int xxmc_xvmc_surface_valid(xxmc_driver_t *this, XvMCSurface *surf)
}
static XvMCSubpicture *xxmc_xvmc_alloc_subpicture
- (xxmc_driver_t *this,
+ (xxmc_driver_t *this,
XvMCContext *context, unsigned short width,
unsigned short height, int xvimage_id)
{
@@ -290,7 +290,7 @@ static XvMCSubpicture *xxmc_xvmc_alloc_subpicture
for (i=0; i<XVMC_MAX_SUBPICTURES; ++i) {
if (handler->subValid[i] && !handler->subInUse[i]) {
XVMCLOCKDISPLAY( this->display );
- if (XvMCGetSubpictureStatus( this->display, handler->subpictures + i,
+ if (XvMCGetSubpictureStatus( this->display, handler->subpictures + i,
&status)) {
XVMCUNLOCKDISPLAY( this->display );
continue;
@@ -307,7 +307,7 @@ static XvMCSubpicture *xxmc_xvmc_alloc_subpicture
for (i=0; i<XVMC_MAX_SUBPICTURES; ++i) {
if (!handler->subInUse[i]) {
XVMCLOCKDISPLAY( this->display );
- if (Success != XvMCCreateSubpicture( this->display, context,
+ if (Success != XvMCCreateSubpicture( this->display, context,
handler->subpictures + i,
width, height, xvimage_id)) {
XVMCUNLOCKDISPLAY( this->display );
@@ -327,14 +327,14 @@ static XvMCSubpicture *xxmc_xvmc_alloc_subpicture
return NULL;
}
-static void xxmc_xvmc_free_subpicture(xxmc_driver_t *this, XvMCSubpicture *sub)
+static void xxmc_xvmc_free_subpicture(xxmc_driver_t *this, XvMCSubpicture *sub)
{
xvmc_surface_handler_t *handler = &this->xvmc_surf_handler;
unsigned
index = sub - handler->subpictures;
- if (index >= XVMC_MAX_SUBPICTURES) return;
+ if (index >= XVMC_MAX_SUBPICTURES) return;
pthread_mutex_lock(&handler->mutex);
xprintf (this->xine, XINE_VERBOSITY_DEBUG,
LOG_MODULE ": Disposing of subpicture %d\n",index);
@@ -346,7 +346,7 @@ static void xxmc_xvmc_free_subpicture(xxmc_driver_t *this, XvMCSubpicture *sub)
/*
* Callback used by decoder to check that surfaces are still valid,
- * and to lock the context so that it won't get destroyed during
+ * and to lock the context so that it won't get destroyed during
* decoding.
*/
@@ -356,9 +356,9 @@ static int xxmc_lock_and_validate_surfaces(vo_frame_t *cur_frame,
vo_frame_t *bw_frame,
unsigned pc_type)
{
- xxmc_driver_t
+ xxmc_driver_t
*driver = (xxmc_driver_t *) cur_frame->driver;
- xxmc_frame_t
+ xxmc_frame_t
*frame;
xvmc_context_reader_lock( &driver->xvmc_lock );
@@ -377,7 +377,7 @@ static int xxmc_lock_and_validate_surfaces(vo_frame_t *cur_frame,
if (!xxmc_xvmc_surface_valid( driver, frame->xvmc_surf)) break;
return 0;
}
-
+
xvmc_context_reader_unlock( &driver->xvmc_lock );
return -1;
}
@@ -388,19 +388,19 @@ static int xxmc_lock_and_validate_surfaces(vo_frame_t *cur_frame,
static void xxmc_unlock_surfaces(vo_driver_t *this_gen)
{
- xxmc_driver_t
+ xxmc_driver_t
*driver = (xxmc_driver_t *) this_gen;
-
+
xvmc_context_reader_unlock( &driver->xvmc_lock );
}
/*
- * Callback for decoder.
- * Check that the surface is vaid and
+ * Callback for decoder.
+ * Check that the surface is vaid and
* flush outstanding rendering requests on this surface.
*/
-static void xvmc_flush(vo_frame_t *this_gen)
+static void xvmc_flush(vo_frame_t *this_gen)
{
xxmc_frame_t
@@ -412,7 +412,7 @@ static void xvmc_flush(vo_frame_t *this_gen)
if ( ! xxmc_xvmc_surface_valid( driver, frame->xvmc_surf)) {
frame->xxmc_data.result = 128;
- xvmc_context_reader_unlock( &driver->xvmc_lock );
+ xvmc_context_reader_unlock( &driver->xvmc_lock );
return;
}
@@ -432,10 +432,10 @@ static void xvmc_flush(vo_frame_t *this_gen)
* using a call to XvMCBlendSubpicture2 with a blank subpicture.
*/
-static void xxmc_duplicate_frame_data(vo_frame_t *this_gen,
- vo_frame_t *original)
+static void xxmc_duplicate_frame_data(vo_frame_t *this_gen,
+ vo_frame_t *original)
{
- xxmc_frame_t *this = (xxmc_frame_t *) this_gen,
+ xxmc_frame_t *this = (xxmc_frame_t *) this_gen,
*orig = (xxmc_frame_t *) original;
xxmc_driver_t *driver = (xxmc_driver_t *) this_gen->driver;
xine_t *xine = driver->xine;
@@ -450,26 +450,26 @@ static void xxmc_duplicate_frame_data(vo_frame_t *this_gen,
if (!xxmc_xvmc_surface_valid(driver,orig->xvmc_surf)) {
xvmc_context_writer_unlock( &driver->xvmc_lock );
return;
- }
+ }
this->xxmc_data = *xxmc;
this->xxmc_data.xvmc.vo_frame = &this->vo_frame;
this->width = original->width;
this->height = original->height;
this->format = original->format;
this->ratio = original->ratio;
-
- xxmc_frame_updates(driver,this,0);
+
+ xxmc_frame_updates(driver,this,0);
/*
- * Allocate a dummy subpicture and copy using
- * XvMCBlendsubpicture2. VLD implementations can do blending with a
+ * Allocate a dummy subpicture and copy using
+ * XvMCBlendsubpicture2. VLD implementations can do blending with a
* NULL subpicture. Use that if possible.
*/
need_dummy = (xxmc->acceleration != XINE_XVMC_ACCEL_VLD);
tmp = NULL;
if (need_dummy) {
- tmp = xxmc_xvmc_alloc_subpicture( driver, &driver->context,
+ tmp = xxmc_xvmc_alloc_subpicture( driver, &driver->context,
this->width, this->height,
driver->xvmc_cap
[driver->xvmc_cur_cap].subPicType.id);
@@ -478,20 +478,20 @@ static void xxmc_duplicate_frame_data(vo_frame_t *this_gen,
XVMCLOCKDISPLAY( driver->display );
if (tmp) XvMCClearSubpicture(driver->display, tmp , 0,0, this->width,
this->height, 0);
- if (Success == XvMCBlendSubpicture2( driver->display, orig->xvmc_surf,
+ if (Success == XvMCBlendSubpicture2( driver->display, orig->xvmc_surf,
this->xvmc_surf, tmp,
- 0,0,this->width, this->height,
+ 0,0,this->width, this->height,
0,0,this->width, this->height)) {
this->xxmc_data.decoded = 1;
}
XVMCUNLOCKDISPLAY( driver->display );
if (tmp) xxmc_xvmc_free_subpicture( driver, tmp);
}
-
+
xvmc_context_writer_unlock( &driver->xvmc_lock );
xprintf(xine, XINE_VERBOSITY_DEBUG, "Duplicated XvMC frame %d %d.\n",
this->width,this->height);
-}
+}
static uint32_t xxmc_get_capabilities (vo_driver_t *this_gen) {
xxmc_driver_t *this = (xxmc_driver_t *) this_gen;
@@ -500,7 +500,7 @@ static uint32_t xxmc_get_capabilities (vo_driver_t *this_gen) {
}
-static void xxmc_frame_field (vo_frame_t *vo_img, int which_field)
+static void xxmc_frame_field (vo_frame_t *vo_img, int which_field)
{
lprintf ("xvmc_frame_field\n");
}
@@ -545,13 +545,13 @@ static void xxmc_frame_dispose (vo_frame_t *vo_img) {
*/
static vo_frame_t *xxmc_alloc_frame (vo_driver_t *this_gen) {
- xxmc_driver_t *this = (xxmc_driver_t *) this_gen;
+ xxmc_driver_t *this = (xxmc_driver_t *) this_gen;
xxmc_frame_t *frame ;
frame = calloc(1, sizeof (xxmc_frame_t));
if (!frame)
return NULL;
-
+
pthread_mutex_init (&frame->vo_frame.mutex, NULL);
frame->xvmc_surf = NULL;
@@ -577,7 +577,7 @@ static vo_frame_t *xxmc_alloc_frame (vo_driver_t *this_gen) {
static int HandleXError (Display *display, XErrorEvent *xevent) {
char str [1024];
-
+
XGetErrorText (display, xevent->error_code, str, 1024);
printf ("received X error event: %s\n", str);
gX11Fail = 1;
@@ -609,7 +609,7 @@ static XvImage *create_ximage (xxmc_driver_t *this, XShmSegmentInfo *shminfo,
}
switch (format) {
- case XINE_IMGFMT_YV12:
+ case XINE_IMGFMT_YV12:
xv_format = this->xv_format_yv12;
break;
case XINE_IMGFMT_YUY2:
@@ -759,7 +759,7 @@ static void xxmc_dispose_context(xxmc_driver_t *driver)
XvMCDestroyMacroBlocks( driver->display, &macroblocks->macro_blocks );
XvMCDestroyBlocks( driver->display , &macroblocks->blocks );
}
-
+
xprintf(driver->xine, XINE_VERBOSITY_LOG,
LOG_MODULE ": Freeing up XvMC Surfaces and subpictures.\n");
if (driver->xvmc_palette) free(driver->xvmc_palette);
@@ -769,15 +769,15 @@ static void xxmc_dispose_context(xxmc_driver_t *driver)
xprintf(driver->xine, XINE_VERBOSITY_LOG,
LOG_MODULE ": Freeing up XvMC Context.\n");
XLockDisplay (driver->display);
- if (driver->subImage)
- dispose_ximage(driver, &driver->subShmInfo, driver->subImage);
+ if (driver->subImage)
+ dispose_ximage(driver, &driver->subShmInfo, driver->subImage);
driver->subImage = NULL;
XUnlockDisplay (driver->display);
XVMCLOCKDISPLAY( driver->display );
XvMCDestroyContext( driver->display, &driver->context);
XVMCUNLOCKDISPLAY( driver->display );
driver->contextActive = 0;
- driver->hwSubpictures = 0;
+ driver->hwSubpictures = 0;
driver->xvmc_accel = 0;
}
}
@@ -785,7 +785,7 @@ static void xxmc_dispose_context(xxmc_driver_t *driver)
/*
* Find a suitable XvMC Context according to the acceleration request
* passed to us in the xxmc variable, and to the acceleration type
- * priority set up in this plugin. Result is returned in
+ * priority set up in this plugin. Result is returned in
* driver->xvmc_cur_cap.
*/
@@ -799,7 +799,7 @@ static int xxmc_find_context(xxmc_driver_t *driver, xine_xxmc_t *xxmc,
request_mpeg_flags = xxmc->mpeg;
found = 0;
curCap = NULL;
-
+
for (k = 0; k < NUM_ACCEL_PRIORITY; ++k) {
request_accel_flags = xxmc->acceleration & accel_priority[k];
if (!request_accel_flags) continue;
@@ -833,7 +833,7 @@ static int xxmc_find_context(xxmc_driver_t *driver, xine_xxmc_t *xxmc,
}
driver->xvmc_accel = 0;
return 0;
-}
+}
static int xxmc_create_context(xxmc_driver_t *driver, unsigned width, unsigned height)
{
@@ -843,9 +843,9 @@ static int xxmc_create_context(xxmc_driver_t *driver, unsigned width, unsigned h
xprintf(driver->xine, XINE_VERBOSITY_LOG,
LOG_MODULE ": Creating new XvMC Context %d\n",curCap->type_id);
XVMCLOCKDISPLAY( driver->display );
- if (Success == XvMCCreateContext( driver->display, driver->xv_port,
+ if (Success == XvMCCreateContext( driver->display, driver->xv_port,
curCap->type_id, width,
- height, driver->context_flags,
+ height, driver->context_flags,
&driver->context)) {
driver->xvmc_mpeg = curCap->mpeg_flags;
driver->xvmc_width = width;
@@ -866,26 +866,26 @@ static void xxmc_setup_subpictures(xxmc_driver_t *driver, unsigned width, unsign
/*
* Determine if we can use hardware subpictures, and in that case, set up an
* XvImage that we can use for blending.
- */
+ */
curCap = driver->xvmc_cap + driver->xvmc_cur_cap;
- if ((width > curCap->sub_max_width) ||
+ if ((width > curCap->sub_max_width) ||
(height > curCap->sub_max_height)) return;
- if ((driver->xvmc_backend_subpic = (curCap->flags & XVMC_BACKEND_SUBPICTURE)))
+ if ((driver->xvmc_backend_subpic = (curCap->flags & XVMC_BACKEND_SUBPICTURE)))
xprintf(driver->xine, XINE_VERBOSITY_LOG,
LOG_MODULE ": Using Backend subpictures.\n");
-
+
if (!driver->subImage) {
/*
* Note: If other image formats than xx44 are to be used here, they must be
- * translated to XINE_IMGFMT_XXX, since that is what create_ximage
+ * translated to XINE_IMGFMT_XXX, since that is what create_ximage
* expects.
*/
XLockDisplay (driver->display);
- driver->subImage =
+ driver->subImage =
create_ximage(driver, &driver->subShmInfo, width, height, curCap->subPicType.id);
XUnlockDisplay (driver->display);
if (NULL == driver->subImage) {
@@ -895,15 +895,15 @@ static void xxmc_setup_subpictures(xxmc_driver_t *driver, unsigned width, unsign
}
}
- sp = xxmc_xvmc_alloc_subpicture( driver, &driver->context, width,
+ sp = xxmc_xvmc_alloc_subpicture( driver, &driver->context, width,
height, curCap->subPicType.id);
if (sp == NULL) return;
_x_init_xx44_palette( &driver->palette, sp->num_palette_entries);
- driver->xvmc_palette = (char *) xine_xmalloc(sp->num_palette_entries
+ driver->xvmc_palette = (char *) xine_xmalloc(sp->num_palette_entries
* sp->entry_bytes);
xxmc_xvmc_free_subpicture( driver, sp);
- if (driver->xvmc_palette == NULL) return;
+ if (driver->xvmc_palette == NULL) return;
driver->hwSubpictures = 1;
}
}
@@ -933,8 +933,8 @@ static int xxmc_mocomp_create_macroblocks(xxmc_driver_t *driver,
xxmc->xvmc.macroblocks = (xine_macroblocks_t *)macroblocks;
return 1;
-}
-
+}
+
static void xvmc_check_colorkey_properties(xxmc_driver_t *driver)
{
int num,i;
@@ -949,7 +949,7 @@ static void xvmc_check_colorkey_properties(xxmc_driver_t *driver)
driver->have_xvmc_autopaint = 0;
if (driver->context_flags & XVMC_OVERLAID_SURFACE) {
XVMCLOCKDISPLAY( driver->display );
- xvmc_attributes = XvMCQueryAttributes( driver->display,
+ xvmc_attributes = XvMCQueryAttributes( driver->display,
&driver->context,
&num);
if (xvmc_attributes) {
@@ -959,7 +959,7 @@ static void xvmc_check_colorkey_properties(xxmc_driver_t *driver)
XvMCSetAttribute(driver->display, &driver->context,ap,
driver->props[VO_PROP_AUTOPAINT_COLORKEY].value);
driver->have_xvmc_autopaint = 1;
- }
+ }
}
}
XFree(xvmc_attributes);
@@ -972,16 +972,16 @@ static void xvmc_check_colorkey_properties(xxmc_driver_t *driver)
static int xxmc_xvmc_update_context(xxmc_driver_t *driver, xxmc_frame_t *frame,
- uint32_t width, uint32_t height, int frame_format_xxmc)
+ uint32_t width, uint32_t height, int frame_format_xxmc)
{
xine_xxmc_t *xxmc = &frame->xxmc_data;
/*
* Are we at all capable of doing XvMC ?
- */
+ */
-
- if (driver->xvmc_cap == 0)
+
+ if (driver->xvmc_cap == 0)
return 0;
xprintf(driver->xine, XINE_VERBOSITY_LOG,
@@ -992,18 +992,18 @@ static int xxmc_xvmc_update_context(xxmc_driver_t *driver, xxmc_frame_t *frame,
" mpeg: %d acceleration: %d", xxmc->mpeg, xxmc->acceleration);
}
xprintf(driver->xine, XINE_VERBOSITY_LOG, "\n");
-
+
if (frame->xvmc_surf)
xxmc_xvmc_free_surface( driver , frame->xvmc_surf);
frame->xvmc_surf = NULL;
xxmc_dispose_context( driver );
-
+
if (frame_format_xxmc && xxmc_find_context( driver, xxmc, width, height )) {
xxmc_create_context( driver, width, height);
xvmc_check_colorkey_properties( driver );
xxmc_setup_subpictures(driver, width, height);
- if ((driver->xvmc_accel &
+ if ((driver->xvmc_accel &
(XINE_XVMC_ACCEL_MOCOMP | XINE_XVMC_ACCEL_IDCT))) {
if (!xxmc_mocomp_create_macroblocks(driver, frame, 1)) {
printf(LOG_MODULE ": ERROR: Macroblock allocation failed\n");
@@ -1018,15 +1018,15 @@ static int xxmc_xvmc_update_context(xxmc_driver_t *driver, xxmc_frame_t *frame,
} else {
printf(LOG_MODULE ": Using hardware decoding for this stream.\n");
}
-
+
driver->xvmc_mpeg = xxmc->mpeg;
driver->xvmc_width = width;
driver->xvmc_height = height;
return driver->contextActive;
}
-static void xxmc_frame_updates(xxmc_driver_t *driver,
- xxmc_frame_t *frame,
+static void xxmc_frame_updates(xxmc_driver_t *driver,
+ xxmc_frame_t *frame,
int init_macroblocks)
{
xine_xxmc_t *xxmc = &frame->xxmc_data;
@@ -1047,10 +1047,10 @@ static void xxmc_frame_updates(xxmc_driver_t *driver,
/*
* If it is NULL create a new surface.
- */
+ */
if (frame->xvmc_surf == NULL) {
- if (NULL == (frame->xvmc_surf =
+ if (NULL == (frame->xvmc_surf =
xxmc_xvmc_alloc_surface( driver, &driver->context))) {
fprintf(stderr, LOG_MODULE ": ERROR: Accelerated surface allocation failed.\n"
LOG_MODULE ": You are probably out of framebuffer memory.\n"
@@ -1058,7 +1058,7 @@ static void xxmc_frame_updates(xxmc_driver_t *driver,
driver->xvmc_accel = 0;
xxmc_dispose_context( driver );
return;
- }
+ }
xxmc->xvmc.macroblocks = (xine_macroblocks_t *) &driver->macroblocks;
xxmc->xvmc.macroblocks->xvmc_accel = (driver->unsigned_intra) ?
0 : XINE_VO_SIGNED_INTRA;
@@ -1077,7 +1077,7 @@ static void xxmc_frame_updates(xxmc_driver_t *driver,
xxmc->proc_xxmc_flush = xvmc_flush;
xxmc->proc_xxmc_lock_valid = xxmc_lock_and_validate_surfaces;
xxmc->proc_xxmc_unlock = xxmc_unlock_surfaces;
-
+
xxmc->xvmc.proc_macro_block = xxmc_xvmc_proc_macro_block;
frame->vo_frame.proc_duplicate_frame_data = xxmc_duplicate_frame_data;
#ifdef HAVE_VLDXVMC
@@ -1089,7 +1089,7 @@ static void xxmc_frame_updates(xxmc_driver_t *driver,
if (init_macroblocks) {
driver->macroblocks.num_blocks = 0;
driver->macroblocks.macroblockptr = driver->macroblocks.macroblockbaseptr;
- driver->macroblocks.xine_mc.blockptr =
+ driver->macroblocks.xine_mc.blockptr =
driver->macroblocks.xine_mc.blockbaseptr;
}
xxmc->acceleration = driver->xvmc_accel;
@@ -1111,7 +1111,7 @@ static void dispose_ximage (xxmc_driver_t *this,
shminfo->shmid = -1;
}
- }
+ }
else {
if (myimage->data) free(myimage->data);
XFree (myimage);
@@ -1131,29 +1131,29 @@ static void xxmc_do_update_frame_xv(vo_driver_t *this_gen,
if (this->use_pitch_alignment) {
width = (width + 7) & ~0x7;
}
-
+
if ((frame->width != width)
|| (frame->height != height)
|| (frame->last_sw_format != format)) {
-
+
frame->last_sw_format = format;
XLockDisplay (this->display);
-
+
/*
* (re-) allocate xvimage
*/
-
+
if (frame->image) {
dispose_ximage (this, &frame->shminfo, frame->image);
frame->image = NULL;
}
-
+
frame->image = create_ximage (this, &frame->shminfo, width, height, format);
-
+
if(format == XINE_IMGFMT_YUY2) {
frame->vo_frame.pitches[0] = frame->image->pitches[0];
frame->vo_frame.base[0] = frame->image->data + frame->image->offsets[0];
- }
+ }
else {
frame->vo_frame.pitches[0] = frame->image->pitches[0];
frame->vo_frame.pitches[1] = frame->image->pitches[2];
@@ -1162,14 +1162,14 @@ static void xxmc_do_update_frame_xv(vo_driver_t *this_gen,
frame->vo_frame.base[1] = frame->image->data + frame->image->offsets[2];
frame->vo_frame.base[2] = frame->image->data + frame->image->offsets[1];
}
-
+
XUnlockDisplay (this->display);
}
frame->ratio = ratio;
frame->width = width;
frame->height = height;
- frame->format = format;
+ frame->format = format;
frame->vo_frame.format = frame->format;
}
@@ -1186,7 +1186,7 @@ static int xxmc_accel_update(xxmc_driver_t *driver,
/*
* Same acceleration request. No need to change.
- */
+ */
if (last_request == new_request) return 0;
@@ -1205,7 +1205,7 @@ static int xxmc_accel_update(xxmc_driver_t *driver,
if (new_request & accel_priority[k]) return 1;
}
- /*
+ /*
* Should never get here.
*/
@@ -1242,10 +1242,10 @@ static void xxmc_do_update_frame(vo_driver_t *this_gen,
this->last_accel_request = xxmc->acceleration;
}
- if (this->contextActive)
+ if (this->contextActive)
xxmc_frame_updates(this, frame, 1);
- xxmc_do_update_frame_xv(this_gen, &frame->vo_frame, width, height, ratio,
+ xxmc_do_update_frame_xv(this_gen, &frame->vo_frame, width, height, ratio,
xxmc->fallback_format, flags);
if (!this->contextActive) {
@@ -1258,7 +1258,7 @@ static void xxmc_do_update_frame(vo_driver_t *this_gen,
}
xvmc_context_writer_unlock( &this->xvmc_lock);
-
+
if (frame_gen != &frame->vo_frame) {
/* this is an intercepted frame, so we need to detect and propagate any
* changes on the original vo_frame to all the intercepted frames */
@@ -1293,7 +1293,7 @@ static void xxmc_do_update_frame(vo_driver_t *this_gen,
xxmc_xvmc_update_context(this, frame, width, height, 0);
}
frame->vo_frame.proc_duplicate_frame_data = NULL;
- xxmc_do_update_frame_xv(this_gen, &frame->vo_frame, width, height, ratio,
+ xxmc_do_update_frame_xv(this_gen, &frame->vo_frame, width, height, ratio,
format, flags);
}
}
@@ -1301,7 +1301,7 @@ static void xxmc_do_update_frame(vo_driver_t *this_gen,
static void xxmc_update_frame_format(vo_driver_t *this_gen,
vo_frame_t *frame_gen,
uint32_t width, uint32_t height,
- double ratio, int format, int flags)
+ double ratio, int format, int flags)
{
if (format != XINE_IMGFMT_XXMC) {
@@ -1319,7 +1319,7 @@ static void xxmc_update_frame_format(vo_driver_t *this_gen,
xine_xxmc_t *xxmc = (xine_xxmc_t *)frame_gen->accel_data;
xxmc->decoded = 0;
xxmc->proc_xxmc_update_frame = xxmc_do_update_frame;
- frame_gen->proc_duplicate_frame_data = xxmc_duplicate_frame_data;
+ frame_gen->proc_duplicate_frame_data = xxmc_duplicate_frame_data;
}
}
@@ -1341,16 +1341,16 @@ static int xxmc_clean_output_area (xxmc_driver_t *this, int xvmc_active) {
this->sc.border[i].w, this->sc.border[i].h);
}
}
-
+
/*
* XvMC does not support autopainting regardless of whether there's an
- * Xv attribute for it. However, if there is an XvMC attribute for
- * autopainting, we should be able to assume it is supported.
+ * Xv attribute for it. However, if there is an XvMC attribute for
+ * autopainting, we should be able to assume it is supported.
* That support is checked whenever a context is changed.
*/
- autopainting = (this->props[VO_PROP_AUTOPAINT_COLORKEY].value == 1);
- if ((xvmc_active &&
+ autopainting = (this->props[VO_PROP_AUTOPAINT_COLORKEY].value == 1);
+ if ((xvmc_active &&
(this->context_flags & XVMC_OVERLAID_SURFACE) &&
(! this->have_xvmc_autopaint ||
! autopainting)) ||
@@ -1363,12 +1363,12 @@ static int xxmc_clean_output_area (xxmc_driver_t *this, int xvmc_active) {
} else {
ret = 0;
}
-
+
if (this->xoverlay) {
x11osd_resize (this->xoverlay, this->sc.gui_width, this->sc.gui_height);
this->ovl_changed = 1;
}
-
+
XUnlockDisplay (this->display);
return ret;
}
@@ -1394,11 +1394,11 @@ static void xxmc_compute_output_size (xxmc_driver_t *this) {
}
-static void xxmc_check_xoverlay_type(xxmc_driver_t *driver, xxmc_frame_t *frame)
+static void xxmc_check_xoverlay_type(xxmc_driver_t *driver, xxmc_frame_t *frame)
{
int
- new_overlay_type = (frame->format == XINE_IMGFMT_XXMC) ?
+ new_overlay_type = (frame->format == XINE_IMGFMT_XXMC) ?
driver->xvmc_xoverlay_type : driver->xv_xoverlay_type;
if (driver->xoverlay_type != new_overlay_type) {
printf("Warning! Changing xoverlay\n");
@@ -1411,40 +1411,40 @@ static void xxmc_check_xoverlay_type(xxmc_driver_t *driver, xxmc_frame_t *frame)
}
-static void xxmc_overlay_begin (vo_driver_t *this_gen,
+static void xxmc_overlay_begin (vo_driver_t *this_gen,
vo_frame_t *frame_gen, int changed) {
xxmc_driver_t *this = (xxmc_driver_t *) this_gen;
xxmc_frame_t *frame = (xxmc_frame_t *) frame_gen;
this->ovl_changed += changed;
-
+
xvmc_context_reader_lock( &this->xvmc_lock );
- if ((frame->format == XINE_IMGFMT_XXMC) &&
+ if ((frame->format == XINE_IMGFMT_XXMC) &&
!xxmc_xvmc_surface_valid(this, frame->xvmc_surf)) {
xvmc_context_reader_unlock( &this->xvmc_lock );
return;
}
if( this->ovl_changed && this->xoverlay ) {
-
+
XLockDisplay (this->display);
xxmc_check_xoverlay_type(this, frame);
- x11osd_clear(this->xoverlay);
+ x11osd_clear(this->xoverlay);
XUnlockDisplay (this->display);
- }
- if (this->ovl_changed && (frame->format == XINE_IMGFMT_XXMC) &&
+ }
+ if (this->ovl_changed && (frame->format == XINE_IMGFMT_XXMC) &&
this->hwSubpictures ) {
this->new_subpic = xxmc_xvmc_alloc_subpicture
- ( this, &this->context, this->xvmc_width,
- this->xvmc_height,
+ ( this, &this->context, this->xvmc_width,
+ this->xvmc_height,
this->xvmc_cap[this->xvmc_cur_cap].subPicType.id);
if (this->new_subpic) {
this->first_overlay = 1;
XVMCLOCKDISPLAY( this->display );
- XvMCClearSubpicture(this->display, this->new_subpic, 0,0,
+ XvMCClearSubpicture(this->display, this->new_subpic, 0,0,
this->xvmc_width,
this->xvmc_height, 0x00);
XVMCUNLOCKDISPLAY( this->display );
@@ -1452,22 +1452,22 @@ static void xxmc_overlay_begin (vo_driver_t *this_gen,
}
}
xvmc_context_reader_unlock( &this->xvmc_lock );
-
+
this->alphablend_extra_data.offset_x = frame_gen->overlay_offset_x;
this->alphablend_extra_data.offset_y = frame_gen->overlay_offset_y;
}
-static void xxmc_overlay_end (vo_driver_t *this_gen, vo_frame_t *vo_img)
+static void xxmc_overlay_end (vo_driver_t *this_gen, vo_frame_t *vo_img)
{
xxmc_driver_t *this = (xxmc_driver_t *) this_gen;
xxmc_frame_t *frame = (xxmc_frame_t *) vo_img;
-
+
if( this->ovl_changed && this->xoverlay ) {
XLockDisplay (this->display);
x11osd_expose(this->xoverlay);
XUnlockDisplay (this->display);
- }
+ }
if ((frame->format == XINE_IMGFMT_XXMC) && this->hwSubpictures) {
LOCK_AND_SURFACE_VALID( this, frame->xvmc_surf );
if (this->ovl_changed) {
@@ -1484,7 +1484,7 @@ static void xxmc_overlay_end (vo_driver_t *this_gen, vo_frame_t *vo_img)
this->reverse_nvidia_palette ? "YVU" :
this->old_subpic->component_order);
XVMCLOCKDISPLAY( this->display );
- XvMCSetSubpicturePalette( this->display, this->old_subpic,
+ XvMCSetSubpicturePalette( this->display, this->old_subpic,
this->xvmc_palette);
XvMCFlushSubpicture( this->display , this->old_subpic);
XvMCSyncSubpicture( this->display, this->old_subpic );
@@ -1495,14 +1495,14 @@ static void xxmc_overlay_end (vo_driver_t *this_gen, vo_frame_t *vo_img)
XVMCLOCKDISPLAY( this->display );
if (this->xvmc_backend_subpic ) {
XvMCBlendSubpicture( this->display, frame->xvmc_surf,
- this->old_subpic,0,0,this->xvmc_width,
+ this->old_subpic,0,0,this->xvmc_width,
this->xvmc_height, 0, 0,
this->xvmc_width, this->xvmc_height );
} else {
- XvMCBlendSubpicture2( this->display, frame->xvmc_surf,
+ XvMCBlendSubpicture2( this->display, frame->xvmc_surf,
frame->xvmc_surf,
- this->old_subpic, 0,0,this->xvmc_width,
- this->xvmc_height,0,0,this->xvmc_width,
+ this->old_subpic, 0,0,this->xvmc_width,
+ this->xvmc_height,0,0,this->xvmc_width,
this->xvmc_height);
}
XVMCUNLOCKDISPLAY( this->display );
@@ -1513,8 +1513,8 @@ static void xxmc_overlay_end (vo_driver_t *this_gen, vo_frame_t *vo_img)
}
-static void xxmc_overlay_blend (vo_driver_t *this_gen, vo_frame_t *frame_gen,
- vo_overlay_t *overlay)
+static void xxmc_overlay_blend (vo_driver_t *this_gen, vo_frame_t *frame_gen,
+ vo_overlay_t *overlay)
{
xxmc_driver_t *this = (xxmc_driver_t *) this_gen;
xxmc_frame_t *frame = (xxmc_frame_t *) frame_gen;
@@ -1524,7 +1524,7 @@ static void xxmc_overlay_blend (vo_driver_t *this_gen, vo_frame_t *frame_gen,
if( overlay->unscaled ) {
if( this->ovl_changed && this->xoverlay ) {
XLockDisplay (this->display);
- x11osd_blend(this->xoverlay, overlay);
+ x11osd_blend(this->xoverlay, overlay);
XUnlockDisplay (this->display);
}
} else if (frame->format == XINE_IMGFMT_XXMC) {
@@ -1537,7 +1537,7 @@ static void xxmc_overlay_blend (vo_driver_t *this_gen, vo_frame_t *frame_gen,
this->subImage->height);
this->first_overlay = 0;
}
- _x_blend_xx44(this->subImage->data, overlay, this->subImage->width,
+ _x_blend_xx44(this->subImage->data, overlay, this->subImage->width,
this->subImage->height, this->subImage->width,
&this->alphablend_extra_data,
&this->palette, (this->subImage->id == FOURCC_IA44));
@@ -1549,7 +1549,7 @@ static void xxmc_overlay_blend (vo_driver_t *this_gen, vo_frame_t *frame_gen,
y1 = y0 + overlay->height;
w = this->subImage->width;
h = this->subImage->height;
-
+
x0 = (x0 < 0) ? 0 : ((x0 > w) ? w : x0);
y0 = (y0 < 0) ? 0 : ((y0 > h) ? h : y0);
x1 = (x1 < 0) ? 0 : ((x1 > w) ? w : x1);
@@ -1558,22 +1558,22 @@ static void xxmc_overlay_blend (vo_driver_t *this_gen, vo_frame_t *frame_gen,
/* anything left after clipping? */
if (x0 != x1 && y0 != y1) {
XVMCLOCKDISPLAY( this->display );
- XvMCCompositeSubpicture( this->display, this->new_subpic,
- this->subImage,
+ XvMCCompositeSubpicture( this->display, this->new_subpic,
+ this->subImage,
x0, y0, x1 - x0, y1 - y0,
x0, y0);
XVMCUNLOCKDISPLAY( this->display );
}
- xvmc_context_reader_unlock( &this->xvmc_lock );
+ xvmc_context_reader_unlock( &this->xvmc_lock );
}
}
- } else {
+ } else {
if (frame->format == XINE_IMGFMT_YV12) {
- _x_blend_yuv(frame->vo_frame.base, overlay,
+ _x_blend_yuv(frame->vo_frame.base, overlay,
frame->width, frame->height, frame->vo_frame.pitches,
&this->alphablend_extra_data);
} else {
- _x_blend_yuy2(frame->vo_frame.base[0], overlay,
+ _x_blend_yuy2(frame->vo_frame.base[0], overlay,
frame->width, frame->height, frame->vo_frame.pitches[0],
&this->alphablend_extra_data);
}
@@ -1581,7 +1581,7 @@ static void xxmc_overlay_blend (vo_driver_t *this_gen, vo_frame_t *frame_gen,
}
}
-static void xxmc_add_recent_frame (xxmc_driver_t *this, xxmc_frame_t *frame)
+static void xxmc_add_recent_frame (xxmc_driver_t *this, xxmc_frame_t *frame)
{
int i;
i = VO_NUM_RECENT_FRAMES-1;
@@ -1595,11 +1595,11 @@ static void xxmc_add_recent_frame (xxmc_driver_t *this, xxmc_frame_t *frame)
this->recent_frames[0] = frame;
}
-static int xxmc_redraw_needed (vo_driver_t *this_gen)
+static int xxmc_redraw_needed (vo_driver_t *this_gen)
{
xxmc_driver_t *this = (xxmc_driver_t *) this_gen;
int ret = 0;
-
+
if( this->cur_frame ) {
this->sc.delivered_height = this->cur_frame->height;
@@ -1616,8 +1616,8 @@ static int xxmc_redraw_needed (vo_driver_t *this_gen)
if( _x_vo_scale_redraw_needed( &this->sc ) ) {
xxmc_compute_output_size (this);
-
- xxmc_clean_output_area
+
+ xxmc_clean_output_area
(this, (this->cur_frame->format == XINE_IMGFMT_XXMC));
ret = 1;
@@ -1629,7 +1629,7 @@ static int xxmc_redraw_needed (vo_driver_t *this_gen)
return ret;
}
-static void xxmc_display_frame (vo_driver_t *this_gen, vo_frame_t *frame_gen)
+static void xxmc_display_frame (vo_driver_t *this_gen, vo_frame_t *frame_gen)
{
xxmc_driver_t *this = (xxmc_driver_t *) this_gen;
xxmc_frame_t *frame = (xxmc_frame_t *) frame_gen;
@@ -1663,7 +1663,7 @@ static void xxmc_display_frame (vo_driver_t *this_gen, vo_frame_t *frame_gen)
* reset this flag now -- it will be set again before the next call to
* xxmc_display_frame() as long as there is a scaled OSD active on screen.
*/
- this->scaled_osd_active = 0;
+ this->scaled_osd_active = 0;
/*
* queue frames (deinterlacing)
@@ -1721,7 +1721,7 @@ static void xxmc_display_frame (vo_driver_t *this_gen, vo_frame_t *frame_gen)
this->sc.displayed_xoffset, this->sc.displayed_yoffset,
this->sc.displayed_width, this->sc.displayed_height,
this->sc.output_xoffset, this->sc.output_yoffset,
- this->sc.output_width, this->sc.output_height,
+ this->sc.output_width, this->sc.output_height,
this->cur_field);
XUnlockDisplay( this->display ); /* unblocks XINE_GUI_SEND_DRAWABLE_CHANGED from changing drawable */
XVMCUNLOCKDISPLAY( this->display );
@@ -1757,12 +1757,12 @@ static void xxmc_display_frame (vo_driver_t *this_gen, vo_frame_t *frame_gen)
this->sc.displayed_xoffset, this->sc.displayed_yoffset,
this->sc.displayed_width, this->sc.displayed_height,
this->sc.output_xoffset, this->sc.output_yoffset,
- this->sc.output_width, this->sc.output_height,
+ this->sc.output_width, this->sc.output_height,
this->cur_field);
XUnlockDisplay( this->display ); /* unblocks XINE_GUI_SEND_DRAWABLE_CHANGED from changing drawable */
XVMCUNLOCKDISPLAY( this->display );
}
- }
+ }
} else {
XLockDisplay (this->display);
if (this->use_shm) {
@@ -1829,7 +1829,7 @@ static void xxmc_property_callback (void *property_gen, xine_cfg_entry_t *entry)
if (this->contextActive) {
XVMCLOCKDISPLAY( this->display );
XvMCSetAttribute(this->display, &this->context,
- property->atom,
+ property->atom,
entry->num_value);
XVMCUNLOCKDISPLAY( this->display );
}
@@ -1849,7 +1849,7 @@ static int xxmc_set_property (vo_driver_t *this_gen,
if (this->contextActive) {
XVMCLOCKDISPLAY( this->display );
XvMCSetAttribute(this->display, &this->context,
- this->props[property].atom,
+ this->props[property].atom,
value);
XVMCUNLOCKDISPLAY( this->display );
}
@@ -1867,7 +1867,7 @@ static int xxmc_set_property (vo_driver_t *this_gen,
this->props[property].entry->num_value = this->props[property].value;
return this->props[property].value;
- }
+ }
else {
switch (property) {
@@ -1883,7 +1883,7 @@ static int xxmc_set_property (vo_driver_t *this_gen,
value = XINE_VO_ASPECT_AUTO;
this->props[property].value = value;
- xprintf(this->xine, XINE_VERBOSITY_LOG,
+ xprintf(this->xine, XINE_VERBOSITY_LOG,
LOG_MODULE ": VO_PROP_ASPECT_RATIO(%d)\n", this->props[property].value);
this->sc.user_ratio = value;
@@ -1897,7 +1897,7 @@ static int xxmc_set_property (vo_driver_t *this_gen,
this->props[property].value = value;
xprintf(this->xine, XINE_VERBOSITY_LOG,
LOG_MODULE ": VO_PROP_ZOOM_X = %d\n", this->props[property].value);
-
+
this->sc.zoom_factor_x = (double)value / (double)XINE_VO_ZOOM_STEP;
xxmc_compute_ideal_size (this);
@@ -1942,7 +1942,7 @@ static int xxmc_gui_data_exchange (vo_driver_t *this_gen,
case XINE_GUI_SEND_COMPLETION_EVENT:
break;
#endif
-
+
case XINE_GUI_SEND_EXPOSE_EVENT: {
/* XExposeEvent * xev = (XExposeEvent *) data; */
@@ -1954,7 +1954,7 @@ static int xxmc_gui_data_exchange (vo_driver_t *this_gen,
if ((frame->format == XINE_IMGFMT_XXMC) &&
(!xxmc->decoded || !xxmc_xvmc_surface_valid(this, frame->xvmc_surf))) {
xvmc_context_reader_unlock( &this->xvmc_lock );
- if (! xxmc_redraw_needed (this_gen))
+ if (! xxmc_redraw_needed (this_gen))
xxmc_clean_output_area(this, (frame->format == XINE_IMGFMT_XXMC));
break;
}
@@ -1968,8 +1968,8 @@ static int xxmc_gui_data_exchange (vo_driver_t *this_gen,
this->sc.displayed_xoffset, this->sc.displayed_yoffset,
this->sc.displayed_width, this->sc.displayed_height,
this->sc.output_xoffset, this->sc.output_yoffset,
- this->sc.output_width, this->sc.output_height,
- this->cur_field);
+ this->sc.output_width, this->sc.output_height,
+ this->cur_field);
XVMCUNLOCKDISPLAY( this->display );
} else {
XLockDisplay (this->display);
@@ -1994,10 +1994,10 @@ static int xxmc_gui_data_exchange (vo_driver_t *this_gen,
xvmc_context_reader_unlock( &this->xvmc_lock );
}
if(this->xoverlay)
- x11osd_expose(this->xoverlay);
-
+ x11osd_expose(this->xoverlay);
+
}
-
+
break;
case XINE_GUI_SEND_DRAWABLE_CHANGED:
@@ -2040,7 +2040,7 @@ static void xxmc_dispose (vo_driver_t *this_gen) {
xxmc_driver_t *this = (xxmc_driver_t *) this_gen;
int i;
-
+
if (this->xvmc_cap) {
xvmc_context_writer_lock( &this->xvmc_lock );
xxmc_dispose_context( this );
@@ -2077,7 +2077,7 @@ static void xxmc_dispose (vo_driver_t *this_gen) {
free_context_lock(&this->xvmc_lock);
_x_alphablend_free(&this->alphablend_extra_data);
-
+
free (this);
}
@@ -2088,7 +2088,7 @@ static int xxmc_check_yv12 (Display *display, XvPortID port) {
int i;
formatValues = XvListImageFormats (display, port, &formats);
-
+
for (i = 0; i < formats; i++)
if ((formatValues[i].id == XINE_IMGFMT_YV12) &&
(! (strcmp (formatValues[i].guid, "YV12")))) {
@@ -2109,7 +2109,7 @@ static void xxmc_check_capability (xxmc_driver_t *this,
int int_default;
cfg_entry_t *entry;
const char *str_prop = attr.name;
-
+
if (VO_PROP_COLORKEY && (attr.max_value == ~0))
attr.max_value = 2147483615;
@@ -2128,7 +2128,7 @@ static void xxmc_check_capability (xxmc_driver_t *this,
*/
if(strcmp(str_prop, "XV_AUTOPAINT_COLORKEY") == 0)
int_default = 1;
-
+
if (config_name) {
/* is this a boolean property ? */
if ((attr.min_value == 0) && (attr.max_value == 1)) {
@@ -2145,12 +2145,12 @@ static void xxmc_check_capability (xxmc_driver_t *this,
entry = this->config->lookup_entry (this->config, config_name);
- if((entry->num_value < this->props[property].min) ||
+ if((entry->num_value < this->props[property].min) ||
(entry->num_value > this->props[property].max)) {
- this->config->update_num(this->config, config_name,
+ this->config->update_num(this->config, config_name,
((this->props[property].min + this->props[property].max) >> 1));
-
+
entry = this->config->lookup_entry (this->config, config_name);
}
@@ -2158,13 +2158,13 @@ static void xxmc_check_capability (xxmc_driver_t *this,
xxmc_set_property (&this->vo_driver, property, entry->num_value);
-
+
if (strcmp(str_prop, "XV_COLORKEY") == 0) {
this->use_colorkey |= 1;
this->colorkey = entry->num_value;
} else if(strcmp(str_prop, "XV_AUTOPAINT_COLORKEY") == 0) {
if(entry->num_value==1)
- this->use_colorkey |= 2;
+ this->use_colorkey |= 2;
}
} else
this->props[property].value = int_default;
@@ -2281,13 +2281,13 @@ static XvPortID xxmc_autodetect_port(xxmc_driver_t *this,
}
-static void checkXvMCCap( xxmc_driver_t *this, XvPortID xv_port)
+static void checkXvMCCap( xxmc_driver_t *this, XvPortID xv_port)
{
int
numSurf,numSub,i,j;
XvMCSurfaceInfo
*surfaceInfo,*curInfo;
- XvMCContext
+ XvMCContext
c;
xvmc_capabilities_t
*curCap;
@@ -2306,13 +2306,13 @@ static void checkXvMCCap( xxmc_driver_t *this, XvPortID xv_port)
XVMCLOCKDISPLAY( this->display );
- if ( !XvMCQueryExtension(this->display, &this->xvmc_eventbase,
+ if ( !XvMCQueryExtension(this->display, &this->xvmc_eventbase,
&this->xvmc_errbase)) {
XVMCUNLOCKDISPLAY( this->display );
xvmc_context_writer_unlock( &this->xvmc_lock );
return;
}
- xprintf (this->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->xine, XINE_VERBOSITY_DEBUG,
LOG_MODULE ": XvMC extension present.\n");
surfaceInfo = XvMCListSurfaceTypes(this->display, xv_port, &numSurf);
@@ -2328,54 +2328,54 @@ static void checkXvMCCap( xxmc_driver_t *this, XvPortID xv_port)
curInfo = surfaceInfo;
curCap = this->xvmc_cap;
- xprintf (this->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->xine, XINE_VERBOSITY_DEBUG,
LOG_MODULE ": Found %d XvMC surface types\n", numSurf);
for (i=0; i< numSurf; ++i) {
curCap->mpeg_flags = 0;
curCap->accel_flags = 0;
if (curInfo->chroma_format == XVMC_CHROMA_FORMAT_420) {
- curCap->mpeg_flags |= ((curInfo->mc_type & XVMC_MPEG_1) ?
- XINE_XVMC_MPEG_1 : 0);
- curCap->mpeg_flags |= ((curInfo->mc_type & XVMC_MPEG_2) ?
+ curCap->mpeg_flags |= ((curInfo->mc_type & XVMC_MPEG_1) ?
+ XINE_XVMC_MPEG_1 : 0);
+ curCap->mpeg_flags |= ((curInfo->mc_type & XVMC_MPEG_2) ?
XINE_XVMC_MPEG_2 : 0);
- curCap->mpeg_flags |= ((curInfo->mc_type & XVMC_MPEG_4) ?
+ curCap->mpeg_flags |= ((curInfo->mc_type & XVMC_MPEG_4) ?
XINE_XVMC_MPEG_4 : 0);
- curCap->accel_flags |= ((curInfo->mc_type & XVMC_VLD) ?
+ curCap->accel_flags |= ((curInfo->mc_type & XVMC_VLD) ?
XINE_XVMC_ACCEL_VLD : 0);
- curCap->accel_flags |= ((curInfo->mc_type & XVMC_IDCT) ?
+ curCap->accel_flags |= ((curInfo->mc_type & XVMC_IDCT) ?
XINE_XVMC_ACCEL_IDCT : 0);
- curCap->accel_flags |= ((curInfo->mc_type & (XVMC_VLD | XVMC_IDCT)) ?
+ curCap->accel_flags |= ((curInfo->mc_type & (XVMC_VLD | XVMC_IDCT)) ?
0 : XINE_XVMC_ACCEL_MOCOMP);
curCap->max_width = curInfo->max_width;
curCap->max_height = curInfo->max_height;
curCap->sub_max_width = curInfo->subpicture_max_width;
curCap->sub_max_height = curInfo->subpicture_max_height;
curCap->flags = curInfo->flags;
- xprintf (this->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->xine, XINE_VERBOSITY_DEBUG,
LOG_MODULE ": Surface type %d: Max size: %d %d.\n",
i,curCap->max_width,curCap->max_height);
- xprintf (this->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->xine, XINE_VERBOSITY_DEBUG,
LOG_MODULE ": Surface type %d: Max subpic size: %d %d.\n",
i,curCap->sub_max_width,curCap->sub_max_height);
-
+
curCap->type_id = curInfo->surface_type_id;
- formatValues = XvMCListSubpictureTypes( this->display, xv_port,
+ formatValues = XvMCListSubpictureTypes( this->display, xv_port,
curCap->type_id, &numSub);
curCap->subPicType.id = 0;
if (formatValues) {
- xprintf (this->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->xine, XINE_VERBOSITY_DEBUG,
LOG_MODULE ": Surface type %d: Found %d XvMC subpicture types\n",i,numSub);
for (j = 0; j<numSub; ++j) {
if (formatValues[j].id == FOURCC_IA44) {
curCap->subPicType = formatValues[j];
- xprintf (this->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->xine, XINE_VERBOSITY_DEBUG,
LOG_MODULE ": Surface type %d: Detected and using IA44 subpicture type.\n",i);
/* Prefer IA44 */
break;
} else if (formatValues[j].id == FOURCC_AI44) {
curCap->subPicType = formatValues[j];
- xprintf (this->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->xine, XINE_VERBOSITY_DEBUG,
LOG_MODULE ": Surface type %d: Detected AI44 subpicture type.\n",i);
}
}
@@ -2384,7 +2384,7 @@ static void checkXvMCCap( xxmc_driver_t *this, XvPortID xv_port)
XFree(formatValues);
curInfo++;
- curCap++;
+ curCap++;
}
}
XFree(surfaceInfo);
@@ -2393,7 +2393,7 @@ static void checkXvMCCap( xxmc_driver_t *this, XvPortID xv_port)
* Try to create a direct rendering context. This will fail if we are not
* on the displaying computer or an indirect context is not available.
*/
-
+
curCap = this->xvmc_cap;
if (Success == XvMCCreateContext( this->display, xv_port, curCap->type_id,
curCap->max_width,curCap->max_height,
@@ -2406,7 +2406,7 @@ static void checkXvMCCap( xxmc_driver_t *this, XvPortID xv_port)
} else {
free(this->xvmc_cap);
this->xvmc_cap = 0;
- xprintf (this->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (this->xine, XINE_VERBOSITY_DEBUG,
LOG_MODULE ": Apparent attempt to use a direct XvMC context on a remote display.\n"
LOG_MODULE ": Falling back to Xv.\n");
XVMCUNLOCKDISPLAY( this->display );
@@ -2423,8 +2423,8 @@ static void checkXvMCCap( xxmc_driver_t *this, XvPortID xv_port)
return;
}
-
-
+
+
static vo_driver_t *open_plugin (video_driver_class_t *class_gen, const void *visual_gen) {
@@ -2445,7 +2445,7 @@ static vo_driver_t *open_plugin (video_driver_class_t *class_gen, const void *vi
XvAdaptorInfo *adaptor_info;
unsigned int adaptor_num;
xv_prefertype prefer_type;
- cfg_entry_t *entry;
+ cfg_entry_t *entry;
int use_more_frames;
int use_unscaled;
@@ -2454,7 +2454,7 @@ static vo_driver_t *open_plugin (video_driver_class_t *class_gen, const void *vi
return NULL;
_x_alphablend_init(&this->alphablend_extra_data, class->xine);
-
+
this->display = visual->display;
this->screen = visual->screen;
this->config = config;
@@ -2512,19 +2512,19 @@ static vo_driver_t *open_plugin (video_driver_class_t *class_gen, const void *vi
_("%s: Xv extension is present but I couldn't find a usable yuv12 port.\n"
"\tLooks like your graphics hardware driver doesn't support Xv?!\n"),
LOG_MODULE);
-
+
/* XvFreeAdaptorInfo (adaptor_info); this crashed on me (gb)*/
XUnlockDisplay(this->display);
return NULL;
- }
+ }
else
xprintf(class->xine, XINE_VERBOSITY_LOG,
_("%s: using Xv port %ld from adaptor %s for hardware "
"colour space conversion and scaling.\n"), LOG_MODULE, xv_port,
adaptor_info[adaptor_num].name);
-
+
XUnlockDisplay(this->display);
-
+
this->xv_port = xv_port;
_x_vo_scale_init (&this->sc, 1, 0, config );
@@ -2673,10 +2673,10 @@ static vo_driver_t *open_plugin (video_driver_class_t *class_gen, const void *vi
fo = XvListImageFormats(this->display, this->xv_port, (int*)&formats);
XUnlockDisplay (this->display);
-
+
this->xv_format_yv12 = 0;
this->xv_format_yuy2 = 0;
-
+
for(i = 0; i < formats; i++) {
lprintf ("Xv image format: 0x%x (%4.4s) %s\n",
fo[i].id, (char*)&fo[i].id,
@@ -2692,7 +2692,7 @@ static vo_driver_t *open_plugin (video_driver_class_t *class_gen, const void *vi
case XINE_IMGFMT_YUY2:
this->xv_format_yuy2 = fo[i].id;
this->capabilities |= VO_CAP_YUY2;
- xprintf(this->xine, XINE_VERBOSITY_LOG,
+ xprintf(this->xine, XINE_VERBOSITY_LOG,
_("%s: this adaptor supports the %s format.\n"), LOG_MODULE, "YUY2");
break;
default:
@@ -2717,19 +2717,19 @@ static vo_driver_t *open_plugin (video_driver_class_t *class_gen, const void *vi
dispose_ximage (this, &myshminfo, myimage);
XUnlockDisplay (this->display);
- this->use_pitch_alignment =
+ this->use_pitch_alignment =
config->register_bool (config, "video.device.xv_pitch_alignment", 0,
VIDEO_DEVICE_XV_PITCH_ALIGNMENT_HELP,
10, xxmc_update_xv_pitch_alignment, this);
- use_more_frames=
+ use_more_frames=
config->register_bool (config, "video.device.xvmc_more_frames", 0,
_("Make XvMC allocate more frames for better buffering."),
_("Some XvMC implementations allow more than 8 frames.\n"
"This option, when turned on, makes the driver try to\n"
"allocate 15 frames. A must for unichrome and live VDR.\n"),
10, NULL, this);
- this->cpu_save_enabled =
+ this->cpu_save_enabled =
config->register_bool (config, "video.device.unichrome_cpu_save", 0,
_("Unichrome cpu save"),
_("Saves CPU time by sleeping while decoder works.\n"
@@ -2768,7 +2768,7 @@ static vo_driver_t *open_plugin (video_driver_class_t *class_gen, const void *vi
#ifdef HAVE_VLDXVMC
printf("%s: Unichrome CPU saving is %s.\n", LOG_MODULE,
- (this->cpu_save_enabled) ? "on":"off");
+ (this->cpu_save_enabled) ? "on":"off");
#else
printf("%s: warning - compiled with no vld extensions.\n", LOG_MODULE);
#endif
@@ -2797,10 +2797,10 @@ static vo_driver_t *open_plugin (video_driver_class_t *class_gen, const void *vi
}
XUnlockDisplay (this->display);
}
-
+
if( this->xoverlay ) {
this->capabilities |= VO_CAP_UNSCALED_OVERLAY;
- }
+ }
return &this->vo_driver;
}
@@ -2838,4 +2838,4 @@ const plugin_info_t xine_plugin_info[] EXPORTED = {
{ PLUGIN_VIDEO_OUT, 22, "xxmc", XINE_VERSION_CODE, &vo_info_xxmc, init_class },
{ PLUGIN_NONE, 0, "", 0, NULL, NULL }
};
-
+
diff --git a/src/video_out/x11osd.c b/src/video_out/x11osd.c
index 702fabda9..8d8a78127 100644
--- a/src/video_out/x11osd.c
+++ b/src/video_out/x11osd.c
@@ -1,4 +1,4 @@
-/*
+/*
* Copyright (C) 2003 the xine project
*
* This file is part of xine, a free video player.
@@ -96,7 +96,7 @@ x11osd_expose (x11osd * osd)
assert (osd);
lprintf("expose (state:%d)\n", osd->clean );
-
+
switch (osd->mode) {
case X11OSD_SHAPED:
XShapeCombineMask (osd->display, osd->u.shaped.window, ShapeBounding, 0, 0,
@@ -106,7 +106,7 @@ x11osd_expose (x11osd * osd)
if( !osd->u.shaped.mapped )
XMapRaised (osd->display, osd->u.shaped.window);
osd->u.shaped.mapped = 1;
-
+
XCopyArea (osd->display, osd->bitmap, osd->u.shaped.window, osd->gc, 0, 0,
osd->width, osd->height, 0, 0);
} else {
@@ -129,7 +129,7 @@ x11osd_resize (x11osd * osd, int width, int height)
assert (osd);
assert (width);
assert (height);
-
+
lprintf("resize old:%dx%d new:%dx%d\n", osd->width, osd->height, width, height );
osd->width = width;
@@ -153,7 +153,7 @@ x11osd_resize (x11osd * osd, int width, int height)
osd->width, osd->height, osd->depth);
break;
}
-
+
osd->clean = UNDEFINED;
x11osd_clear(osd);
}
@@ -165,7 +165,7 @@ x11osd_drawable_changed (x11osd * osd, Window window)
XWindowAttributes getattr;
assert (osd);
-
+
lprintf("drawable changed\n");
/*
@@ -183,14 +183,14 @@ x11osd_drawable_changed (x11osd * osd, Window window)
XSync (osd->display, False);
osd->window = window;
-
+
XGetWindowAttributes (osd->display, osd->window, &getattr);
osd->width = getattr.width;
osd->height = getattr.height;
-
+
assert(osd->width);
assert(osd->height);
-
+
switch(osd->mode) {
case X11OSD_SHAPED:
XFreePixmap (osd->display, osd->u.shaped.mask_bitmap);
@@ -199,8 +199,8 @@ x11osd_drawable_changed (x11osd * osd, Window window)
attr.override_redirect = True;
attr.background_pixel = BlackPixel (osd->display, osd->screen);
osd->u.shaped.window = XCreateWindow(osd->display, osd->window,
- 0, 0, osd->width, osd->height, 0,
- CopyFromParent, CopyFromParent, CopyFromParent,
+ 0, 0, osd->width, osd->height, 0,
+ CopyFromParent, CopyFromParent, CopyFromParent,
CWBackPixel | CWOverrideRedirect, &attr);
XSelectInput (osd->display, osd->u.shaped.window, ExposureMask);
@@ -212,18 +212,18 @@ x11osd_drawable_changed (x11osd * osd, Window window)
osd->bitmap = XCreatePixmap (osd->display, osd->u.shaped.window, osd->width,
osd->height, osd->depth);
- osd->cmap = XCreateColormap(osd->display, osd->u.shaped.window,
+ osd->cmap = XCreateColormap(osd->display, osd->u.shaped.window,
osd->visual, AllocNone);
break;
case X11OSD_COLORKEY:
osd->bitmap = XCreatePixmap (osd->display, osd->window, osd->width,
osd->height, osd->depth);
- osd->cmap = XCreateColormap(osd->display, osd->window,
+ osd->cmap = XCreateColormap(osd->display, osd->window,
osd->visual, AllocNone);
break;
}
-
+
osd->clean = UNDEFINED;
/* do not x11osd_clear() here: osd->u.colorkey.sc has not being updated yet */
}
@@ -260,11 +260,11 @@ x11osd_create (xine_t *xine, Display *display, int screen, Window window, enum x
osd->visual = DefaultVisual (osd->display, osd->screen);
osd->depth = DefaultDepth (osd->display, osd->screen);
-
+
XGetWindowAttributes (osd->display, osd->window, &getattr);
osd->width = getattr.width;
osd->height = getattr.height;
-
+
assert(osd->width);
assert(osd->height);
@@ -278,8 +278,8 @@ x11osd_create (xine_t *xine, Display *display, int screen, Window window, enum x
attr.override_redirect = True;
attr.background_pixel = BlackPixel (osd->display, osd->screen);
osd->u.shaped.window = XCreateWindow(osd->display, osd->window,
- 0, 0, osd->width, osd->height, 0,
- CopyFromParent, CopyFromParent, CopyFromParent,
+ 0, 0, osd->width, osd->height, 0,
+ CopyFromParent, CopyFromParent, CopyFromParent,
CWBackPixel | CWOverrideRedirect, &attr);
XSync(osd->display, False);
@@ -288,7 +288,7 @@ x11osd_create (xine_t *xine, Display *display, int screen, Window window, enum x
goto error_window;
}
- osd->u.shaped.mask_bitmap = XCreatePixmap (osd->display, osd->u.shaped.window, osd->width,
+ osd->u.shaped.mask_bitmap = XCreatePixmap (osd->display, osd->u.shaped.window, osd->width,
osd->height, 1);
XSync(osd->display, False);
if( x11_error ) {
@@ -296,7 +296,7 @@ x11osd_create (xine_t *xine, Display *display, int screen, Window window, enum x
goto error_aftermaskbitmap;
}
- osd->bitmap = XCreatePixmap (osd->display, osd->u.shaped.window, osd->width,
+ osd->bitmap = XCreatePixmap (osd->display, osd->u.shaped.window, osd->width,
osd->height, osd->depth);
osd->gc = XCreateGC (osd->display, osd->u.shaped.window, 0, NULL);
@@ -315,14 +315,14 @@ x11osd_create (xine_t *xine, Display *display, int screen, Window window, enum x
XSelectInput (osd->display, osd->u.shaped.window, ExposureMask);
osd->u.shaped.mapped = 0;
- osd->cmap = XCreateColormap(osd->display, osd->u.shaped.window,
+ osd->cmap = XCreateColormap(osd->display, osd->u.shaped.window,
osd->visual, AllocNone);
break;
case X11OSD_COLORKEY:
- osd->bitmap = XCreatePixmap (osd->display, osd->window, osd->width,
+ osd->bitmap = XCreatePixmap (osd->display, osd->window, osd->width,
osd->height, osd->depth);
osd->gc = XCreateGC (osd->display, osd->window, 0, NULL);
- osd->cmap = XCreateColormap(osd->display, osd->window,
+ osd->cmap = XCreateColormap(osd->display, osd->window,
osd->visual, AllocNone);
/* FIXME: the expose event doesn't seem to happen? */
/*XSelectInput (osd->display, osd->window, ExposureMask);*/
@@ -342,8 +342,8 @@ x11osd_create (xine_t *xine, Display *display, int screen, Window window, enum x
XSetErrorHandler(old_handler);
- xprintf(osd->xine, XINE_VERBOSITY_DEBUG,
- _("x11osd: unscaled overlay created (%s mode).\n"),
+ xprintf(osd->xine, XINE_VERBOSITY_DEBUG,
+ _("x11osd: unscaled overlay created (%s mode).\n"),
(mode==X11OSD_SHAPED) ? "XShape" : "Colorkey" );
return osd;
@@ -402,9 +402,9 @@ x11osd_destroy (x11osd * osd)
void x11osd_clear(x11osd *osd)
{
int i;
-
+
lprintf("clear (state:%d)\n", osd->clean );
-
+
if( osd->clean != WIPED )
switch (osd->mode) {
case X11OSD_SHAPED:
@@ -442,7 +442,7 @@ void x11osd_blend(x11osd *osd, vo_overlay_t *overlay)
{
if (osd->clean==UNDEFINED)
x11osd_clear(osd); /* Workaround. Colorkey mode needs sc data before the clear. */
-
+
if (overlay->rle) {
int i, x, y, len, width;
int use_clip_palette, max_palette_colour[2];
@@ -474,7 +474,7 @@ void x11osd_blend(x11osd *osd, vo_overlay_t *overlay)
if (x + width - 1 > overlay->hili_right) {
width -= overlay->hili_right - x;
len += overlay->hili_right - x;
- }
+ }
}
}
@@ -482,7 +482,7 @@ void x11osd_blend(x11osd *osd, vo_overlay_t *overlay)
int j;
clut_t *src_clut;
uint8_t *src_trans;
-
+
if (use_clip_palette) {
src_clut = (clut_t *)&overlay->hili_color;
src_trans = (uint8_t *)&overlay->hili_trans;
@@ -507,7 +507,7 @@ void x11osd_blend(x11osd *osd, vo_overlay_t *overlay)
xcolor.green = (65536 * saturate(g, 0, 255)) / 256;
b = y + 2 * u - 274;
xcolor.blue = (65536 * saturate(b, 0, 255)) / 256;
-
+
xcolor.flags = DoRed | DoBlue | DoGreen;
XAllocColor(osd->display, osd->cmap, &xcolor);
diff --git a/src/video_out/x11osd.h b/src/video_out/x11osd.h
index 0ffd6fba6..15ea3dcc0 100644
--- a/src/video_out/x11osd.h
+++ b/src/video_out/x11osd.h
@@ -1,4 +1,4 @@
-/*
+/*
* Copyright (C) 2003 the xine project
*
* This file is part of xine, a free video player.
diff --git a/src/video_out/xcbosd.c b/src/video_out/xcbosd.c
index 2da723011..1e991347f 100644
--- a/src/video_out/xcbosd.c
+++ b/src/video_out/xcbosd.c
@@ -1,4 +1,4 @@
-/*
+/*
* Copyright (C) 2003, 2007 the xine project
*
* This file is part of xine, a free video player.
@@ -93,7 +93,7 @@ void xcbosd_expose(xcbosd *osd)
assert (osd);
lprintf("expose (state:%d)\n", osd->clean );
-
+
switch (osd->mode) {
case XCBOSD_SHAPED:
xcb_shape_mask(osd->connection, XCB_SHAPE_SO_SET, XCB_SHAPE_SK_BOUNDING,
@@ -106,7 +106,7 @@ void xcbosd_expose(xcbosd *osd)
xcb_map_window(osd->connection, osd->u.shaped.window);
}
osd->u.shaped.mapped = 1;
-
+
xcb_copy_area(osd->connection, osd->bitmap, osd->u.shaped.window,
osd->gc, 0, 0, 0, 0, osd->width, osd->height);
} else {
@@ -128,7 +128,7 @@ void xcbosd_resize(xcbosd *osd, int width, int height)
assert (osd);
assert (width);
assert (height);
-
+
lprintf("resize old:%dx%d new:%dx%d\n", osd->width, osd->height, width, height );
osd->width = width;
@@ -151,7 +151,7 @@ void xcbosd_resize(xcbosd *osd, int width, int height)
xcb_create_pixmap(osd->connection, osd->depth, osd->bitmap, osd->window, osd->width, osd->height);
break;
}
-
+
osd->clean = UNDEFINED;
xcbosd_clear(osd);
}
@@ -162,7 +162,7 @@ void xcbosd_drawable_changed(xcbosd *osd, xcb_window_t window)
xcb_get_geometry_reply_t *get_geometry_reply;
assert (osd);
-
+
lprintf("drawable changed\n");
/*
@@ -180,17 +180,17 @@ void xcbosd_drawable_changed(xcbosd *osd, xcb_window_t window)
/* XSync (osd->display, False); FIXME don't think that we need that --pfister */
osd->window = window;
-
+
get_geometry_cookie = xcb_get_geometry(osd->connection, osd->window);
get_geometry_reply = xcb_get_geometry_reply(osd->connection, get_geometry_cookie, NULL);
osd->depth = get_geometry_reply->depth;
osd->width = get_geometry_reply->width;
osd->height = get_geometry_reply->height;
free(get_geometry_reply);
-
+
assert(osd->width);
assert(osd->height);
-
+
switch(osd->mode) {
case XCBOSD_SHAPED: {
xcb_free_pixmap(osd->connection, osd->u.shaped.mask_bitmap);
@@ -223,7 +223,7 @@ void xcbosd_drawable_changed(xcbosd *osd, xcb_window_t window)
break;
}
-
+
osd->clean = UNDEFINED;
/* do not xcbosd_clear() here: osd->u.colorkey.sc has not being updated yet */
}
@@ -249,14 +249,14 @@ xcbosd *xcbosd_create(xine_t *xine, xcb_connection_t *connection, xcb_screen_t *
osd->window = window;
osd->visual = osd->screen->root_visual;
-
+
get_geometry_cookie = xcb_get_geometry(osd->connection, osd->window);
get_geometry_reply = xcb_get_geometry_reply(osd->connection, get_geometry_cookie, NULL);
osd->depth = get_geometry_reply->depth;
osd->width = get_geometry_reply->width;
osd->height = get_geometry_reply->height;
free(get_geometry_reply);
-
+
assert(osd->width);
assert(osd->height);
@@ -326,8 +326,8 @@ xcbosd *xcbosd_create(xine_t *xine, xcb_connection_t *connection, xcb_screen_t *
osd->clean = UNDEFINED;
xcbosd_expose(osd);
- xprintf(osd->xine, XINE_VERBOSITY_DEBUG,
- _("x11osd: unscaled overlay created (%s mode).\n"),
+ xprintf(osd->xine, XINE_VERBOSITY_DEBUG,
+ _("x11osd: unscaled overlay created (%s mode).\n"),
(mode==XCBOSD_SHAPED) ? "XShape" : "Colorkey" );
return osd;
@@ -382,9 +382,9 @@ void xcbosd_destroy(xcbosd *osd)
void xcbosd_clear(xcbosd *osd)
{
int i;
-
+
lprintf("clear (state:%d)\n", osd->clean );
-
+
if( osd->clean != WIPED )
switch (osd->mode) {
case XCBOSD_SHAPED: {
@@ -435,7 +435,7 @@ void xcbosd_blend(xcbosd *osd, vo_overlay_t *overlay)
if (osd->clean==UNDEFINED)
xcbosd_clear(osd); /* Workaround. Colorkey mode needs sc data before the clear. */
-
+
if (overlay->rle) {
int i, x, y, len, width;
int use_clip_palette, max_palette_colour[2];
@@ -467,7 +467,7 @@ void xcbosd_blend(xcbosd *osd, vo_overlay_t *overlay)
if (x + width - 1 > overlay->hili_right) {
width -= overlay->hili_right - x;
len += overlay->hili_right - x;
- }
+ }
}
}
@@ -475,7 +475,7 @@ void xcbosd_blend(xcbosd *osd, vo_overlay_t *overlay)
int j;
clut_t *src_clut;
uint8_t *src_trans;
-
+
if (use_clip_palette) {
src_clut = (clut_t *)&overlay->hili_color;
src_trans = (uint8_t *)&overlay->hili_trans;
diff --git a/src/video_out/xcbosd.h b/src/video_out/xcbosd.h
index 1d4fd1c3a..89c317f3e 100644
--- a/src/video_out/xcbosd.h
+++ b/src/video_out/xcbosd.h
@@ -1,4 +1,4 @@
-/*
+/*
* Copyright (C) 2003, 2007 the xine project
*
* This file is part of xine, a free video player.
diff --git a/src/video_out/xvmc_mocomp.c b/src/video_out/xvmc_mocomp.c
index bd7e4e163..9bb3c5d10 100644
--- a/src/video_out/xvmc_mocomp.c
+++ b/src/video_out/xvmc_mocomp.c
@@ -23,15 +23,15 @@
#include "xxmc.h"
-static void calc_DMV(int DMV[][2], int *dmvector,
+static void calc_DMV(int DMV[][2], int *dmvector,
int mvx, int mvy, int picture_structure, int top_field_first) {
-
+
if (picture_structure==VO_BOTH_FIELDS) {
if (top_field_first) {
/* vector for prediction of top field from bottom field */
DMV[0][0] = ((mvx +(mvx>0))>>1) + dmvector[0];
DMV[0][1] = ((mvy +(mvy>0))>>1) + dmvector[1] - 1;
-
+
/* vector for prediction of bottom field from top field */
DMV[1][0] = ((3*mvx+(mvx>0))>>1) + dmvector[0];
DMV[1][1] = ((3*mvy+(mvy>0))>>1) + dmvector[1] + 1;
@@ -40,7 +40,7 @@ static void calc_DMV(int DMV[][2], int *dmvector,
/* vector for prediction of top field from bottom field */
DMV[0][0] = ((3*mvx+(mvx>0))>>1) + dmvector[0];
DMV[0][1] = ((3*mvy+(mvy>0))>>1) + dmvector[1] - 1;
-
+
/* vector for prediction of bottom field from top field */
DMV[1][0] = ((mvx +(mvx>0))>>1) + dmvector[0];
DMV[1][1] = ((mvy +(mvy>0))>>1) + dmvector[1] + 1;
@@ -50,13 +50,13 @@ static void calc_DMV(int DMV[][2], int *dmvector,
/* vector for prediction from field of opposite 'parity' */
DMV[0][0] = ((mvx+(mvx>0))>>1) + dmvector[0];
DMV[0][1] = ((mvy+(mvy>0))>>1) + dmvector[1];
-
+
/* correct for vertical field shift */
if (picture_structure==VO_TOP_FIELD)
DMV[0][1]--;
else
DMV[0][1]++;
-
+
}
}
@@ -96,12 +96,12 @@ static void xvmc_render_macro_blocks(vo_frame_t *current_image,
-void xxmc_xvmc_proc_macro_block(int x, int y, int mb_type, int motion_type,
- int (*mv_field_sel)[2], int *dmvector, int cbp,
- int dct_type, vo_frame_t *current_frame,
- vo_frame_t *forward_ref_frame,
- vo_frame_t *backward_ref_frame, int picture_structure,
- int second_field, int (*f_mot_pmv)[2], int (*b_mot_pmv)[2])
+void xxmc_xvmc_proc_macro_block(int x, int y, int mb_type, int motion_type,
+ int (*mv_field_sel)[2], int *dmvector, int cbp,
+ int dct_type, vo_frame_t *current_frame,
+ vo_frame_t *forward_ref_frame,
+ vo_frame_t *backward_ref_frame, int picture_structure,
+ int second_field, int (*f_mot_pmv)[2], int (*b_mot_pmv)[2])
{
xxmc_driver_t *this = (xxmc_driver_t *) current_frame->driver;
xvmc_macroblocks_t *mbs = &this->macroblocks;
@@ -110,10 +110,10 @@ void xxmc_xvmc_proc_macro_block(int x, int y, int mb_type, int motion_type,
mbs->macroblockptr->x = x;
mbs->macroblockptr->y = y;
-
+
if(mb_type & XINE_MACROBLOCK_INTRA) {
mbs->macroblockptr->macroblock_type = XVMC_MB_TYPE_INTRA;
- }
+ }
else {
mbs->macroblockptr->macroblock_type = 0;
/* XvMC doesn't support skips */
@@ -122,7 +122,7 @@ void xxmc_xvmc_proc_macro_block(int x, int y, int mb_type, int motion_type,
motion_type = (picture_structure == VO_BOTH_FIELDS) ? XINE_MC_FRAME : XINE_MC_FIELD;
mbs->macroblockptr->PMV[0][0][0] = 0;
mbs->macroblockptr->PMV[0][0][1] = 0;
- }
+ }
else {
if(mb_type & XINE_MACROBLOCK_MOTION_BACKWARD) {
mbs->macroblockptr->macroblock_type |= XVMC_MB_TYPE_MOTION_BACKWARD;
@@ -154,17 +154,17 @@ void xxmc_xvmc_proc_macro_block(int x, int y, int mb_type, int motion_type,
calc_DMV(DMV,dmvector, f_mot_pmv[0][0],
f_mot_pmv[0][1]>>1, picture_structure,
top_field_first);
-
+
mbs->macroblockptr->PMV[1][0][0] = DMV[0][0];
mbs->macroblockptr->PMV[1][0][1] = DMV[0][1];
mbs->macroblockptr->PMV[1][1][0] = DMV[1][0];
mbs->macroblockptr->PMV[1][1][1] = DMV[1][1];
- }
+ }
else {
calc_DMV(DMV,dmvector, f_mot_pmv[0][0],
f_mot_pmv[0][1]>>1, picture_structure,
top_field_first);
-
+
mbs->macroblockptr->PMV[0][1][0] = DMV[0][0];
mbs->macroblockptr->PMV[0][1][1] = DMV[0][1];
}
@@ -185,14 +185,14 @@ void xxmc_xvmc_proc_macro_block(int x, int y, int mb_type, int motion_type,
mbs->macroblockptr->index = ((unsigned long)mbs->xine_mc.blockptr -
(unsigned long)mbs->xine_mc.blockbaseptr) >> 7;
-
+
mbs->macroblockptr->dct_type = dct_type;
mbs->macroblockptr->coded_block_pattern = cbp;
cbp &= 0x3F;
mbs->macroblockptr->coded_block_pattern = cbp;
- while(cbp) {
+ while(cbp) {
if(cbp & 1) mbs->macroblockptr->index--;
cbp >>= 1;
}
@@ -238,9 +238,9 @@ void xxmc_xvmc_proc_macro_block(int x, int y, int mb_type, int motion_type,
xvmc_render_macro_blocks(
current_frame,
- (picture_coding_type == XINE_PICT_B_TYPE) ?
+ (picture_coding_type == XINE_PICT_B_TYPE) ?
backward_ref_frame : NULL,
- (picture_coding_type != XINE_PICT_I_TYPE) ?
+ (picture_coding_type != XINE_PICT_I_TYPE) ?
forward_ref_frame : NULL,
picture_structure,
second_field ? XVMC_SECOND_FIELD : 0,
diff --git a/src/video_out/xvmc_vld.c b/src/video_out/xvmc_vld.c
index 57f276665..87373c96b 100644
--- a/src/video_out/xvmc_vld.c
+++ b/src/video_out/xvmc_vld.c
@@ -39,7 +39,7 @@ void xvmc_vld_frame(struct vo_frame_s *this_gen)
*ff = XXMC_FRAME(vft->forward_reference_frame),
*bf = XXMC_FRAME(vft->backward_reference_frame);
XvMCMpegControl ctl;
- xxmc_driver_t
+ xxmc_driver_t
*driver = (xxmc_driver_t *) cf->vo_frame.driver;
XvMCSurface *fs=0, *bs=0;
XvMCQMatrix qmx;
@@ -53,21 +53,21 @@ void xvmc_vld_frame(struct vo_frame_s *this_gen)
ctl.picture_coding_type = vft->picture_coding_type;
ctl.mpeg_coding = (vft->mpeg_coding == 0) ? XVMC_MPEG_1 : XVMC_MPEG_2;
ctl.flags = 0;
- ctl.flags |= (vft->progressive_sequence) ?
+ ctl.flags |= (vft->progressive_sequence) ?
XVMC_PROGRESSIVE_SEQUENCE : 0 ;
- ctl.flags |= (vft->scan) ?
+ ctl.flags |= (vft->scan) ?
XVMC_ALTERNATE_SCAN : XVMC_ZIG_ZAG_SCAN;
- ctl.flags |= (vft->pred_dct_frame) ?
+ ctl.flags |= (vft->pred_dct_frame) ?
XVMC_PRED_DCT_FRAME : XVMC_PRED_DCT_FIELD;
- ctl.flags |= (this->top_field_first) ?
+ ctl.flags |= (this->top_field_first) ?
XVMC_TOP_FIELD_FIRST : XVMC_BOTTOM_FIELD_FIRST;
- ctl.flags |= (vft->concealment_motion_vectors) ?
- XVMC_CONCEALMENT_MOTION_VECTORS : 0 ;
- ctl.flags |= (vft->q_scale_type) ?
+ ctl.flags |= (vft->concealment_motion_vectors) ?
+ XVMC_CONCEALMENT_MOTION_VECTORS : 0 ;
+ ctl.flags |= (vft->q_scale_type) ?
XVMC_Q_SCALE_TYPE : 0;
- ctl.flags |= (vft->intra_vlc_format) ?
+ ctl.flags |= (vft->intra_vlc_format) ?
XVMC_INTRA_VLC_FORMAT : 0;
- ctl.flags |= (vft->second_field) ?
+ ctl.flags |= (vft->second_field) ?
XVMC_SECOND_FIELD : 0 ;
if (ff) fs=ff->xvmc_surf;
@@ -79,7 +79,7 @@ void xvmc_vld_frame(struct vo_frame_s *this_gen)
if (ctl.picture_coding_type == XVMC_P_PICTURE)
bs = cf->xvmc_surf;
-
+
if ((qmx.load_intra_quantiser_matrix = vft->load_intra_quantizer_matrix)) {
memcpy(qmx.intra_quantiser_matrix,vft->intra_quantizer_matrix,
sizeof(qmx.intra_quantiser_matrix));
@@ -87,13 +87,13 @@ void xvmc_vld_frame(struct vo_frame_s *this_gen)
if ((qmx.load_non_intra_quantiser_matrix = vft->load_non_intra_quantizer_matrix)) {
memcpy(qmx.non_intra_quantiser_matrix,vft->non_intra_quantizer_matrix,
sizeof(qmx.non_intra_quantiser_matrix));
- }
- qmx.load_chroma_intra_quantiser_matrix = 0;
+ }
+ qmx.load_chroma_intra_quantiser_matrix = 0;
qmx.load_chroma_non_intra_quantiser_matrix = 0;
XVMCLOCKDISPLAY( driver->display );
- XvMCLoadQMatrix(driver->display, &driver->context, &qmx);
-
+ XvMCLoadQMatrix(driver->display, &driver->context, &qmx);
+
while((cf->xxmc_data.result =
XvMCBeginSurface(driver->display, &driver->context, cf->xvmc_surf,
fs, bs, &ctl)));
@@ -101,9 +101,9 @@ void xvmc_vld_frame(struct vo_frame_s *this_gen)
driver->cpu_saver = 0.;
}
-void xvmc_vld_slice(vo_frame_t *this_gen)
+void xvmc_vld_slice(vo_frame_t *this_gen)
{
- xxmc_frame_t
+ xxmc_frame_t
*cf = XXMC_FRAME(this_gen);
xxmc_driver_t
*driver = (xxmc_driver_t *) cf->vo_frame.driver;
@@ -115,7 +115,7 @@ void xvmc_vld_slice(vo_frame_t *this_gen)
/*
* If CPU-saving mode is enabled, sleep after every xxmc->sleep slice. This will free
* up the cpu while the decoder is working on the slice. The value of xxmc->sleep is calculated
- * so that the decoder thread sleeps at most 50% of the frame delay,
+ * so that the decoder thread sleeps at most 50% of the frame delay,
* assuming a 2.6 kernel clock of 1000 Hz.
*/
@@ -123,7 +123,7 @@ void xvmc_vld_slice(vo_frame_t *this_gen)
if (driver->cpu_save_enabled) {
driver->cpu_saver += 1.;
if (driver->cpu_saver >= cf->xxmc_data.sleep) {
- usleep(1);
+ usleep(1);
driver->cpu_saver -= cf->xxmc_data.sleep;
}
}
diff --git a/src/video_out/xxmc.h b/src/video_out/xxmc.h
index edb440a14..1d5852b09 100644
--- a/src/video_out/xxmc.h
+++ b/src/video_out/xxmc.h
@@ -113,7 +113,7 @@ typedef struct {
XvMCMacroBlock *macroblockbaseptr; /* pointer to base MacroBlock in MB array */
XvMCMacroBlockArray macro_blocks; /* pointer to memory for macroblock array */
int slices;
-} xvmc_macroblocks_t;
+} xvmc_macroblocks_t;
typedef struct {
@@ -137,7 +137,7 @@ typedef struct {
XShmSegmentInfo shminfo;
/* XvMC specific stuff */
-
+
XvMCSurface *xvmc_surf;
xine_xxmc_t xxmc_data;
int last_sw_format;
@@ -154,7 +154,7 @@ typedef struct{
XvImageFormatValues subPicType;
int flags;
} xvmc_capabilities_t;
-
+
typedef struct xvmc_surface_handler_s {
XvMCSurface surfaces[XVMC_MAX_SURFACES];
int surfInUse[XVMC_MAX_SURFACES];
@@ -179,12 +179,12 @@ typedef struct context_lock_s {
}
#if defined(XVMC_THREAD_SAFE) && defined(XVMC_LOCKDISPLAY_SAFE)
-#define XVMCLOCKDISPLAY(display)
-#define XVMCUNLOCKDISPLAY(display)
+#define XVMCLOCKDISPLAY(display)
+#define XVMCUNLOCKDISPLAY(display)
#else
-#define XVMCLOCKDISPLAY(display) XLockDisplay(display)
+#define XVMCLOCKDISPLAY(display) XLockDisplay(display)
#define XVMCUNLOCKDISPLAY(display) XUnlockDisplay(display)
-#endif
+#endif
struct xxmc_driver_s {
vo_driver_t vo_driver;
@@ -226,7 +226,7 @@ struct xxmc_driver_s {
int (*x11_old_error_handler) (Display *, XErrorEvent *);
xine_t *xine;
- /* XvMC related stuff here */
+ /* XvMC related stuff here */
xvmc_macroblocks_t macroblocks;
xvmc_capabilities_t *xvmc_cap;
unsigned xvmc_num_cap;
@@ -271,8 +271,8 @@ struct xxmc_driver_s {
/*
* The mutex below is needed since XlockDisplay wasn't really enough
- * to protect the XvMC Calls.
- */
+ * to protect the XvMC Calls.
+ */
context_lock_t xvmc_lock;
alphablend_t alphablend_extra_data;
@@ -292,14 +292,14 @@ extern int xxmc_xvmc_surface_valid(xxmc_driver_t *this, XvMCSurface *surf);
extern void xvmc_vld_slice(vo_frame_t *this_gen);
extern void xvmc_vld_frame(struct vo_frame_s *this_gen);
-extern void xxmc_xvmc_proc_macro_block(int x, int y, int mb_type, int motion_type,
- int (*mv_field_sel)[2], int *dmvector,
- int cbp,
- int dct_type, vo_frame_t *current_frame,
- vo_frame_t *forward_ref_frame,
- vo_frame_t *backward_ref_frame,
- int picture_structure,
- int second_field, int (*f_mot_pmv)[2],
+extern void xxmc_xvmc_proc_macro_block(int x, int y, int mb_type, int motion_type,
+ int (*mv_field_sel)[2], int *dmvector,
+ int cbp,
+ int dct_type, vo_frame_t *current_frame,
+ vo_frame_t *forward_ref_frame,
+ vo_frame_t *backward_ref_frame,
+ int picture_structure,
+ int second_field, int (*f_mot_pmv)[2],
int (*b_mot_pmv)[2]);
#endif
diff --git a/src/video_out/yuv2rgb.c b/src/video_out/yuv2rgb.c
index 694a966f8..7aea37be7 100644
--- a/src/video_out/yuv2rgb.c
+++ b/src/video_out/yuv2rgb.c
@@ -116,15 +116,15 @@ static void yuv2rgb_dispose (yuv2rgb_t *this)
free (this);
}
-static int yuv2rgb_configure (yuv2rgb_t *this,
+static int yuv2rgb_configure (yuv2rgb_t *this,
int source_width, int source_height,
int y_stride, int uv_stride,
int dest_width, int dest_height,
int rgb_stride) {
-/*
+/*
printf ("yuv2rgb setup (%d x %d => %d x %d)\n", source_width, source_height,
dest_width, dest_height);
-*/
+*/
if (prof_scale_line == -1)
prof_scale_line = xine_profiler_allocate_slot("xshm scale line");
@@ -167,7 +167,7 @@ static int yuv2rgb_configure (yuv2rgb_t *this,
/*
printf("yuv2rgb config: src_ht=%i, dst_ht=%i\n",source_height, dest_height);
printf("yuv2rgb config: step_dy=%i %f\n",this->step_dy, (float)this->step_dy / 32768.0);
-*/
+*/
this->scale_line = find_scale_line_func(this->step_dx);
if ((source_width == dest_width) && (source_height == dest_height)) {
@@ -189,7 +189,7 @@ static int yuv2rgb_configure (yuv2rgb_t *this,
} else {
this->do_scale = 1;
-
+
/*
* space for two y-lines (for yuv2rgb_mlib)
* u,v subsampled 2:1
@@ -215,7 +215,7 @@ static int yuv2rgb_configure (yuv2rgb_t *this,
if (!this->mlib_resize_buffer)
return 0;
}
-#endif
+#endif
}
return 1;
}
@@ -263,7 +263,7 @@ static void scale_line_gen (uint8_t *source, uint8_t *dest,
p1 = p2;
p2 = *source++;
}
-
+
dest ++;
width --;
}
@@ -281,7 +281,7 @@ static void scale_line_gen (uint8_t *source, uint8_t *dest,
p1 = p2;
p2 = *source++;
}
-
+
dest ++;
width --;
}
@@ -1248,7 +1248,7 @@ static void scale_line_1_2 (uint8_t *source, uint8_t *dest,
xine_profiler_stop_count(prof_scale_line);
}
-
+
/*
* Scale line with no horizontal scaling. For NTSC mpeg2 dvd input in
* 4:3 output format (720x480 -> 720x540)
@@ -1261,7 +1261,7 @@ static void scale_line_1_1 (uint8_t *source, uint8_t *dest,
xine_profiler_stop_count(prof_scale_line);
}
-
+
static scale_line_func_t find_scale_line_func(int step) {
static struct {
int src_step;
@@ -1406,7 +1406,7 @@ static void scale_line_4 (uint8_t *source, uint8_t *dest,
dst_2[6*i+3] = b[Y]; dst_2[6*i+4] = g[Y]; dst_2[6*i+5] = r[Y];
#define DST1CMAP(i) \
- Y = py_1[2*i]; \
+ Y = py_1[2*i]; \
dst_1[2*i] = this->cmap[r[Y] + g[Y] + b[Y]]; \
Y = py_1[2*i+1]; \
dst_1[2*i+1] = this->cmap[r[Y] + g[Y] + b[Y]];
@@ -1434,7 +1434,7 @@ static void yuv2rgb_c_32 (yuv2rgb_t *this, uint8_t * _dst,
this->dest_width >> 1, this->step_dx);
scale_line (_pv, this->v_buffer,
this->dest_width >> 1, this->step_dx);
- scale_line (_py, this->y_buffer,
+ scale_line (_py, this->y_buffer,
this->dest_width, this->step_dx);
dy = 0;
@@ -1454,7 +1454,7 @@ static void yuv2rgb_c_32 (yuv2rgb_t *this, uint8_t * _dst,
X_RGB(1);
DST1(1);
-
+
X_RGB(2);
DST1(2);
@@ -1472,7 +1472,7 @@ static void yuv2rgb_c_32 (yuv2rgb_t *this, uint8_t * _dst,
while (--dst_height > 0 && dy < 32768) {
- xine_fast_memcpy (_dst, (uint8_t*)_dst-this->rgb_stride, this->dest_width*4);
+ xine_fast_memcpy (_dst, (uint8_t*)_dst-this->rgb_stride, this->dest_width*4);
dy += this->step_dy;
_dst += this->rgb_stride;
@@ -1485,18 +1485,18 @@ static void yuv2rgb_c_32 (yuv2rgb_t *this, uint8_t * _dst,
dy -= 32768;
_py += this->y_stride;
- scale_line (_py, this->y_buffer,
+ scale_line (_py, this->y_buffer,
this->dest_width, this->step_dx);
if (height & 1) {
_pu += this->uv_stride;
_pv += this->uv_stride;
-
+
scale_line (_pu, this->u_buffer,
this->dest_width >> 1, this->step_dx);
scale_line (_pv, this->v_buffer,
this->dest_width >> 1, this->step_dx);
-
+
}
height++;
} while( dy>=32768);
@@ -1528,7 +1528,7 @@ static void yuv2rgb_c_32 (yuv2rgb_t *this, uint8_t * _dst,
X_RGB(3);
DST2(3);
DST1(3);
-
+
pu += 4;
pv += 4;
py_1 += 8;
@@ -1537,7 +1537,7 @@ static void yuv2rgb_c_32 (yuv2rgb_t *this, uint8_t * _dst,
dst_2 += 8;
} while (--width);
- _dst += 2 * this->rgb_stride;
+ _dst += 2 * this->rgb_stride;
_py += 2 * this->y_stride;
_pu += this->uv_stride;
_pv += this->uv_stride;
@@ -1565,7 +1565,7 @@ static void yuv2rgb_c_24_rgb (yuv2rgb_t *this, uint8_t * _dst,
this->dest_width >> 1, this->step_dx);
scale_line (_pv, this->v_buffer,
this->dest_width >> 1, this->step_dx);
- scale_line (_py, this->y_buffer,
+ scale_line (_py, this->y_buffer,
this->dest_width, this->step_dx);
dy = 0;
@@ -1585,7 +1585,7 @@ static void yuv2rgb_c_24_rgb (yuv2rgb_t *this, uint8_t * _dst,
X_RGB(1);
DST1RGB(1);
-
+
X_RGB(2);
DST1RGB(2);
@@ -1603,7 +1603,7 @@ static void yuv2rgb_c_24_rgb (yuv2rgb_t *this, uint8_t * _dst,
while (--dst_height > 0 && dy < 32768) {
- xine_fast_memcpy (_dst, _dst-this->rgb_stride, this->dest_width*3);
+ xine_fast_memcpy (_dst, _dst-this->rgb_stride, this->dest_width*3);
dy += this->step_dy;
_dst += this->rgb_stride;
@@ -1616,18 +1616,18 @@ static void yuv2rgb_c_24_rgb (yuv2rgb_t *this, uint8_t * _dst,
dy -= 32768;
_py += this->y_stride;
- scale_line (_py, this->y_buffer,
+ scale_line (_py, this->y_buffer,
this->dest_width, this->step_dx);
if (height & 1) {
_pu += this->uv_stride;
_pv += this->uv_stride;
-
+
scale_line (_pu, this->u_buffer,
this->dest_width >> 1, this->step_dx);
scale_line (_pv, this->v_buffer,
this->dest_width >> 1, this->step_dx);
-
+
}
height++;
} while (dy>=32768);
@@ -1668,11 +1668,11 @@ static void yuv2rgb_c_24_rgb (yuv2rgb_t *this, uint8_t * _dst,
dst_2 += 24;
} while (--width);
- _dst += 2 * this->rgb_stride;
+ _dst += 2 * this->rgb_stride;
_py += 2 * this->y_stride;
_pu += this->uv_stride;
_pv += this->uv_stride;
-
+
} while (--height);
}
}
@@ -1696,7 +1696,7 @@ static void yuv2rgb_c_24_bgr (yuv2rgb_t *this, uint8_t * _dst,
this->dest_width >> 1, this->step_dx);
scale_line (_pv, this->v_buffer,
this->dest_width >> 1, this->step_dx);
- scale_line (_py, this->y_buffer,
+ scale_line (_py, this->y_buffer,
this->dest_width, this->step_dx);
dy = 0;
@@ -1716,7 +1716,7 @@ static void yuv2rgb_c_24_bgr (yuv2rgb_t *this, uint8_t * _dst,
X_RGB(1);
DST1BGR(1);
-
+
X_RGB(2);
DST1BGR(2);
@@ -1747,18 +1747,18 @@ static void yuv2rgb_c_24_bgr (yuv2rgb_t *this, uint8_t * _dst,
dy -= 32768;
_py += this->y_stride;
- scale_line (_py, this->y_buffer,
+ scale_line (_py, this->y_buffer,
this->dest_width, this->step_dx);
if (height & 1) {
_pu += this->uv_stride;
_pv += this->uv_stride;
-
+
scale_line (_pu, this->u_buffer,
this->dest_width >> 1, this->step_dx);
scale_line (_pv, this->v_buffer,
this->dest_width >> 1, this->step_dx);
-
+
}
height++;
} while( dy>=32768 );
@@ -1799,7 +1799,7 @@ static void yuv2rgb_c_24_bgr (yuv2rgb_t *this, uint8_t * _dst,
dst_2 += 24;
} while (--width);
- _dst += 2 * this->rgb_stride;
+ _dst += 2 * this->rgb_stride;
_py += 2 * this->y_stride;
_pu += this->uv_stride;
_pv += this->uv_stride;
@@ -1827,7 +1827,7 @@ static void yuv2rgb_c_16 (yuv2rgb_t *this, uint8_t * _dst,
this->dest_width >> 1, this->step_dx);
scale_line (_pv, this->v_buffer,
this->dest_width >> 1, this->step_dx);
- scale_line (_py, this->y_buffer,
+ scale_line (_py, this->y_buffer,
this->dest_width, this->step_dx);
dy = 0;
@@ -1847,7 +1847,7 @@ static void yuv2rgb_c_16 (yuv2rgb_t *this, uint8_t * _dst,
X_RGB(1);
DST1(1);
-
+
X_RGB(2);
DST1(2);
@@ -1865,7 +1865,7 @@ static void yuv2rgb_c_16 (yuv2rgb_t *this, uint8_t * _dst,
while (--dst_height > 0 && dy < 32768) {
- xine_fast_memcpy (_dst, (uint8_t*)_dst-this->rgb_stride, this->dest_width*2);
+ xine_fast_memcpy (_dst, (uint8_t*)_dst-this->rgb_stride, this->dest_width*2);
dy += this->step_dy;
_dst += this->rgb_stride;
@@ -1878,18 +1878,18 @@ static void yuv2rgb_c_16 (yuv2rgb_t *this, uint8_t * _dst,
dy -= 32768;
_py += this->y_stride;
- scale_line (_py, this->y_buffer,
+ scale_line (_py, this->y_buffer,
this->dest_width, this->step_dx);
if (height & 1) {
_pu += this->uv_stride;
_pv += this->uv_stride;
-
+
scale_line (_pu, this->u_buffer,
this->dest_width >> 1, this->step_dx);
scale_line (_pv, this->v_buffer,
this->dest_width >> 1, this->step_dx);
-
+
}
height++;
} while( dy>=32768);
@@ -1929,7 +1929,7 @@ static void yuv2rgb_c_16 (yuv2rgb_t *this, uint8_t * _dst,
dst_2 += 8;
} while (--width);
- _dst += 2 * this->rgb_stride;
+ _dst += 2 * this->rgb_stride;
_py += 2 * this->y_stride;
_pu += this->uv_stride;
_pv += this->uv_stride;
@@ -1957,7 +1957,7 @@ static void yuv2rgb_c_8 (yuv2rgb_t *this, uint8_t * _dst,
this->dest_width >> 1, this->step_dx);
scale_line (_pv, this->v_buffer,
this->dest_width >> 1, this->step_dx);
- scale_line (_py, this->y_buffer,
+ scale_line (_py, this->y_buffer,
this->dest_width, this->step_dx);
dy = 0;
@@ -1977,7 +1977,7 @@ static void yuv2rgb_c_8 (yuv2rgb_t *this, uint8_t * _dst,
X_RGB(1);
DST1(1);
-
+
X_RGB(2);
DST1(2);
@@ -1995,7 +1995,7 @@ static void yuv2rgb_c_8 (yuv2rgb_t *this, uint8_t * _dst,
while (--dst_height > 0 && dy < 32768) {
- xine_fast_memcpy (_dst, (uint8_t*)_dst-this->rgb_stride, this->dest_width);
+ xine_fast_memcpy (_dst, (uint8_t*)_dst-this->rgb_stride, this->dest_width);
dy += this->step_dy;
_dst += this->rgb_stride;
@@ -2008,18 +2008,18 @@ static void yuv2rgb_c_8 (yuv2rgb_t *this, uint8_t * _dst,
dy -= 32768;
_py += this->y_stride;
- scale_line (_py, this->y_buffer,
+ scale_line (_py, this->y_buffer,
this->dest_width, this->step_dx);
if (height & 1) {
_pu += this->uv_stride;
_pv += this->uv_stride;
-
+
scale_line (_pu, this->u_buffer,
this->dest_width >> 1, this->step_dx);
scale_line (_pv, this->v_buffer,
this->dest_width >> 1, this->step_dx);
-
+
}
height++;
} while( dy>=32768 );
@@ -2051,7 +2051,7 @@ static void yuv2rgb_c_8 (yuv2rgb_t *this, uint8_t * _dst,
X_RGB(3);
DST2(3);
DST1(3);
-
+
pu += 4;
pv += 4;
py_1 += 8;
@@ -2060,7 +2060,7 @@ static void yuv2rgb_c_8 (yuv2rgb_t *this, uint8_t * _dst,
dst_2 += 8;
} while (--width);
- _dst += 2 * this->rgb_stride;
+ _dst += 2 * this->rgb_stride;
_py += 2 * this->y_stride;
_pu += this->uv_stride;
_pv += this->uv_stride;
@@ -2090,7 +2090,7 @@ static void yuv2rgb_c_gray (yuv2rgb_t *this, uint8_t * _dst,
while (--dst_height > 0 && dy < 32768) {
- xine_fast_memcpy (_dst, (uint8_t*)_dst-this->rgb_stride, this->dest_width);
+ xine_fast_memcpy (_dst, (uint8_t*)_dst-this->rgb_stride, this->dest_width);
dy += this->step_dy;
_dst += this->rgb_stride;
@@ -2101,7 +2101,7 @@ static void yuv2rgb_c_gray (yuv2rgb_t *this, uint8_t * _dst,
_py += this->y_stride*(dy>>15);
dy &= 32767;
- /* dy -= 32768;
+ /* dy -= 32768;
_py += this->y_stride;
*/
}
@@ -2152,7 +2152,7 @@ static void yuv2rgb_c_palette (yuv2rgb_t *this, uint8_t * _dst,
X_RGB(1);
DST1CMAP(1);
-
+
X_RGB(2);
DST1CMAP(2);
@@ -2170,7 +2170,7 @@ static void yuv2rgb_c_palette (yuv2rgb_t *this, uint8_t * _dst,
while (--dst_height > 0 && dy < 32768) {
- xine_fast_memcpy (_dst, (uint8_t*)_dst-this->rgb_stride, this->dest_width);
+ xine_fast_memcpy (_dst, (uint8_t*)_dst-this->rgb_stride, this->dest_width);
dy += this->step_dy;
_dst += this->rgb_stride;
@@ -2189,12 +2189,12 @@ static void yuv2rgb_c_palette (yuv2rgb_t *this, uint8_t * _dst,
if (height & 1) {
_pu += this->uv_stride;
_pv += this->uv_stride;
-
+
scale_line (_pu, this->u_buffer,
this->dest_width >> 1, this->step_dx);
scale_line (_pv, this->v_buffer,
this->dest_width >> 1, this->step_dx);
-
+
}
height++;
} while( dy>=32768 );
@@ -2234,7 +2234,7 @@ static void yuv2rgb_c_palette (yuv2rgb_t *this, uint8_t * _dst,
dst_2 += 8;
} while (--width);
- _dst += 2 * this->rgb_stride;
+ _dst += 2 * this->rgb_stride;
_py += 2 * this->y_stride;
_pu += this->uv_stride;
_pv += this->uv_stride;
@@ -2430,7 +2430,7 @@ static void yuv2rgb_set_csc_levels (yuv2rgb_factory_t *this,
lprintf ("mode %d not supported by yuv2rgb\n", mode);
_x_abort();
}
-
+
for (i = 0; i < 256; i++) {
this->table_rV[i] = (((uint8_t *) table_r) +
entry_size * div_round (crv * (i-128), 76309));
@@ -2443,7 +2443,7 @@ static void yuv2rgb_set_csc_levels (yuv2rgb_factory_t *this,
#if defined(ARCH_X86) || defined(ARCH_X86_64)
mmx_yuv2rgb_set_csc_levels (this, brightness, contrast, saturation);
-#endif
+#endif
}
static uint32_t yuv2rgb_single_pixel_32 (yuv2rgb_t *this, uint8_t y, uint8_t u, uint8_t v)
@@ -2629,10 +2629,10 @@ static void yuy22rgb_c_32 (yuv2rgb_t *this, uint8_t * _dst, uint8_t * _p)
this->dest_width >> 1, this->step_dx);
scale_line_2 (_p, this->y_buffer,
this->dest_width, this->step_dx);
-
+
dy = 0;
height = this->next_slice (this, &_dst);
-
+
for (;;) {
dst_1 = (uint32_t*)_dst;
py_1 = this->y_buffer;
@@ -2648,10 +2648,10 @@ static void yuy22rgb_c_32 (yuv2rgb_t *this, uint8_t * _dst, uint8_t * _p)
X_RGB(1);
DST1(1);
-
+
X_RGB(2);
DST1(2);
-
+
X_RGB(3);
DST1(3);
@@ -2660,18 +2660,18 @@ static void yuy22rgb_c_32 (yuv2rgb_t *this, uint8_t * _dst, uint8_t * _p)
py_1 += 8;
dst_1 += 8;
} while (--width);
-
+
dy += this->step_dy;
_dst += this->rgb_stride;
-
+
while (--height > 0 && dy < 32768) {
-
+
xine_fast_memcpy (_dst, (uint8_t*)_dst-this->rgb_stride, this->dest_width*4);
-
+
dy += this->step_dy;
_dst += this->rgb_stride;
}
-
+
if (height <= 0)
break;
@@ -2681,12 +2681,12 @@ static void yuy22rgb_c_32 (yuv2rgb_t *this, uint8_t * _dst, uint8_t * _p)
dy -= 32768;
_p += this->y_stride*2;
*/
-
+
scale_line_4 (_p+1, this->u_buffer,
this->dest_width >> 1, this->step_dx);
scale_line_4 (_p+3, this->v_buffer,
this->dest_width >> 1, this->step_dx);
- scale_line_2 (_p, this->y_buffer,
+ scale_line_2 (_p, this->y_buffer,
this->dest_width, this->step_dx);
}
}
@@ -2706,30 +2706,30 @@ static void yuy22rgb_c_24_rgb (yuv2rgb_t *this, uint8_t * _dst, uint8_t * _p)
this->dest_width >> 1, this->step_dx);
scale_line_4 (_p+3, this->v_buffer,
this->dest_width >> 1, this->step_dx);
- scale_line_2 (_p, this->y_buffer,
+ scale_line_2 (_p, this->y_buffer,
this->dest_width, this->step_dx);
dy = 0;
height = this->next_slice (this, &_dst);
-
+
for (;;) {
dst_1 = _dst;
py_1 = this->y_buffer;
pu = this->u_buffer;
pv = this->v_buffer;
-
+
width = this->dest_width >> 3;
-
+
do {
X_RGB(0);
DST1RGB(0);
-
+
X_RGB(1);
DST1RGB(1);
-
+
X_RGB(2);
DST1RGB(2);
-
+
X_RGB(3);
DST1RGB(3);
@@ -2741,15 +2741,15 @@ static void yuy22rgb_c_24_rgb (yuv2rgb_t *this, uint8_t * _dst, uint8_t * _p)
dy += this->step_dy;
_dst += this->rgb_stride;
-
+
while (--height > 0 && dy < 32768) {
xine_fast_memcpy (_dst, (uint8_t*)_dst-this->rgb_stride, this->dest_width*3);
-
+
dy += this->step_dy;
_dst += this->rgb_stride;
}
-
+
if (height <= 0)
break;
@@ -2759,7 +2759,7 @@ static void yuy22rgb_c_24_rgb (yuv2rgb_t *this, uint8_t * _dst, uint8_t * _p)
dy -= 32768;
_p += this->y_stride*2;
*/
-
+
scale_line_4 (_p+1, this->u_buffer,
this->dest_width >> 1, this->step_dx);
scale_line_4 (_p+3, this->v_buffer,
@@ -2784,50 +2784,50 @@ static void yuy22rgb_c_24_bgr (yuv2rgb_t *this, uint8_t * _dst, uint8_t * _p)
this->dest_width >> 1, this->step_dx);
scale_line_4 (_p+3, this->v_buffer,
this->dest_width >> 1, this->step_dx);
- scale_line_2 (_p, this->y_buffer,
+ scale_line_2 (_p, this->y_buffer,
this->dest_width, this->step_dx);
dy = 0;
height = this->next_slice (this, &_dst);
-
+
for (;;) {
dst_1 = _dst;
py_1 = this->y_buffer;
pu = this->u_buffer;
pv = this->v_buffer;
-
+
width = this->dest_width >> 3;
-
+
do {
X_RGB(0);
DST1BGR(0);
-
+
X_RGB(1);
DST1BGR(1);
-
+
X_RGB(2);
DST1BGR(2);
X_RGB(3);
DST1BGR(3);
-
+
pu += 4;
pv += 4;
py_1 += 8;
dst_1 += 24;
} while (--width);
-
+
dy += this->step_dy;
_dst += this->rgb_stride;
-
+
while (--height > 0 && dy < 32768) {
xine_fast_memcpy (_dst, (uint8_t*)_dst-this->rgb_stride, this->dest_width*3);
-
+
dy += this->step_dy;
_dst += this->rgb_stride;
}
-
+
if (height <= 0)
break;
@@ -2858,9 +2858,9 @@ static void yuy22rgb_c_16 (yuv2rgb_t *this, uint8_t * _dst, uint8_t * _p)
this->dest_width >> 1, this->step_dx);
scale_line_4 (_p+3, this->v_buffer,
this->dest_width >> 1, this->step_dx);
- scale_line_2 (_p, this->y_buffer,
+ scale_line_2 (_p, this->y_buffer,
this->dest_width, this->step_dx);
-
+
dy = 0;
height = this->next_slice (this, &_dst);
@@ -2869,19 +2869,19 @@ static void yuy22rgb_c_16 (yuv2rgb_t *this, uint8_t * _dst, uint8_t * _p)
py_1 = this->y_buffer;
pu = this->u_buffer;
pv = this->v_buffer;
-
+
width = this->dest_width >> 3;
-
+
do {
X_RGB(0);
DST1(0);
X_RGB(1);
DST1(1);
-
+
X_RGB(2);
DST1(2);
-
+
X_RGB(3);
DST1(3);
@@ -2890,24 +2890,24 @@ static void yuy22rgb_c_16 (yuv2rgb_t *this, uint8_t * _dst, uint8_t * _p)
py_1 += 8;
dst_1 += 8;
} while (--width);
-
+
dy += this->step_dy;
_dst += this->rgb_stride;
while (--height > 0 && dy < 32768) {
-
- xine_fast_memcpy (_dst, (uint8_t*)_dst-this->rgb_stride, this->dest_width*2);
+
+ xine_fast_memcpy (_dst, (uint8_t*)_dst-this->rgb_stride, this->dest_width*2);
dy += this->step_dy;
_dst += this->rgb_stride;
}
-
+
if (height <= 0)
break;
_p += this->y_stride*(dy>>15);
dy &= 32767;
-
+
scale_line_4 (_p+1, this->u_buffer,
this->dest_width >> 1, this->step_dx);
scale_line_4 (_p+3, this->v_buffer,
@@ -2934,28 +2934,28 @@ static void yuy22rgb_c_8 (yuv2rgb_t *this, uint8_t * _dst, uint8_t * _p)
this->dest_width >> 1, this->step_dx);
scale_line_2 (_p, this->y_buffer,
this->dest_width, this->step_dx);
-
+
dy = 0;
height = this->next_slice (this, &_dst);
-
+
for (;;) {
dst_1 = _dst;
py_1 = this->y_buffer;
pu = this->u_buffer;
pv = this->v_buffer;
-
+
width = this->dest_width >> 3;
-
+
do {
X_RGB(0);
DST1(0);
-
+
X_RGB(1);
DST1(1);
X_RGB(2);
DST1(2);
-
+
X_RGB(3);
DST1(3);
@@ -2964,29 +2964,29 @@ static void yuy22rgb_c_8 (yuv2rgb_t *this, uint8_t * _dst, uint8_t * _p)
py_1 += 8;
dst_1 += 8;
} while (--width);
-
+
dy += this->step_dy;
_dst += this->rgb_stride;
-
+
while (--height > 0 && dy < 32768) {
-
- xine_fast_memcpy (_dst, (uint8_t*)_dst-this->rgb_stride, this->dest_width);
-
+
+ xine_fast_memcpy (_dst, (uint8_t*)_dst-this->rgb_stride, this->dest_width);
+
dy += this->step_dy;
_dst += this->rgb_stride;
}
-
+
if (height <= 0)
break;
_p += this->y_stride*(dy>>15);
dy &= 32767;
-
+
scale_line_4 (_p+1, this->u_buffer,
this->dest_width >> 1, this->step_dx);
scale_line_4 (_p+3, this->v_buffer,
this->dest_width >> 1, this->step_dx);
- scale_line_2 (_p, this->y_buffer,
+ scale_line_2 (_p, this->y_buffer,
this->dest_width, this->step_dx);
}
}
@@ -3001,21 +3001,21 @@ static void yuy22rgb_c_gray (yuv2rgb_t *this, uint8_t * _dst, uint8_t * _p)
if (this->do_scale) {
dy = 0;
height = this->next_slice (this, &_dst);
-
+
for (;;) {
scale_line_2 (_p, _dst, this->dest_width, this->step_dx);
-
+
dy += this->step_dy;
_dst += this->rgb_stride;
-
+
while (--height > 0 && dy < 32768) {
-
- xine_fast_memcpy (_dst, (uint8_t*)_dst-this->rgb_stride, this->dest_width);
-
+
+ xine_fast_memcpy (_dst, (uint8_t*)_dst-this->rgb_stride, this->dest_width);
+
dy += this->step_dy;
_dst += this->rgb_stride;
}
-
+
if (height <= 0)
break;
@@ -3023,7 +3023,7 @@ static void yuy22rgb_c_gray (yuv2rgb_t *this, uint8_t * _dst, uint8_t * _p)
dy &= 32767;
}
} else {
- for (height = this->next_slice (this, &_dst); --height >= 0; ) {
+ for (height = this->next_slice (this, &_dst); --height >= 0; ) {
dst = _dst;
y = _p;
for (width = this->source_width; --width >= 0; ) {
@@ -3044,25 +3044,25 @@ static void yuy22rgb_c_palette (yuv2rgb_t *this, uint8_t * _dst, uint8_t * _p)
uint8_t * dst_1;
int width, height;
int dy;
-
+
scale_line_4 (_p+1, this->u_buffer,
this->dest_width >> 1, this->step_dx);
scale_line_4 (_p+3, this->v_buffer,
this->dest_width >> 1, this->step_dx);
scale_line_2 (_p, this->y_buffer,
this->dest_width, this->step_dx);
-
+
dy = 0;
height = this->next_slice (this, &_dst);
-
+
for (;;) {
dst_1 = _dst;
py_1 = this->y_buffer;
pu = this->u_buffer;
pv = this->v_buffer;
-
+
width = this->dest_width >> 3;
-
+
do {
X_RGB(0);
DST1CMAP(0);
@@ -3182,7 +3182,7 @@ static yuv2rgb_t *yuv2rgb_create_converter (yuv2rgb_factory_t *factory) {
}
/*
- * factory functions
+ * factory functions
*/
static void yuv2rgb_factory_dispose (yuv2rgb_factory_t *this) {
@@ -3192,7 +3192,7 @@ static void yuv2rgb_factory_dispose (yuv2rgb_factory_t *this) {
free (this);
}
-yuv2rgb_factory_t* yuv2rgb_factory_init (int mode, int swapped,
+yuv2rgb_factory_t* yuv2rgb_factory_init (int mode, int swapped,
uint8_t *cmap) {
yuv2rgb_factory_t *this;
diff --git a/src/video_out/yuv2rgb.h b/src/video_out/yuv2rgb.h
index dce0ade18..1a1252f40 100644
--- a/src/video_out/yuv2rgb.h
+++ b/src/video_out/yuv2rgb.h
@@ -114,7 +114,7 @@ struct yuv2rgb_s {
void *table_mmx;
uint8_t *cmap;
- scale_line_func_t scale_line;
+ scale_line_func_t scale_line;
} ;
/*
@@ -124,7 +124,7 @@ struct yuv2rgb_s {
struct yuv2rgb_factory_s {
yuv2rgb_t* (*create_converter) (yuv2rgb_factory_t *this);
- /*
+ /*
* set color space conversion levels
* for all converters produced by this factory
*/
@@ -160,7 +160,7 @@ struct yuv2rgb_factory_s {
yuv2rgb_factory_t *yuv2rgb_factory_init (int mode, int swapped, uint8_t *colormap);
-
+
/*
* internal stuff below this line
*/
diff --git a/src/video_out/yuv2rgb_mlib.c b/src/video_out/yuv2rgb_mlib.c
index b32817a90..cde7941bc 100644
--- a/src/video_out/yuv2rgb_mlib.c
+++ b/src/video_out/yuv2rgb_mlib.c
@@ -51,7 +51,7 @@ static void mlib_yuv420_rgb24(yuv2rgb_t *this,
mlib_s32 resize_stride = this->dest_width << 2;
mlib_VideoColorYUV420seq_to_ARGBint((mlib_u32*)this->mlib_buffer,
- py, pu, pv, py, 0,
+ py, pu, pv, py, 0,
this->source_width,
src_height,
this->source_width<<2,
@@ -88,7 +88,7 @@ static void mlib_yuv420_argb32(yuv2rgb_t *this,
dst_height = this->next_slice(this, &image);
if (this->do_scale) {
mlib_VideoColorYUV420seq_to_ARGBint((mlib_u32*)this->mlib_buffer,
- py, pu, pv, py, 0,
+ py, pu, pv, py, 0,
this->source_width,
src_height,
this->source_width<<2,
@@ -101,7 +101,7 @@ static void mlib_yuv420_argb32(yuv2rgb_t *this,
this->mlib_filter_type);
} else {
mlib_VideoColorYUV420seq_to_ARGBint((mlib_u32*)image,
- py, pu, pv, py, 0,
+ py, pu, pv, py, 0,
this->source_width,
dst_height,
this->rgb_stride,
@@ -127,7 +127,7 @@ static void mlib_yuv420_abgr32(yuv2rgb_t *this,
dst_height = this->next_slice (this, &image);
if (this->do_scale) {
mlib_VideoColorYUV420seq_to_ABGRint((mlib_u32*)this->mlib_buffer,
- py, pu, pv, py, 0,
+ py, pu, pv, py, 0,
this->source_width,
src_height,
this->source_width<<2,
@@ -141,7 +141,7 @@ static void mlib_yuv420_abgr32(yuv2rgb_t *this,
}
else {
mlib_VideoColorYUV420seq_to_ABGRint((mlib_u32*)image,
- py, pu, pv, py, 0,
+ py, pu, pv, py, 0,
this->source_width,
dst_height,
this->rgb_stride,
diff --git a/src/video_out/yuv2rgb_mmx.c b/src/video_out/yuv2rgb_mmx.c
index 4d127e6a7..9cbb675bb 100644
--- a/src/video_out/yuv2rgb_mmx.c
+++ b/src/video_out/yuv2rgb_mmx.c
@@ -182,7 +182,7 @@ static inline void mmx_yuv2rgb (uint8_t * py, uint8_t * pu, uint8_t * pv, mmx_cs
pmulhw_m2r (csc->V_green, mm4); // mm4 = v * v_green
-
+
// slot
@@ -406,7 +406,7 @@ static inline void mmx_unpack_24rgb (uint8_t * image, int cpu)
pand_m2r (mmx_lorgb, mm6);
psrlq_i2r (8, mm5);
por_r2r(mm6, mm5); /* mm5 = 0x0000R1G1B1R0G0B0 */
-
+
movq_r2r (mm0, mm6);
punpcklbw_r2r (mm2, mm6);
punpckhwd_r2r (mm7, mm6); /* mm6 = 0x??R3G3B3??R2G2B2 */
@@ -481,13 +481,13 @@ static inline void yuv420_rgb16 (yuv2rgb_t *this,
i = width; img = image;
do {
mmx_yuv2rgb (py, pu, pv, this->table_mmx);
- mmx_unpack_16rgb (img, cpu);
+ mmx_unpack_16rgb (img, cpu);
py += 8;
pu += 4;
pv += 4;
img += 16;
} while (--i);
-
+
py += y_stride;
image += rgb_stride;
if (height & 1) {
@@ -509,7 +509,7 @@ static inline void yuv420_rgb16 (yuv2rgb_t *this,
this->dest_width >> 1, this->step_dx);
scale_line (pv, this->v_buffer,
this->dest_width >> 1, this->step_dx);
- scale_line (py, this->y_buffer,
+ scale_line (py, this->y_buffer,
this->dest_width, this->step_dx);
dst_height = this->next_slice (this, &image);
@@ -525,19 +525,19 @@ static inline void yuv420_rgb16 (yuv2rgb_t *this,
/* printf ("i : %d\n",i); */
mmx_yuv2rgb (y_buf, u_buf, v_buf, this->table_mmx);
- mmx_unpack_16rgb (img, cpu);
+ mmx_unpack_16rgb (img, cpu);
y_buf += 8;
u_buf += 4;
v_buf += 4;
img += 16;
} while (--i);
-
+
dy += this->step_dy;
image += rgb_stride;
while (--dst_height > 0 && dy < 32768) {
- xine_fast_memcpy (image, image-rgb_stride, this->dest_width*2);
+ xine_fast_memcpy (image, image-rgb_stride, this->dest_width*2);
dy += this->step_dy;
image += rgb_stride;
@@ -551,23 +551,23 @@ static inline void yuv420_rgb16 (yuv2rgb_t *this,
py += y_stride;
- scale_line (py, this->y_buffer,
+ scale_line (py, this->y_buffer,
this->dest_width, this->step_dx);
if (height & 1) {
pu += uv_stride;
pv += uv_stride;
-
+
scale_line (pu, this->u_buffer,
this->dest_width >> 1, this->step_dx);
scale_line (pv, this->v_buffer,
this->dest_width >> 1, this->step_dx);
-
+
}
height++;
} while( dy>=32768);
}
- }
+ }
}
static inline void yuv420_rgb15 (yuv2rgb_t *this,
@@ -594,13 +594,13 @@ static inline void yuv420_rgb15 (yuv2rgb_t *this,
i = width; img = image;
do {
mmx_yuv2rgb (py, pu, pv, this->table_mmx);
- mmx_unpack_15rgb (img, cpu);
+ mmx_unpack_15rgb (img, cpu);
py += 8;
pu += 4;
pv += 4;
img += 16;
} while (--i);
-
+
py += y_stride;
image += rgb_stride;
if (height & 1) {
@@ -622,11 +622,11 @@ static inline void yuv420_rgb15 (yuv2rgb_t *this,
this->dest_width >> 1, this->step_dx);
scale_line (pv, this->v_buffer,
this->dest_width >> 1, this->step_dx);
- scale_line (py, this->y_buffer,
+ scale_line (py, this->y_buffer,
this->dest_width, this->step_dx);
-
+
dst_height = this->next_slice (this, &image);
-
+
for (height = 0;; ) {
y_buf = this->y_buffer;
@@ -638,19 +638,19 @@ static inline void yuv420_rgb15 (yuv2rgb_t *this,
/* printf ("i : %d\n",i); */
mmx_yuv2rgb (y_buf, u_buf, v_buf, this->table_mmx);
- mmx_unpack_15rgb (img, cpu);
+ mmx_unpack_15rgb (img, cpu);
y_buf += 8;
u_buf += 4;
v_buf += 4;
img += 16;
} while (--i);
-
+
dy += this->step_dy;
image += rgb_stride;
while (--dst_height > 0 && dy < 32768) {
- xine_fast_memcpy (image, image-rgb_stride, this->dest_width*2);
+ xine_fast_memcpy (image, image-rgb_stride, this->dest_width*2);
dy += this->step_dy;
image += rgb_stride;
@@ -663,23 +663,23 @@ static inline void yuv420_rgb15 (yuv2rgb_t *this,
dy -= 32768;
py += y_stride;
- scale_line (py, this->y_buffer,
+ scale_line (py, this->y_buffer,
this->dest_width, this->step_dx);
if (height & 1) {
pu += uv_stride;
pv += uv_stride;
-
+
scale_line (pu, this->u_buffer,
this->dest_width >> 1, this->step_dx);
scale_line (pv, this->v_buffer,
this->dest_width >> 1, this->step_dx);
-
+
}
height++;
} while( dy>=32768 );
}
- }
+ }
}
static inline void yuv420_rgb24 (yuv2rgb_t *this,
@@ -732,7 +732,7 @@ static inline void yuv420_rgb24 (yuv2rgb_t *this,
this->dest_width >> 1, this->step_dx);
scale_line (pv, this->v_buffer,
this->dest_width >> 1, this->step_dx);
- scale_line (py, this->y_buffer,
+ scale_line (py, this->y_buffer,
this->dest_width, this->step_dx);
dst_height = this->next_slice (this, &image);
@@ -749,13 +749,13 @@ static inline void yuv420_rgb24 (yuv2rgb_t *this,
/* printf ("i : %d\n",i); */
mmx_yuv2rgb (y_buf, u_buf, v_buf, this->table_mmx);
- mmx_unpack_24rgb (img, cpu);
+ mmx_unpack_24rgb (img, cpu);
y_buf += 8;
u_buf += 4;
v_buf += 4;
img += 24;
} while (--i);
-
+
dy += this->step_dy;
image += rgb_stride;
@@ -773,14 +773,14 @@ static inline void yuv420_rgb24 (yuv2rgb_t *this,
do {
dy -= 32768;
py += y_stride;
-
- scale_line (py, this->y_buffer,
+
+ scale_line (py, this->y_buffer,
this->dest_width, this->step_dx);
if (height & 1) {
pu += uv_stride;
pv += uv_stride;
-
+
scale_line (pu, this->u_buffer,
this->dest_width >> 1, this->step_dx);
scale_line (pv, this->v_buffer,
@@ -790,7 +790,7 @@ static inline void yuv420_rgb24 (yuv2rgb_t *this,
} while( dy>=32768 );
}
-
+
}
}
@@ -844,11 +844,11 @@ static inline void yuv420_argb32 (yuv2rgb_t *this,
this->dest_width >> 1, this->step_dx);
scale_line (pv, this->v_buffer,
this->dest_width >> 1, this->step_dx);
- scale_line (py, this->y_buffer,
+ scale_line (py, this->y_buffer,
this->dest_width, this->step_dx);
dst_height = this->next_slice (this, &image);
-
+
for (height = 0;; ) {
y_buf = this->y_buffer;
@@ -861,19 +861,19 @@ static inline void yuv420_argb32 (yuv2rgb_t *this,
/* printf ("i : %d\n",i); */
mmx_yuv2rgb (y_buf, u_buf, v_buf, this->table_mmx);
- mmx_unpack_32rgb (img, cpu);
+ mmx_unpack_32rgb (img, cpu);
y_buf += 8;
u_buf += 4;
v_buf += 4;
img += 32;
} while (--i);
-
+
dy += this->step_dy;
image += rgb_stride;
while (--dst_height > 0 && dy < 32768) {
- xine_fast_memcpy (image, image-rgb_stride, this->dest_width*4);
+ xine_fast_memcpy (image, image-rgb_stride, this->dest_width*4);
dy += this->step_dy;
image += rgb_stride;
@@ -885,14 +885,14 @@ static inline void yuv420_argb32 (yuv2rgb_t *this,
do {
dy -= 32768;
py += y_stride;
-
- scale_line (py, this->y_buffer,
+
+ scale_line (py, this->y_buffer,
this->dest_width, this->step_dx);
if (height & 1) {
pu += uv_stride;
pv += uv_stride;
-
+
scale_line (pu, this->u_buffer,
this->dest_width >> 1, this->step_dx);
scale_line (pv, this->v_buffer,
@@ -901,7 +901,7 @@ static inline void yuv420_argb32 (yuv2rgb_t *this,
height++;
} while( dy>=32768 );
}
-
+
}
}
@@ -955,11 +955,11 @@ static inline void yuv420_abgr32 (yuv2rgb_t *this,
this->dest_width >> 1, this->step_dx);
scale_line (pv, this->v_buffer,
this->dest_width >> 1, this->step_dx);
- scale_line (py, this->y_buffer,
+ scale_line (py, this->y_buffer,
this->dest_width, this->step_dx);
dst_height = this->next_slice (this, &image);
-
+
for (height = 0;; ) {
y_buf = this->y_buffer;
@@ -972,19 +972,19 @@ static inline void yuv420_abgr32 (yuv2rgb_t *this,
/* printf ("i : %d\n",i); */
mmx_yuv2rgb (y_buf, u_buf, v_buf, this->table_mmx);
- mmx_unpack_32bgr (img, cpu);
+ mmx_unpack_32bgr (img, cpu);
y_buf += 8;
u_buf += 4;
v_buf += 4;
img += 32;
} while (--i);
-
+
dy += this->step_dy;
image += rgb_stride;
while (--dst_height > 0 && dy < 32768) {
- xine_fast_memcpy (image, image-rgb_stride, this->dest_width*4);
+ xine_fast_memcpy (image, image-rgb_stride, this->dest_width*4);
dy += this->step_dy;
image += rgb_stride;
@@ -996,14 +996,14 @@ static inline void yuv420_abgr32 (yuv2rgb_t *this,
do {
dy -= 32768;
py += y_stride;
-
- scale_line (py, this->y_buffer,
+
+ scale_line (py, this->y_buffer,
this->dest_width, this->step_dx);
if (height & 1) {
pu += uv_stride;
pv += uv_stride;
-
+
scale_line (pu, this->u_buffer,
this->dest_width >> 1, this->step_dx);
scale_line (pv, this->v_buffer,
@@ -1013,7 +1013,7 @@ static inline void yuv420_abgr32 (yuv2rgb_t *this,
} while( dy>=32768 );
}
-
+
}
}
@@ -1089,7 +1089,7 @@ static void mmx_abgr32 (yuv2rgb_t *this, uint8_t * image,
void yuv2rgb_init_mmxext (yuv2rgb_factory_t *this) {
- if (this->swapped)
+ if (this->swapped)
return; /*no swapped pixel output upto now*/
switch (this->mode) {
@@ -1113,7 +1113,7 @@ void yuv2rgb_init_mmxext (yuv2rgb_factory_t *this) {
void yuv2rgb_init_mmx (yuv2rgb_factory_t *this) {
- if (this->swapped)
+ if (this->swapped)
return; /*no swapped pixel output upto now*/
switch (this->mode) {
diff --git a/src/xine-engine/accel_xvmc.h b/src/xine-engine/accel_xvmc.h
index 993f914bf..f7deeeb52 100644
--- a/src/xine-engine/accel_xvmc.h
+++ b/src/xine-engine/accel_xvmc.h
@@ -3,23 +3,23 @@
* Copyright (C) 2004 the Unichrome project
*
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
*
*
- * Common acceleration definitions for XvMC.
+ * Common acceleration definitions for XvMC.
*
*
*/
@@ -85,7 +85,7 @@ typedef struct xine_xxmc_s {
*/
xine_xvmc_t xvmc;
-
+
unsigned mpeg;
unsigned acceleration;
int fallback_format;
@@ -107,7 +107,7 @@ typedef struct xine_xxmc_s {
* For thread-safety only.
*/
- int (*proc_xxmc_lock_valid) (vo_frame_t *cur_frame, vo_frame_t *fw_frame,
+ int (*proc_xxmc_lock_valid) (vo_frame_t *cur_frame, vo_frame_t *fw_frame,
vo_frame_t *bw_frame,unsigned pc_type);
void (*proc_xxmc_unlock) (vo_driver_t *this_gen);
} xine_xxmc_t;
diff --git a/src/xine-engine/alphablend.c b/src/xine-engine/alphablend.c
index dd8c4987b..15fc538ab 100644
--- a/src/xine-engine/alphablend.c
+++ b/src/xine-engine/alphablend.c
@@ -1,7 +1,7 @@
/*
*
* Copyright (C) James Courtier-Dutton James@superbug.demon.co.uk - July 2001
- *
+ *
* Copyright (C) 2000 Thomas Mirlacher
* 2002-2004 the xine project
*
@@ -114,7 +114,7 @@ rle_img_advance_line(rle_elem_t *rle, rle_elem_t *rle_limit, int w)
/*
* heck, this function is overly complicated and currently buggy.
- * if James would like to revive it (implementing proper clipping -
+ * if James would like to revive it (implementing proper clipping -
* not to confuse with button highlight) i would have no objections,
* but for now i will be using an alternate version based on rgb24. [MF]
*
@@ -181,7 +181,7 @@ void blend_rgb16 (uint8_t * img, vo_overlay_t * img_overl,
printf("blend_rgb16: dy_step=%i, x_scale=%i\n", dy_step, x_scale);
#endif
if (img_width & 1) img_width++;
- img_offset = ( ( (y_off * img_height) / dst_height) * img_width)
+ img_offset = ( ( (y_off * img_height) / dst_height) * img_width)
+ ( (x_off * img_width) / dst_width);
#ifdef LOG_BLEND_RGB16
printf("blend_rgb16: x=%i, y=%i, w=%i, h=%i, img_offset=%lf\n", img_overl->x, img_overl->y,
@@ -190,7 +190,7 @@ void blend_rgb16 (uint8_t * img, vo_overlay_t * img_overl,
img_offset);
#endif
img_pix = (uint16_t *) img + (int)img_offset;
-/*
+/*
+ (y_off * img_height / dst_height) * img_width
+ (x_off * img_width / dst_width);
*/
@@ -200,26 +200,26 @@ void blend_rgb16 (uint8_t * img, vo_overlay_t * img_overl,
clip_right = src_width;
else
clip_right = dst_width - x_off;
-
+
if( x_off >= 0 )
clip_left = 0;
else
clip_left = -x_off;
-
+
if( y_off >= 0 )
clip_top = 0;
else
clip_top = -y_off;
-
+
if( (src_height + y_off) > dst_height )
src_height = dst_height - y_off;
-
+
/* make highlight area fit into clip area */
if( img_overl->hili_right <= clip_right )
hili_right = img_overl->hili_right;
else
hili_right = clip_right;
-
+
if( img_overl->hili_left >= clip_left )
hili_left = img_overl->hili_left;
else
@@ -233,7 +233,7 @@ void blend_rgb16 (uint8_t * img, vo_overlay_t * img_overl,
x = x1_scaled = x2_scaled = 0;
#ifdef LOG_BLEND_RGB16
- printf("blend_rgb16 started\n");
+ printf("blend_rgb16 started\n");
#endif
while (zone_state != 6) {
@@ -287,10 +287,10 @@ void blend_rgb16 (uint8_t * img, vo_overlay_t * img_overl,
mem_blend16(img_pix+x1_scaled, *((uint16_t *)&clut[clr]), o, x2_scaled-x1_scaled);
}
x += rle_this_bite;
- if (x >= src_width ) {
+ if (x >= src_width ) {
x -= src_width;
img_pix += img_width;
-
+
dy += dy_step;
if (dy >= INT_TO_SCALED(1)) {
dy -= INT_TO_SCALED(1);
@@ -304,7 +304,7 @@ void blend_rgb16 (uint8_t * img, vo_overlay_t * img_overl,
} else {
rle = rle_start; /* y-scaling, reuse the last rle encoded line */
}
- }
+ }
rle_remainder = rlelen = rle->len;
clr_next = rle->color;
rle++;
@@ -345,7 +345,7 @@ void blend_rgb16 (uint8_t * img, vo_overlay_t * img_overl,
mem_blend16(img_pix+x1_scaled, *((uint16_t *)&clut[clr]), o, x2_scaled-x1_scaled);
}
x += rle_this_bite;
- if (x >= src_width ) {
+ if (x >= src_width ) {
x -= src_width;
img_pix += img_width;
dy += dy_step;
@@ -390,7 +390,7 @@ void blend_rgb16 (uint8_t * img, vo_overlay_t * img_overl,
mem_blend16(img_pix+x1_scaled, *((uint16_t *)&clut[clr]), o, x2_scaled-x1_scaled);
}
x += rle_this_bite;
- if (x >= src_width ) {
+ if (x >= src_width ) {
x -= src_width;
img_pix += img_width;
dy += dy_step;
@@ -410,7 +410,7 @@ void blend_rgb16 (uint8_t * img, vo_overlay_t * img_overl,
zone_state = 5;
break;
}
- }
+ }
if (rle >= rle_limit) {
zone_state = 6;
}
@@ -435,7 +435,7 @@ void blend_rgb16 (uint8_t * img, vo_overlay_t * img_overl,
mem_blend16(img_pix+x1_scaled, *((uint16_t *)&clut[clr]), o, x2_scaled-x1_scaled);
}
x += rle_this_bite;
- if (x >= src_width ) {
+ if (x >= src_width ) {
x -= src_width;
img_pix += img_width;
dy += dy_step;
@@ -455,7 +455,7 @@ void blend_rgb16 (uint8_t * img, vo_overlay_t * img_overl,
zone_state = 5;
break;
}
- }
+ }
if (rle >= rle_limit) {
zone_state = 6;
}
@@ -473,7 +473,7 @@ void blend_rgb16 (uint8_t * img, vo_overlay_t * img_overl,
mem_blend16(img_pix+x1_scaled, *((uint16_t *)&clut[clr]), o, x2_scaled-x1_scaled);
}
x += rle_this_bite;
- if (x >= src_width ) {
+ if (x >= src_width ) {
x -= src_width;
img_pix += img_width;
dy += dy_step;
@@ -489,7 +489,7 @@ void blend_rgb16 (uint8_t * img, vo_overlay_t * img_overl,
} else {
rle = rle_start; /* y-scaling, reuse the last rle encoded line */
}
- }
+ }
rle_remainder = rlelen = rle->len;
clr_next = rle->color;
rle++;
@@ -513,7 +513,7 @@ void blend_rgb16 (uint8_t * img, vo_overlay_t * img_overl,
mem_blend16(img_pix+x1_scaled, *((uint16_t *)&clut[clr]), o, x2_scaled-x1_scaled);
}
x += rle_this_bite;
- if (x >= src_width ) {
+ if (x >= src_width ) {
x -= src_width;
img_pix += img_width;
dy += dy_step;
@@ -529,7 +529,7 @@ void blend_rgb16 (uint8_t * img, vo_overlay_t * img_overl,
} else {
rle = rle_start; /* y-scaling, reuse the last rle encoded line */
}
- }
+ }
rle_remainder = rlelen = rle->len;
clr_next = rle->color;
rle++;
@@ -544,7 +544,7 @@ void blend_rgb16 (uint8_t * img, vo_overlay_t * img_overl,
#ifdef LOG_BLEND_RGB16
printf("blend_rgb16 ended\n");
#endif
-
+
}
#endif
@@ -576,26 +576,26 @@ void _x_blend_rgb16 (uint8_t * img, vo_overlay_t * img_overl,
clip_right = src_width;
else
clip_right = dst_width - x_off;
-
+
if( x_off >= 0 )
clip_left = 0;
else
clip_left = -x_off;
-
+
if( y_off >= 0 )
clip_top = 0;
else
clip_top = -y_off;
-
+
if( (src_height + y_off) > dst_height )
src_height = dst_height - y_off;
-
+
/* make highlight area fit into clip area */
if( img_overl->hili_right <= clip_right )
hili_right = img_overl->hili_right;
else
hili_right = clip_right;
-
+
if( img_overl->hili_left >= clip_left )
hili_left = img_overl->hili_left;
else
@@ -619,7 +619,7 @@ void _x_blend_rgb16 (uint8_t * img, vo_overlay_t * img_overl,
if (rlelen <= 0) {
if (rle >= rle_limit)
break;
-
+
rlelen = rle->len;
clr = rle->color;
rle++;
@@ -627,7 +627,7 @@ void _x_blend_rgb16 (uint8_t * img, vo_overlay_t * img_overl,
if (!mask) {
/* above or below highlight area */
-
+
rle_bite = rlelen;
/* choose palette for surrounding area */
colors = (clut_t*)img_overl->color;
@@ -646,7 +646,7 @@ void _x_blend_rgb16 (uint8_t * img, vo_overlay_t * img_overl,
trans = img_overl->trans;
} else {
/* ends left */
-
+
rle_bite = rlelen;
/* choose palette for surrounding area */
colors = (clut_t*)img_overl->color;
@@ -666,25 +666,25 @@ void _x_blend_rgb16 (uint8_t * img, vo_overlay_t * img_overl,
trans = img_overl->hili_trans;
} else {
/* starts right */
-
+
rle_bite = rlelen;
/* choose palette for surrounding area */
colors = (clut_t*)img_overl->color;
trans = img_overl->trans;
-
+
if( x + rle_bite >= clip_right )
clipped = 1;
}
} else {
/* starts not left and ends not right */
-
+
rle_bite = rlelen;
/* we're in the center area so choose highlight palette */
colors = (clut_t*)img_overl->hili_color;
trans = img_overl->hili_trans;
}
}
-
+
x2_scaled = SCALED_TO_INT((x + rle_bite) * x_scale);
o = trans[clr];
@@ -743,26 +743,26 @@ void _x_blend_rgb24 (uint8_t * img, vo_overlay_t * img_overl,
clip_right = src_width;
else
clip_right = dst_width - x_off;
-
+
if( x_off >= 0 )
clip_left = 0;
else
clip_left = -x_off;
-
+
if( y_off >= 0 )
clip_top = 0;
else
clip_top = -y_off;
-
+
if( (src_height + y_off) > dst_height )
src_height = dst_height - y_off;
-
+
/* make highlight area fit into clip area */
if( img_overl->hili_right <= clip_right )
hili_right = img_overl->hili_right;
else
hili_right = clip_right;
-
+
if( img_overl->hili_left >= clip_left )
hili_left = img_overl->hili_left;
else
@@ -786,7 +786,7 @@ void _x_blend_rgb24 (uint8_t * img, vo_overlay_t * img_overl,
if (rlelen <= 0) {
if (rle >= rle_limit)
break;
-
+
rlelen = rle->len;
clr = rle->color;
rle++;
@@ -794,7 +794,7 @@ void _x_blend_rgb24 (uint8_t * img, vo_overlay_t * img_overl,
if (!mask) {
/* above or below highlight area */
-
+
rle_bite = rlelen;
/* choose palette for surrounding area */
colors = (clut_t*)img_overl->color;
@@ -813,7 +813,7 @@ void _x_blend_rgb24 (uint8_t * img, vo_overlay_t * img_overl,
trans = img_overl->trans;
} else {
/* ends left */
-
+
rle_bite = rlelen;
/* choose palette for surrounding area */
colors = (clut_t*)img_overl->color;
@@ -833,25 +833,25 @@ void _x_blend_rgb24 (uint8_t * img, vo_overlay_t * img_overl,
trans = img_overl->hili_trans;
} else {
/* starts right */
-
+
rle_bite = rlelen;
/* choose palette for surrounding area */
colors = (clut_t*)img_overl->color;
trans = img_overl->trans;
-
+
if( x + rle_bite >= clip_right )
clipped = 1;
}
} else {
/* starts not left and ends not right */
-
+
rle_bite = rlelen;
/* we're in the center area so choose highlight palette */
colors = (clut_t*)img_overl->hili_color;
trans = img_overl->hili_trans;
}
}
-
+
x2_scaled = SCALED_TO_INT((x + rle_bite) * x_scale);
o = trans[clr];
@@ -910,50 +910,50 @@ void _x_blend_rgb32 (uint8_t * img, vo_overlay_t * img_overl,
clip_right = src_width;
else
clip_right = dst_width - x_off;
-
+
if( x_off >= 0 )
clip_left = 0;
else
clip_left = -x_off;
-
+
if( y_off >= 0 )
clip_top = 0;
else
clip_top = -y_off;
-
+
if( (src_height + y_off) > dst_height )
src_height = dst_height - y_off;
-
+
/* make highlight area fit into clip area */
if( img_overl->hili_right <= clip_right )
hili_right = img_overl->hili_right;
else
hili_right = clip_right;
-
+
if( img_overl->hili_left >= clip_left )
hili_left = img_overl->hili_left;
else
hili_left = clip_left;
-
+
for (y = dy = 0; y < src_height && rle < rle_limit; ) {
int mask = !(y < img_overl->hili_top || y >= img_overl->hili_bottom);
rle_elem_t *rle_start = rle;
int rlelen = 0;
uint8_t clr = 0;
-
+
for (x = x1_scaled = 0; x < src_width;) {
int rle_bite;
clut_t *colors;
uint8_t *trans;
uint16_t o;
int clipped = (y < clip_top);
-
+
/* take next element from rle list everytime an element is finished */
if (rlelen <= 0) {
if (rle >= rle_limit)
break;
-
+
rlelen = rle->len;
clr = rle->color;
rle++;
@@ -961,7 +961,7 @@ void _x_blend_rgb32 (uint8_t * img, vo_overlay_t * img_overl,
if (!mask) {
/* above or below highlight area */
-
+
rle_bite = rlelen;
/* choose palette for surrounding area */
colors = (clut_t*)img_overl->color;
@@ -980,7 +980,7 @@ void _x_blend_rgb32 (uint8_t * img, vo_overlay_t * img_overl,
trans = img_overl->trans;
} else {
/* ends left */
-
+
rle_bite = rlelen;
/* choose palette for surrounding area */
colors = (clut_t*)img_overl->color;
@@ -1000,25 +1000,25 @@ void _x_blend_rgb32 (uint8_t * img, vo_overlay_t * img_overl,
trans = img_overl->hili_trans;
} else {
/* starts right */
-
+
rle_bite = rlelen;
/* choose palette for surrounding area */
colors = (clut_t*)img_overl->color;
trans = img_overl->trans;
-
+
if( x + rle_bite >= clip_right )
clipped = 1;
}
} else {
/* starts not left and ends not right */
-
+
rle_bite = rlelen;
/* we're in the center area so choose highlight palette */
colors = (clut_t*)img_overl->hili_color;
trans = img_overl->hili_trans;
}
}
-
+
x2_scaled = SCALED_TO_INT((x + rle_bite) * x_scale);
o = trans[clr];
@@ -1056,11 +1056,11 @@ static void mem_blend8(uint8_t *mem, uint8_t val, uint8_t o, size_t sz)
}
}
-static void blend_yuv_exact(uint8_t *dst_cr, uint8_t *dst_cb, int src_width,
+static void blend_yuv_exact(uint8_t *dst_cr, uint8_t *dst_cb, int src_width,
uint8_t *(*blend_yuv_data)[ 3 ][ 2 ])
{
int x;
-
+
for (x = 0; x < src_width; x += 2) {
/* get opacity of the 4 pixels that share chroma */
int o00 = (*blend_yuv_data)[ 0 ][ 0 ][ x + 0 ];
@@ -1078,7 +1078,7 @@ static void blend_yuv_exact(uint8_t *dst_cr, uint8_t *dst_cb, int src_width,
int cr01 = (*blend_yuv_data)[ 1 ][ 0 ][ x + 1 ];
int cr10 = (*blend_yuv_data)[ 1 ][ 1 ][ x + 0 ];
int cr11 = (*blend_yuv_data)[ 1 ][ 1 ][ x + 1 ];
-
+
int cb00 = (*blend_yuv_data)[ 2 ][ 0 ][ x + 0 ];
int cb01 = (*blend_yuv_data)[ 2 ][ 0 ][ x + 1 ];
int cb10 = (*blend_yuv_data)[ 2 ][ 1 ][ x + 0 ];
@@ -1113,11 +1113,11 @@ static uint8_t *(*blend_yuv_grow_extra_data(alphablend_t *extra_data, int osd_wi
int max_width;
uint8_t *data[ 3 ][ 2 ];
} *header = (struct header_s *)extra_data->buffer;
-
+
size_t needed_buffer_size = sizeof (*header) + osd_width * sizeof (uint8_t[ 3 ][ 2 ]);
-
+
if (extra_data->buffer_size < needed_buffer_size) {
-
+
free(extra_data->buffer);
header = calloc(1, needed_buffer_size);
if (!header) {
@@ -1143,7 +1143,7 @@ static uint8_t *(*blend_yuv_grow_extra_data(alphablend_t *extra_data, int osd_wi
return &(header->data);
}
-
+
void _x_blend_yuv (uint8_t *dst_base[3], vo_overlay_t * img_overl,
int dst_width, int dst_height, int dst_pitches[3],
alphablend_t *extra_data)
@@ -1168,12 +1168,12 @@ void _x_blend_yuv (uint8_t *dst_base[3], vo_overlay_t * img_overl,
int hili_right, hili_left;
int clip_right, clip_left, clip_top;
uint8_t clr=0;
-
+
int any_line_buffered = 0;
int exact_blend_width = ((src_width <= (dst_width - x_off)) ? src_width : (dst_width - x_off));
int exact_blend_width_m2 = (x_odd + exact_blend_width + 1) & ~1; /* make it a (larger) multiple of 2 */
uint8_t *(*blend_yuv_data)[ 3 ][ 2 ] = 0;
-
+
uint8_t *dst_y = dst_base[0] + dst_pitches[0] * y_off + x_off;
uint8_t *dst_cr = dst_base[2] + (y_off / 2) * dst_pitches[1] + (x_off / 2);
uint8_t *dst_cb = dst_base[1] + (y_off / 2) * dst_pitches[2] + (x_off / 2);
@@ -1188,26 +1188,26 @@ void _x_blend_yuv (uint8_t *dst_base[3], vo_overlay_t * img_overl,
clip_right = src_width;
else
clip_right = dst_width - x_off;
-
+
if( x_off >= 0 )
clip_left = 0;
else
clip_left = -x_off;
-
+
if( y_off >= 0 )
clip_top = 0;
else
clip_top = -y_off;
-
+
if( (src_height + y_off) > dst_height )
src_height = dst_height - y_off;
-
+
/* make highlight area fit into clip area */
if( img_overl->hili_right <= clip_right )
hili_right = img_overl->hili_right;
else
hili_right = clip_right;
-
+
if( img_overl->hili_left >= clip_left )
hili_left = img_overl->hili_left;
else
@@ -1219,16 +1219,16 @@ void _x_blend_yuv (uint8_t *dst_base[3], vo_overlay_t * img_overl,
if (enable_exact_blending) {
if (exact_blend_width <= 0)
return;
-
+
blend_yuv_data = blend_yuv_grow_extra_data(extra_data, exact_blend_width_m2);
if (!blend_yuv_data)
return;
-
+
/* make linebuffer transparent */
memset(&(*blend_yuv_data)[ 0 ][ 0 ][ 0 ], 0, exact_blend_width_m2);
memset(&(*blend_yuv_data)[ 0 ][ 1 ][ 0 ], 0, exact_blend_width_m2);
}
-
+
rlelen=rle_remainder=0;
for (y = 0; y < src_height; y++) {
if (rle >= rle_limit) {
@@ -1237,7 +1237,7 @@ void _x_blend_yuv (uint8_t *dst_base[3], vo_overlay_t * img_overl,
#endif
break;
}
-
+
ymask = ((y < img_overl->hili_top) || (y >= img_overl->hili_bottom));
xmask = 0;
#ifdef LOG_BLEND_YUV
@@ -1247,14 +1247,14 @@ void _x_blend_yuv (uint8_t *dst_base[3], vo_overlay_t * img_overl,
for (x = 0; x < src_width;) {
uint16_t o;
int clipped = (y < clip_top);
-
+
if (rle >= rle_limit) {
#ifdef LOG_BLEND_YUV
printf("x-rle_limit\n");
#endif
break;
}
-
+
#ifdef LOG_BLEND_YUV
printf("1:rle_len=%d, remainder=%d, x=%d\n",rlelen, rle_remainder, x);
#endif
@@ -1263,7 +1263,7 @@ void _x_blend_yuv (uint8_t *dst_base[3], vo_overlay_t * img_overl,
#ifdef LOG_BLEND_YUV
printf("alphablend: major bug in blend_yuv < 0\n");
#endif
- }
+ }
if (rlelen == 0) {
rle_remainder = rlelen = rle->len;
clr = rle->color;
@@ -1281,11 +1281,11 @@ void _x_blend_yuv (uint8_t *dst_base[3], vo_overlay_t * img_overl,
#endif
if (ymask == 0) {
- if (x < hili_left) {
+ if (x < hili_left) {
/* Starts outside highlight area */
if ((x + rle_remainder) > hili_left ) {
#ifdef LOG_BLEND_YUV
- printf("Outside highlight left %d, ending inside\n", hili_left);
+ printf("Outside highlight left %d, ending inside\n", hili_left);
#endif
/* Cutting needed, starts outside, ends inside */
rle_this_bite = (hili_left - x);
@@ -1296,7 +1296,7 @@ void _x_blend_yuv (uint8_t *dst_base[3], vo_overlay_t * img_overl,
xmask = 0;
} else {
#ifdef LOG_BLEND_YUV
- printf("Outside highlight left %d, ending outside\n", hili_left);
+ printf("Outside highlight left %d, ending outside\n", hili_left);
#endif
/* no cutting needed, starts outside, ends outside */
rle_this_bite = rle_remainder;
@@ -1335,7 +1335,7 @@ void _x_blend_yuv (uint8_t *dst_base[3], vo_overlay_t * img_overl,
}
} else if (x >= hili_right) {
/* Starts outside highlight area, ends outside highlight area */
- if ((x + rle_remainder ) > src_width ) {
+ if ((x + rle_remainder ) > src_width ) {
#ifdef LOG_BLEND_YUV
printf("Outside highlight right %d, ending eol\n", hili_right);
#endif
@@ -1381,7 +1381,7 @@ void _x_blend_yuv (uint8_t *dst_base[3], vo_overlay_t * img_overl,
/* clip against right edge of destination area */
if ((x + rle_this_bite) > (dst_width - x_off)) {
int toClip = (x + rle_this_bite) - (dst_width - x_off);
-
+
rle_this_bite -= toClip;
rle_remainder += toClip;
rlelen += toClip;
@@ -1392,7 +1392,7 @@ void _x_blend_yuv (uint8_t *dst_base[3], vo_overlay_t * img_overl,
memset(&(*blend_yuv_data)[ 0 ][ (y + y_odd) & 1 ][ x + x_odd ], o, rle_this_bite);
any_line_buffered |= ((y + y_odd) & 1) ? 2 : 1;
}
-
+
if (o && !clipped) {
if(o >= 15) {
memset(dst_y + x, my_clut[clr].y, rle_this_bite);
@@ -1434,17 +1434,17 @@ void _x_blend_yuv (uint8_t *dst_base[3], vo_overlay_t * img_overl,
/* make second line transparent */
memset(&(*blend_yuv_data)[ 0 ][ 1 ][ 0 ], 0, exact_blend_width_m2);
}
-
+
blend_yuv_exact(dst_cr, dst_cb, exact_blend_width, blend_yuv_data);
-
+
any_line_buffered = 0;
}
}
-
+
dst_cr += dst_pitches[2];
dst_cb += dst_pitches[1];
}
-
+
dst_y += dst_pitches[0];
}
@@ -1455,21 +1455,21 @@ void _x_blend_yuv (uint8_t *dst_base[3], vo_overlay_t * img_overl,
/* make second line transparent */
memset(&(*blend_yuv_data)[ 0 ][ 1 ][ 0 ], 0, exact_blend_width_m2);
}
-
+
blend_yuv_exact(dst_cr, dst_cb, exact_blend_width, blend_yuv_data);
}
}
-
+
#ifdef LOG_BLEND_YUV
printf("overlay_blend ended\n");
#endif
}
-
+
static void blend_yuy2_exact(uint8_t *dst_cr, uint8_t *dst_cb, int src_width,
uint8_t *(*blend_yuy2_data)[ 3 ])
{
int x;
-
+
for (x = 0; x < src_width; x += 2) {
/* get opacity of the 2 pixels that share chroma */
int o0 = (*blend_yuy2_data)[ 0 ][ x + 0 ];
@@ -1481,7 +1481,7 @@ static void blend_yuy2_exact(uint8_t *dst_cr, uint8_t *dst_cb, int src_width,
/* get the chroma components of the 2 pixels */
int cr0 = (*blend_yuy2_data)[ 1 ][ x + 0 ];
int cr1 = (*blend_yuy2_data)[ 1 ][ x + 1 ];
-
+
int cb0 = (*blend_yuy2_data)[ 2 ][ x + 0 ];
int cb1 = (*blend_yuy2_data)[ 2 ][ x + 1 ];
@@ -1496,7 +1496,7 @@ static void blend_yuy2_exact(uint8_t *dst_cr, uint8_t *dst_cb, int src_width,
/*
* No need to adjust chroma values with +/- 128:
- * *dst_cb
+ * *dst_cb
* = 128 + ((*dst_cb-128) * t2 + (cb0-128) * o0 + (cb1-128) * o1) / (2 * 0xf);
* = 128 + (*dst_cb * t2 + cb0 * o0 + cb1 * o1 + (t2*(-128) - 128*o0 - 128*o1)) / (2 * 0xf);
* = 128 + (*dst_cb * t2 + cb0 * o0 + cb1 * o1 + ((2*0xf-o0-o1)*(-128) - 128*o0 - 128*o1)) / (2 * 0xf);
@@ -1512,8 +1512,8 @@ static void blend_yuy2_exact(uint8_t *dst_cr, uint8_t *dst_cb, int src_width,
* =(almost) X * 0x1112/0x10000
* = (X * 0x1112) >> 16
*
- * The tricky point is 0x1111/0xffff --> 0x1112/0x10000.
- * All calculations are done using integers and X is in
+ * The tricky point is 0x1111/0xffff --> 0x1112/0x10000.
+ * All calculations are done using integers and X is in
* range of [0 ... 0xff*0xf*4]. This results in error of
* X*0x1112/0x10000 - X/0xf
* = X*(0x1112/0x10000 - 1/0xf)
@@ -1523,7 +1523,7 @@ static void blend_yuy2_exact(uint8_t *dst_cr, uint8_t *dst_cb, int src_width,
* As the error is less than 1 and always positive, whole error
* "disappears" during truncation (>>16). Rounding to exact results is
* guaranteed by selecting 0x1112 instead of more accurate 0x1111
- * (with 0x1111 error=X*(-0.00001111...)). With 0x1112 error is
+ * (with 0x1111 error=X*(-0.00001111...)). With 0x1112 error is
* always positive, but still less than one.
* So, one can forget the "=(almost)" as it is really "=" when source
* operands are within 0...0xff (U,V) and 0...0xf (A).
@@ -1531,7 +1531,7 @@ static void blend_yuy2_exact(uint8_t *dst_cr, uint8_t *dst_cb, int src_width,
* 1/0x10000 (= >>16) was originally selected because of MMX pmullhw
* instruction; it makes possible to do whole calculation in MMX using
* uint16's (pmullhw is (X*Y)>>16).
- *
+ *
* Here X/(2*0xf) = X/0xf/2 = ((X*0x1112)>>16)>>1 = (X*0x1112)>>17
*/
@@ -1555,11 +1555,11 @@ static uint8_t *(*blend_yuy2_grow_extra_data(alphablend_t *extra_data, int osd_w
int max_width;
uint8_t *data[ 3 ];
} *header = (struct header_s *)extra_data->buffer;
-
+
size_t needed_buffer_size = sizeof (*header) + osd_width * sizeof (uint8_t[ 3 ]);
-
+
if (extra_data->buffer_size < needed_buffer_size) {
-
+
free(extra_data->buffer);
header = calloc(1, needed_buffer_size);
if (!header) {
@@ -1619,7 +1619,7 @@ void _x_blend_yuy2 (uint8_t * dst_img, vo_overlay_t * img_overl,
int exact_blend_width = ((src_width <= (dst_width - x_off)) ? src_width : (dst_width - x_off));
int exact_blend_width_m2 = (x_odd + exact_blend_width + 1) & ~1; /* make it a (larger) multiple of 2 */
uint8_t *(*blend_yuy2_data)[ 3 ] = 0;
-
+
uint8_t *dst_y = dst_img + dst_pitch * y_off + 2 * x_off;
uint8_t *dst;
@@ -1631,26 +1631,26 @@ void _x_blend_yuy2 (uint8_t * dst_img, vo_overlay_t * img_overl,
clip_right = src_width;
else
clip_right = dst_width - x_off;
-
+
if( x_off >= 0 )
clip_left = 0;
else
clip_left = -x_off;
-
+
if( y_off >= 0 )
clip_top = 0;
else
clip_top = -y_off;
-
+
if( (src_height + y_off) > dst_height )
src_height = dst_height - y_off;
-
+
/* make highlight area fit into clip area */
if( img_overl->hili_right <= clip_right )
hili_right = img_overl->hili_right;
else
hili_right = clip_right;
-
+
if( img_overl->hili_left >= clip_left )
hili_left = img_overl->hili_left;
else
@@ -1662,11 +1662,11 @@ void _x_blend_yuy2 (uint8_t * dst_img, vo_overlay_t * img_overl,
if (enable_exact_blending) {
if (exact_blend_width <= 0)
return;
-
+
blend_yuy2_data = blend_yuy2_grow_extra_data(extra_data, exact_blend_width_m2);
if (!blend_yuy2_data)
return;
-
+
/* make linebuffer transparent */
memset(&(*blend_yuy2_data)[ 0 ][ 0 ], 0, exact_blend_width_m2);
}
@@ -1675,7 +1675,7 @@ void _x_blend_yuy2 (uint8_t * dst_img, vo_overlay_t * img_overl,
for (y = 0; y < src_height; y++) {
if (rle >= rle_limit)
break;
-
+
ymask = ((y < img_overl->hili_top) || (y >= img_overl->hili_bottom));
dst = dst_y;
@@ -1685,12 +1685,12 @@ void _x_blend_yuy2 (uint8_t * dst_img, vo_overlay_t * img_overl,
if (rle >= rle_limit)
break;
-
+
if ((rlelen < 0) || (rle_remainder < 0)) {
#ifdef LOG_BLEND_YUV
printf("alphablend: major bug in blend_yuv < 0\n");
#endif
- }
+ }
if (rlelen == 0) {
rle_remainder = rlelen = rle->len;
clr = rle->color;
@@ -1708,11 +1708,11 @@ void _x_blend_yuy2 (uint8_t * dst_img, vo_overlay_t * img_overl,
#endif
if (ymask == 0) {
- if (x < hili_left) {
+ if (x < hili_left) {
/* Starts outside highlight area */
if ((x + rle_remainder) > hili_left ) {
#ifdef LOG_BLEND_YUV
- printf("Outside highlight left %d, ending inside\n", hili_left);
+ printf("Outside highlight left %d, ending inside\n", hili_left);
#endif
/* Cutting needed, starts outside, ends inside */
rle_this_bite = (hili_left - x);
@@ -1722,7 +1722,7 @@ void _x_blend_yuy2 (uint8_t * dst_img, vo_overlay_t * img_overl,
my_trans = img_overl->trans;
} else {
#ifdef LOG_BLEND_YUV
- printf("Outside highlight left %d, ending outside\n", hili_left);
+ printf("Outside highlight left %d, ending outside\n", hili_left);
#endif
/* no cutting needed, starts outside, ends outside */
rle_this_bite = rle_remainder;
@@ -1758,7 +1758,7 @@ void _x_blend_yuy2 (uint8_t * dst_img, vo_overlay_t * img_overl,
}
} else if (x >= hili_right) {
/* Starts outside highlight area, ends outsite highlight area */
- if ((x + rle_remainder ) > src_width ) {
+ if ((x + rle_remainder ) > src_width ) {
#ifdef LOG_BLEND_YUV
printf("Outside highlight right %d, ending eol\n", hili_right);
#endif
@@ -1798,7 +1798,7 @@ void _x_blend_yuy2 (uint8_t * dst_img, vo_overlay_t * img_overl,
/* clip against right edge of destination area */
if ((x + rle_this_bite) > (dst_width - x_off)) {
int toClip = (x + rle_this_bite) - (dst_width - x_off);
-
+
rle_this_bite -= toClip;
rle_remainder += toClip;
rlelen += toClip;
@@ -1850,7 +1850,7 @@ void _x_blend_yuy2 (uint8_t * dst_img, vo_overlay_t * img_overl,
mem_blend32(dst, &yuy2.b[0], o, l);
dst += 4*l;
}
-
+
if(rle_this_bite & 1) {
*dst = BLEND_BYTE(*dst, yuy2.b[0], o);
dst++;
@@ -1875,15 +1875,15 @@ void _x_blend_yuy2 (uint8_t * dst_img, vo_overlay_t * img_overl,
dst += rle_this_bite*2;
}
}
-
+
x += rle_this_bite;
}
-
+
if (enable_exact_blending) {
/* blend buffered line */
if (any_line_buffered) {
blend_yuy2_exact(dst_y - x_odd * 2 + 3, dst_y - x_odd * 2 + 1, exact_blend_width, blend_yuy2_data);
-
+
any_line_buffered = 0;
}
}
@@ -1892,7 +1892,7 @@ void _x_blend_yuy2 (uint8_t * dst_img, vo_overlay_t * img_overl,
}
}
-void _x_clear_xx44_palette(xx44_palette_t *p)
+void _x_clear_xx44_palette(xx44_palette_t *p)
{
register int i;
register uint32_t *cluts = p->cluts;
@@ -1904,20 +1904,20 @@ void _x_clear_xx44_palette(xx44_palette_t *p)
i = 2*OVL_PALETTE_SIZE;
while(i--)
*ids++ = -1;
- p->max_used=1;
+ p->max_used=1;
}
-void _x_init_xx44_palette(xx44_palette_t *p, unsigned num_entries)
+void _x_init_xx44_palette(xx44_palette_t *p, unsigned num_entries)
{
- p->size = (num_entries > XX44_PALETTE_SIZE) ? XX44_PALETTE_SIZE : num_entries;
+ p->size = (num_entries > XX44_PALETTE_SIZE) ? XX44_PALETTE_SIZE : num_entries;
}
-void _x_dispose_xx44_palette(xx44_palette_t *p)
+void _x_dispose_xx44_palette(xx44_palette_t *p)
{
}
static void colorToPalette(const uint32_t *icolor, unsigned char *palette_p,
- unsigned num_xvmc_components, char *xvmc_components)
+ unsigned num_xvmc_components, char *xvmc_components)
{
const clut_t *color = (const clut_t *) icolor;
unsigned int i;
@@ -1925,7 +1925,7 @@ static void colorToPalette(const uint32_t *icolor, unsigned char *palette_p,
switch(xvmc_components[i]) {
case 'V': *palette_p = color->cr; break;
case 'U': *palette_p = color->cb; break;
- case 'Y':
+ case 'Y':
default: *palette_p = color->y; break;
}
palette_p++;
@@ -1935,7 +1935,7 @@ static void colorToPalette(const uint32_t *icolor, unsigned char *palette_p,
void _x_xx44_to_xvmc_palette(const xx44_palette_t *p,unsigned char *xvmc_palette,
unsigned first_xx44_entry, unsigned num_xx44_entries,
- unsigned num_xvmc_components, char *xvmc_components)
+ unsigned num_xvmc_components, char *xvmc_components)
{
register unsigned int i;
register const uint32_t *cluts = p->cluts + first_xx44_entry;
@@ -1946,16 +1946,16 @@ void _x_xx44_to_xvmc_palette(const xx44_palette_t *p,unsigned char *xvmc_palette
xvmc_palette += num_xvmc_components;
}
}
-}
+}
-static int xx44_paletteIndex(xx44_palette_t *p, int color, uint32_t clut)
+static int xx44_paletteIndex(xx44_palette_t *p, int color, uint32_t clut)
{
register unsigned int i;
register uint32_t *cluts = p->cluts;
register int tmp;
- if ((tmp = p->lookup_cache[color]) >= 0)
+ if ((tmp = p->lookup_cache[color]) >= 0)
if (cluts[tmp] == clut) return tmp;
for (i=0; i<p->max_used; ++i) {
@@ -1972,7 +1972,7 @@ static int xx44_paletteIndex(xx44_palette_t *p, int color, uint32_t clut)
static void memblend_xx44(uint8_t *mem,uint8_t val, register size_t size, uint8_t mask)
{
- register uint8_t
+ register uint8_t
masked_val;
if (0 == (masked_val = val & mask)) return;
@@ -1984,16 +1984,16 @@ static void memblend_xx44(uint8_t *mem,uint8_t val, register size_t size, uint8_
}
void _x_blend_xx44 (uint8_t *dst_img, vo_overlay_t *img_overl,
- int dst_width, int dst_height, int dst_pitch,
+ int dst_width, int dst_height, int dst_pitch,
alphablend_t *extra_data,
- xx44_palette_t *palette,int ia44)
+ xx44_palette_t *palette,int ia44)
{
int src_width, src_height;
rle_elem_t *rle, *rle_limit;
int mask;
int x_off, y_off;
int x, y;
- uint8_t norm_pixel,hili_pixel;
+ uint8_t norm_pixel,hili_pixel;
uint8_t *dst_y;
uint8_t *dst;
uint8_t alphamask = (ia44) ? 0x0F : 0xF0;
@@ -2017,26 +2017,26 @@ void _x_blend_xx44 (uint8_t *dst_img, vo_overlay_t *img_overl,
clip_right = src_width;
else
clip_right = dst_width - x_off;
-
+
if( x_off >= 0 )
clip_left = 0;
else
clip_left = -x_off;
-
+
if( y_off >= 0 )
clip_top = 0;
else
clip_top = -y_off;
-
+
if( (src_height + y_off) > dst_height )
src_height = dst_height - y_off;
-
+
/* make highlight area fit into clip area */
if( img_overl->hili_right <= clip_right )
hili_right = img_overl->hili_right;
else
hili_right = clip_right;
-
+
if( img_overl->hili_left >= clip_left )
hili_left = img_overl->hili_left;
else
@@ -2053,10 +2053,10 @@ void _x_blend_xx44 (uint8_t *dst_img, vo_overlay_t *img_overl,
if (len > 0) {
norm_pixel = (uint8_t)((xx44_paletteIndex(palette,rle->color,
- img_overl->color[rle->color]) << 4) |
+ img_overl->color[rle->color]) << 4) |
(img_overl->trans[rle->color] & 0x0F));
hili_pixel = (uint8_t)((xx44_paletteIndex(palette,rle->color+OVL_PALETTE_SIZE,
- img_overl->hili_color[rle->color]) << 4) |
+ img_overl->hili_color[rle->color]) << 4) |
(img_overl->hili_trans[rle->color] & 0x0F));
if (!ia44) {
norm_pixel = ((norm_pixel & 0x0F) << 4) | ((norm_pixel & 0xF0) >> 4);
@@ -2091,7 +2091,7 @@ void _x_blend_xx44 (uint8_t *dst_img, vo_overlay_t *img_overl,
dst += len;
}
}
- } else if (x < hili_right) {
+ } else if (x < hili_right) {
if (len <= hili_right - x) {
if(!clipped)
memblend_xx44(dst,hili_pixel,len, alphamask);
@@ -2123,7 +2123,7 @@ void _x_blend_xx44 (uint8_t *dst_img, vo_overlay_t *img_overl,
x += rle->len;
rle++;
if (rle >= rle_limit) break;
- }
+ }
if (rle >= rle_limit) break;
dst_y += dst_pitch;
}
@@ -2139,7 +2139,7 @@ static void alphablend_disable_exact_osd_alpha_blending_changed(void *user_data,
void _x_alphablend_init(alphablend_t *extra_data, xine_t *xine)
{
config_values_t *config = xine->config;
-
+
extra_data->buffer = 0;
extra_data->buffer_size = 0;
extra_data->offset_x = 0;
diff --git a/src/xine-engine/audio_decoder.c b/src/xine-engine/audio_decoder.c
index 483567994..687121457 100644
--- a/src/xine-engine/audio_decoder.c
+++ b/src/xine-engine/audio_decoder.c
@@ -1,18 +1,18 @@
/*
* Copyright (C) 2000-2005 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -60,18 +60,18 @@ static void *audio_decoder_loop (void *stream_gen) {
while (running) {
- lprintf ("audio_loop: waiting for package...\n");
+ lprintf ("audio_loop: waiting for package...\n");
if( !replaying_headers )
buf = stream->audio_fifo->get (stream->audio_fifo);
- lprintf ("audio_loop: got package pts = %"PRId64", type = %08x\n", buf->pts, buf->type);
+ lprintf ("audio_loop: got package pts = %"PRId64", type = %08x\n", buf->pts, buf->type);
_x_extra_info_merge( stream->audio_decoder_extra_info, buf->extra_info );
stream->audio_decoder_extra_info->seek_count = stream->video_seek_count;
-
+
switch (buf->type) {
-
+
case BUF_CONTROL_HEADERS_DONE:
pthread_mutex_lock (&stream->counter_lock);
stream->header_count_audio++;
@@ -85,11 +85,11 @@ static void *audio_decoder_loop (void *stream_gen) {
/* decoder dispose might call port functions */
running_ticket->acquire(running_ticket, 0);
-
+
if (stream->audio_decoder_plugin) {
lprintf ("close old decoder\n");
-
+
stream->keep_ao_driver_open = !!(buf->decoder_flags & BUF_FLAG_GAPLESS_SW);
_x_free_audio_decoder (stream, stream->audio_decoder_plugin);
stream->audio_decoder_plugin = NULL;
@@ -97,15 +97,15 @@ static void *audio_decoder_loop (void *stream_gen) {
stream->audio_type = 0;
stream->keep_ao_driver_open = 0;
}
-
+
running_ticket->release(running_ticket, 0);
-
+
if( !(buf->decoder_flags & BUF_FLAG_GAPLESS_SW) )
stream->metronom->handle_audio_discontinuity (stream->metronom, DISC_STREAMSTART, 0);
-
+
buftype_unknown = 0;
break;
-
+
case BUF_CONTROL_END:
/* free all held header buffers, see comments below */
@@ -128,12 +128,12 @@ static void *audio_decoder_loop (void *stream_gen) {
*/
while(1) {
int num_bufs, num_streams;
-
+
running_ticket->acquire(running_ticket, 0);
num_bufs = stream->audio_out->get_property(stream->audio_out, AO_PROP_BUFS_IN_FIFO);
num_streams = stream->audio_out->get_property(stream->audio_out, AO_PROP_NUM_STREAMS);
running_ticket->release(running_ticket, 0);
-
+
if( num_bufs > 0 && num_streams == 1 && !stream->early_finish_event)
xine_usec_sleep (10000);
else
@@ -144,7 +144,7 @@ static void *audio_decoder_loop (void *stream_gen) {
pthread_mutex_lock (&stream->counter_lock);
stream->finished_count_audio++;
-
+
lprintf ("reached end marker # %d\n", stream->finished_count_audio);
pthread_cond_broadcast (&stream->counter_changed);
@@ -164,18 +164,18 @@ static void *audio_decoder_loop (void *stream_gen) {
stream->audio_channel_auto = -1;
break;
-
+
case BUF_CONTROL_QUIT:
/* decoder dispose might call port functions */
running_ticket->acquire(running_ticket, 0);
-
+
if (stream->audio_decoder_plugin) {
_x_free_audio_decoder (stream, stream->audio_decoder_plugin);
stream->audio_decoder_plugin = NULL;
stream->audio_track_map_entries = 0;
stream->audio_type = 0;
}
-
+
running_ticket->release(running_ticket, 0);
running = 0;
break;
@@ -193,14 +193,14 @@ static void *audio_decoder_loop (void *stream_gen) {
running_ticket->release(running_ticket, 0);
}
break;
-
+
case BUF_CONTROL_DISCONTINUITY:
if (stream->audio_decoder_plugin) {
running_ticket->acquire(running_ticket, 0);
stream->audio_decoder_plugin->discontinuity (stream->audio_decoder_plugin);
running_ticket->release(running_ticket, 0);
}
-
+
stream->metronom->handle_audio_discontinuity (stream->metronom, DISC_RELATIVE, buf->disc_off);
break;
@@ -210,7 +210,7 @@ static void *audio_decoder_loop (void *stream_gen) {
stream->audio_decoder_plugin->discontinuity (stream->audio_decoder_plugin);
running_ticket->release(running_ticket, 0);
}
-
+
if (buf->decoder_flags & BUF_FLAG_SEEK) {
stream->metronom->handle_audio_discontinuity (stream->metronom, DISC_STREAMSEEK, buf->disc_off);
} else {
@@ -220,7 +220,7 @@ static void *audio_decoder_loop (void *stream_gen) {
case BUF_CONTROL_AUDIO_CHANNEL:
{
- xprintf(stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(stream->xine, XINE_VERBOSITY_DEBUG,
"audio_decoder: suggested switching to stream_id %02x\n", buf->decoder_info[0]);
stream->audio_channel_auto = buf->decoder_info[0] & 0xff;
}
@@ -248,27 +248,27 @@ static void *audio_decoder_loop (void *stream_gen) {
xine_profiler_start_count (prof_audio_decode);
running_ticket->acquire(running_ticket, 0);
-
+
if ( (buf->type & 0xFF000000) == BUF_AUDIO_BASE ) {
-
+
uint32_t audio_type = 0;
int i,j;
uint32_t chan=buf->type&0x0000FFFF;
/*
printf("audio_decoder: buf_type=%08x auto=%08x user=%08x\n",
- buf->type,
+ buf->type,
stream->audio_channel_auto,
audio_channel_user);
*/
/* update track map */
-
+
i = 0;
- while ( (i<stream->audio_track_map_entries) && ((stream->audio_track_map[i]&0x0000FFFF)<chan) )
+ while ( (i<stream->audio_track_map_entries) && ((stream->audio_track_map[i]&0x0000FFFF)<chan) )
i++;
-
- if ( (i==stream->audio_track_map_entries)
+
+ if ( (i==stream->audio_track_map_entries)
|| ((stream->audio_track_map[i]&0x0000FFFF)!=chan) ) {
xine_event_t ui_event;
@@ -304,7 +304,7 @@ static void *audio_decoder_loop (void *stream_gen) {
lprintf ("audio_channel_auto = %d\n", stream->audio_channel_auto);
if (stream->audio_channel_auto>=0) {
-
+
if ((buf->type & 0xFF) == stream->audio_channel_auto) {
audio_type = buf->type;
} else
@@ -321,30 +321,30 @@ static void *audio_decoder_loop (void *stream_gen) {
}
/* now, decode stream buffer if it's the right audio type */
-
+
if (buf->type == audio_type) {
-
+
int streamtype = (buf->type>>16) & 0xFF;
/* close old decoder of audio type has changed */
-
- if( buf->type != buftype_unknown &&
+
+ if( buf->type != buftype_unknown &&
(stream->audio_decoder_streamtype != streamtype ||
!stream->audio_decoder_plugin) ) {
-
+
if (stream->audio_decoder_plugin) {
_x_free_audio_decoder (stream, stream->audio_decoder_plugin);
}
-
+
stream->audio_decoder_streamtype = streamtype;
stream->audio_decoder_plugin = _x_get_audio_decoder (stream, streamtype);
-
+
_x_stream_info_set(stream, XINE_STREAM_INFO_AUDIO_HANDLED,
(stream->audio_decoder_plugin != NULL));
}
-
+
if (audio_type != stream->audio_type) {
-
+
if (stream->audio_decoder_plugin) {
xine_event_t event;
@@ -355,23 +355,23 @@ static void *audio_decoder_loop (void *stream_gen) {
xine_event_send(stream, &event);
}
}
-
+
/* finally - decode data */
-
- if (stream->audio_decoder_plugin)
+
+ if (stream->audio_decoder_plugin)
stream->audio_decoder_plugin->decode_data (stream->audio_decoder_plugin, buf);
-
- if (buf->type != buftype_unknown &&
+
+ if (buf->type != buftype_unknown &&
!_x_stream_info_get(stream, XINE_STREAM_INFO_AUDIO_HANDLED)) {
xine_log (stream->xine, XINE_LOG_MSG,
_("audio_decoder: no plugin available to handle '%s'\n"), _x_buf_audio_name( buf->type ) );
-
+
if( !_x_meta_info_get(stream, XINE_META_INFO_AUDIOCODEC) )
_x_meta_info_set_utf8(stream, XINE_META_INFO_AUDIOCODEC, _x_buf_audio_name( buf->type ));
-
+
buftype_unknown = buf->type;
- /* fatal error - dispose plugin */
+ /* fatal error - dispose plugin */
if (stream->audio_decoder_plugin) {
_x_free_audio_decoder (stream, stream->audio_decoder_plugin);
stream->audio_decoder_plugin = NULL;
@@ -380,7 +380,7 @@ static void *audio_decoder_loop (void *stream_gen) {
}
}
} else if( buf->type != buftype_unknown ) {
- xine_log (stream->xine, XINE_LOG_MSG,
+ xine_log (stream->xine, XINE_LOG_MSG,
_("audio_decoder: error, unknown buffer type: %08x\n"), buf->type );
buftype_unknown = buf->type;
}
@@ -388,14 +388,14 @@ static void *audio_decoder_loop (void *stream_gen) {
if (running_ticket->ticket_revoked)
running_ticket->renew(running_ticket, 0);
running_ticket->release(running_ticket, 0);
-
+
xine_profiler_stop_count (prof_audio_decode);
}
/* some decoders require a full reinitialization when audio
* channel is changed (rate might be change and even a
- * different codec may be used).
- *
+ * different codec may be used).
+ *
* we must close the old decoder and process all the headers
* again, since they are needed for decoder initialization.
*/
@@ -408,7 +408,7 @@ static void *audio_decoder_loop (void *stream_gen) {
running_ticket->acquire(running_ticket, 0);
_x_free_audio_decoder (stream, stream->audio_decoder_plugin);
running_ticket->release(running_ticket, 0);
-
+
stream->audio_decoder_plugin = NULL;
stream->audio_track_map_entries = 0;
stream->audio_type = 0;
@@ -456,7 +456,7 @@ static void *audio_decoder_loop (void *stream_gen) {
}
first_header = last_header = NULL;
}
-
+
return NULL;
}
@@ -471,7 +471,7 @@ int _x_audio_decoder_init (xine_stream_t *stream) {
return 1;
} else {
int num_buffers;
-
+
/* The fifo size is based on dvd playback where buffers are filled
* with 2k of data. With 230 buffers and a typical audio data rate
* of 1.8 Mbit/s (four ac3 streams), the fifo can hold about 2 seconds
@@ -479,7 +479,7 @@ int _x_audio_decoder_init (xine_stream_t *stream) {
* We provide buffers of 8k size instead of 2k for demuxers sending
* larger chunks.
*/
-
+
num_buffers = stream->xine->config->register_num (stream->xine->config,
"engine.buffers.audio_num_buffers",
230,
@@ -489,7 +489,7 @@ int _x_audio_decoder_init (xine_stream_t *stream) {
"mean smoother playback for unreliable inputs, but "
"also increased latency and memory consumption."),
20, NULL, NULL);
-
+
stream->audio_fifo = _x_fifo_buffer_new (num_buffers, 8192);
stream->audio_channel_user = -1;
stream->audio_channel_auto = -1;
@@ -505,17 +505,17 @@ int _x_audio_decoder_init (xine_stream_t *stream) {
pth_params.sched_priority = sched_get_priority_min(SCHED_OTHER);
pthread_attr_setschedparam(&pth_attrs, &pth_params);
pthread_attr_setscope(&pth_attrs, PTHREAD_SCOPE_SYSTEM);
-
- stream->audio_thread_created = 1;
+
+ stream->audio_thread_created = 1;
if ((err = pthread_create (&stream->audio_thread,
&pth_attrs, audio_decoder_loop, stream)) != 0) {
- xprintf (stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (stream->xine, XINE_VERBOSITY_DEBUG,
"audio_decoder: can't create new thread (%s)\n", strerror(err));
stream->audio_thread_created = 0;
pthread_attr_destroy(&pth_attrs);
return 0;
}
-
+
pthread_attr_destroy(&pth_attrs);
}
return 1;
@@ -532,16 +532,16 @@ void _x_audio_decoder_shutdown (xine_stream_t *stream) {
buf = stream->audio_fifo->buffer_pool_alloc (stream->audio_fifo);
buf->type = BUF_CONTROL_QUIT;
stream->audio_fifo->put (stream->audio_fifo, buf);
-
+
pthread_join (stream->audio_thread, &p);
stream->audio_thread_created = 0;
}
-
+
stream->audio_fifo->dispose (stream->audio_fifo);
stream->audio_fifo = NULL;
}
int _x_get_audio_channel (xine_stream_t *stream) {
- return stream->audio_type & 0xFFFF;
+ return stream->audio_type & 0xFFFF;
}
diff --git a/src/xine-engine/audio_out.c b/src/xine-engine/audio_out.c
index 2f29f92ea..3a11aa238 100644
--- a/src/xine-engine/audio_out.c
+++ b/src/xine-engine/audio_out.c
@@ -1,18 +1,18 @@
/*
* Copyright (C) 2000-2006 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with self program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -102,7 +102,7 @@
#define ZERO_BUF_SIZE 5000
/* By adding gap errors (difference between reported and expected
- * sound card clock) into metronom's vpts_offset we can use its
+ * sound card clock) into metronom's vpts_offset we can use its
* smoothing algorithms to correct sound card clock drifts.
* obs: previously this error was added to xine scr.
*
@@ -158,13 +158,13 @@ typedef struct {
#define EQ_BANDS 10
#define EQ_CHANNELS 8
-#define FP_FRBITS 28
+#define FP_FRBITS 28
#define EQ_REAL(x) ((int)((x) * (1 << FP_FRBITS)))
typedef struct {
int beta;
- int alpha;
+ int alpha;
int gamma;
} sIIRCoefficients;
@@ -197,15 +197,15 @@ static const sIIRCoefficients iir_cf[] = {
/* 16k Hz*/
{ EQ_REAL(2.4201241845e-01), EQ_REAL(3.7899379077e-01), EQ_REAL(-8.0847117831e-01) },
};
-
+
typedef struct {
-
+
xine_audio_port_t ao; /* public part */
/* private stuff */
ao_driver_t *driver;
pthread_mutex_t driver_lock;
-
+
uint32_t driver_open:1;
uint32_t audio_loop_running:1;
uint32_t audio_thread_created:1;
@@ -230,7 +230,7 @@ typedef struct {
int64_t audio_step; /* pts per 32 768 samples (sample = #bytes/2) */
int32_t frames_per_kpts; /* frames per 1024/90000 sec */
-
+
int av_sync_method_conf;
resample_sync_t resample_sync_info;
double resample_sync_factor; /* correct buffer length by this factor
@@ -253,7 +253,7 @@ typedef struct {
/* FIXME: replace all this->clock->speed with this->current_speed. we should make
* sure nobody will change speed without going through xine.c:set_speed_internal */
int slow_fast_audio; /* play audio even on slow/fast speeds */
-
+
int16_t last_sample[RESAMPLE_MAX_CHANNELS];
audio_buffer_t *frame_buf[2]; /* two buffers for "stackable" conversions */
int16_t *zero_space;
@@ -279,7 +279,7 @@ typedef struct {
int eq_k;
sXYData eq_data_history[EQ_BANDS][EQ_CHANNELS];
-
+
} aos_t;
struct audio_fifo_s {
@@ -444,7 +444,7 @@ static void fifo_wait_empty (audio_fifo_t *fifo) {
}
-static void write_pause_burst(aos_t *this, uint32_t num_frames) {
+static void write_pause_burst(aos_t *this, uint32_t num_frames) {
uint16_t sbuf[4096];
sbuf[0] = 0xf872;
@@ -474,7 +474,7 @@ static void ao_fill_gap (aos_t *this, int64_t pts_len) {
if ((this->output.mode == AO_CAP_MODE_A52) || (this->output.mode == AO_CAP_MODE_AC5)) {
write_pause_burst(this,num_frames);
- return;
+ return;
}
while (num_frames > 0 && !this->discard_buffers) {
@@ -498,7 +498,7 @@ static void ensure_buffer_size (audio_buffer_t *buf, int bytes_per_frame,
int frames)
{
int size = bytes_per_frame * frames;
-
+
if (buf->mem_size < size) {
buf->mem = realloc( buf->mem, size );
buf->mem_size = size;
@@ -529,7 +529,7 @@ int _x_ao_mode2channels( int mode ) {
return 6;
}
return 0;
-}
+}
int _x_ao_channels2mode( int channels ) {
@@ -560,7 +560,7 @@ static void audio_filter_compress (aos_t *this, int16_t *mem, int num_frames) {
return;
maxs = 0;
-
+
/* measure */
for (i=0; i<num_frames*num_channels; i++) {
@@ -576,12 +576,12 @@ static void audio_filter_compress (aos_t *this, int16_t *mem, int num_frames) {
this->compression_factor = this->compression_factor * 0.999 + f_max * 0.001;
if (this->compression_factor > f_max)
this->compression_factor = f_max;
-
+
if (this->compression_factor > this->compression_factor_max)
this->compression_factor = this->compression_factor_max;
} else
f_max = 1.0;
-
+
lprintf ("max=%d f_max=%f compression_factor=%f\n", maxs, f_max, this->compression_factor);
/* apply it */
@@ -596,7 +596,7 @@ static void audio_filter_amp (aos_t *this, void *buf, int num_frames) {
double amp_factor;
int i;
const int total_frames = num_frames * _x_ao_mode2channels (this->input.mode);
-
+
if (!total_frames)
return;
@@ -615,11 +615,11 @@ static void audio_filter_amp (aos_t *this, void *buf, int num_frames) {
/* Force limit on amp_factor to prevent clipping */
if (test < INT8_MIN) {
this->amp_factor = amp_factor = amp_factor * INT8_MIN / test;
- test=INT8_MIN;
+ test=INT8_MIN;
}
if (test > INT8_MAX) {
this->amp_factor = amp_factor = amp_factor * INT8_MIN / test;
- test=INT8_MAX;
+ test=INT8_MAX;
}
mem[i] = test;
}
@@ -632,11 +632,11 @@ static void audio_filter_amp (aos_t *this, void *buf, int num_frames) {
/* Force limit on amp_factor to prevent clipping */
if (test < INT16_MIN) {
this->amp_factor = amp_factor = amp_factor * INT16_MIN / test;
- test=INT16_MIN;
+ test=INT16_MIN;
}
if (test > INT16_MAX) {
this->amp_factor = amp_factor = amp_factor * INT16_MIN / test;
- test=INT16_MAX;
+ test=INT16_MAX;
}
mem[i] = test;
}
@@ -940,7 +940,7 @@ static int resample_rate_adjust(aos_t *this, int64_t gap, audio_buffer_t *buf) {
if (gap_diff < RESAMPLE_MAX_GAP_DIFF) {
#if LOG_RESAMPLE_SYNC
int num_frames;
-
+
/* if we are already resampling to a different output rate, consider
* this during calculation */
num_frames = (this->do_resample) ? (buf->num_frames * this->frame_rate_factor)
@@ -975,7 +975,7 @@ static int resample_rate_adjust(aos_t *this, int64_t gap, audio_buffer_t *buf) {
info->window_duration += buf->vpts - info->last_vpts;
info->last_vpts = buf->vpts;
info->window++;
- }
+ }
return 0;
}
@@ -983,7 +983,7 @@ static int resample_rate_adjust(aos_t *this, int64_t gap, audio_buffer_t *buf) {
static int ao_change_settings(aos_t *this, uint32_t bits, uint32_t rate, int mode);
/* Audio output loop: -
- * 1) Check for pause.
+ * 1) Check for pause.
* 2) Make sure audio hardware is in RUNNING state.
* 3) Get delay
* 4) Do drop, 0-fill or output samples.
@@ -1011,7 +1011,7 @@ static void *ao_loop (void *this_gen) {
/*
* get buffer to process for this loop iteration
*/
-
+
if (!in_buf) {
lprintf ("loop: get buf from fifo\n");
in_buf = fifo_peek (this->out_fifo);
@@ -1036,18 +1036,18 @@ static void *ao_loop (void *this_gen) {
continue;
}
pthread_mutex_unlock(&this->flush_audio_driver_lock);
-
- /*
+
+ /*
* wait until user unpauses stream
* if we are playing at a different speed (without slow_fast_audio flag)
* we must process/free buffers otherwise the entire engine will stop.
*/
-
+
pthread_mutex_lock(&this->current_speed_lock);
- if ( this->audio_loop_running &&
- (this->clock->speed == XINE_SPEED_PAUSE ||
- (this->clock->speed != XINE_FINE_SPEED_NORMAL &&
+ if ( this->audio_loop_running &&
+ (this->clock->speed == XINE_SPEED_PAUSE ||
+ (this->clock->speed != XINE_FINE_SPEED_NORMAL &&
!this->slow_fast_audio) ) ) {
if (this->clock->speed != XINE_SPEED_PAUSE) {
@@ -1085,7 +1085,7 @@ static void *ao_loop (void *this_gen) {
in_buf->format.rate != this->input.rate ||
in_buf->format.mode != this->input.mode ) {
lprintf("audio format has changed\n");
- if( !in_buf->stream->emergency_brake &&
+ if( !in_buf->stream->emergency_brake &&
ao_change_settings(this,
in_buf->format.bits,
in_buf->format.rate,
@@ -1109,7 +1109,7 @@ static void *ao_loop (void *this_gen) {
delay = 0;
pthread_mutex_unlock( &this->driver_lock );
-
+
if (in_buf && in_buf->num_frames) {
xine_list_iterator_t ite;
@@ -1129,8 +1129,8 @@ static void *ao_loop (void *this_gen) {
}
}
- cur_time = this->clock->get_current_time (this->clock);
-
+ cur_time = this->clock->get_current_time (this->clock);
+
/* we update current_extra_info if either there is no video stream that could do that
* or if the current_extra_info is getting too much out of date */
if( in_buf && in_buf->stream && (!in_buf->stream->video_decoder_plugin ||
@@ -1140,9 +1140,9 @@ static void *ao_loop (void *this_gen) {
_x_extra_info_merge( in_buf->stream->current_extra_info, in_buf->extra_info );
pthread_mutex_unlock( &in_buf->stream->current_extra_info_lock );
}
-
+
/*
- * where, in the timeline is the "end" of the
+ * where, in the timeline is the "end" of the
* hardware audio buffer at the moment?
*/
@@ -1150,12 +1150,12 @@ static void *ao_loop (void *this_gen) {
lprintf ("current delay is %" PRId64 ", current time is %" PRId64 "\n", delay, cur_time);
/* External A52 decoder delay correction */
- if ((this->output.mode==AO_CAP_MODE_A52) || (this->output.mode==AO_CAP_MODE_AC5))
+ if ((this->output.mode==AO_CAP_MODE_A52) || (this->output.mode==AO_CAP_MODE_AC5))
delay += this->passthrough_offset;
if(this->frames_per_kpts)
hw_vpts += (delay * 1024) / this->frames_per_kpts;
-
+
/*
* calculate gap:
*/
@@ -1191,13 +1191,13 @@ static void *ao_loop (void *this_gen) {
in_buf->vpts, gap);
in_buf = NULL;
-
- /* for small gaps ( tolerance < abs(gap) < AO_MAX_GAP )
+
+ /* for small gaps ( tolerance < abs(gap) < AO_MAX_GAP )
* feedback them into metronom's vpts_offset (when using
* metronom feedback for A/V sync)
*/
} else if ( abs(gap) < AO_MAX_GAP && abs(gap) > this->gap_tolerance &&
- cur_time > (last_sync_time + SYNC_TIME_INVERVAL) &&
+ cur_time > (last_sync_time + SYNC_TIME_INVERVAL) &&
bufs_since_sync >= SYNC_BUF_INTERVAL &&
!this->resample_sync_method ) {
xine_list_iterator_t *ite;
@@ -1250,7 +1250,7 @@ static void *ao_loop (void *this_gen) {
result = 0;
}
fifo_remove (this->out_fifo);
-
+
if( result < 0 ) {
/* device unplugged. */
xprintf(this->xine, XINE_VERBOSITY_LOG, _("write to sound card failed. Assuming the device was unplugged.\n"));
@@ -1274,7 +1274,7 @@ static void *ao_loop (void *this_gen) {
pthread_mutex_unlock( &this->driver_lock );
/* closing the driver will result in XINE_MSG_AUDIO_OUT_UNAVAILABLE to be emitted */
}
-
+
lprintf ("loop: next buf from fifo\n");
if (in_buf->stream)
_x_refcounter_dec(in_buf->stream->refcounter);
@@ -1327,9 +1327,9 @@ int xine_get_next_audio_frame (xine_audio_port_t *this_gen,
continue;
}
stream = xine_list_get_value(this->streams, ite);
-
+
/* FIXME: ugly, use conditions and locks instead? */
-
+
pthread_mutex_lock (&this->out_fifo->mutex);
in_buf = this->out_fifo->first;
if (!in_buf) {
@@ -1383,10 +1383,10 @@ void xine_free_audio_frame (xine_audio_port_t *this_gen, xine_audio_frame_t *fra
}
static int ao_update_resample_factor(aos_t *this) {
-
+
if( !this->driver_open )
return 0;
-
+
switch (this->resample_conf) {
case 1: /* force off */
this->do_resample = 0;
@@ -1411,7 +1411,7 @@ static int ao_update_resample_factor(aos_t *this) {
this->frame_rate_factor = ( XINE_FINE_SPEED_NORMAL / (double)this->current_speed ) * ((double)(this->output.rate)) / ((double)(this->input.rate));
this->frames_per_kpts = (this->output.rate * 1024) / 90000;
this->audio_step = ((int64_t)90000 * (int64_t)32768) / (int64_t)this->input.rate;
-
+
lprintf ("audio_step %" PRId64 " pts per 32768 frames\n", this->audio_step);
return this->output.rate;
}
@@ -1420,7 +1420,7 @@ static int ao_change_settings(aos_t *this, uint32_t bits, uint32_t rate, int mod
int output_sample_rate;
if(this->driver_open && !this->grab_only)
- this->driver->close(this->driver);
+ this->driver->close(this->driver);
this->driver_open = 0;
this->input.mode = mode;
@@ -1429,7 +1429,7 @@ static int ao_change_settings(aos_t *this, uint32_t bits, uint32_t rate, int mod
if (!this->grab_only) {
/* not all drivers/cards support 8 bits */
- if( this->input.bits == 8 &&
+ if( this->input.bits == 8 &&
!(this->driver->get_capabilities(this->driver) & AO_CAP_8BITS) ) {
bits = 16;
xprintf (this->xine, XINE_VERBOSITY_LOG,
@@ -1449,7 +1449,7 @@ static int ao_change_settings(aos_t *this, uint32_t bits, uint32_t rate, int mod
xprintf (this->xine, XINE_VERBOSITY_LOG,
_("stereo not supported by driver, converting to mono.\n"));
}
-
+
output_sample_rate=(this->driver->open) (this->driver,bits,(this->force_rate ? this->force_rate : rate),mode);
} else
output_sample_rate = this->input.rate;
@@ -1497,7 +1497,7 @@ static inline void dec_num_driver_actions(aos_t *this) {
static int ao_open(xine_audio_port_t *this_gen, xine_stream_t *stream,
uint32_t bits, uint32_t rate, int mode) {
-
+
aos_t *this = (aos_t *) this_gen;
int channels;
@@ -1513,7 +1513,7 @@ static int ao_open(xine_audio_port_t *this_gen, xine_stream_t *stream,
pthread_mutex_lock( &this->driver_lock );
ret = ao_change_settings(this, bits, rate, mode);
pthread_mutex_unlock( &this->driver_lock );
-
+
if( !ret ) {
stream->emergency_brake = 1;
_x_message (stream, XINE_MSG_AUDIO_OUT_UNAVAILABLE, NULL);
@@ -1524,7 +1524,7 @@ static int ao_open(xine_audio_port_t *this_gen, xine_stream_t *stream,
}
}
- /*
+ /*
* set metainfo
*/
if (stream) {
@@ -1543,7 +1543,7 @@ static int ao_open(xine_audio_port_t *this_gen, xine_stream_t *stream,
pthread_mutex_lock(&this->streams_lock);
xine_list_push_back(this->streams, stream);
pthread_mutex_unlock(&this->streams_lock);
-
+
return this->output.rate;
}
@@ -1551,18 +1551,18 @@ static audio_buffer_t *ao_get_buffer (xine_audio_port_t *this_gen) {
aos_t *this = (aos_t *) this_gen;
audio_buffer_t *buf;
-
+
while (!(buf = fifo_remove_nonblock (this->free_fifo)))
if (this->xine->port_ticket->ticket_revoked)
this->xine->port_ticket->renew(this->xine->port_ticket, 1);
-
+
_x_extra_info_reset( buf->extra_info );
buf->stream = NULL;
-
+
return buf;
}
-static void ao_put_buffer (xine_audio_port_t *this_gen,
+static void ao_put_buffer (xine_audio_port_t *this_gen,
audio_buffer_t *buf, xine_stream_t *stream) {
aos_t *this = (aos_t *) this_gen;
@@ -1575,11 +1575,11 @@ static void ao_put_buffer (xine_audio_port_t *this_gen,
/* handle anonymous streams like NULL for easy checking */
if (stream == XINE_ANON_STREAM) stream = NULL;
-
+
buf->stream = stream;
-
+
pts = buf->vpts;
-
+
if (stream) {
buf->format.bits = _x_stream_info_get(stream, XINE_STREAM_INFO_AUDIO_BITS);
buf->format.rate = _x_stream_info_get(stream, XINE_STREAM_INFO_AUDIO_SAMPLERATE);
@@ -1589,7 +1589,7 @@ static void ao_put_buffer (xine_audio_port_t *this_gen,
}
buf->extra_info->vpts = buf->vpts;
-
+
lprintf ("ao_put_buffer, pts=%" PRId64 ", vpts=%" PRId64 ", flushmode=%d\n",
pts, buf->vpts, this->discard_buffers);
@@ -1599,7 +1599,7 @@ static void ao_put_buffer (xine_audio_port_t *this_gen,
fifo_append (this->out_fifo, buf);
} else
fifo_append (this->free_fifo, buf);
-
+
this->last_audio_vpts = buf->vpts;
lprintf ("ao_put_buffer done\n");
@@ -1622,7 +1622,7 @@ static void ao_close(xine_audio_port_t *this_gen, xine_stream_t *stream) {
break;
}
}
- ite = xine_list_front(this->streams);
+ ite = xine_list_front(this->streams);
pthread_mutex_unlock(&this->streams_lock);
/* close driver if no streams left */
@@ -1645,7 +1645,7 @@ static void ao_close(xine_audio_port_t *this_gen, xine_stream_t *stream) {
pthread_mutex_lock( &this->driver_lock );
if(this->driver_open)
- this->driver->close(this->driver);
+ this->driver->close(this->driver);
this->driver_open = 0;
pthread_mutex_unlock( &this->driver_lock );
}
@@ -1655,7 +1655,7 @@ static void ao_exit(xine_audio_port_t *this_gen) {
aos_t *this = (aos_t *) this_gen;
int vol;
int prop = 0;
-
+
audio_buffer_t *buf, *next;
if (this->audio_loop_running) {
@@ -1671,15 +1671,15 @@ static void ao_exit(xine_audio_port_t *this_gen) {
pthread_join (this->audio_thread, &p);
this->audio_thread_created = 0;
}
-
+
if (!this->grab_only) {
pthread_mutex_lock( &this->driver_lock );
-
+
if((this->driver->get_capabilities(this->driver)) & AO_CAP_MIXER_VOL)
prop = AO_PROP_MIXER_VOL;
else if((this->driver->get_capabilities(this->driver)) & AO_CAP_PCM_VOL)
prop = AO_PROP_PCM_VOL;
-
+
vol = this->driver->get_property(this->driver, prop);
this->xine->config->update_num(this->xine->config, "audio.volume.mixer_volume", vol);
if(this->driver_open)
@@ -1701,7 +1701,7 @@ static void ao_exit(xine_audio_port_t *this_gen) {
free (this->frame_buf[1]->extra_info);
free (this->frame_buf[1]);
free (this->zero_space);
-
+
pthread_mutex_destroy(&this->current_speed_lock);
pthread_mutex_destroy(&this->flush_audio_driver_lock);
pthread_cond_destroy(&this->flush_audio_driver_reached);
@@ -1735,11 +1735,11 @@ static void ao_exit(xine_audio_port_t *this_gen) {
pthread_mutex_destroy(&this->free_fifo->mutex);
pthread_cond_destroy(&this->free_fifo->empty);
pthread_cond_destroy(&this->free_fifo->not_empty);
-
+
pthread_mutex_destroy(&this->out_fifo->mutex);
pthread_cond_destroy(&this->out_fifo->empty);
pthread_cond_destroy(&this->out_fifo->not_empty);
-
+
free (this->free_fifo);
free (this->out_fifo);
free (this);
@@ -1748,7 +1748,7 @@ static void ao_exit(xine_audio_port_t *this_gen) {
static uint32_t ao_get_capabilities (xine_audio_port_t *this_gen) {
aos_t *this = (aos_t *) this_gen;
uint32_t result;
-
+
if (this->grab_only) {
return AO_CAP_MODE_MONO | AO_CAP_MODE_STEREO ;
@@ -1760,7 +1760,7 @@ static uint32_t ao_get_capabilities (xine_audio_port_t *this_gen) {
inc_num_driver_actions(this);
pthread_mutex_lock( &this->driver_lock );
dec_num_driver_actions(this);
- result=this->driver->get_capabilities(this->driver);
+ result=this->driver->get_capabilities(this->driver);
pthread_mutex_unlock( &this->driver_lock );
}
return result;
@@ -1774,25 +1774,25 @@ static int ao_get_property (xine_audio_port_t *this_gen, int property) {
case AO_PROP_COMPRESSOR:
ret = this->compression_factor_max*100;
break;
-
+
case AO_PROP_BUFS_IN_FIFO:
ret = this->audio_loop_running ? this->out_fifo->num_buffers : -1;
break;
-
+
case AO_PROP_NUM_STREAMS:
pthread_mutex_lock(&this->streams_lock);
ret = xine_list_size(this->streams);
pthread_mutex_unlock(&this->streams_lock);
break;
-
+
case AO_PROP_AMP:
ret = this->amp_factor*100;
break;
-
+
case AO_PROP_AMP_MUTE:
ret = this->amp_mute;
break;
-
+
case AO_PROP_EQ_30HZ:
case AO_PROP_EQ_60HZ:
case AO_PROP_EQ_125HZ:
@@ -1802,14 +1802,14 @@ static int ao_get_property (xine_audio_port_t *this_gen, int property) {
case AO_PROP_EQ_2000HZ:
case AO_PROP_EQ_4000HZ:
case AO_PROP_EQ_8000HZ:
- case AO_PROP_EQ_16000HZ:
+ case AO_PROP_EQ_16000HZ:
ret = (100.0 * this->eq_gain[property - AO_PROP_EQ_30HZ]) / (1 << FP_FRBITS) ;
break;
case AO_PROP_DISCARD_BUFFERS:
ret = this->discard_buffers;
break;
-
+
case AO_PROP_CLOCK_SPEED:
ret = this->current_speed;
break;
@@ -1837,7 +1837,7 @@ static int ao_set_property (xine_audio_port_t *this_gen, int property, int value
ret = this->compression_factor_max*100;
break;
-
+
case AO_PROP_AMP:
this->amp_factor = (double) value / 100.0;
@@ -1862,13 +1862,13 @@ static int ao_set_property (xine_audio_port_t *this_gen, int property, int value
case AO_PROP_EQ_2000HZ:
case AO_PROP_EQ_4000HZ:
case AO_PROP_EQ_8000HZ:
- case AO_PROP_EQ_16000HZ:
+ case AO_PROP_EQ_16000HZ:
{
int min_gain, max_gain, i;
this->eq_gain[property - AO_PROP_EQ_30HZ] = EQ_REAL(((float)value / 100.0)) ;
-
+
/* calc pregain, find out if any gain != 0.0 - enable eq if that is the case */
min_gain = EQ_REAL(0.0);
max_gain = EQ_REAL(0.0);
@@ -1878,7 +1878,7 @@ static int ao_set_property (xine_audio_port_t *this_gen, int property, int value
if (this->eq_gain[i] > max_gain)
max_gain = this->eq_gain[i];
}
-
+
lprintf ("eq min_gain=%d, max_gain=%d\n", min_gain, max_gain);
this->do_equ = ((min_gain != EQ_REAL(0.0)) || (max_gain != EQ_REAL(0.0)));
@@ -1886,22 +1886,22 @@ static int ao_set_property (xine_audio_port_t *this_gen, int property, int value
ret = value;
}
break;
-
+
case AO_PROP_DISCARD_BUFFERS:
/* recursive discard buffers setting */
if(value)
this->discard_buffers++;
else
this->discard_buffers--;
-
+
ret = this->discard_buffers;
-
+
/* discard buffers here because we have no output thread */
if (this->grab_only && this->discard_buffers) {
audio_buffer_t *buf;
-
+
pthread_mutex_lock(&this->out_fifo->mutex);
-
+
while ((buf = this->out_fifo->first)) {
lprintf ("flushing out frame\n");
buf = fifo_remove_int (this->out_fifo, 1);
@@ -1942,7 +1942,7 @@ static int ao_set_property (xine_audio_port_t *this_gen, int property, int value
if( this->slow_fast_audio )
ao_update_resample_factor(this);
break;
-
+
default:
if (!this->grab_only) {
/* Let the sound driver lock it's own mixer */
@@ -1988,7 +1988,7 @@ static void ao_flush (xine_audio_port_t *this_gen) {
pthread_mutex_lock(&this->flush_audio_driver_lock);
this->discard_buffers++;
this->flush_audio_driver++;
-
+
/* do not try this in paused mode */
while( this->flush_audio_driver && this->clock->speed != XINE_SPEED_PAUSE) {
struct timeval tv;
@@ -2027,7 +2027,7 @@ static int ao_status (xine_audio_port_t *this_gen, xine_stream_t *stream,
xine_stream_t *cur;
int ret = 0;
xine_list_iterator_t ite;
-
+
pthread_mutex_lock(&this->streams_lock);
for (ite = xine_list_front(this->streams); ite;
ite = xine_list_next(this->streams, ite)) {
@@ -2041,8 +2041,8 @@ static int ao_status (xine_audio_port_t *this_gen, xine_stream_t *stream,
}
}
pthread_mutex_unlock(&this->streams_lock);
-
- return ret;
+
+ return ret;
}
static void ao_update_av_sync_method(void *this_gen, xine_cfg_entry_t *entry) {
@@ -2051,7 +2051,7 @@ static void ao_update_av_sync_method(void *this_gen, xine_cfg_entry_t *entry) {
lprintf ("av_sync_method = %d\n", entry->num_value);
this->av_sync_method_conf = entry->num_value;
-
+
switch (this->av_sync_method_conf) {
case 0:
this->resample_sync_method = 0;
@@ -2068,7 +2068,7 @@ static void ao_update_av_sync_method(void *this_gen, xine_cfg_entry_t *entry) {
xine_audio_port_t *_x_ao_new_port (xine_t *xine, ao_driver_t *driver,
int grab_only) {
-
+
config_values_t *config = xine->config;
aos_t *this;
int i, err;
@@ -2084,7 +2084,7 @@ xine_audio_port_t *_x_ao_new_port (xine_t *xine, ao_driver_t *driver,
this->clock = xine->clock;
this->current_speed = xine->clock->speed;
this->streams = xine_list_new();
-
+
/* warning: driver_lock is a recursive mutex. it must NOT be
* used with neither pthread_cond_wait() or pthread_cond_timedwait()
*/
@@ -2108,13 +2108,13 @@ xine_audio_port_t *_x_ao_new_port (xine_t *xine, ao_driver_t *driver,
this->ao.flush = ao_flush;
this->ao.status = ao_status;
- this->num_driver_actions = 0;
+ this->num_driver_actions = 0;
this->audio_loop_running = 0;
this->grab_only = grab_only;
this->flush_audio_driver = 0;
this->discard_buffers = 0;
this->zero_space = calloc (1, ZERO_BUF_SIZE * 4 * 6); /* MAX as 32bit, 6 channels. */
-
+
pthread_mutex_init( &this->current_speed_lock, NULL );
pthread_mutex_init( &this->flush_audio_driver_lock, NULL );
pthread_cond_init( &this->flush_audio_driver_reached, NULL );
@@ -2150,7 +2150,7 @@ xine_audio_port_t *_x_ao_new_port (xine_t *xine, ao_driver_t *driver,
"an external decoder in digital form."),
20, ao_update_av_sync_method, this);
config->update_num(config,"audio.synchronization.av_sync_method",this->av_sync_method_conf);
-
+
this->resample_conf = config->register_enum (config, "audio.synchronization.resample_mode", 0,
resample_modes,
_("enable resampling"),
@@ -2177,7 +2177,7 @@ xine_audio_port_t *_x_ao_new_port (xine_t *xine, ao_driver_t *driver,
"a fixed offset here to compensate.\nThe unit of "
"the value is one PTS tick, which is the 90000th "
"part of a second."), 10, NULL, NULL);
-
+
this->slow_fast_audio = config->register_bool (config,
"audio.synchronization.slow_fast_audio",
0,
@@ -2229,12 +2229,12 @@ xine_audio_port_t *_x_ao_new_port (xine_t *xine, ao_driver_t *driver,
buf->mem = calloc (1, AUDIO_BUF_SIZE);
buf->mem_size = AUDIO_BUF_SIZE;
buf->extra_info = malloc(sizeof(extra_info_t));
-
+
fifo_append (this->free_fifo, buf);
}
memset (this->last_sample, 0, sizeof (this->last_sample));
-
+
/* buffers used for audio conversions */
for (i=0; i<2; i++) {
@@ -2253,13 +2253,13 @@ xine_audio_port_t *_x_ao_new_port (xine_t *xine, ao_driver_t *driver,
*/
if(this->driver){
int vol;
-
- vol = config->register_range (config, "audio.volume.mixer_volume",
- 50, 0, 100, _("startup audio volume"),
+
+ vol = config->register_range (config, "audio.volume.mixer_volume",
+ 50, 0, 100, _("startup audio volume"),
_("The overall audio volume set at xine startup."), 10, NULL, NULL);
-
+
if(config->register_bool (config, "audio.volume.remember_volume", 0,
- _("restore volume level at startup"),
+ _("restore volume level at startup"),
_("If disabled, xine will not modify any mixer settings at startup."),
10, NULL, NULL)) {
int prop = 0;
@@ -2268,34 +2268,34 @@ xine_audio_port_t *_x_ao_new_port (xine_t *xine, ao_driver_t *driver,
prop = AO_PROP_MIXER_VOL;
else if((ao_get_capabilities(&this->ao)) & AO_CAP_PCM_VOL)
prop = AO_PROP_PCM_VOL;
-
+
ao_set_property(&this->ao, prop, vol);
}
- }
-
+ }
+
if (!this->grab_only) {
/*
* start output thread
*/
- this->audio_loop_running = 1;
-
+ this->audio_loop_running = 1;
+
pthread_attr_init(&pth_attrs);
pthread_attr_setscope(&pth_attrs, PTHREAD_SCOPE_SYSTEM);
this->audio_thread_created = 1;
if ((err = pthread_create (&this->audio_thread,
&pth_attrs, ao_loop, this)) != 0) {
-
- xprintf (this->xine, XINE_VERBOSITY_DEBUG,
+
+ xprintf (this->xine, XINE_VERBOSITY_NONE,
"audio_out: can't create thread (%s)\n", strerror(err));
- xprintf (this->xine, XINE_VERBOSITY_LOG,
+ xprintf (this->xine, XINE_VERBOSITY_LOG,
_("audio_out: sorry, this should not happen. please restart xine.\n"));
_x_abort();
-
+
} else
xprintf (this->xine, XINE_VERBOSITY_DEBUG, "audio_out: thread created\n");
-
+
pthread_attr_destroy(&pth_attrs);
}
diff --git a/src/xine-engine/broadcaster.c b/src/xine-engine/broadcaster.c
index 8be3dda5d..f5ac0156f 100644
--- a/src/xine-engine/broadcaster.c
+++ b/src/xine-engine/broadcaster.c
@@ -9,7 +9,7 @@
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
@@ -27,7 +27,7 @@
* - master will wait for connections on specified port, accepting new clients.
* - several xine clients may connect to the server as "slaves", using mrl:
* slave://master_address:port
- * - streams played on master will appear on every slave.
+ * - streams played on master will appear on every slave.
* if master is not meant to use video/audio devices it may be started with
* 'xine -V none -A none'
*/
@@ -73,7 +73,7 @@ struct broadcaster_s {
int port; /* server port */
int msock; /* master network socket */
xine_list_t *connections; /* active connections */
-
+
pthread_t manager_thread;
pthread_mutex_t lock;
@@ -87,21 +87,21 @@ static int sock_check_opened(int socket) {
fd_set readfds, writefds, exceptfds;
int retval;
struct timeval timeout;
-
+
for(;;) {
- FD_ZERO(&readfds);
- FD_ZERO(&writefds);
+ FD_ZERO(&readfds);
+ FD_ZERO(&writefds);
FD_ZERO(&exceptfds);
FD_SET(socket, &exceptfds);
-
- timeout.tv_sec = 0;
+
+ timeout.tv_sec = 0;
timeout.tv_usec = 0;
-
+
retval = select(socket + 1, &readfds, &writefds, &exceptfds, &timeout);
-
+
if(retval == -1 && (errno != EAGAIN && errno != EINTR))
return 0;
-
+
if (retval != -1)
return 1;
}
@@ -116,21 +116,21 @@ static int sock_data_write(xine_t *xine, int socket, void *buf_gen, int len) {
ssize_t size;
int wlen = 0;
uint8_t *buf = buf_gen;
-
+
if((socket < 0) || (buf == NULL))
return -1;
-
+
if(!sock_check_opened(socket))
return -1;
-
+
while(len) {
size = write(socket, buf, len);
-
+
if(size <= 0) {
xprintf(xine, XINE_VERBOSITY_DEBUG, "broadcaster: error writing to socket %d\n",socket);
return -1;
}
-
+
len -= size;
wlen += size;
buf += size;
@@ -143,20 +143,20 @@ static int XINE_FORMAT_PRINTF(3, 4)
sock_string_write(xine_t *xine, int socket, const char *msg, ...) {
char buf[_BUFSIZ];
va_list args;
-
+
va_start(args, msg);
vsnprintf(buf, _BUFSIZ - 1, msg, args);
va_end(args);
-
+
/* Each line sent is '\n' terminated */
if((buf[strlen(buf)] == '\0') && (buf[strlen(buf) - 1] != '\n'))
strcat(buf, "\n");
-
+
return sock_data_write(xine, socket, buf, strlen(buf));
}
/*
- * this is the most important broadcaster function.
+ * this is the most important broadcaster function.
* it sends data to every connected client (slaves).
*/
static void broadcaster_data_write(broadcaster_t *this, void *buf, int len) {
@@ -166,9 +166,9 @@ static void broadcaster_data_write(broadcaster_t *this, void *buf, int len) {
while (ite) {
int *psock = xine_list_get_value(this->connections, ite);
-
+
ite = xine_list_next(this->connections, ite);
-
+
/* in case of failure remove from list */
if( sock_data_write(this->stream->xine, *psock, buf, len) < 0 ) {
@@ -185,15 +185,15 @@ static void XINE_FORMAT_PRINTF(2, 3)
broadcaster_string_write(broadcaster_t *this, const char *msg, ...) {
char buf[_BUFSIZ];
va_list args;
-
+
va_start(args, msg);
vsnprintf(buf, _BUFSIZ - 1, msg, args);
va_end(args);
-
+
/* Each line sent is '\n' terminated */
if((buf[strlen(buf)] == '\0') && (buf[strlen(buf) - 1] != '\n'))
strcat(buf, "\n");
-
+
broadcaster_data_write(this, buf, strlen(buf));
}
@@ -210,40 +210,40 @@ static void *manager_loop (void *this_gen) {
socklen_t alen; /* from-address length */
fd_set rfds; /* read file descriptor set */
fd_set efds; /* exception descriptor set */
-
+
while( this->running ) {
FD_ZERO(&rfds);
FD_SET(this->msock, &rfds);
FD_ZERO(&efds);
FD_SET(this->msock, &efds);
-
+
if (select(this->msock+1, &rfds, (fd_set *)0, &efds, (struct timeval *)0) > 0) {
-
+
pthread_mutex_lock( &this->lock );
-
+
if (FD_ISSET(this->msock, &rfds))
{
int ssock;
alen = sizeof(fsin.in);
-
+
ssock = accept(this->msock, &(fsin.sa), &alen);
if (ssock >= 0) {
/* identification string, helps demuxer probing */
if( sock_string_write(this->stream->xine, ssock,"master xine v1") > 0 ) {
int *psock = malloc(sizeof(int));
*psock = ssock;
-
- xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
+
+ xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"broadcaster: new connection socket %d\n", *psock);
xine_list_push_back(this->connections, psock);
}
}
}
-
+
pthread_mutex_unlock( &this->lock );
}
}
-
+
return NULL;
}
@@ -254,7 +254,7 @@ static void *manager_loop (void *this_gen) {
*/
static void send_buf (broadcaster_t *this, const char *from, buf_element_t *buf) {
int i;
-
+
/* ignore END buffers since they would stop the slavery */
if( buf->type == BUF_CONTROL_END )
return;
@@ -273,7 +273,7 @@ static void send_buf (broadcaster_t *this, const char *from, buf_element_t *buf)
broadcaster_data_write(this, buf->decoder_info_ptr[i], buf->decoder_info[i]);
}
}
-
+
broadcaster_string_write(this, "buffer fifo=%s size=%d type=%u pts=%"PRId64" disc=%"PRId64" flags=%u",
from, buf->size, buf->type, buf->pts, buf->disc_off, buf->decoder_flags );
@@ -307,7 +307,7 @@ broadcaster_t *_x_init_broadcaster(xine_stream_t *stream, int port)
struct sockaddr sa;
} servAddr;
int msock, err;
-
+
msock = socket(PF_INET, SOCK_STREAM, 0);
if( msock < 0 )
{
@@ -325,7 +325,7 @@ broadcaster_t *_x_init_broadcaster(xine_stream_t *stream, int port)
}
listen(msock,QLEN);
-
+
signal( SIGPIPE, SIG_IGN );
this = calloc(1, sizeof(broadcaster_t));
@@ -333,23 +333,23 @@ broadcaster_t *_x_init_broadcaster(xine_stream_t *stream, int port)
this->stream = stream;
this->msock = msock;
this->connections = xine_list_new();
-
+
pthread_mutex_init (&this->lock, NULL);
-
+
stream->video_fifo->register_put_cb(stream->video_fifo, video_put_cb, this);
if(stream->audio_fifo)
stream->audio_fifo->register_put_cb(stream->audio_fifo, audio_put_cb, this);
-
+
this->running = 1;
if ((err = pthread_create (&this->manager_thread,
NULL, manager_loop, (void *)this)) != 0) {
- xprintf (stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (stream->xine, XINE_VERBOSITY_NONE,
"broadcaster: can't create new thread (%s)\n", strerror(err));
_x_abort();
}
-
- return this;
+
+ return this;
}
void _x_close_broadcaster(broadcaster_t *this)
@@ -358,15 +358,15 @@ void _x_close_broadcaster(broadcaster_t *this)
pthread_cancel(this->manager_thread);
pthread_join(this->manager_thread,NULL);
close(this->msock);
-
+
if (this->stream->video_fifo)
this->stream->video_fifo->unregister_put_cb(this->stream->video_fifo, video_put_cb);
if(this->stream->audio_fifo)
this->stream->audio_fifo->unregister_put_cb(this->stream->audio_fifo, audio_put_cb);
-
+
xine_list_iterator_t ite;
-
+
while ( (ite = xine_list_front(this->connections)) ) {
int *psock = xine_list_get_value(this->connections, ite);
xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG, "broadcaster: closing socket %d\n", *psock);
@@ -383,5 +383,5 @@ void _x_close_broadcaster(broadcaster_t *this)
int _x_get_broadcaster_port(broadcaster_t *this)
{
- return this->port;
+ return this->port;
}
diff --git a/src/xine-engine/bswap.h b/src/xine-engine/bswap.h
index 635c6ae3a..f58648728 100644
--- a/src/xine-engine/bswap.h
+++ b/src/xine-engine/bswap.h
@@ -23,7 +23,7 @@
#include "config.h"
-#define always_inline inline
+#define always_inline inline
#include "ffmpeg_bswap.h"
@@ -98,7 +98,7 @@
( (uint32_t)(unsigned char)(ch1) << 8 ) | \
( (uint32_t)(unsigned char)(ch2) << 16 ) | \
( (uint32_t)(unsigned char)(ch3) << 24 ) )
-
+
#ifdef WORDS_BIGENDIAN
#define ME_FOURCC BE_FOURCC
#else
diff --git a/src/xine-engine/buffer.c b/src/xine-engine/buffer.c
index bf2ea41e9..50ffb57cd 100644
--- a/src/xine-engine/buffer.c
+++ b/src/xine-engine/buffer.c
@@ -1,13 +1,13 @@
/*
* Copyright (C) 2000-2004 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
@@ -70,7 +70,7 @@ static void buffer_pool_free (buf_element_t *element) {
fprintf(stderr, _("xine-lib: buffer.c: There has been a fatal error: TOO MANY FREE's\n"));
_x_abort();
}
-
+
pthread_cond_signal (&this->buffer_pool_cond_not_empty);
pthread_mutex_unlock (&this->buffer_pool_mutex);
@@ -110,7 +110,7 @@ static buf_element_t *buffer_pool_alloc (fifo_buffer_t *this) {
memset(buf->decoder_info, 0, sizeof(buf->decoder_info));
memset(buf->decoder_info_ptr, 0, sizeof(buf->decoder_info_ptr));
_x_extra_info_reset( buf->extra_info );
-
+
return buf;
}
@@ -157,7 +157,7 @@ static buf_element_t *buffer_pool_try_alloc (fifo_buffer_t *this) {
*/
static void fifo_buffer_put (fifo_buffer_t *fifo, buf_element_t *element) {
int i;
-
+
pthread_mutex_lock (&fifo->mutex);
for(i = 0; fifo->put_cb[i]; i++)
@@ -183,7 +183,7 @@ static void fifo_buffer_put (fifo_buffer_t *fifo, buf_element_t *element) {
*/
static void dummy_fifo_buffer_put (fifo_buffer_t *fifo, buf_element_t *element) {
int i;
-
+
pthread_mutex_lock (&fifo->mutex);
for(i = 0; fifo->put_cb[i]; i++)
@@ -450,7 +450,7 @@ static void fifo_unregister_alloc_cb (fifo_buffer_t *this,
this->alloc_cb_data[j] = this->alloc_cb_data[j+1];
}
}
- }
+ }
pthread_mutex_unlock(&this->mutex);
}
@@ -471,7 +471,7 @@ static void fifo_unregister_put_cb (fifo_buffer_t *this,
this->put_cb_data[j] = this->put_cb_data[j+1];
}
}
- }
+ }
pthread_mutex_unlock(&this->mutex);
}
@@ -492,7 +492,7 @@ static void fifo_unregister_get_cb (fifo_buffer_t *this,
this->get_cb_data[j] = this->get_cb_data[j+1];
}
}
- }
+ }
pthread_mutex_unlock(&this->mutex);
}
diff --git a/src/xine-engine/buffer_types.c b/src/xine-engine/buffer_types.c
index 9e7c8084b..4d4be3a34 100644
--- a/src/xine-engine/buffer_types.c
+++ b/src/xine-engine/buffer_types.c
@@ -1,18 +1,18 @@
/*
* Copyright (C) 2000-2008 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -20,7 +20,7 @@
*
* contents:
*
- * buffer types management.
+ * buffer types management.
* convert FOURCC and audioformattag to BUF_xxx defines
*/
@@ -272,7 +272,7 @@ static const video_db_t video_db[] = {
"Raw RGB"
},
{
- {
+ {
/* is this right? copied from demux_qt:
else if (!strncasecmp (video, "yuv2", 4))
this->video_type = BUF_VIDEO_YUY2;
@@ -887,7 +887,7 @@ static const audio_db_t audio_db[] = {
},
{
{
- 0x02,
+ 0x02,
ME_FOURCC('m', 's', 0, 0x02),
0
},
@@ -911,7 +911,7 @@ static const audio_db_t audio_db[] = {
"MS GSM"
},
{
- {
+ {
/* these formattags are used by Vorbis ACM encoder and
supported by NanDub, a variant of VirtualDub. */
0x674f, 0x676f, 0x6750, 0x6770, 0x6751, 0x6771,
@@ -1020,7 +1020,7 @@ static const audio_db_t audio_db[] = {
ME_FOURCC('M', 'P', '4', 'A'),
ME_FOURCC('r', 'a', 'a', 'c'),
ME_FOURCC('r', 'a', 'c', 'p'),
- ME_FOURCC('A', 'A', 'C', ' '),
+ ME_FOURCC('A', 'A', 'C', ' '),
0
},
BUF_AUDIO_AAC,
@@ -1189,7 +1189,7 @@ static uint32_t cached_buf_type=0;
if( fourcc_int == cached_fourcc )
return cached_buf_type;
-
+
for( i = 0; video_db[i].buf_type; i++ ) {
for( j = 0; video_db[i].fourcc[j]; j++ ) {
if( fourcc_int == video_db[i].fourcc[j] ) {
@@ -1204,9 +1204,9 @@ static uint32_t cached_buf_type=0;
const char * _x_buf_video_name( uint32_t buf_type ) {
int i;
-
+
buf_type &= 0xffff0000;
-
+
for( i = 0; video_db[i].buf_type; i++ ) {
if( buf_type == video_db[i].buf_type ) {
return video_db[i].name;
@@ -1223,7 +1223,7 @@ static uint32_t cached_buf_type=0;
if( formattag == cached_formattag )
return cached_buf_type;
-
+
for( i = 0; audio_db[i].buf_type; i++ ) {
for( j = 0; audio_db[i].formattag[j]; j++ ) {
if( formattag == audio_db[i].formattag[j] ) {
@@ -1238,9 +1238,9 @@ static uint32_t cached_buf_type=0;
const char * _x_buf_audio_name( uint32_t buf_type ) {
int i;
-
+
buf_type &= 0xffff0000;
-
+
for( i = 0; audio_db[i].buf_type; i++ ) {
if( buf_type == audio_db[i].buf_type ) {
return audio_db[i].name;
@@ -1291,7 +1291,7 @@ void _x_bmiheader_le2me( xine_bmiheader *bih ) {
/* OBS: fourcc must be read using machine endianness
* so don't play with biCompression here!
*/
-
+
bih->biSize = le2me_32(bih->biSize);
bih->biWidth = le2me_32(bih->biWidth);
bih->biHeight = le2me_32(bih->biHeight);
@@ -1305,7 +1305,7 @@ void _x_bmiheader_le2me( xine_bmiheader *bih ) {
}
void _x_waveformatex_le2me( xine_waveformatex *wavex ) {
-
+
wavex->wFormatTag = le2me_16(wavex->wFormatTag);
wavex->nChannels = le2me_16(wavex->nChannels);
wavex->nSamplesPerSec = le2me_32(wavex->nSamplesPerSec);
diff --git a/src/xine-engine/configfile.c b/src/xine-engine/configfile.c
index a3742bb68..e014f4132 100644
--- a/src/xine-engine/configfile.c
+++ b/src/xine-engine/configfile.c
@@ -229,7 +229,7 @@ static int config_section_enum(const char *sect) {
NULL
};
int i = 0;
-
+
while (known_section[i])
if (strcmp(sect, known_section[i++]) == 0)
return i;
@@ -238,7 +238,7 @@ static int config_section_enum(const char *sect) {
static void config_key_split(const char *key, char **base, char **section, char **subsect, char **name) {
char *parse;
-
+
*base = strdup(key);
if ((parse = strchr(*base, '.'))) {
*section = *base;
@@ -263,10 +263,10 @@ static void config_insert(config_values_t *this, cfg_entry_t *new_entry) {
cfg_entry_t *cur, *prev;
char *new_base, *new_section, *new_subsect, *new_name;
char *cur_base, *cur_section, *cur_subsect, *cur_name;
-
+
/* extract parts of the new key */
config_key_split(new_entry->key, &new_base, &new_section, &new_subsect, &new_name);
-
+
/* search right position */
cur_base = NULL;
for (cur = this->first, prev = NULL; cur; prev = cur, cur = cur->next) {
@@ -274,7 +274,7 @@ static void config_insert(config_values_t *this, cfg_entry_t *new_entry) {
if (cur_base)
free(cur_base);
config_key_split(cur->key, &cur_base, &cur_section, &cur_subsect, &cur_name);
-
+
/* sort by section name */
if (!new_section && cur_section) break;
if ( new_section && !cur_section) continue;
@@ -306,14 +306,14 @@ static void config_insert(config_values_t *this, cfg_entry_t *new_entry) {
if (cmp < 0) break;
if (cmp > 0) continue;
}
-
+
break;
}
if (new_base)
free(new_base);
if (cur_base)
free(cur_base);
-
+
new_entry->next = cur;
if (!cur)
this->last = new_entry;
@@ -334,7 +334,7 @@ static cfg_entry_t *XINE_MALLOC config_add (config_values_t *this, const char *k
entry->unknown_value = NULL;
entry->str_value = NULL;
entry->exp_level = exp_level;
-
+
config_insert(this, entry);
lprintf ("add entry key=%s\n", key);
@@ -401,7 +401,7 @@ static void config_lookup_entry_int (config_values_t *this, const char *key,
*prev = *entry;
*entry = (*entry)->next;
}
-
+
if (*entry) {
free(tmp);
return;
@@ -424,11 +424,11 @@ static void config_lookup_entry_int (config_values_t *this, const char *key,
static cfg_entry_t *config_lookup_entry(config_values_t *this, const char *key) {
cfg_entry_t *entry, *prev;
-
+
pthread_mutex_lock(&this->config_lock);
config_lookup_entry_int(this, key, &entry, &prev);
pthread_mutex_unlock(&this->config_lock);
-
+
return entry;
}
@@ -539,7 +539,7 @@ static cfg_entry_t *config_register_string_internal (config_values_t *this,
/* set string */
entry->type = XINE_CONFIG_TYPE_STRING;
-
+
if (entry->unknown_value)
entry->str_value = strdup(entry->unknown_value);
else
@@ -770,7 +770,7 @@ static int config_register_enum (config_values_t *this,
entry->num_value = config_parse_enum (entry->unknown_value, (const char **)values);
else
entry->num_value = def_value;
-
+
/* fill out rest of struct */
entry->num_default = def_value;
@@ -820,7 +820,7 @@ static void config_shallow_copy(xine_cfg_entry_t *dest, cfg_entry_t *src)
static void config_update_num (config_values_t *this,
const char *key, int value) {
-
+
cfg_entry_t *entry;
entry = this->lookup_entry (this, key);
@@ -849,13 +849,13 @@ static void config_update_num (config_values_t *this,
xine_cfg_entry_t cb_entry;
config_shallow_copy(&cb_entry, entry);
-
+
/* it is safe to enter the callback from within a locked context
* because we use a recursive mutex.
*/
entry->callback (entry->callback_data, &cb_entry);
}
-
+
pthread_mutex_unlock(&this->config_lock);
}
@@ -877,7 +877,7 @@ static void config_update_string (config_values_t *this,
return;
}
-
+
/* if an enum is updated with a string, we convert the string to
* its index and use update number */
if (entry->type == XINE_CONFIG_TYPE_ENUM) {
@@ -901,7 +901,7 @@ static void config_update_string (config_values_t *this,
xine_cfg_entry_t cb_entry;
config_shallow_copy(&cb_entry, entry);
-
+
/* it is safe to enter the callback from within a locked context
* because we use a recursive mutex.
*/
@@ -943,7 +943,7 @@ void xine_config_load (xine_t *xine, const char *filename) {
if (line[0] == '#')
continue;
-
+
if (line[0] == '.') {
if (strncmp(line, ".version:", 9) == 0) {
sscanf(line + 9, "%d", &this->current_version);
@@ -1016,32 +1016,32 @@ void xine_config_save (xine_t *xine, const char *filename) {
unlink (temp);
if (stat(temp, &backup_stat) != 0) {
-
+
lprintf("backing up configfile to %s\n", temp);
f_backup = fopen(temp, "w");
f_config = fopen(filename, "r");
-
+
if (f_config && f_backup && (stat(filename, &config_stat) == 0)) {
char *buf = NULL;
size_t rlen;
-
+
buf = (char *) malloc(config_stat.st_size + 1);
if((rlen = fread(buf, 1, config_stat.st_size, f_config)) && ((off_t)rlen == config_stat.st_size)) {
(void) fwrite(buf, 1, rlen, f_backup);
}
free(buf);
-
+
fclose(f_config);
fclose(f_backup);
stat(temp, &backup_stat);
-
+
if (config_stat.st_size == backup_stat.st_size)
backup = 1;
else
unlink(temp);
-
- }
+
+ }
else {
if (f_config)
@@ -1054,17 +1054,17 @@ void xine_config_save (xine_t *xine, const char *filename) {
}
}
-
+
if (!backup && (stat(filename, &config_stat) == 0)) {
xprintf(xine, XINE_VERBOSITY_LOG, _("configfile: WARNING: backing up configfile to %s failed\n"), temp);
xprintf(xine, XINE_VERBOSITY_LOG, _("configfile: WARNING: your configuration will not be saved\n"));
return;
}
-
+
lprintf ("writing config file to %s\n", filename);
f_config = fopen(filename, "w");
-
+
if (f_config) {
cfg_entry_t *entry;
@@ -1155,7 +1155,7 @@ void xine_config_save (xine_t *xine, const char *filename) {
entry = entry->next;
}
pthread_mutex_unlock(&this->config_lock);
-
+
if (fclose(f_config) != 0) {
xprintf(xine, XINE_VERBOSITY_LOG, _("configfile: WARNING: writing configuration to %s failed\n"), filename);
xprintf(xine, XINE_VERBOSITY_LOG, _("configfile: WARNING: removing possibly broken config file %s\n"), filename);
@@ -1166,7 +1166,7 @@ void xine_config_save (xine_t *xine, const char *filename) {
backup = 0;
}
}
-
+
if (backup)
unlink(temp);
}
@@ -1237,7 +1237,7 @@ static int put_int(uint8_t *buffer, int pos, int value) {
buffer[pos + 1] = (value_int32 >> 8) & 0xFF;
buffer[pos + 2] = (value_int32 >> 16) & 0xFF;
buffer[pos + 3] = (value_int32 >> 24) & 0xFF;
-
+
return 4;
}
@@ -1251,10 +1251,10 @@ static int put_string(uint8_t *buffer, int pos, const char *value, int value_len
static char* config_get_serialized_entry (config_values_t *this, const char *key) {
char *output = NULL;
cfg_entry_t *entry, *prev;
-
+
pthread_mutex_lock(&this->config_lock);
config_lookup_entry_int(this, key, &entry, &prev);
-
+
if (entry) {
/* now serialize this stuff
fields to serialize :
@@ -1270,7 +1270,7 @@ static char* config_get_serialized_entry (config_values_t *this, const char *key
char *help;
char **enum_values;
*/
-
+
int key_len = 0;
int str_default_len = 0;
int description_len = 0;
@@ -1281,7 +1281,7 @@ static char* config_get_serialized_entry (config_values_t *this, const char *key
int value_len[10];
int pos = 0;
int i;
-
+
if (entry->key)
key_len = strlen(entry->key);
if (entry->str_default)
@@ -1290,11 +1290,11 @@ static char* config_get_serialized_entry (config_values_t *this, const char *key
description_len = strlen(entry->description);
if (entry->help)
help_len = strlen(entry->help);
-
+
/* integers */
/* value: 4 bytes */
total_len = 6 * sizeof(int32_t);
-
+
/* strings (size + char buffer)
* length: 4 bytes
* buffer: length bytes
@@ -1303,16 +1303,16 @@ static char* config_get_serialized_entry (config_values_t *this, const char *key
total_len += sizeof(int32_t) + str_default_len;
total_len += sizeof(int32_t) + description_len;
total_len += sizeof(int32_t) + help_len;
-
+
/* enum values...
* value count: 4 bytes
* for each value:
- * length: 4 bytes
+ * length: 4 bytes
* buffer: length bytes
*/
value_count = 0;
total_len += sizeof(int32_t); /* value count */
-
+
char **cur_value = entry->enum_values;
if (cur_value) {
while (*cur_value && (value_count < (sizeof(value_len) / sizeof(int) ))) {
@@ -1326,9 +1326,9 @@ static char* config_get_serialized_entry (config_values_t *this, const char *key
/* Now we have the length needed to serialize the entry and the length of each string */
uint8_t *buffer = malloc (total_len);
if (!buffer) return NULL;
-
+
/* Let's go */
-
+
/* the integers */
pos += put_int(buffer, pos, entry->type);
pos += put_int(buffer, pos, entry->range_min);
@@ -1336,7 +1336,7 @@ static char* config_get_serialized_entry (config_values_t *this, const char *key
pos += put_int(buffer, pos, entry->exp_level);
pos += put_int(buffer, pos, entry->num_default);
pos += put_int(buffer, pos, entry->num_value);
-
+
/* the strings */
pos += put_string(buffer, pos, entry->key, key_len);
pos += put_string(buffer, pos, entry->str_default, str_default_len);
@@ -1346,7 +1346,7 @@ static char* config_get_serialized_entry (config_values_t *this, const char *key
/* the enum stuff */
pos += put_int(buffer, pos, value_count);
cur_value = entry->enum_values;
-
+
for (i = 0; i < value_count; i++) {
pos += put_string(buffer, pos, *cur_value, value_len[i]);
cur_value++;
@@ -1373,7 +1373,7 @@ static int get_int(uint8_t *buffer, int buffer_size, int pos, int *value) {
if ((pos + sizeof(int32_t)) > buffer_size)
return 0;
-
+
value_int32 = _X_LE_32(&buffer[pos]);
*value = (int)value_int32;
return sizeof(int32_t);
@@ -1383,15 +1383,15 @@ static int get_string(uint8_t *buffer, int buffer_size, int pos, char **value) {
int len;
int bytes = get_int(buffer, buffer_size, pos, &len);
*value = NULL;
-
+
if (!bytes || (len < 0) || (len > 1024*64))
return 0;
-
+
char *str = malloc(len + 1);
pos += bytes;
memcpy(str, &buffer[pos], len);
str[len] = 0;
-
+
*value = str;
return bytes + len;
}
@@ -1422,25 +1422,25 @@ static char* config_register_serialized_entry (config_values_t *this, const char
char *description = NULL;
char *help = NULL;
char **enum_values = NULL;
-
+
int bytes;
int pos;
void *output = NULL;
size_t output_len;
int value_count = 0;
int i;
-
+
output_len = strlen(value) * 3 / 4 + 1;
output = malloc(output_len);
av_base64_decode(output, value, output_len);
-
+
pos = 0;
pos += bytes = get_int(output, output_len, pos, &type);
if (!bytes) goto exit;
pos += bytes = get_int(output, output_len, pos, &range_min);
if (!bytes) goto exit;
-
+
pos += bytes = get_int(output, output_len, pos, &range_max);
if (!bytes) goto exit;
@@ -1455,7 +1455,7 @@ static char* config_register_serialized_entry (config_values_t *this, const char
pos += bytes = get_string(output, output_len, pos, &key);
if (!bytes) goto exit;
-
+
pos += bytes = get_string(output, output_len, pos, &str_default);
if (!bytes) goto exit;
@@ -1468,7 +1468,7 @@ static char* config_register_serialized_entry (config_values_t *this, const char
pos += bytes = get_int(output, output_len, pos, &value_count);
if (!bytes) goto exit;
if ((value_count < 0) || (value_count > 256)) goto exit;
-
+
enum_values = calloc (value_count + 1, sizeof(void*));
for (i = 0; i < value_count; i++) {
pos += bytes = get_string(output, output_len, pos, &enum_values[i]);
@@ -1476,7 +1476,7 @@ static char* config_register_serialized_entry (config_values_t *this, const char
}
enum_values[value_count] = NULL;
-#ifdef LOG
+#ifdef LOG
printf("config entry deserialization:\n");
printf(" key : %s\n", key);
printf(" type : %d\n", type);
@@ -1489,7 +1489,7 @@ static char* config_register_serialized_entry (config_values_t *this, const char
printf(" description: %s\n", description);
printf(" help : %s\n", help);
printf(" enum : %d values\n", value_count);
-
+
for (i = 0; i < value_count; i++) {
printf(" enum[%2d]: %s\n", i, enum_values[i]);
}
@@ -1625,13 +1625,13 @@ int _x_config_change_opt(config_values_t *config, const char *opt) {
free(key);
return -1;
}
-
+
switch(entry->type) {
case XINE_CONFIG_TYPE_STRING:
config->update_string(config, key, value);
handled = 1;
break;
-
+
case XINE_CONFIG_TYPE_RANGE:
case XINE_CONFIG_TYPE_ENUM:
case XINE_CONFIG_TYPE_NUM:
@@ -1639,13 +1639,13 @@ int _x_config_change_opt(config_values_t *config, const char *opt) {
config->update_num(config, key, (atoi(value)));
handled = 1;
break;
-
+
case XINE_CONFIG_TYPE_UNKNOWN:
entry->unknown_value = strdup(value);
handled = 1;
break;
}
-
+
free(key);
return handled;
}
diff --git a/src/xine-engine/demux.c b/src/xine-engine/demux.c
index fb4176763..f7db28e2b 100644
--- a/src/xine-engine/demux.c
+++ b/src/xine-engine/demux.c
@@ -50,7 +50,7 @@
#include <winsock.h>
#endif
-/*
+/*
* Flush audio and video buffers. It is called from demuxers on
* seek/stop, and may be useful when user input changes a stream and
* xine-lib has cached buffers that have yet to be played.
@@ -62,10 +62,10 @@
void _x_demux_flush_engine (xine_stream_t *stream) {
buf_element_t *buf;
-
+
if( stream->gapless_switch )
return;
-
+
stream->xine->port_ticket->acquire(stream->xine->port_ticket, 1);
/* only flush/discard output ports on master streams */
@@ -77,23 +77,23 @@ void _x_demux_flush_engine (xine_stream_t *stream) {
stream->audio_out->set_property(stream->audio_out, AO_PROP_DISCARD_BUFFERS, 1);
}
}
-
+
stream->video_fifo->clear(stream->video_fifo);
stream->audio_fifo->clear(stream->audio_fifo);
-
- pthread_mutex_lock(&stream->demux_mutex);
+
+ pthread_mutex_lock(&stream->demux_mutex);
buf = stream->video_fifo->buffer_pool_alloc (stream->video_fifo);
buf->type = BUF_CONTROL_RESET_DECODER;
stream->video_fifo->put (stream->video_fifo, buf);
-
+
buf = stream->audio_fifo->buffer_pool_alloc (stream->audio_fifo);
buf->type = BUF_CONTROL_RESET_DECODER;
stream->audio_fifo->put (stream->audio_fifo, buf);
-
- pthread_mutex_unlock(&stream->demux_mutex);
- /* on seeking we must wait decoder fifos to process before doing flush.
+ pthread_mutex_unlock(&stream->demux_mutex);
+
+ /* on seeking we must wait decoder fifos to process before doing flush.
* otherwise we flush too early (before the old data has left decoders)
*/
_x_demux_control_headers_done (stream);
@@ -102,7 +102,7 @@ void _x_demux_flush_engine (xine_stream_t *stream) {
video_overlay_manager_t *ovl = stream->video_out->get_overlay_manager(stream->video_out);
ovl->flush_events(ovl);
}
-
+
/* only flush/discard output ports on master streams */
if( stream->master == stream ) {
if (stream->video_out) {
@@ -115,7 +115,7 @@ void _x_demux_flush_engine (xine_stream_t *stream) {
stream->audio_out->set_property(stream->audio_out, AO_PROP_DISCARD_BUFFERS, 0);
}
}
-
+
stream->xine->port_ticket->release(stream->xine->port_ticket, 1);
}
@@ -151,8 +151,8 @@ static struct timespec _x_compute_interval(unsigned int millisecs) {
void _x_demux_control_newpts( xine_stream_t *stream, int64_t pts, uint32_t flags ) {
buf_element_t *buf;
-
- pthread_mutex_lock(&stream->demux_mutex);
+
+ pthread_mutex_lock(&stream->demux_mutex);
buf = stream->video_fifo->buffer_pool_alloc (stream->video_fifo);
buf->type = BUF_CONTROL_NEWPTS;
@@ -166,7 +166,7 @@ void _x_demux_control_newpts( xine_stream_t *stream, int64_t pts, uint32_t flags
buf->disc_off = pts;
stream->audio_fifo->put (stream->audio_fifo, buf);
- pthread_mutex_unlock(&stream->demux_mutex);
+ pthread_mutex_unlock(&stream->demux_mutex);
}
/* avoid ao_loop being stuck in a pthread_cond_wait, waiting for data;
@@ -201,7 +201,7 @@ void _x_demux_control_headers_done (xine_stream_t *stream) {
/* we use demux_action_pending to wake up sleeping spu decoders */
stream->demux_action_pending = 1;
-
+
/* allocate the buffers before grabbing the lock to prevent cyclic wait situations */
buf_video = stream->video_fifo->buffer_pool_alloc (stream->video_fifo);
buf_audio = stream->audio_fifo->buffer_pool_alloc (stream->audio_fifo);
@@ -219,8 +219,8 @@ void _x_demux_control_headers_done (xine_stream_t *stream) {
} else {
header_count_audio = 0;
}
-
- pthread_mutex_lock(&stream->demux_mutex);
+
+ pthread_mutex_lock(&stream->demux_mutex);
buf_video->type = BUF_CONTROL_HEADERS_DONE;
stream->video_fifo->put (stream->video_fifo, buf_video);
@@ -228,24 +228,24 @@ void _x_demux_control_headers_done (xine_stream_t *stream) {
buf_audio->type = BUF_CONTROL_HEADERS_DONE;
stream->audio_fifo->put (stream->audio_fifo, buf_audio);
- pthread_mutex_unlock(&stream->demux_mutex);
+ pthread_mutex_unlock(&stream->demux_mutex);
unsigned int max_iterations = 0;
- while ((stream->header_count_audio < header_count_audio) ||
+ while ((stream->header_count_audio < header_count_audio) ||
(stream->header_count_video < header_count_video)) {
lprintf ("waiting for headers. v:%d %d a:%d %d\n",
stream->header_count_video, header_count_video,
- stream->header_count_audio, header_count_audio);
-
- struct timespec ts = _x_compute_interval(1000);
+ stream->header_count_audio, header_count_audio);
+
+ struct timespec ts = _x_compute_interval(1000);
int ret_wait;
/* use timedwait to workaround buggy pthread broadcast implementations */
ret_wait = pthread_cond_timedwait (&stream->counter_changed, &stream->counter_lock, &ts);
if (ret_wait == ETIMEDOUT && demux_unstick_ao_loop (stream) && ++max_iterations > 4) {
- xine_log(stream->xine,
+ xine_log(stream->xine,
XINE_LOG_MSG,_("Stuck in _x_demux_control_headers_done(). Taking the emergency exit\n"));
stream->emergency_brake = 1;
break;
@@ -254,7 +254,7 @@ void _x_demux_control_headers_done (xine_stream_t *stream) {
stream->demux_action_pending = 0;
pthread_cond_signal(&stream->demux_resume);
-
+
lprintf ("headers processed.\n");
pthread_mutex_unlock (&stream->counter_lock);
@@ -265,7 +265,7 @@ void _x_demux_control_start( xine_stream_t *stream ) {
buf_element_t *buf;
uint32_t flags = (stream->gapless_switch) ? BUF_FLAG_GAPLESS_SW : 0;
- pthread_mutex_lock(&stream->demux_mutex);
+ pthread_mutex_lock(&stream->demux_mutex);
buf = stream->video_fifo->buffer_pool_alloc (stream->video_fifo);
buf->type = BUF_CONTROL_START;
@@ -277,14 +277,14 @@ void _x_demux_control_start( xine_stream_t *stream ) {
buf->decoder_flags = flags;
stream->audio_fifo->put (stream->audio_fifo, buf);
- pthread_mutex_unlock(&stream->demux_mutex);
+ pthread_mutex_unlock(&stream->demux_mutex);
}
void _x_demux_control_end( xine_stream_t *stream, uint32_t flags ) {
buf_element_t *buf;
- pthread_mutex_lock(&stream->demux_mutex);
+ pthread_mutex_lock(&stream->demux_mutex);
buf = stream->video_fifo->buffer_pool_alloc (stream->video_fifo);
buf->type = BUF_CONTROL_END;
@@ -296,26 +296,26 @@ void _x_demux_control_end( xine_stream_t *stream, uint32_t flags ) {
buf->decoder_flags = flags;
stream->audio_fifo->put (stream->audio_fifo, buf);
- pthread_mutex_unlock(&stream->demux_mutex);
+ pthread_mutex_unlock(&stream->demux_mutex);
}
void _x_demux_control_nop( xine_stream_t *stream, uint32_t flags ) {
buf_element_t *buf;
- pthread_mutex_lock(&stream->demux_mutex);
+ pthread_mutex_lock(&stream->demux_mutex);
buf = stream->video_fifo->buffer_pool_alloc (stream->video_fifo);
buf->type = BUF_CONTROL_NOP;
buf->decoder_flags = flags;
stream->video_fifo->put (stream->video_fifo, buf);
-
+
buf = stream->audio_fifo->buffer_pool_alloc (stream->audio_fifo);
buf->type = BUF_CONTROL_NOP;
buf->decoder_flags = flags;
stream->audio_fifo->put (stream->audio_fifo, buf);
- pthread_mutex_unlock(&stream->demux_mutex);
+ pthread_mutex_unlock(&stream->demux_mutex);
}
static void *demux_loop (void *stream_gen) {
@@ -330,7 +330,7 @@ static void *demux_loop (void *stream_gen) {
pthread_mutex_lock( &stream->demux_lock );
stream->emergency_brake = 0;
-
+
/* do-while needed to seek after demux finished */
do {
@@ -349,7 +349,7 @@ static void *demux_loop (void *stream_gen) {
gettimeofday(&tv, NULL);
ts.tv_sec = tv.tv_sec;
ts.tv_nsec = (tv.tv_usec + 100000) * 1000;
-
+
pthread_cond_timedwait (&stream->demux_resume, &stream->demux_lock, &ts);
}
}
@@ -398,7 +398,7 @@ static void *demux_loop (void *stream_gen) {
/* demux_thread_running is zero if demux loop has been stopped by user */
non_user = stream->demux_thread_running;
stream->demux_thread_running = 0;
-
+
_x_demux_control_end(stream, non_user);
lprintf ("loop finished, end buffer sent\n");
@@ -409,7 +409,7 @@ static void *demux_loop (void *stream_gen) {
struct timespec ts;
unsigned int max_iterations = 0;
int ret_wait;
- while ((stream->finished_count_audio < finished_count_audio) ||
+ while ((stream->finished_count_audio < finished_count_audio) ||
(stream->finished_count_video < finished_count_video)) {
lprintf ("waiting for finisheds.\n");
ts = _x_compute_interval(1000);
@@ -423,7 +423,7 @@ static void *demux_loop (void *stream_gen) {
}
}
pthread_mutex_unlock (&stream->counter_lock);
-
+
_x_handle_stream_end(stream, non_user);
return NULL;
}
@@ -431,14 +431,14 @@ static void *demux_loop (void *stream_gen) {
int _x_demux_start_thread (xine_stream_t *stream) {
int err;
-
+
lprintf ("start thread called\n");
-
+
stream->demux_action_pending = 1;
pthread_mutex_lock( &stream->demux_lock );
stream->demux_action_pending = 0;
pthread_cond_signal(&stream->demux_resume);
-
+
if( !stream->demux_thread_running ) {
if (stream->demux_thread_created) {
@@ -454,17 +454,17 @@ int _x_demux_start_thread (xine_stream_t *stream) {
_x_abort();
}
}
-
+
pthread_mutex_unlock( &stream->demux_lock );
return 0;
}
int _x_demux_stop_thread (xine_stream_t *stream) {
-
+
void *p;
-
+
lprintf ("stop thread called\n");
-
+
stream->demux_action_pending = 1;
pthread_mutex_lock( &stream->demux_lock );
stream->demux_thread_running = 0;
@@ -478,12 +478,12 @@ int _x_demux_stop_thread (xine_stream_t *stream) {
pthread_mutex_unlock( &stream->demux_lock );
lprintf ("joining thread %ld\n", stream->demux_thread );
-
+
if( stream->demux_thread_created ) {
pthread_join (stream->demux_thread, &p);
stream->demux_thread_created = 0;
}
-
+
/*
* Wake up xine_play if it's waiting for a frame
*/
@@ -634,7 +634,7 @@ int _x_action_pending (xine_stream_t *stream) {
*
* the other ones help enforcing that demuxers provide the information
* they have about the stream, so things like the GUI slider bar can
- * work as expected.
+ * work as expected.
*/
void _x_demux_send_data(fifo_buffer_t *fifo, uint8_t *data, int size,
int64_t pts, uint32_t type, uint32_t decoder_flags,
@@ -682,10 +682,10 @@ void _x_demux_send_data(fifo_buffer_t *fifo, uint8_t *data, int size,
*
* If reading fails, -1 is returned
*/
-int _x_demux_read_send_data(fifo_buffer_t *fifo, input_plugin_t *input,
- int size, int64_t pts, uint32_t type,
- uint32_t decoder_flags, off_t input_normpos,
- int input_time, int total_time,
+int _x_demux_read_send_data(fifo_buffer_t *fifo, input_plugin_t *input,
+ int size, int64_t pts, uint32_t type,
+ uint32_t decoder_flags, off_t input_normpos,
+ int input_time, int total_time,
uint32_t frame_number) {
buf_element_t *buf;
@@ -707,7 +707,7 @@ int _x_demux_read_send_data(fifo_buffer_t *fifo, input_plugin_t *input,
if(input->read(input, buf->content, buf->size) < buf->size) {
buf->free_buffer(buf);
- return -1;
+ return -1;
}
size -= buf->size;
@@ -723,7 +723,7 @@ int _x_demux_read_send_data(fifo_buffer_t *fifo, input_plugin_t *input,
fifo->put (fifo, buf);
}
-
+
return 0;
}
@@ -750,7 +750,7 @@ void _x_demux_send_mrl_reference (xine_stream_t *stream, int alternative,
event.data_length = offsetof (xine_mrl_reference_data_ext_t, mrl) +
mrl_len + strlen (title) + 2;
data.e = event.data = malloc (event.data_length);
-
+
data.e->alternative = alternative;
data.e->start_time = start_time;
data.e->duration = duration;
diff --git a/src/xine-engine/events.c b/src/xine-engine/events.c
index bf0d88fae..33d9988be 100644
--- a/src/xine-engine/events.c
+++ b/src/xine-engine/events.c
@@ -1,18 +1,18 @@
-/*
+/*
* Copyright (C) 2000-2004 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -94,7 +94,7 @@ void xine_event_send (xine_stream_t *stream, const xine_event_t *event) {
cevent->data = NULL;
}
gettimeofday (&cevent->tv, NULL);
-
+
pthread_mutex_lock (&queue->lock);
xine_list_push_back (queue->events, cevent);
pthread_cond_signal (&queue->new_event);
@@ -135,7 +135,7 @@ void xine_event_dispose_queue (xine_event_queue_t *queue) {
xine_event_t *qevent;
xine_event_queue_t *q;
xine_list_iterator_t ite;
-
+
pthread_mutex_lock (&stream->event_queues_lock);
ite = xine_list_front (stream->event_queues);
@@ -144,7 +144,7 @@ void xine_event_dispose_queue (xine_event_queue_t *queue) {
if ( ite ) {
do {
q = xine_list_get_value (stream->event_queues, ite);
-
+
if ( q == queue )
break;
} while( (ite = xine_list_next (stream->event_queues, ite)) );
@@ -160,17 +160,17 @@ void xine_event_dispose_queue (xine_event_queue_t *queue) {
xine_list_remove (stream->event_queues, ite);
pthread_mutex_unlock (&stream->event_queues_lock);
- /*
- * send quit event
+ /*
+ * send quit event
*/
qevent = (xine_event_t *)malloc(sizeof(xine_event_t));
-
+
qevent->type = XINE_EVENT_QUIT;
qevent->stream = stream;
qevent->data = NULL;
qevent->data_length = 0;
gettimeofday (&qevent->tv, NULL);
-
+
pthread_mutex_lock (&queue->lock);
xine_list_push_back (queue->events, qevent);
pthread_cond_signal (&queue->new_event);
@@ -179,15 +179,15 @@ void xine_event_dispose_queue (xine_event_queue_t *queue) {
/*
* join listener thread, if any
*/
-
+
if (queue->listener_thread) {
void *p;
pthread_join (*queue->listener_thread, &p);
free (queue->listener_thread);
}
-
+
/*
- * clean up pending events
+ * clean up pending events
*/
while ( (event = xine_event_get (queue)) ) {
@@ -233,7 +233,7 @@ static void *listener_loop (void *queue_gen) {
}
-void xine_event_create_listener_thread (xine_event_queue_t *queue,
+void xine_event_create_listener_thread (xine_event_queue_t *queue,
xine_event_listener_cb_t callback,
void *user_data) {
int err;
@@ -244,7 +244,7 @@ void xine_event_create_listener_thread (xine_event_queue_t *queue,
if ((err = pthread_create (queue->listener_thread,
NULL, listener_loop, queue)) != 0) {
- xprintf (queue->stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (queue->stream->xine, XINE_VERBOSITY_NONE,
"events: can't create new thread (%s)\n", strerror(err));
_x_abort();
}
diff --git a/src/xine-engine/info_helper.c b/src/xine-engine/info_helper.c
index 2b09dcd3b..93fc2173d 100644
--- a/src/xine-engine/info_helper.c
+++ b/src/xine-engine/info_helper.c
@@ -40,7 +40,7 @@
/* ******************* Stream Info *************************** */
/*
- * Compare stream_info, private and public values,
+ * Compare stream_info, private and public values,
* return 1 if it's identical, otherwirse 0.
*/
static int stream_info_is_identical(xine_stream_t *stream, int info) {
@@ -105,7 +105,7 @@ uint32_t _x_stream_info_get(xine_stream_t *stream, int info) {
pthread_mutex_lock(&stream->info_mutex);
stream_info = stream->stream_info[info];
pthread_mutex_unlock(&stream->info_mutex);
-
+
return stream_info;
}
@@ -120,7 +120,7 @@ uint32_t _x_stream_info_get_public(xine_stream_t *stream, int info) {
if(info_valid(info) && (!stream_info_is_identical(stream, info)))
stream_info = stream->stream_info_public[info] = stream->stream_info[info];
pthread_mutex_unlock(&stream->info_mutex);
-
+
return stream_info;
}
@@ -137,7 +137,7 @@ static void meta_info_chomp(char *str) {
if (!len)
return;
i = len - 1;
-
+
while ((i >= 0) && ((unsigned char)str[i] <= 32)) {
str[i] = 0;
i--;
@@ -145,13 +145,13 @@ static void meta_info_chomp(char *str) {
}
/*
- * Compare stream_info, public and private values,
+ * Compare stream_info, public and private values,
* return 1 if it's identical, otherwise 0.
*/
static int meta_info_is_identical(xine_stream_t *stream, int info) {
-
+
if((!(stream->meta_info_public[info] && stream->meta_info[info])) ||
- ((stream->meta_info_public[info] && stream->meta_info[info]) &&
+ ((stream->meta_info_public[info] && stream->meta_info[info]) &&
strcmp(stream->meta_info_public[info], stream->meta_info[info])))
return 0;
@@ -175,7 +175,7 @@ static int meta_valid(int info) {
*/
static void meta_info_set_unlocked_utf8(xine_stream_t *stream, int info, const char *value) {
if(meta_valid(info)) {
-
+
if(stream->meta_info[info])
free(stream->meta_info[info]);
@@ -275,7 +275,7 @@ static void meta_info_set_unlocked_encoding(xine_stream_t *stream, int info, con
}
}
#endif
-
+
meta_info_set_unlocked_utf8(stream, info, value);
}
@@ -349,7 +349,7 @@ void _x_meta_info_n_set(xine_stream_t *stream, int info, const char *buf, int le
pthread_mutex_lock(&stream->meta_mutex);
if(meta_valid(info) && len) {
char *str = strndup(buf, len);
-
+
meta_info_set_unlocked(stream, info, str);
free(str);
}
@@ -367,7 +367,7 @@ void _x_meta_info_set_multi(xine_stream_t *stream, int info, ...) {
char *args[1025];
char *buf;
size_t n, len;
-
+
len = n = 0;
va_start(ap, info);
@@ -377,32 +377,32 @@ void _x_meta_info_set_multi(xine_stream_t *stream, int info, ...) {
n++;
}
va_end(ap);
-
+
args[n] = NULL;
-
+
if(len) {
char *p, *meta;
-
+
p = meta = (char *) malloc(len + 1);
-
+
n = 0;
while(args[n]) {
strcpy(meta, args[n]);
meta += strlen(args[n]) + 1;
n++;
}
-
+
*meta = '\0';
if(stream->meta_info[info])
free(stream->meta_info[info]);
-
+
stream->meta_info[info] = p;
-
+
if(stream->meta_info[info] && strlen(stream->meta_info[info]))
meta_info_chomp(stream->meta_info[info]);
}
-
+
}
pthread_mutex_unlock(&stream->meta_mutex);
}
@@ -412,11 +412,11 @@ void _x_meta_info_set_multi(xine_stream_t *stream, int info, ...) {
*/
const char *_x_meta_info_get(xine_stream_t *stream, int info) {
const char *meta_info = NULL;
-
+
pthread_mutex_lock(&stream->meta_mutex);
meta_info = stream->meta_info[info];
pthread_mutex_unlock(&stream->meta_mutex);
-
+
return meta_info;
}
@@ -430,13 +430,13 @@ const char *_x_meta_info_get_public(xine_stream_t *stream, int info) {
meta_info = stream->meta_info_public[info];
if(meta_valid(info) && (!meta_info_is_identical(stream, info))) {
meta_info_public_reset_unlocked(stream, info);
-
+
if(stream->meta_info[info])
stream->meta_info_public[info] = strdup(stream->meta_info[info]);
meta_info = stream->meta_info_public[info];
}
pthread_mutex_unlock(&stream->meta_mutex);
-
+
return meta_info;
}
diff --git a/src/xine-engine/input_cache.c b/src/xine-engine/input_cache.c
index eafd397d7..40aaba660 100644
--- a/src/xine-engine/input_cache.c
+++ b/src/xine-engine/input_cache.c
@@ -19,7 +19,7 @@
*
* Buffered Input Plugin (request optimizer).
*
- * The goal of this input plugin is to reduce
+ * The goal of this input plugin is to reduce
* the number of calls to the real input plugin.
*/
@@ -59,7 +59,7 @@ typedef struct {
} cache_input_plugin_t;
-/*
+/*
* read data from input plugin and write it into file
*/
static off_t cache_plugin_read(input_plugin_t *this_gen, void *buf_gen, off_t len) {
@@ -130,13 +130,13 @@ static off_t cache_plugin_read(input_plugin_t *this_gen, void *buf_gen, off_t le
/* readahead bytes */
main_read = this->main_input_plugin->read(this->main_input_plugin, this->buf, this->buf_size);
this->main_read_call++;
-
+
if( main_read >= 0 ) {
this->buf_len = main_read;
-
+
if (len > this->buf_len)
len = this->buf_len;
-
+
if (len) {
xine_fast_memcpy(buf + read_len, this->buf, len);
this->buf_pos = len;
@@ -150,7 +150,7 @@ static off_t cache_plugin_read(input_plugin_t *this_gen, void *buf_gen, off_t le
/* direct read */
main_read = this->main_input_plugin->read(this->main_input_plugin, buf + read_len, len);
this->main_read_call++;
-
+
if( main_read >= 0 )
read_len += main_read;
else
@@ -158,7 +158,7 @@ static off_t cache_plugin_read(input_plugin_t *this_gen, void *buf_gen, off_t le
read_len = main_read;
}
}
-
+
return read_len;
}
@@ -192,7 +192,7 @@ static buf_element_t *cache_plugin_read_block(input_plugin_t *this_gen, fifo_buf
buf = fifo->buffer_pool_alloc (fifo);
if (buf) {
buf->type = BUF_DEMUX_BLOCK;
-
+
assert(todo <= buf->max_size);
read_len = cache_plugin_read (this_gen, buf->content, todo);
buf->size = read_len;
@@ -228,11 +228,11 @@ static off_t cache_plugin_seek(input_plugin_t *this_gen, off_t offset, int origi
case SEEK_CUR:
rel_offset = offset;
break;
-
+
case SEEK_SET:
rel_offset = offset - cur_pos;
break;
-
+
default:
/* invalid origin - main input should know better */
cur_pos = this->main_input_plugin->seek(this->main_input_plugin, offset, origin);
@@ -240,16 +240,16 @@ static off_t cache_plugin_seek(input_plugin_t *this_gen, off_t offset, int origi
this->main_seek_call++;
return cur_pos;
}
-
+
new_buf_pos = (off_t)this->buf_pos + rel_offset;
lprintf("buf_len: %d, rel_offset=%"PRId64", new_buf_pos=%"PRId64"\n",
- this->buf_len, rel_offset, new_buf_pos);
-
+ this->buf_len, rel_offset, new_buf_pos);
+
if ((new_buf_pos < 0) || (new_buf_pos >= this->buf_len)) {
if( origin == SEEK_SET )
cur_pos = this->main_input_plugin->seek(this->main_input_plugin, offset, origin);
else
- cur_pos = this->main_input_plugin->seek(this->main_input_plugin,
+ cur_pos = this->main_input_plugin->seek(this->main_input_plugin,
offset - (this->buf_len - this->buf_pos), origin);
this->buf_len = this->buf_pos = 0;
this->main_seek_call++;
@@ -264,7 +264,7 @@ static off_t cache_plugin_seek(input_plugin_t *this_gen, off_t offset, int origi
static off_t cache_plugin_seek_time(input_plugin_t *this_gen, int time_offset, int origin) {
cache_input_plugin_t *this = (cache_input_plugin_t *)this_gen;
off_t cur_pos;
-
+
lprintf("time_offset: %d, origin: %d\n", time_offset, origin);
this->seek_call++;
@@ -277,7 +277,7 @@ static off_t cache_plugin_seek_time(input_plugin_t *this_gen, int time_offset, i
static off_t cache_plugin_get_current_pos(input_plugin_t *this_gen) {
cache_input_plugin_t *this = (cache_input_plugin_t *)this_gen;
off_t cur_pos;
-
+
cur_pos = this->main_input_plugin->get_current_pos(this->main_input_plugin);
if( this->buf_len ) {
if( cur_pos >= (this->buf_len - this->buf_pos) )
@@ -292,7 +292,7 @@ static off_t cache_plugin_get_current_pos(input_plugin_t *this_gen) {
static int cache_plugin_get_current_time(input_plugin_t *this_gen) {
cache_input_plugin_t *this = (cache_input_plugin_t *)this_gen;
int cur_time;
-
+
cur_time = this->main_input_plugin->get_current_time(this->main_input_plugin);
return cur_time;
@@ -316,7 +316,7 @@ static const char* cache_plugin_get_mrl (input_plugin_t *this_gen) {
return this->main_input_plugin->get_mrl(this->main_input_plugin);
}
-static int cache_plugin_get_optional_data (input_plugin_t *this_gen,
+static int cache_plugin_get_optional_data (input_plugin_t *this_gen,
void *data, int data_type) {
cache_input_plugin_t *this = (cache_input_plugin_t *)this_gen;
@@ -324,8 +324,8 @@ static int cache_plugin_get_optional_data (input_plugin_t *this_gen,
this->main_input_plugin, data, data_type);
}
-/*
- * dispose main input plugin and self
+/*
+ * dispose main input plugin and self
*/
static void cache_plugin_dispose(input_plugin_t *this_gen) {
cache_input_plugin_t *this = (cache_input_plugin_t *)this_gen;
@@ -343,8 +343,8 @@ static void cache_plugin_dispose(input_plugin_t *this_gen) {
}
-/*
- * create self instance,
+/*
+ * create self instance,
*/
input_plugin_t *_x_cache_plugin_get_instance (xine_stream_t *stream) {
cache_input_plugin_t *this;
@@ -361,7 +361,7 @@ input_plugin_t *_x_cache_plugin_get_instance (xine_stream_t *stream) {
this = calloc(1, sizeof(cache_input_plugin_t));
if (!this)
return NULL;
-
+
this->main_input_plugin = main_plugin;
this->stream = stream;
diff --git a/src/xine-engine/input_rip.c b/src/xine-engine/input_rip.c
index bfa68786d..c1cbbf043 100644
--- a/src/xine-engine/input_rip.c
+++ b/src/xine-engine/input_rip.c
@@ -20,12 +20,12 @@
* Rip Input Plugin for catching streams
*
* It saves raw data into file as go from input plugins.
- *
+ *
* Usage:
*
* - activation:
* xine stream_mrl#save:file.raw
- *
+ *
* - it's possible speeder saving streams in the xine without playing:
* xine stream_mrl#save:file.raw\;noaudio\;novideo
*/
@@ -96,7 +96,7 @@ static off_t min_off(off_t a, off_t b) {
return a <= b ? a : b;
}
-/*
+/*
* read data from input plugin and write it into file
*/
static off_t rip_plugin_read(input_plugin_t *this_gen, void *buf_gen, off_t len) {
@@ -125,7 +125,7 @@ static off_t rip_plugin_read(input_plugin_t *this_gen, void *buf_gen, off_t len)
npreview = 0;
nread = min_off(this->savepos - this->curpos, len);
}
-
+
/* size to write into file */
nwrite = len - npreview - nread;
/* size to read from file */
@@ -151,7 +151,7 @@ static off_t rip_plugin_read(input_plugin_t *this_gen, void *buf_gen, off_t len)
lprintf("%s => returned %"PRId64"" CLR_RST "\n", retlen == nread_orig + nwrite ? "" : CLR_FAIL, retlen);
if (retlen < 0) {
- xine_log(this->stream->xine, XINE_LOG_MSG,
+ xine_log(this->stream->xine, XINE_LOG_MSG,
_("input_rip: reading by input plugin failed\n"));
return -1;
}
@@ -165,10 +165,10 @@ static off_t rip_plugin_read(input_plugin_t *this_gen, void *buf_gen, off_t len)
}
this->savepos += nwrite;
lprintf(" => saved %"PRId64" bytes\n", nwrite);
- } else
+ } else
nwrite = 0;
}
-
+
this->curpos += (npreview + nread + nwrite);
return npreview + nread + nwrite;
@@ -193,7 +193,7 @@ static uint32_t rip_plugin_get_capabilities(input_plugin_t *this_gen) {
uint32_t caps;
caps = this->main_input_plugin->get_capabilities(this->main_input_plugin);
-
+
if (this->regular)
caps |= INPUT_CAP_SEEKABLE;
@@ -201,11 +201,11 @@ static uint32_t rip_plugin_get_capabilities(input_plugin_t *this_gen) {
return caps;
}
-/*
+/*
* read a block of data from input plugin and write it into file
*
* This rip plugin returns block unchanged from main input plugin. But special
- * cases are reading over preview or reading already saved data - it returns
+ * cases are reading over preview or reading already saved data - it returns
* own allocated block.
*/
static buf_element_t *rip_plugin_read_block(input_plugin_t *this_gen, fifo_buffer_t *fifo, off_t todo) {
@@ -232,7 +232,7 @@ static buf_element_t *rip_plugin_read_block(input_plugin_t *this_gen, fifo_buffe
npreview = 0;
nread = min_off(this->savepos - this->curpos, todo);
}
-
+
/* size to write into file */
nwrite = todo - npreview - nread;
/* size to read from file */
@@ -251,7 +251,7 @@ static buf_element_t *rip_plugin_read_block(input_plugin_t *this_gen, fifo_buffe
lprintf(" => get %"PRId64" bytes from the preview (block)\n", npreview);
memcpy(buf->content, &this->preview[this->curpos], npreview);
}
-
+
/* re-reading from the file */
if (nread_file) {
lprintf(" => read %"PRId64" bytes from the file (block)\n", nread_file);
@@ -288,17 +288,17 @@ static buf_element_t *rip_plugin_read_block(input_plugin_t *this_gen, fifo_buffe
if (retlen > nread_orig) {
nwrite = retlen - nread_orig;
if (fwrite(buf->content + this->savepos - this->curpos, nwrite, 1, this->file) != 1) {
- xine_log(this->stream->xine, XINE_LOG_MSG,
+ xine_log(this->stream->xine, XINE_LOG_MSG,
_("input_rip: error writing to file %" PRIdMAX " bytes: %s\n"),
(intmax_t)(retlen - nread_orig), strerror(errno));
return NULL;
}
this->savepos += nwrite;
lprintf(" => saved %"PRId64" bytes\n", nwrite);
- } else
+ } else
nwrite = 0;
}
-
+
this->curpos += (npreview + nread + nwrite);
buf->size = npreview + nread + nwrite;
@@ -325,11 +325,11 @@ static off_t rip_seek_original(rip_input_plugin_t *this, off_t reqpos) {
return pos;
}
-
+
/*
* seek in RIP
- *
- * If we are seeking back and we can read from saved file,
+ *
+ * If we are seeking back and we can read from saved file,
* position of original input plugin isn't changed.
*/
static off_t rip_plugin_seek(input_plugin_t *this_gen, off_t offset, int origin) {
@@ -341,7 +341,7 @@ static off_t rip_plugin_seek(input_plugin_t *this_gen, off_t offset, int origin)
double interval = 0;
lprintf("seek, offset %"PRId64", origin %d (curpos %"PRId64", savepos %"PRId64")\n", offset, origin, this->curpos, this->savepos);
-
+
switch (origin) {
case SEEK_SET: newpos = offset; break;
case SEEK_CUR: newpos = this->curpos + offset; break;
@@ -378,7 +378,7 @@ static off_t rip_plugin_seek(input_plugin_t *this_gen, off_t offset, int origin)
if ((pos = rip_seek_original(this, reqpos)) == -1) return -1;
if (pos == reqpos) this->curpos = newpos;
}
-
+
return this->curpos;
}
@@ -395,7 +395,7 @@ static off_t rip_plugin_seek(input_plugin_t *this_gen, off_t offset, int origin)
if ((pos = rip_seek_original(this, this->savepos)) == -1) return -1;
if (pos > this->savepos)
xine_log(this->stream->xine, XINE_LOG_MSG,
- _("input_rip: %" PRIdMAX " bytes dropped\n"),
+ _("input_rip: %" PRIdMAX " bytes dropped\n"),
(intmax_t)(pos - this->savepos));
}
}
@@ -427,13 +427,13 @@ static off_t rip_plugin_seek(input_plugin_t *this_gen, off_t offset, int origin)
}
lprintf(" => new position %"PRId64"\n", this->curpos);
-
+
return this->curpos;
}
static off_t rip_plugin_seek_time(input_plugin_t *this_gen, int time_offset, int origin) {
rip_input_plugin_t *this = (rip_input_plugin_t *)this_gen;
-
+
lprintf("seek_time, time_offset: %d, origin: %d\n", time_offset, origin);
return this->main_input_plugin->seek_time(this->main_input_plugin, time_offset, origin);
@@ -453,13 +453,13 @@ static off_t rip_plugin_get_current_pos(input_plugin_t *this_gen) {
lprintf(CLR_FAIL "position: computed = %"PRId64", input plugin = %"PRId64"" CLR_RST "\n", this->curpos, pos);
}
#endif
-
+
return this->curpos;
}
static int rip_plugin_get_current_time(input_plugin_t *this_gen) {
rip_input_plugin_t *this = (rip_input_plugin_t *)this_gen;
-
+
return this->main_input_plugin->get_current_time(this->main_input_plugin);
}
@@ -486,7 +486,7 @@ static const char* rip_plugin_get_mrl (input_plugin_t *this_gen) {
return this->main_input_plugin->get_mrl(this->main_input_plugin);
}
-static int rip_plugin_get_optional_data (input_plugin_t *this_gen,
+static int rip_plugin_get_optional_data (input_plugin_t *this_gen,
void *data, int data_type) {
rip_input_plugin_t *this = (rip_input_plugin_t *)this_gen;
@@ -496,11 +496,11 @@ static int rip_plugin_get_optional_data (input_plugin_t *this_gen,
return this->preview_size;
} else
return this->main_input_plugin->get_optional_data(
- this->main_input_plugin, data, data_type);
+ this->main_input_plugin, data, data_type);
}
-/*
- * dispose main input plugin and self
+/*
+ * dispose main input plugin and self
*/
static void rip_plugin_dispose(input_plugin_t *this_gen) {
rip_input_plugin_t *this = (rip_input_plugin_t *)this_gen;
@@ -542,8 +542,8 @@ static int dir_file_concat(char *target, size_t maxlen, const char *dir, const c
}
-/*
- * create self instance,
+/*
+ * create self instance,
* target file for writing stream is specified in 'data'
*/
input_plugin_t *_x_rip_plugin_get_instance (xine_stream_t *stream, const char *filename) {
@@ -573,7 +573,7 @@ input_plugin_t *_x_rip_plugin_get_instance (xine_stream_t *stream, const char *f
#ifndef SAVING_ALWAYS_PERMIT
if ( main_plugin->get_capabilities(main_plugin) & INPUT_CAP_RIP_FORBIDDEN ) {
- xine_log(stream->xine, XINE_LOG_MSG,
+ xine_log(stream->xine, XINE_LOG_MSG,
_("input_rip: ripping/caching of this source is not permitted!\n"));
_x_message(stream, XINE_MSG_SECURITY,
_("xine is not allowed to save from this source. (possibly copyrighted material?)"), NULL);
@@ -594,7 +594,7 @@ input_plugin_t *_x_rip_plugin_get_instance (xine_stream_t *stream, const char *f
fnc = strdup(filename);
target_basename = basename(fnc);
- dir_file_concat(target, MAX_TARGET_LEN, stream->xine->save_path,
+ dir_file_concat(target, MAX_TARGET_LEN, stream->xine->save_path,
target_basename);
strcpy(target_no, target);
@@ -623,7 +623,7 @@ input_plugin_t *_x_rip_plugin_get_instance (xine_stream_t *stream, const char *f
lprintf("target file: %s\n", target_no);
if ((this->file = fopen(target_no, mode)) == NULL) {
- xine_log(this->stream->xine, XINE_LOG_MSG,
+ xine_log(this->stream->xine, XINE_LOG_MSG,
_("input_rip: error opening file %s: %s\n"), target_no, strerror(errno));
free(this);
return NULL;
@@ -641,7 +641,7 @@ input_plugin_t *_x_rip_plugin_get_instance (xine_stream_t *stream, const char *f
this->preview_size = buf->size;
this->preview = malloc(this->preview_size);
memcpy(this->preview, buf->content, this->preview_size);
-
+
buf->free_buffer(buf);
} else {
this->preview = malloc(MAX_PREVIEW_SIZE);
@@ -653,7 +653,7 @@ input_plugin_t *_x_rip_plugin_get_instance (xine_stream_t *stream, const char *f
if (this->preview && this->preview_size) {
if (fwrite(this->preview, this->preview_size, 1, this->file) != 1) {
- xine_log(this->stream->xine, XINE_LOG_MSG,
+ xine_log(this->stream->xine, XINE_LOG_MSG,
_("input_rip: error writing to file %" PRIdMAX " bytes: %s\n"),
(intmax_t)(this->preview_size), strerror(errno));
fclose(this->file);
diff --git a/src/xine-engine/io_helper.c b/src/xine-engine/io_helper.c
index d51feb4c6..34540a208 100644
--- a/src/xine-engine/io_helper.c
+++ b/src/xine-engine/io_helper.c
@@ -53,14 +53,14 @@ static int _x_io_tcp_connect_ipv4(xine_stream_t *stream, const char *host, int p
struct hostent *h;
int i, s;
-
+
h = gethostbyname(host);
if (h == NULL) {
_x_message(stream, XINE_MSG_UNKNOWN_HOST, "unable to resolve", host, NULL);
return -1;
}
- s = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
+ s = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
if (s == -1) {
_x_message(stream, XINE_MSG_CONNECTION_REFUSED, "failed to create socket", strerror(errno), NULL);
return -1;
@@ -88,12 +88,12 @@ static int _x_io_tcp_connect_ipv4(xine_stream_t *stream, const char *host, int p
for (i = 0; h->h_addr_list[i]; i++) {
struct in_addr ia;
struct sockaddr_in sin;
-
+
memcpy (&ia, h->h_addr_list[i], 4);
sin.sin_family = AF_INET;
sin.sin_addr = ia;
sin.sin_port = htons(port);
-
+
#ifndef WIN32
if (connect(s, (struct sockaddr *)&sin, sizeof(sin))==-1 && errno != EINPROGRESS) {
#else
@@ -106,7 +106,7 @@ static int _x_io_tcp_connect_ipv4(xine_stream_t *stream, const char *host, int p
close(s);
continue;
}
-
+
return s;
}
return -1;
@@ -122,10 +122,10 @@ int _x_io_tcp_connect(xine_stream_t *stream, const char *host, int port) {
struct addrinfo hints, *res, *tmpaddr;
int error;
char strport[16];
-
+
memset(&hints, 0, sizeof(hints));
hints.ai_socktype = SOCK_STREAM;
- hints.ai_family = PF_UNSPEC;
+ hints.ai_family = PF_UNSPEC;
snprintf(strport, sizeof(strport), "%d", port);
@@ -135,7 +135,7 @@ int _x_io_tcp_connect(xine_stream_t *stream, const char *host, int port) {
error = getaddrinfo(host, strport, &hints, &res);
if (error) {
- _x_message(stream, XINE_MSG_UNKNOWN_HOST,
+ _x_message(stream, XINE_MSG_UNKNOWN_HOST,
"unable to resolve", host, NULL);
return -1;
}
@@ -143,10 +143,10 @@ int _x_io_tcp_connect(xine_stream_t *stream, const char *host, int port) {
tmpaddr = res;
while (tmpaddr) {
-
- s = socket(tmpaddr->ai_family, SOCK_STREAM, IPPROTO_TCP);
+
+ s = socket(tmpaddr->ai_family, SOCK_STREAM, IPPROTO_TCP);
if (s == -1) {
- _x_message(stream, XINE_MSG_CONNECTION_REFUSED,
+ _x_message(stream, XINE_MSG_CONNECTION_REFUSED,
"failed to create socket", strerror(errno), NULL);
tmpaddr = tmpaddr->ai_next;
continue;
@@ -177,12 +177,12 @@ int _x_io_tcp_connect(xine_stream_t *stream, const char *host, int port) {
}
#ifndef WIN32
- if (connect(s, tmpaddr->ai_addr,
+ if (connect(s, tmpaddr->ai_addr,
tmpaddr->ai_addrlen)==-1 && errno != EINPROGRESS) {
-
+
#else
- if (connect(s, tmpaddr->ai_addr,
- tmpaddr->ai_addrlen)==-1 &&
+ if (connect(s, tmpaddr->ai_addr,
+ tmpaddr->ai_addrlen)==-1 &&
WSAGetLastError() != WSAEWOULDBLOCK) {
if (stream)
@@ -196,12 +196,12 @@ int _x_io_tcp_connect(xine_stream_t *stream, const char *host, int port) {
} else {
return s;
}
-
+
tmpaddr = tmpaddr->ai_next;
}
_x_message(stream, XINE_MSG_CONNECTION_REFUSED, strerror(error), NULL);
-
+
return -1;
#endif
}
@@ -302,14 +302,14 @@ int _x_io_select (xine_stream_t *stream, int fd, int state, int timeout_msec) {
*/
int _x_io_tcp_connect_finish(xine_stream_t *stream, int fd, int timeout_msec) {
int ret;
-
+
ret = _x_io_select(stream, fd, XIO_WRITE_READY, timeout_msec);
/* find out, if connection is successfull */
if (ret == XIO_READY) {
socklen_t len = sizeof(int);
int err;
-
+
if ((getsockopt(fd, SOL_SOCKET, SO_ERROR, (void *)&err, &len)) == -1) {
_x_message(stream, XINE_MSG_CONNECTION_REFUSED, _("failed to get status of socket"), strerror(errno), NULL);
return XIO_ERROR;
@@ -347,14 +347,14 @@ static off_t xio_rw_abort(xine_stream_t *stream, int fd, int cmd, void *buf_gen,
} else {
timeout = 30000; /* 30K msecs = 30 secs */
}
-
+
while (total < todo) {
sret = _x_io_select(stream, fd, state, timeout);
-
+
if (sret != XIO_READY)
return -1;
-
+
switch (cmd) {
case XIO_FILE_READ:
ret = read(fd, &buf[total], todo - total);
@@ -404,7 +404,7 @@ static off_t xio_rw_abort(xine_stream_t *stream, int fd, int cmd, void *buf_gen,
if (stream)
xprintf(stream->xine, XINE_VERBOSITY_DEBUG, "io_helper: WSAGetLastError() = %d\n", WSAGetLastError());
#endif
-
+
return ret;
}
total += ret;
diff --git a/src/xine-engine/load_plugins.c b/src/xine-engine/load_plugins.c
index c60040144..bbb131c86 100644
--- a/src/xine-engine/load_plugins.c
+++ b/src/xine-engine/load_plugins.c
@@ -109,7 +109,7 @@ static const int plugin_iface_versions[] = {
SPU_DECODER_IFACE_VERSION,
AUDIO_OUT_IFACE_VERSION,
VIDEO_OUT_DRIVER_IFACE_VERSION,
- POST_PLUGIN_IFACE_VERSION
+ POST_PLUGIN_IFACE_VERSION
};
static void _build_list_typed_plugins(plugin_catalog_t **catalog, xine_sarray_t *type) {
@@ -120,7 +120,7 @@ static void _build_list_typed_plugins(plugin_catalog_t **catalog, xine_sarray_t
list_size = xine_sarray_size (type);
for (list_id = 0, i = 0; list_id < list_size; list_id++) {
node = xine_sarray_get(type, list_id);
-
+
/* add only unique ids to the list */
for ( j = 0; j < i; j++ ) {
if( !strcmp((*catalog)->ids[j], node->info->id) )
@@ -165,9 +165,9 @@ static int get_decoder_priority(xine_t *this, plugin_node_t *node) {
char key[80];
snprintf(key, sizeof(key), "engine.decoder_priorities.%s", node->info->id);
-
+
entry = this->config->lookup_entry(this->config, key);
-
+
if (entry && entry->num_value)
/* user given priorities should definitely override defaults, so multiply them */
return entry->num_value * 100;
@@ -266,14 +266,14 @@ static plugin_node_t *_get_cached_node (xine_t *this,
node->file->filesize == filesize &&
node->file->filemtime == filemtime &&
!strcmp( node->file->filename, filename )) {
-
+
return node;
}
-
+
/* skip previously returned items */
if( node == previous_node )
previous_node = NULL;
-
+
}
return NULL;
}
@@ -327,7 +327,7 @@ static void _insert_node (xine_t *this,
_x_assert(list);
_x_assert(info);
if (info->API != api_version) {
- xprintf(this, XINE_VERBOSITY_LOG,
+ xprintf(this, XINE_VERBOSITY_LOG,
_("load_plugins: ignoring plugin %s, wrong iface version %d (should be %d)\n"),
info->id, info->API, api_version);
return;
@@ -385,7 +385,7 @@ static void _insert_node (xine_t *this,
decoder_new->supported_types = types;
}
entry->priority = decoder_new->priority = decoder_old->priority;
-
+
snprintf(key, sizeof(key), "engine.decoder_priorities.%s", info->id);
for (i = 0; catalog->prio_desc[i]; i++);
asprintf(&catalog->prio_desc[i], _("priority for %s decoder"), info->id);
@@ -404,23 +404,23 @@ static void _insert_node (xine_t *this,
entry->info->special_info = decoder_new;
break;
-
+
case PLUGIN_POST:
post_old = info->special_info;
post_new = calloc(1, sizeof(post_info_t));
post_new->type = post_old->type;
entry->info->special_info = post_new;
break;
-
+
case PLUGIN_DEMUX:
demux_old = info->special_info;
demux_new = calloc(1, sizeof(demuxer_info_t));
-
+
if (demux_old) {
entry->priority = demux_new->priority = demux_old->priority;
lprintf("demux: %s, priority: %d\n", info->id, entry->priority);
} else {
- xprintf(this, XINE_VERBOSITY_LOG,
+ xprintf(this, XINE_VERBOSITY_LOG,
_("load_plugins: demuxer plugin %s does not provide a priority,"
" xine-lib will use the default priority.\n"),
info->id);
@@ -432,12 +432,12 @@ static void _insert_node (xine_t *this,
case PLUGIN_INPUT:
input_old = info->special_info;
input_new = calloc(1, sizeof(input_info_t));
-
+
if (input_old) {
entry->priority = input_new->priority = input_old->priority;
lprintf("input: %s, priority: %d\n", info->id, entry->priority);
} else {
- xprintf(this, XINE_VERBOSITY_LOG,
+ xprintf(this, XINE_VERBOSITY_LOG,
_("load_plugins: input plugin %s does not provide a priority,"
" xine-lib will use the default priority.\n"),
info->id);
@@ -499,7 +499,7 @@ static void _register_plugins_internal(xine_t *this, plugin_file_t *file,
else
xine_log (this, XINE_LOG_PLUGIN,
_("load_plugins: static plugin found\n"));
-
+
if (this->plugin_catalog->plugin_count >= PLUGIN_MAX ||
(this->plugin_catalog->decoder_count >= DECODER_MAX &&
info->type >= PLUGIN_AUDIO_DECODER && info->type <= PLUGIN_SPU_DECODER)) {
@@ -533,7 +533,7 @@ static void _register_plugins_internal(xine_t *this, plugin_file_t *file,
}
this->plugin_catalog->plugin_count++;
}
-
+
/* get next info */
if( file && !file->lib_handle ) {
lprintf("get cached info\n");
@@ -573,7 +573,7 @@ static void collect_plugins(xine_t *this, char *path){
void *lib = NULL;
plugin_info_t *info = NULL;
plugin_node_t *node = NULL;
-
+
struct stat statbuffer;
size_t d_len = strlen(pEntry->d_name);
@@ -627,7 +627,7 @@ static void collect_plugins(xine_t *this, char *path){
if(!info && (lib = dlopen (str, RTLD_LAZY | RTLD_GLOBAL)) == NULL) {
const char *error = dlerror();
/* too noisy -- but good to catch unresolved references */
- xprintf(this, XINE_VERBOSITY_LOG,
+ xprintf(this, XINE_VERBOSITY_LOG,
_("load_plugins: cannot open plugin lib %s:\n%s\n"), str, error);
} else {
@@ -670,14 +670,14 @@ static void collect_plugins(xine_t *this, char *path){
* generic 2nd stage plugin loader
*/
-static inline int _plugin_info_equal(const plugin_info_t *a,
+static inline int _plugin_info_equal(const plugin_info_t *a,
const plugin_info_t *b) {
- if (a->type != b->type ||
+ if (a->type != b->type ||
a->API != b->API ||
strcasecmp(a->id, b->id) ||
a->version != b->version)
return 0;
-
+
switch (a->type & PLUGIN_TYPE_MASK) {
case PLUGIN_VIDEO_OUT:
/* FIXME: Could special_info be NULL? */
@@ -686,16 +686,16 @@ static inline int _plugin_info_equal(const plugin_info_t *a,
((vo_info_t*)b->special_info)->visual_type);
}
break;
-
+
default:
break;
}
-
+
return 1;
}
static void _attach_entry_to_node (plugin_node_t *node, char *key) {
-
+
if (!node->config_entry_list) {
node->config_entry_list = xine_list_new();
}
@@ -709,7 +709,7 @@ static void _attach_entry_to_node (plugin_node_t *node, char *key) {
*/
static void _new_entry_cb (void *user_data, xine_cfg_entry_t *entry) {
plugin_node_t *node = (plugin_node_t *)user_data;
-
+
_attach_entry_to_node(node, strdup(entry->key));
}
@@ -760,7 +760,7 @@ static int _load_plugin_class(xine_t *this,
info++;
}
lprintf("plugin not found\n");
-
+
} else {
xine_log (this, XINE_LOG_PLUGIN,
_("load_plugins: Yikes! %s doesn't contain plugin info.\n"), filename);
@@ -828,7 +828,7 @@ static void _load_required_plugins(xine_t *this, xine_sarray_t *list) {
list_size = xine_sarray_size(list);
while (list_id < list_size) {
plugin_node_t *node = xine_sarray_get(list, list_id);
-
+
/*
* preload plugins if not cached
*/
@@ -897,12 +897,12 @@ static void save_plugin_list(xine_t *this, FILE *fp, xine_sarray_t *list) {
fprintf(fp, "visual_type=%d\n", vo_info->visual_type );
fprintf(fp, "vo_priority=%d\n", vo_info->priority );
break;
-
+
case PLUGIN_AUDIO_OUT:
ao_info = node->info->special_info;
fprintf(fp, "ao_priority=%d\n", ao_info->priority );
break;
-
+
case PLUGIN_AUDIO_DECODER:
case PLUGIN_VIDEO_DECODER:
case PLUGIN_SPU_DECODER:
@@ -973,11 +973,11 @@ static void load_plugin_list(xine_t *this, FILE *fp, xine_sarray_t *plugins) {
char *value;
size_t line_len;
int version_ok = 0;
-
+
line = malloc(LINE_MAX_LENGTH);
if (!line)
return;
-
+
node = NULL;
file = NULL;
while (fgets (line, LINE_MAX_LENGTH, fp)) {
@@ -986,7 +986,7 @@ static void load_plugin_list(xine_t *this, FILE *fp, xine_sarray_t *plugins) {
line_len = strlen(line);
if (line_len < 3)
continue;
-
+
value = &line[line_len - 1];
if( (*value == '\r') || (*value == '\n') )
*value-- = (char) 0; /* eliminate any cr/lf */
@@ -1024,7 +1024,7 @@ static void load_plugin_list(xine_t *this, FILE *fp, xine_sarray_t *plugins) {
if( i == CACHE_CATALOG_VERSION )
version_ok = 1;
else
- return;
+ return;
}
} else if (node) {
if( !strcmp("size",line) ) {
@@ -1036,19 +1036,19 @@ static void load_plugin_list(xine_t *this, FILE *fp, xine_sarray_t *plugins) {
} else if( !strcmp("type",line) ) {
sscanf(value," %d",&i);
node->info->type = i;
-
+
switch (node->info->type & PLUGIN_TYPE_MASK){
-
+
case PLUGIN_VIDEO_OUT:
node->info->special_info = vo_info =
calloc(1, sizeof(vo_info_t));
break;
-
+
case PLUGIN_AUDIO_OUT:
node->info->special_info = ao_info =
calloc(1, sizeof(ao_info_t));
break;
-
+
case PLUGIN_DEMUX:
node->info->special_info = demuxer_info =
calloc(1, sizeof(demuxer_info_t));
@@ -1065,13 +1065,13 @@ static void load_plugin_list(xine_t *this, FILE *fp, xine_sarray_t *plugins) {
node->info->special_info = decoder_info =
calloc(1, sizeof(decoder_info_t));
break;
-
+
case PLUGIN_POST:
node->info->special_info = post_info =
calloc(1, sizeof(post_info_t));
break;
- }
-
+ }
+
} else if( !strcmp("api",line) ) {
sscanf(value," %d",&i);
node->info->API = i;
@@ -1086,7 +1086,7 @@ static void load_plugin_list(xine_t *this, FILE *fp, xine_sarray_t *plugins) {
} else if( !strcmp("supported_types",line) && decoder_info ) {
char *s;
uint32_t *supported_types;
-
+
for( s = value, i = 0; s && sscanf(s," %lu",&lu) > 0; i++ ) {
s = strchr(s+1, ' ');
}
@@ -1115,7 +1115,7 @@ static void load_plugin_list(xine_t *this, FILE *fp, xine_sarray_t *plugins) {
post_info->type = lu;
} else if( !strcmp("config_key",line) ) {
char* cfg_key;
-
+
cfg_key = this->config->register_serialized_entry(this->config, value);
if (cfg_key) {
/* this node is a cached node */
@@ -1127,11 +1127,11 @@ static void load_plugin_list(xine_t *this, FILE *fp, xine_sarray_t *plugins) {
}
}
}
-
+
if( node ) {
xine_sarray_add (plugins, node);
}
-
+
free (line);
}
@@ -1203,7 +1203,7 @@ static void save_catalog (xine_t *this) {
if( (fp = fopen(cachefile_new,"w")) != NULL ) {
int i;
-
+
fprintf(fp, "# this file is automatically created by xine, do not edit.\n\n");
fprintf(fp, "cache_catalog_version=%d\n\n", CACHE_CATALOG_VERSION);
@@ -1270,7 +1270,7 @@ void _x_scan_plugins (xine_t *this) {
char *homedir, *pluginpath;
xine_list_t *plugindirs = xine_list_new ();
xine_list_iterator_t iter;
-
+
lprintf("_x_scan_plugins()\n");
if (this == NULL || this->config == NULL) {
@@ -1325,7 +1325,7 @@ void _x_scan_plugins (xine_t *this) {
free(homedir);
load_required_plugins (this);
-
+
XINE_PROFILE(save_catalog (this));
map_decoders (this);
@@ -1355,7 +1355,7 @@ input_plugin_t *_x_find_input_plugin (xine_stream_t *stream, const char *mrl) {
plugin->node = node;
break;
}
- }
+ }
}
pthread_mutex_unlock (&catalog->lock);
@@ -1449,7 +1449,7 @@ static demux_plugin_t *probe_demux (xine_stream_t *stream, int method1, int meth
/* ... then try the extension */
stream->content_detection_method = methods[i];
- if ( stream->content_detection_method == METHOD_BY_MRL &&
+ if ( stream->content_detection_method == METHOD_BY_MRL &&
! _x_demux_check_extension(input->get_mrl(input),
((demux_class_t *)node->plugin_class)->extensions)
)
@@ -1515,7 +1515,7 @@ demux_plugin_t *_x_find_demux_plugin_by_name(xine_stream_t *stream, const char *
if (strcasecmp(node->info->id, name) == 0) {
if (node->plugin_class || _load_plugin_class(stream->xine, node, NULL)) {
- if ( stream->content_detection_method == METHOD_BY_MRL &&
+ if ( stream->content_detection_method == METHOD_BY_MRL &&
! _x_demux_check_extension(input->get_mrl(input),
((demux_class_t *)node->plugin_class)->extensions)
)
@@ -1575,17 +1575,17 @@ demux_plugin_t *_x_find_demux_plugin_last_probe(xine_stream_t *stream, const cha
if (strcasecmp(node->info->id, last_demux_name) == 0) {
last_demux = node;
} else {
- xprintf(stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(stream->xine, XINE_VERBOSITY_DEBUG,
"load_plugin: probing '%s' (method %d)...\n", node->info->id, stream->content_detection_method );
if (node->plugin_class || _load_plugin_class(xine, node, NULL)) {
- if ( stream->content_detection_method == METHOD_BY_MRL &&
+ if ( stream->content_detection_method == METHOD_BY_MRL &&
! _x_demux_check_extension(input->get_mrl(input),
((demux_class_t *)node->plugin_class)->extensions)
)
continue;
-
+
if ((plugin = ((demux_class_t *)node->plugin_class)->open_plugin(node->plugin_class, stream, input))) {
xprintf (stream->xine, XINE_VERBOSITY_DEBUG,
"load_plugins: using demuxer '%s' (instead of '%s')\n", node->info->id, last_demux_name);
@@ -1692,7 +1692,7 @@ const char *const *xine_get_browsable_input_plugin_ids(xine_t *this) {
for (list_id = 0; list_id < list_size; list_id++) {
input_class_t *ic;
-
+
node = xine_sarray_get(catalog->plugin_lists[PLUGIN_INPUT - 1], list_id);
if (node->plugin_class || _load_plugin_class(this, node, NULL)) {
@@ -1751,7 +1751,7 @@ vo_driver_t *_x_load_video_output_plugin(xine_t *this,
if (id && !strcasecmp(id, "auto"))
id = NULL;
-
+
pthread_mutex_lock (&catalog->lock);
list_size = xine_sarray_size (catalog->plugin_lists[PLUGIN_VIDEO_OUT - 1]);
@@ -1799,7 +1799,7 @@ xine_video_port_t *xine_open_video_driver (xine_t *this,
}
port = _x_vo_new_port(this, driver, 0);
-
+
return port;
}
@@ -1838,7 +1838,7 @@ xine_video_port_t *xine_new_framegrab_video_port (xine_t *this) {
}
port = _x_vo_new_port(this, driver, 1);
-
+
return port;
}
@@ -1848,7 +1848,7 @@ xine_video_port_t *xine_new_framegrab_video_port (xine_t *this) {
const char *const *xine_list_audio_output_plugins (xine_t *xine) {
plugin_catalog_t *catalog = xine->plugin_catalog;
-
+
pthread_mutex_lock (&catalog->lock);
_build_list_typed_plugins(&catalog, catalog->plugin_lists[PLUGIN_AUDIO_OUT - 1]);
pthread_mutex_unlock (&catalog->lock);
@@ -1858,7 +1858,7 @@ const char *const *xine_list_audio_output_plugins (xine_t *xine) {
const char *const *xine_list_video_output_plugins (xine_t *xine) {
plugin_catalog_t *catalog = xine->plugin_catalog;
-
+
pthread_mutex_lock (&catalog->lock);
_build_list_typed_plugins(&catalog, catalog->plugin_lists[PLUGIN_VIDEO_OUT - 1]);
pthread_mutex_unlock (&catalog->lock);
@@ -1871,7 +1871,7 @@ const char *const *xine_list_video_output_plugins_typed(xine_t *xine, uint64_t t
plugin_catalog_t *catalog = xine->plugin_catalog;
plugin_node_t *node;
int list_id, list_size, i;
-
+
pthread_mutex_lock (&catalog->lock);
list_size = xine_sarray_size (catalog->plugin_lists[PLUGIN_VIDEO_OUT - 1]);
@@ -1958,7 +1958,7 @@ xine_audio_port_t *xine_open_audio_driver (xine_t *this, const char *id,
if (id && !strcasecmp(id, "auto") )
id = NULL;
-
+
pthread_mutex_lock (&catalog->lock);
driver = NULL;
@@ -1984,13 +1984,13 @@ xine_audio_port_t *xine_open_audio_driver (xine_t *this, const char *id,
}
pthread_mutex_unlock (&catalog->lock);
-
+
if (!driver) {
if (id)
xprintf (this, XINE_VERBOSITY_LOG,
_("load_plugins: failed to load audio output plugin <%s>\n"), id);
else
- xprintf (this, XINE_VERBOSITY_LOG,
+ xprintf (this, XINE_VERBOSITY_LOG,
_("load_plugins: audio output auto-probing didn't find any usable audio driver.\n"));
return NULL;
}
@@ -2048,7 +2048,7 @@ char **xine_get_autoplay_mrls (xine_t *this, const char *plugin_id,
if (node->plugin_class || _load_plugin_class (this, node, NULL)) {
ic = (input_class_t *) node->plugin_class;
-
+
if (!ic->get_autoplay_list)
return NULL;
@@ -2082,7 +2082,7 @@ xine_mrl_t **xine_get_browse_mrls (xine_t *this, const char *plugin_id,
if (node->plugin_class || _load_plugin_class (this, node, NULL)) {
ic = (input_class_t *) node->plugin_class;
-
+
if (!ic->get_dir)
return NULL;
@@ -2114,7 +2114,7 @@ video_decoder_t *_x_get_video_decoder (xine_stream_t *stream, uint8_t stream_typ
if (!node->plugin_class && !_load_plugin_class (stream->xine, node, NULL)) {
/* remove non working plugin from catalog */
- xprintf(stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(stream->xine, XINE_VERBOSITY_DEBUG,
"load_plugins: plugin %s failed to init its class.\n", node->info->id);
for (j = i + 1; j < PLUGINS_PER_TYPE; j++)
catalog->video_decoder_map[stream_type][j - 1] =
@@ -2136,9 +2136,9 @@ video_decoder_t *_x_get_video_decoder (xine_stream_t *stream, uint8_t stream_typ
inc_node_ref(node);
vd->node = node;
xprintf(stream->xine, XINE_VERBOSITY_DEBUG,
- "load_plugins: plugin %s will be used for video streamtype %02x.\n",
+ "load_plugins: plugin %s will be used for video streamtype %02x.\n",
node->info->id, stream_type);
-
+
break;
} else {
/* remove non working plugin from catalog */
@@ -2191,7 +2191,7 @@ audio_decoder_t *_x_get_audio_decoder (xine_stream_t *stream, uint8_t stream_typ
if (!node->plugin_class && !_load_plugin_class (stream->xine, node, NULL)) {
/* remove non working plugin from catalog */
- xprintf(stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf(stream->xine, XINE_VERBOSITY_DEBUG,
"load_plugins: plugin %s failed to init its class.\n", node->info->id);
for (j = i + 1; j < PLUGINS_PER_TYPE; j++)
catalog->audio_decoder_map[stream_type][j - 1] =
@@ -2207,7 +2207,7 @@ audio_decoder_t *_x_get_audio_decoder (xine_stream_t *stream, uint8_t stream_typ
inc_node_ref(node);
ad->node = node;
xprintf(stream->xine, XINE_VERBOSITY_DEBUG,
- "load_plugins: plugin %s will be used for audio streamtype %02x.\n",
+ "load_plugins: plugin %s will be used for audio streamtype %02x.\n",
node->info->id, stream_type);
break;
} else {
@@ -2247,11 +2247,11 @@ int _x_decoder_available (xine_t *xine, uint32_t buftype)
if ( (buftype & 0xFF000000) == BUF_VIDEO_BASE ) {
if( catalog->video_decoder_map[stream_type][0] )
return 1;
- } else
+ } else
if ( (buftype & 0xFF000000) == BUF_AUDIO_BASE ) {
if( catalog->audio_decoder_map[stream_type][0] )
return 1;
- } else
+ } else
if ( (buftype & 0xFF000000) == BUF_SPU_BASE ) {
if( catalog->spu_decoder_map[stream_type][0] )
return 1;
@@ -2278,7 +2278,7 @@ static void _display_file_plugin_list (xine_list_t *list, plugin_file_t *file) {
#endif
static void _unload_unref_plugins(xine_t *this, xine_sarray_t *list) {
-
+
plugin_node_t *node;
int list_id, list_size;
@@ -2316,7 +2316,7 @@ void xine_plugins_garbage_collector(xine_t *self) {
pthread_mutex_lock (&catalog->lock);
for(i = 0; i < PLUGIN_TYPE_MAX; i++) {
_unload_unref_plugins(self, self->plugin_catalog->plugin_lists[i]);
- }
+ }
#if 0
{
@@ -2378,7 +2378,7 @@ spu_decoder_t *_x_get_spu_decoder (xine_stream_t *stream, uint8_t stream_type) {
inc_node_ref(node);
sd->node = node;
xprintf(stream->xine, XINE_VERBOSITY_DEBUG,
- "load_plugins: plugin %s will be used for spu streamtype %02x.\n",
+ "load_plugins: plugin %s will be used for spu streamtype %02x.\n",
node->info->id, stream_type);
break;
} else {
@@ -2412,7 +2412,7 @@ void _x_free_spu_decoder (xine_stream_t *stream, spu_decoder_t *sd) {
const char *const *xine_list_demuxer_plugins(xine_t *xine) {
plugin_catalog_t *catalog = xine->plugin_catalog;
-
+
pthread_mutex_lock (&catalog->lock);
_build_list_typed_plugins(&catalog, catalog->plugin_lists[PLUGIN_DEMUX - 1]);
pthread_mutex_unlock (&catalog->lock);
@@ -2422,7 +2422,7 @@ const char *const *xine_list_demuxer_plugins(xine_t *xine) {
const char *const *xine_list_input_plugins(xine_t *xine) {
plugin_catalog_t *catalog = xine->plugin_catalog;
-
+
pthread_mutex_lock (&catalog->lock);
_build_list_typed_plugins(&catalog, catalog->plugin_lists[PLUGIN_INPUT - 1]);
pthread_mutex_unlock (&catalog->lock);
@@ -2432,7 +2432,7 @@ const char *const *xine_list_input_plugins(xine_t *xine) {
const char *const *xine_list_spu_plugins(xine_t *xine) {
plugin_catalog_t *catalog = xine->plugin_catalog;
-
+
pthread_mutex_lock (&catalog->lock);
_build_list_typed_plugins(&catalog, catalog->plugin_lists[PLUGIN_SPU_DECODER - 1]);
pthread_mutex_unlock (&catalog->lock);
@@ -2442,7 +2442,7 @@ const char *const *xine_list_spu_plugins(xine_t *xine) {
const char *const *xine_list_audio_decoder_plugins(xine_t *xine) {
plugin_catalog_t *catalog = xine->plugin_catalog;
-
+
pthread_mutex_lock (&catalog->lock);
_build_list_typed_plugins(&catalog, catalog->plugin_lists[PLUGIN_AUDIO_DECODER - 1]);
pthread_mutex_unlock (&catalog->lock);
@@ -2452,7 +2452,7 @@ const char *const *xine_list_audio_decoder_plugins(xine_t *xine) {
const char *const *xine_list_video_decoder_plugins(xine_t *xine) {
plugin_catalog_t *catalog = xine->plugin_catalog;
-
+
pthread_mutex_lock (&catalog->lock);
_build_list_typed_plugins(&catalog, catalog->plugin_lists[PLUGIN_VIDEO_DECODER - 1]);
pthread_mutex_unlock (&catalog->lock);
@@ -2462,7 +2462,7 @@ const char *const *xine_list_video_decoder_plugins(xine_t *xine) {
const char *const *xine_list_post_plugins(xine_t *xine) {
plugin_catalog_t *catalog = xine->plugin_catalog;
-
+
pthread_mutex_lock (&catalog->lock);
_build_list_typed_plugins(&catalog, catalog->plugin_lists[PLUGIN_POST - 1]);
pthread_mutex_unlock (&catalog->lock);
@@ -2475,7 +2475,7 @@ const char *const *xine_list_post_plugins_typed(xine_t *xine, uint32_t type) {
plugin_node_t *node;
int i;
int list_id, list_size;
-
+
pthread_mutex_lock (&catalog->lock);
i = 0;
@@ -2530,25 +2530,25 @@ xine_post_t *xine_post_init(xine_t *xine, const char *name, int inputs,
plugin_node_t *node;
post_plugin_t *post = NULL;
int list_id, list_size;
-
+
if( !name )
return NULL;
-
+
pthread_mutex_lock(&catalog->lock);
-
+
list_size = xine_sarray_size (catalog->plugin_lists[PLUGIN_POST - 1]);
for (list_id = 0; list_id < list_size; list_id++) {
node = xine_sarray_get (catalog->plugin_lists[PLUGIN_POST - 1], list_id);
-
+
if (strcmp(node->info->id, name) == 0) {
-
+
if (!node->plugin_class && !_load_plugin_class(xine, node, NULL)) {
xprintf(xine, XINE_VERBOSITY_DEBUG,
"load_plugins: requested post plugin %s failed to load\n", name);
break;
}
-
+
post = ((post_class_t *)node->plugin_class)->open_plugin(node->plugin_class,
inputs, audio_target, video_target);
@@ -2557,12 +2557,12 @@ xine_post_t *xine_post_init(xine_t *xine, const char *name, int inputs,
xine_post_out_t *output;
xine_list_iterator_t ite;
int i;
-
+
post->running_ticket = xine->port_ticket;
post->xine = xine;
post->node = node;
inc_node_ref(node);
-
+
/* init the lists of announced connections */
i = 0;
ite = xine_list_front(post->input);
@@ -2580,7 +2580,7 @@ xine_post_t *xine_post_init(xine_t *xine, const char *name, int inputs,
ite = xine_list_next (post->input, ite);
}
post->input_ids[i] = NULL;
-
+
i = 0;
ite = xine_list_front (post->output);
while (ite) {
@@ -2597,10 +2597,10 @@ xine_post_t *xine_post_init(xine_t *xine, const char *name, int inputs,
ite = xine_list_next (post->output, ite);
}
post->output_ids[i] = NULL;
-
+
/* copy the post plugin type to the public part */
post->xine_post.type = ((post_info_t *)node->info->special_info)->type;
-
+
break;
} else {
xprintf(xine, XINE_VERBOSITY_DEBUG,
@@ -2609,9 +2609,9 @@ xine_post_t *xine_post_init(xine_t *xine, const char *name, int inputs,
}
}
}
-
+
pthread_mutex_unlock(&catalog->lock);
-
+
if(post)
return &post->xine_post;
else {
@@ -2653,7 +2653,7 @@ static char *_x_concatenate_with_string(char const **strings, size_t count, char
}
/* get a list of file extensions for file types supported by xine
- * the list is separated by spaces
+ * the list is separated by spaces
*
* the pointer returned can be free()ed when no longer used */
char *xine_get_file_extensions (xine_t *self) {
@@ -2681,7 +2681,7 @@ char *xine_get_file_extensions (xine_t *self) {
/* create output string */
char *const result = _x_concatenate_with_string(extensions, list_size, " ", len);
free(extensions);
-
+
/* Drop the last whitespace */
result[len-1] = '\0';
@@ -2704,7 +2704,7 @@ char *xine_get_mime_types (xine_t *self) {
/* calc length of output string and create an array of strings to
concatenate */
- size_t len = 0;
+ size_t len = 0;
const int list_size = xine_sarray_size (catalog->plugin_lists[PLUGIN_DEMUX - 1]);
const char **mimetypes = calloc(list_size, sizeof(char*));
@@ -2765,7 +2765,7 @@ static void dispose_plugin_list (xine_sarray_t *list, int is_cache) {
int list_id, list_size;
if (list) {
-
+
list_size = xine_sarray_size (list);
for (list_id = 0; list_id < list_size; list_id++) {
@@ -2786,12 +2786,12 @@ static void dispose_plugin_list (xine_sarray_t *list, int is_cache) {
decoder_info = (decoder_info_t *)node->info->special_info;
free (decoder_info->supported_types);
-
+
default:
free ((void *)node->info->special_info);
break;
}
-
+
/* free info structure and string copies */
free (node->info->id);
free (node->info);
diff --git a/src/xine-engine/lrb.c b/src/xine-engine/lrb.c
index 6c624143c..9acc2f1b6 100644
--- a/src/xine-engine/lrb.c
+++ b/src/xine-engine/lrb.c
@@ -1,18 +1,18 @@
/*
* Copyright (C) 2000-2003 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -29,7 +29,7 @@ lrb_t *lrb_new (int max_num_entries,
fifo_buffer_t *fifo) {
lrb_t *this;
-
+
this = calloc(1, sizeof(lrb_t));
this->max_num_entries = max_num_entries;
@@ -42,7 +42,7 @@ lrb_t *lrb_new (int max_num_entries,
}
void lrb_drop (lrb_t *this) {
-
+
buf_element_t *buf = this->oldest;
_x_assert(buf);
@@ -67,7 +67,7 @@ void lrb_add (lrb_t *this, buf_element_t *buf) {
} else {
- if (this->cur_num_entries >= this->max_num_entries)
+ if (this->cur_num_entries >= this->max_num_entries)
lrb_drop (this);
buf->next = NULL;
@@ -94,7 +94,7 @@ void lrb_feedback (lrb_t *this, fifo_buffer_t *fifo) {
if (!fifo->last)
fifo->last = buf;
-
+
fifo->fifo_size++;
pthread_cond_signal (&fifo->not_empty);
@@ -114,6 +114,6 @@ void lrb_feedback (lrb_t *this, fifo_buffer_t *fifo) {
}
void lrb_flush (lrb_t *this) {
- while (this->cur_num_entries)
+ while (this->cur_num_entries)
lrb_drop (this);
}
diff --git a/src/xine-engine/lrb.h b/src/xine-engine/lrb.h
index 0f524b7eb..dfac5e543 100644
--- a/src/xine-engine/lrb.h
+++ b/src/xine-engine/lrb.h
@@ -1,18 +1,18 @@
/*
* Copyright (C) 2001-2003 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
diff --git a/src/xine-engine/metronom.c b/src/xine-engine/metronom.c
index bd4c1e42f..3d44ce39a 100644
--- a/src/xine-engine/metronom.c
+++ b/src/xine-engine/metronom.c
@@ -1,18 +1,18 @@
-/*
+/*
* Copyright (C) 2000-2003 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -46,7 +46,7 @@
#define MAX_AUDIO_DELTA 1600
#define AUDIO_SAMPLE_NUM 32768
-#define WRAP_THRESHOLD 120000
+#define WRAP_THRESHOLD 120000
#define MAX_NUM_WRAP_DIFF 10
#define MAX_SCR_PROVIDERS 10
#define VIDEO_DRIFT_TOLERANCE 45000
@@ -63,7 +63,7 @@
/*
* ****************************************
- * primary SCR plugin:
+ * primary SCR plugin:
* unix System Clock Reference
* ****************************************
*/
@@ -88,19 +88,19 @@ static void unixscr_set_pivot (unixscr_t *this) {
struct timeval tv;
int64_t pts;
- double pts_calc;
+ double pts_calc;
xine_monotonic_clock(&tv, NULL);
pts_calc = (tv.tv_sec - this->cur_time.tv_sec) * this->speed_factor;
pts_calc += (tv.tv_usec - this->cur_time.tv_usec) * this->speed_factor / 1e6;
pts = this->cur_pts + pts_calc;
-/* This next part introduces a one off inaccuracy
- * to the scr due to rounding tv to pts.
+/* This next part introduces a one off inaccuracy
+ * to the scr due to rounding tv to pts.
*/
this->cur_time.tv_sec=tv.tv_sec;
this->cur_time.tv_usec=tv.tv_usec;
- this->cur_pts=pts;
+ this->cur_pts=pts;
return ;
}
@@ -141,7 +141,7 @@ static void unixscr_start (scr_plugin_t *scr, int64_t start_vpts) {
this->cur_pts = start_vpts;
pthread_mutex_unlock (&this->lock);
-
+
unixscr_set_speed (&this->scr, XINE_FINE_SPEED_NORMAL);
}
@@ -150,16 +150,16 @@ static int64_t unixscr_get_current (scr_plugin_t *scr) {
struct timeval tv;
int64_t pts;
- double pts_calc;
+ double pts_calc;
pthread_mutex_lock (&this->lock);
xine_monotonic_clock(&tv, NULL);
-
+
pts_calc = (tv.tv_sec - this->cur_time.tv_sec) * this->speed_factor;
pts_calc += (tv.tv_usec - this->cur_time.tv_usec) * this->speed_factor / 1e6;
pts = this->cur_pts + pts_calc;
-
+
pthread_mutex_unlock (&this->lock);
return pts;
@@ -176,7 +176,7 @@ static scr_plugin_t *XINE_MALLOC unixscr_init () {
unixscr_t *this;
this = calloc(1, sizeof(unixscr_t));
-
+
this->scr.interface_version = 3;
this->scr.get_priority = unixscr_get_priority;
this->scr.set_fine_speed = unixscr_set_speed;
@@ -184,15 +184,15 @@ static scr_plugin_t *XINE_MALLOC unixscr_init () {
this->scr.start = unixscr_start;
this->scr.get_current = unixscr_get_current;
this->scr.exit = unixscr_exit;
-
+
pthread_mutex_init (&this->lock, NULL);
-
+
unixscr_set_speed (&this->scr, XINE_SPEED_PAUSE);
lprintf("xine-scr_init complete\n");
return &this->scr;
}
-
+
/*
* ****************************************
@@ -208,7 +208,7 @@ static void metronom_start_clock (metronom_clock_t *this, int64_t pts) {
for (scr = this->scr_list; scr < this->scr_list+MAX_SCR_PROVIDERS; scr++)
if (*scr) (*scr)->start(*scr, pts);
-
+
this->speed = XINE_FINE_SPEED_NORMAL;
}
@@ -243,7 +243,7 @@ static int metronom_set_speed (metronom_clock_t *this, int speed) {
int true_speed;
true_speed = this->scr_master->set_fine_speed (this->scr_master, speed);
-
+
this->speed = true_speed;
for (scr = this->scr_list; scr < this->scr_list+MAX_SCR_PROVIDERS; scr++)
@@ -267,33 +267,33 @@ static int64_t metronom_got_spu_packet (metronom_t *this, int64_t pts) {
int64_t vpts;
pthread_mutex_lock (&this->lock);
-
+
if (this->master) {
metronom_t *master = this->master;
-
+
pthread_mutex_lock(&this->master->lock);
pthread_mutex_unlock(&this->lock);
-
+
this->vpts_offset = this->master->vpts_offset;
this->spu_offset = this->master->spu_offset;
-
+
/* no recursion, please */
this->master = NULL;
vpts = master->got_spu_packet(this, pts);
this->master = master;
-
+
pthread_mutex_unlock(&this->master->lock);
return vpts;
}
vpts = pts + this->vpts_offset + this->spu_offset;
-
+
/* no vpts going backwards please */
if( vpts < this->spu_vpts )
vpts = this->spu_vpts;
-
+
this->spu_vpts = vpts;
-
+
pthread_mutex_unlock (&this->lock);
return vpts;
}
@@ -353,7 +353,7 @@ static void metronom_handle_discontinuity (metronom_t *this, int type,
this->vpts_offset = this->video_vpts - disc_off;
break;
}
-
+
this->last_video_pts = 0;
this->last_audio_pts = 0;
}
@@ -368,18 +368,18 @@ static void metronom_handle_video_discontinuity (metronom_t *this, int type,
pthread_mutex_unlock(&this->lock);
return;
}
-
+
this->video_discontinuity_count++;
pthread_cond_signal (&this->video_discontinuity_reached);
-
+
xprintf(this->xine, XINE_VERBOSITY_DEBUG, "video discontinuity #%d, type is %d, disc_off %" PRId64 "\n",
this->video_discontinuity_count, type, disc_off);
-
+
if (this->have_audio) {
while (this->audio_discontinuity_count <
this->video_discontinuity_count) {
- xprintf(this->xine, XINE_VERBOSITY_DEBUG, "waiting for audio discontinuity #%d\n",
+ xprintf(this->xine, XINE_VERBOSITY_DEBUG, "waiting for audio discontinuity #%d\n",
this->video_discontinuity_count);
pthread_cond_wait (&this->audio_discontinuity_reached, &this->lock);
@@ -399,15 +399,15 @@ static void metronom_got_video_frame (metronom_t *this, vo_frame_t *img) {
int64_t vpts;
int64_t pts = img->pts;
int64_t diff;
-
+
pthread_mutex_lock (&this->lock);
if (this->master) {
metronom_t *master = this->master;
-
+
pthread_mutex_lock(&this->master->lock);
pthread_mutex_unlock(&this->lock);
-
+
if (!this->discontinuity_handled_count) {
/* we are not initialized yet */
if (this->master->video_vpts > this->master->audio_vpts)
@@ -420,15 +420,15 @@ static void metronom_got_video_frame (metronom_t *this, vo_frame_t *img) {
this->force_video_jump = 1;
this->discontinuity_handled_count++;
}
-
+
this->vpts_offset = this->master->vpts_offset;
this->av_offset = this->master->av_offset;
-
+
/* no recursion, please */
this->master = NULL;
master->got_video_frame(this, img);
this->master = master;
-
+
pthread_mutex_unlock(&this->master->lock);
return;
}
@@ -459,23 +459,23 @@ static void metronom_got_video_frame (metronom_t *this, vo_frame_t *img) {
}
this->img_cpt = 0;
this->last_video_pts = pts;
-
-
+
+
/*
* compare predicted (this->video_vpts) and given (pts+vpts_offset)
* pts values - hopefully they will be the same
* if not, for small diffs try to interpolate
* for big diffs: jump
*/
-
+
vpts = pts + this->vpts_offset;
if (this->video_mode == VIDEO_PREDICTION_MODE) {
-
+
diff = this->video_vpts - vpts;
lprintf("video diff is %" PRId64 " (predicted %" PRId64 ", given %" PRId64 ")\n", diff, this->video_vpts, vpts);
-
+
if ((abs (diff) > VIDEO_DRIFT_TOLERANCE) || (this->force_video_jump)) {
this->force_video_jump = 0;
@@ -489,7 +489,7 @@ static void metronom_got_video_frame (metronom_t *this, vo_frame_t *img) {
this->video_drift = diff;
this->video_drift_step = diff / 30;
/* this will fix video drift with a constant compensation each
- frame for about 1 second of video. */
+ frame for about 1 second of video. */
if (diff) lprintf("video drift, drift is %" PRId64 "\n", this->video_drift);
}
@@ -503,7 +503,7 @@ static void metronom_got_video_frame (metronom_t *this, vo_frame_t *img) {
if (this->video_mode == VIDEO_PREDICTION_MODE) {
lprintf("video vpts for %10"PRId64" : %10"PRId64" (duration:%d drift:%" PRId64 " step:%" PRId64 ")\n",
- pts, this->video_vpts, img->duration, this->video_drift, this->video_drift_step );
+ pts, this->video_vpts, img->duration, this->video_drift, this->video_drift_step );
if (this->video_drift * this->video_drift_step > 0) {
img->duration -= this->video_drift_step;
@@ -516,7 +516,7 @@ static void metronom_got_video_frame (metronom_t *this, vo_frame_t *img) {
* this->video_vpts is used as the next frame vpts if next frame pts=0
*/
this->video_vpts += this->img_duration;
-
+
pthread_mutex_unlock (&this->lock);
}
@@ -524,7 +524,7 @@ static void metronom_handle_audio_discontinuity (metronom_t *this, int type,
int64_t disc_off) {
pthread_mutex_lock (&this->lock);
-
+
if (this->master) {
/* slaves are currently not allowed to set discontinuities */
pthread_mutex_unlock(&this->lock);
@@ -533,19 +533,19 @@ static void metronom_handle_audio_discontinuity (metronom_t *this, int type,
this->audio_discontinuity_count++;
pthread_cond_signal (&this->audio_discontinuity_reached);
-
+
xprintf(this->xine, XINE_VERBOSITY_DEBUG, "audio discontinuity #%d, type is %d, disc_off %" PRId64 "\n",
this->audio_discontinuity_count, type, disc_off);
if (this->have_video) {
-
+
/* next_vpts_offset, in_discontinuity is handled in expect_video_discontinuity */
while ( this->audio_discontinuity_count >
this->discontinuity_handled_count ) {
-
- xprintf(this->xine, XINE_VERBOSITY_DEBUG, "waiting for in_discontinuity update #%d\n",
+
+ xprintf(this->xine, XINE_VERBOSITY_DEBUG, "waiting for in_discontinuity update #%d\n",
this->audio_discontinuity_count);
-
+
pthread_cond_wait (&this->video_discontinuity_reached, &this->lock);
}
} else {
@@ -554,11 +554,11 @@ static void metronom_handle_audio_discontinuity (metronom_t *this, int type,
this->audio_samples = 0;
this->audio_drift_step = 0;
-
+
pthread_mutex_unlock (&this->lock);
}
-static int64_t metronom_got_audio_samples (metronom_t *this, int64_t pts,
+static int64_t metronom_got_audio_samples (metronom_t *this, int64_t pts,
int nsamples) {
int64_t vpts;
@@ -568,34 +568,34 @@ static int64_t metronom_got_audio_samples (metronom_t *this, int64_t pts,
lprintf("AUDIO pts from last= %" PRId64 "\n", pts-this->last_audio_pts);
pthread_mutex_lock (&this->lock);
-
+
if (this->master) {
metronom_t *master = this->master;
-
+
pthread_mutex_lock(&this->master->lock);
pthread_mutex_unlock(&this->lock);
-
+
if (!this->discontinuity_handled_count) {
/* we are not initialized yet */
if (this->master->video_vpts > this->master->audio_vpts)
this->video_vpts = this->audio_vpts = this->master->video_vpts;
else
this->video_vpts = this->audio_vpts = this->master->audio_vpts;
- this->audio_vpts_rmndr = 0;
+ this->audio_vpts_rmndr = 0;
/* when being attached to the first master, do not drift into
* his vpts values but adopt at once */
this->force_audio_jump = 1;
this->force_video_jump = 1;
this->discontinuity_handled_count++;
}
-
+
this->vpts_offset = this->master->vpts_offset;
-
+
/* no recursion, please */
this->master = NULL;
vpts = master->got_audio_samples(this, pts, nsamples);
this->master = master;
-
+
pthread_mutex_unlock(&this->master->lock);
return vpts;
}
@@ -609,7 +609,7 @@ static int64_t metronom_got_audio_samples (metronom_t *this, int64_t pts,
if((abs(diff) > AUDIO_DRIFT_TOLERANCE) || (this->force_audio_jump)) {
this->force_audio_jump = 0;
this->audio_vpts = vpts;
- this->audio_vpts_rmndr = 0;
+ this->audio_vpts_rmndr = 0;
this->audio_drift_step = 0;
xprintf(this->xine, XINE_VERBOSITY_DEBUG, "audio jump, diff=%" PRId64 "\n", diff);
} else {
@@ -619,15 +619,15 @@ static int64_t metronom_got_audio_samples (metronom_t *this, int64_t pts,
diff *= AUDIO_SAMPLE_NUM;
diff /= this->audio_samples * 4;
-
+
/* drift_step is not allowed to change rate by more than 25% */
if( diff > this->pts_per_smpls/4 )
- diff = this->pts_per_smpls/4;
+ diff = this->pts_per_smpls/4;
if( diff < -this->pts_per_smpls/4 )
diff = -this->pts_per_smpls/4;
-
+
this->audio_drift_step = diff;
-
+
lprintf("audio_drift = %" PRId64 ", pts_per_smpls = %" PRId64 "\n", diff, this->pts_per_smpls);
}
}
@@ -635,12 +635,12 @@ static int64_t metronom_got_audio_samples (metronom_t *this, int64_t pts,
}
vpts = this->audio_vpts;
- /* drift here is caused by streams where nominal sample rate differs from
+ /* drift here is caused by streams where nominal sample rate differs from
* the rate of which pts increments. fixing the audio_vpts won't do us any
* good because sound card won't play it faster or slower just because
* we want. however, adding the error to the vpts_offset will force video
* to change it's frame rate to keep in sync with us.
- *
+ *
* Since we are using integer division below, it can happen that we lose
* precision for the calculated duration in vpts for each audio buffer
* (< 1 PTS, e.g. 0.25 PTS during playback of most DVDs with LPCM audio).
@@ -658,7 +658,7 @@ static int64_t metronom_got_audio_samples (metronom_t *this, int64_t pts,
}
this->audio_samples += nsamples;
this->vpts_offset += nsamples * this->audio_drift_step / AUDIO_SAMPLE_NUM;
-
+
lprintf("audio vpts for %10"PRId64" : %10"PRId64"\n", pts, vpts);
pthread_mutex_unlock (&this->lock);
@@ -669,7 +669,7 @@ static int64_t metronom_got_audio_samples (metronom_t *this, int64_t pts,
static void metronom_set_option (metronom_t *this, int option, int64_t value) {
pthread_mutex_lock (&this->lock);
-
+
if (this->master) {
/* pass the option on to the master */
this->master->set_option(this->master, option, value);
@@ -725,7 +725,7 @@ static void metronom_clock_set_option (metronom_clock_t *this,
}
static int64_t metronom_get_option (metronom_t *this, int option) {
-
+
if (this->master)
return this->master->get_option(this->master, option);
@@ -756,7 +756,7 @@ static int64_t metronom_clock_get_option (metronom_clock_t *this, int option) {
static void metronom_set_master(metronom_t *this, metronom_t *master) {
metronom_t *old_master = this->master;
-
+
pthread_mutex_lock(&this->lock);
/* someone might currently be copying values from the old master,
* so we need his lock too */
@@ -774,7 +774,7 @@ static scr_plugin_t* get_master_scr(metronom_clock_t *this) {
/* find the SCR provider with the highest priority */
for (i=0; i<MAX_SCR_PROVIDERS; i++) if (this->scr_list[i]) {
scr_plugin_t *scr = this->scr_list[i];
-
+
if (maxprio < scr->get_priority(scr)) {
select = i;
maxprio = scr->get_priority(scr);
@@ -791,7 +791,7 @@ static int metronom_register_scr (metronom_clock_t *this, scr_plugin_t *scr) {
int i;
if (scr->interface_version != 3) {
- xprintf(this->xine, XINE_VERBOSITY_NONE,
+ xprintf(this->xine, XINE_VERBOSITY_NONE,
"wrong interface version for scr provider!\n");
return -1;
}
@@ -813,19 +813,19 @@ static void metronom_unregister_scr (metronom_clock_t *this, scr_plugin_t *scr)
/* never unregister scr_list[0]! */
for (i=1; i<MAX_SCR_PROVIDERS; i++)
- if (this->scr_list[i] == scr)
+ if (this->scr_list[i] == scr)
break;
if (i >= MAX_SCR_PROVIDERS)
return; /* Not found */
-
+
this->scr_list[i] = NULL;
time = this->get_current_time(this);
-
+
/* master could have been adjusted, others must follow now */
for (i=0; i<MAX_SCR_PROVIDERS; i++)
if (this->scr_list[i]) this->scr_list[i]->adjust(this->scr_list[i], time);
-
+
this->scr_master = get_master_scr(this);
}
@@ -836,13 +836,13 @@ static void *metronom_sync_loop (void *const this_gen) {
struct timespec ts;
scr_plugin_t** scr;
int64_t pts;
-
+
while (this->thread_running) {
/* synchronise every 5 seconds */
pthread_mutex_lock (&this->lock);
pts = this->scr_master->get_current(this->scr_master);
-
+
for (scr = this->scr_list; scr < this->scr_list+MAX_SCR_PROVIDERS; scr++)
if (*scr && *scr != this->scr_master) (*scr)->adjust(*scr, pts);
@@ -870,7 +870,7 @@ static void metronom_clock_exit (metronom_clock_t *this) {
scr_plugin_t** scr;
this->thread_running = 0;
-
+
pthread_mutex_lock (&this->lock);
pthread_cond_signal (&this->cancel);
pthread_mutex_unlock (&this->lock);
@@ -905,7 +905,7 @@ metronom_t * _x_metronom_init (int have_video, int have_audio, xine_t *xine) {
this->xine = xine;
this->master = NULL;
-
+
pthread_mutex_init (&this->lock, NULL);
this->prebuffer = PREBUFFER_PTS_OFFSET;
@@ -914,7 +914,7 @@ metronom_t * _x_metronom_init (int have_video, int have_audio, xine_t *xine) {
this->vpts_offset = 0;
/* initialize video stuff */
-
+
this->video_vpts = this->prebuffer;
this->video_drift = 0;
this->video_drift_step = 0;
@@ -925,8 +925,8 @@ metronom_t * _x_metronom_init (int have_video, int have_audio, xine_t *xine) {
this->img_cpt = 0;
this->last_video_pts = 0;
this->last_audio_pts = 0;
-
-
+
+
/* initialize audio stuff */
this->have_video = have_video;
@@ -935,7 +935,7 @@ metronom_t * _x_metronom_init (int have_video, int have_audio, xine_t *xine) {
this->audio_vpts_rmndr = 0;
this->audio_discontinuity_count = 0;
pthread_cond_init (&this->audio_discontinuity_reached, NULL);
-
+
return this;
}
@@ -945,7 +945,7 @@ metronom_clock_t *_x_metronom_clock_init(xine_t *xine)
{
metronom_clock_t *this = calloc(1, sizeof(metronom_clock_t));
int err;
-
+
this->set_option = metronom_clock_set_option;
this->get_option = metronom_clock_get_option;
this->start_clock = metronom_start_clock;
@@ -957,19 +957,19 @@ metronom_clock_t *_x_metronom_clock_init(xine_t *xine)
this->register_scr = metronom_register_scr;
this->unregister_scr = metronom_unregister_scr;
this->exit = metronom_clock_exit;
-
+
this->xine = xine;
this->scr_adjustable = 1;
this->scr_list = calloc(MAX_SCR_PROVIDERS, sizeof(void*));
this->register_scr(this, unixscr_init());
-
+
pthread_mutex_init (&this->lock, NULL);
pthread_cond_init (&this->cancel, NULL);
-
+
this->thread_running = 1;
if ((err = pthread_create(&this->sync_thread, NULL,
- metronom_sync_loop, this)) != 0)
+ metronom_sync_loop, this)) != 0)
xprintf(this->xine, XINE_VERBOSITY_NONE, "cannot create sync thread (%s)\n",
strerror(err));
diff --git a/src/xine-engine/osd.c b/src/xine-engine/osd.c
index 48b44ca4c..73fe76a0a 100644
--- a/src/xine-engine/osd.c
+++ b/src/xine-engine/osd.c
@@ -1,18 +1,18 @@
/*
* Copyright (C) 2000-2005 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -102,10 +102,10 @@ static const char *const textpalettes_str[NUMBER_OF_TEXT_PALETTES+1] = {
"white-black-transparent",
"white-none-transparent",
"white-none-translucid",
- "yellow-black-transparent",
+ "yellow-black-transparent",
NULL};
-/*
+/*
Palette entries as used by osd fonts:
0: not used by font, always transparent
@@ -116,10 +116,10 @@ static const char *const textpalettes_str[NUMBER_OF_TEXT_PALETTES+1] = {
6: font border. if the font is to be displayed without border this
will probably be adjusted to font background or near.
7-9: transition between border and foreground
- 10: font color (foreground)
+ 10: font color (foreground)
*/
-/*
+/*
The palettes below were made by hand, ie, i just throw
values that seemed to do the transitions i wanted.
This can surelly be improved a lot. [Miguel]
@@ -207,7 +207,7 @@ struct osd_font_s {
uint16_t size;
uint16_t num_fontchars;
uint16_t loaded;
-};
+};
#ifdef HAVE_FT2
struct osd_ft2context_s {
@@ -241,11 +241,11 @@ static inline void osd_free_ft2 (osd_object_t *osd __attr_unused) {}
*/
static osd_object_t *XINE_MALLOC osd_new_object (osd_renderer_t *this, int width, int height) {
-
+
osd_object_t *osd;
-
- pthread_mutex_lock (&this->osd_mutex);
-
+
+ pthread_mutex_lock (&this->osd_mutex);
+
osd = calloc(1, sizeof(osd_object_t));
osd->renderer = this;
osd->next = this->osds;
@@ -256,12 +256,12 @@ static osd_object_t *XINE_MALLOC osd_new_object (osd_renderer_t *this, int width
osd->video_window_width = 0;
osd->video_window_height = 0;
osd->extent_width = 0;
- osd->extent_height = 0;
+ osd->extent_height = 0;
osd->width = width;
osd->height = height;
osd->area = calloc(width, height);
osd->area_touched = 0;
-
+
osd->x1 = osd->argb_layer.x1 = width;
osd->y1 = osd->argb_layer.y1 = height;
osd->x2 = osd->argb_layer.x2 = 0;
@@ -269,8 +269,8 @@ static osd_object_t *XINE_MALLOC osd_new_object (osd_renderer_t *this, int width
pthread_mutex_init(&osd->argb_layer.mutex, NULL);
- memcpy(osd->color, textpalettes_color[0], sizeof(textpalettes_color[0]));
- memcpy(osd->trans, textpalettes_trans[0], sizeof(textpalettes_trans[0]));
+ memcpy(osd->color, textpalettes_color[0], sizeof(textpalettes_color[0]));
+ memcpy(osd->trans, textpalettes_trans[0], sizeof(textpalettes_trans[0]));
osd->handle = -1;
@@ -278,11 +278,11 @@ static osd_object_t *XINE_MALLOC osd_new_object (osd_renderer_t *this, int width
osd->cd = (iconv_t)-1;
osd->encoding = NULL;
#endif
-
- pthread_mutex_unlock (&this->osd_mutex);
+
+ pthread_mutex_unlock (&this->osd_mutex);
lprintf("osd=%p size: %dx%d\n", osd, width, height);
-
+
return osd;
}
@@ -324,7 +324,7 @@ static int _osd_hide (osd_object_t *osd, int64_t vpts);
* the object is not changed. there may be subsequent drawing on it.
*/
static int _osd_show (osd_object_t *osd, int64_t vpts, int unscaled ) {
-
+
osd_renderer_t *this = osd->renderer;
video_overlay_manager_t *ovl_manager;
rle_elem_t rle, *rle_p=0;
@@ -332,21 +332,21 @@ static int _osd_show (osd_object_t *osd, int64_t vpts, int unscaled ) {
uint8_t *c;
lprintf("osd=%p vpts=%"PRId64"\n", osd, vpts);
-
+
this->stream->xine->port_ticket->acquire(this->stream->xine->port_ticket, 1);
-
+
ovl_manager = this->stream->video_out->get_overlay_manager(this->stream->video_out);
-
+
if( osd->handle < 0 ) {
if( (osd->handle = ovl_manager->get_handle(ovl_manager, 0)) == -1 ) {
this->stream->xine->port_ticket->release(this->stream->xine->port_ticket, 1);
return 0;
}
}
-
- pthread_mutex_lock (&this->osd_mutex);
-
- /* clip update area to allowed range */
+
+ pthread_mutex_lock (&this->osd_mutex);
+
+ /* clip update area to allowed range */
if(osd->x1 > osd->width)
osd->x1 = osd->width;
if(osd->x2 > osd->width)
@@ -360,13 +360,13 @@ static int _osd_show (osd_object_t *osd, int64_t vpts, int unscaled ) {
if(osd->y1 < 0) osd->y1 = 0;
if(osd->y2 < 0) osd->y2 = 0;
-#ifdef DEBUG_RLE
+#ifdef DEBUG_RLE
lprintf("osd_show %p rle starts\n", osd);
-#endif
+#endif
/* check if osd is valid (something drawn on it) */
if( osd->x2 > osd->x1 && osd->y2 > osd->y1 ) {
-
+
this->event.object.handle = osd->handle;
memset( this->event.object.overlay, 0, sizeof(*this->event.object.overlay) );
@@ -386,12 +386,12 @@ static int _osd_show (osd_object_t *osd, int64_t vpts, int unscaled ) {
this->event.object.overlay->extent_width = osd->extent_width;
this->event.object.overlay->extent_height = osd->extent_height;
-
+
this->event.object.overlay->hili_top = 0;
this->event.object.overlay->hili_bottom = this->event.object.overlay->height;
this->event.object.overlay->hili_left = 0;
this->event.object.overlay->hili_right = this->event.object.overlay->width;
-
+
/* there will be at least that many rle objects (one for each row) */
this->event.object.overlay->num_rle = 0;
if (!osd->area_touched) {
@@ -403,13 +403,13 @@ static int _osd_show (osd_object_t *osd, int64_t vpts, int unscaled ) {
Rely on lazy page allocation to avoid us actually taking up
this much RAM */
this->event.object.overlay->data_size = osd->width * osd->height;
- rle_p = this->event.object.overlay->rle =
+ rle_p = this->event.object.overlay->rle =
malloc(this->event.object.overlay->data_size * sizeof(rle_elem_t) );
-
+
for( y = osd->y1; y < osd->y2; y++ ) {
-#ifdef DEBUG_RLE
+#ifdef DEBUG_RLE
lprintf("osd_show %p y = %d: ", osd, y);
-#endif
+#endif
c = osd->area + y * osd->width + osd->x1;
/* initialize a rle object with the first pixel's color */
@@ -419,17 +419,17 @@ static int _osd_show (osd_object_t *osd, int64_t vpts, int unscaled ) {
/* loop over the remaining pixels in the row */
for( x = osd->x1 + rle.len; x < osd->x2; x++, c++ ) {
if( rle.color != *c ) {
-#ifdef DEBUG_RLE
+#ifdef DEBUG_RLE
lprintf("(%d, %d), ", rle.len, rle.color);
#endif
*rle_p++ = rle;
- this->event.object.overlay->num_rle++;
+ this->event.object.overlay->num_rle++;
rle.color = *c;
rle.len = 1;
} else {
rle.len++;
- }
+ }
}
#ifdef DEBUG_RLE
lprintf("(%d, %d)\n", rle.len, rle.color);
@@ -441,13 +441,13 @@ static int _osd_show (osd_object_t *osd, int64_t vpts, int unscaled ) {
lprintf("osd_show %p rle ends\n", osd);
#endif
lprintf("num_rle = %d\n", this->event.object.overlay->num_rle);
-
- memcpy(this->event.object.overlay->hili_color, osd->color, sizeof(osd->color));
- memcpy(this->event.object.overlay->hili_trans, osd->trans, sizeof(osd->trans));
- memcpy(this->event.object.overlay->color, osd->color, sizeof(osd->color));
- memcpy(this->event.object.overlay->trans, osd->trans, sizeof(osd->trans));
+
+ memcpy(this->event.object.overlay->hili_color, osd->color, sizeof(osd->color));
+ memcpy(this->event.object.overlay->hili_trans, osd->trans, sizeof(osd->trans));
+ memcpy(this->event.object.overlay->color, osd->color, sizeof(osd->color));
+ memcpy(this->event.object.overlay->trans, osd->trans, sizeof(osd->trans));
}
-
+
this->event.event_type = OVERLAY_EVENT_SHOW;
this->event.vpts = vpts;
ovl_manager->add_event(ovl_manager, (void *)&this->event);
@@ -455,10 +455,10 @@ static int _osd_show (osd_object_t *osd, int64_t vpts, int unscaled ) {
/* osd empty - hide it */
_osd_hide(osd, vpts);
}
- pthread_mutex_unlock (&this->osd_mutex);
-
+ pthread_mutex_unlock (&this->osd_mutex);
+
this->stream->xine->port_ticket->release(this->stream->xine->port_ticket, 1);
-
+
return 1;
}
@@ -480,24 +480,24 @@ static int osd_show_unscaled (osd_object_t *osd, int64_t vpts) {
* send event to hide osd at given pts (0=now)
* the object is not changed. there may be subsequent drawing on it.
*/
-static int _osd_hide (osd_object_t *osd, int64_t vpts) {
+static int _osd_hide (osd_object_t *osd, int64_t vpts) {
osd_renderer_t *this = osd->renderer;
video_overlay_manager_t *ovl_manager;
-
+
lprintf("osd=%p vpts=%"PRId64"\n",osd, vpts);
-
+
if( osd->handle < 0 )
return 0;
-
+
this->event.object.handle = osd->handle;
-
+
/* not really needed this, but good pratice to clean it up */
memset( this->event.object.overlay, 0, sizeof(this->event.object.overlay) );
-
+
this->event.event_type = OVERLAY_EVENT_HIDE;
this->event.vpts = vpts;
-
+
ovl_manager = this->stream->video_out->get_overlay_manager(this->stream->video_out);
ovl_manager->add_event(ovl_manager, (void *)&this->event);
@@ -546,14 +546,14 @@ static void osd_clear (osd_object_t *osd) {
static void osd_point (osd_object_t *osd, int x, int y, int color) {
uint8_t *c;
-
+
lprintf("osd=%p (%d x %d)\n", osd, x, y);
-
+
if (x < 0 || x >= osd->width)
return;
if (y < 0 || y >= osd->height)
return;
-
+
/* update clipping area */
osd->x1 = MIN(osd->x1, x);
osd->x2 = MAX(osd->x2, (x + 1));
@@ -571,14 +571,14 @@ static void osd_point (osd_object_t *osd, int x, int y, int color) {
static void osd_line (osd_object_t *osd,
int x1, int y1, int x2, int y2, int color) {
-
+
uint8_t *c;
int dx, dy, t, inc, d, inc1, inc2;
int swap_x = 0;
int swap_y = 0;
lprintf("osd=%p (%d,%d)-(%d,%d)\n",osd, x1,y1, x2,y2 );
-
+
/* sort line */
if (x2 < x1) {
t = x1;
@@ -593,7 +593,7 @@ static void osd_line (osd_object_t *osd,
swap_y = 1;
}
- /* clip line */
+ /* clip line */
if (x1 < 0) {
y1 = y1 + (y2-y1) * -x1 / (x2-x1);
x1 = 0;
@@ -610,20 +610,20 @@ static void osd_line (osd_object_t *osd,
x2 = x1 + (x2-x1) * (osd->height-y1) / (y2-y1);
y2 = osd->height;
}
-
+
if (x1 >= osd->width || y1 >= osd->height)
return;
-
+
/* update clipping area */
osd->x1 = MIN( osd->x1, x1 );
osd->x2 = MAX( osd->x2, x2 );
osd->y1 = MIN( osd->y1, y1 );
osd->y2 = MAX( osd->y2, y2 );
osd->area_touched = 1;
-
+
dx = x2 - x1;
dy = y2 - y1;
-
+
/* unsort line */
if (swap_x) {
t = x1;
@@ -642,7 +642,7 @@ static void osd_line (osd_object_t *osd,
t = x2; x2 = x1; x1 = t;
t = y2; y2 = y1; y1 = t;
}
-
+
if( y2 > y1 ) inc = 1; else inc = -1;
inc1 = 2*dy;
@@ -650,11 +650,11 @@ static void osd_line (osd_object_t *osd,
inc2 = 2*(dy-dx);
c = osd->area + y1 * osd->width + x1;
-
+
while(x1<x2)
{
*c++ = color;
-
+
x1++;
if( d<0 ) {
d+=inc1;
@@ -679,8 +679,8 @@ static void osd_line (osd_object_t *osd,
c = osd->area + y1 * osd->width + x1;
while(y1<y2) {
- *c = color;
-
+ *c = color;
+
c += osd->width;
y1++;
if( d<0 ) {
@@ -705,17 +705,17 @@ static void osd_filled_rect (osd_object_t *osd,
int x, y, dx, dy;
lprintf("osd=%p (%d,%d)-(%d,%d)\n",osd, x1,y1, x2,y2 );
-
+
/* sort rectangle */
x = MIN( x1, x2 );
dx = MAX( x1, x2 );
y = MIN( y1, y2 );
dy = MAX( y1, y2 );
-
+
/* clip rectangle */
if (x >= osd->width || y >= osd->height)
return;
-
+
if (x < 0) {
dx += x;
x = 0;
@@ -727,7 +727,7 @@ static void osd_filled_rect (osd_object_t *osd,
dx = MIN( dx, osd->width );
dy = MIN( dy, osd->height );
-
+
/* update clipping area */
osd->x1 = MIN( osd->x1, x );
osd->x2 = MAX( osd->x2, dx );
@@ -754,7 +754,7 @@ static void osd_set_palette(osd_object_t *osd, const uint32_t *color, const uint
}
/*
- * set on existing text palette
+ * set on existing text palette
* (-1 to set user specified palette)
*/
@@ -773,7 +773,7 @@ static void osd_set_text_palette(osd_object_t *osd, int palette_number,
memcpy(&osd->color[color_base], textpalettes_color[palette_number],
sizeof(textpalettes_color[palette_number]));
memcpy(&osd->trans[color_base], textpalettes_trans[palette_number],
- sizeof(textpalettes_trans[palette_number]));
+ sizeof(textpalettes_trans[palette_number]));
}
@@ -809,7 +809,7 @@ static uint16_t gzread_i16(gzFile *fp) {
}
/*
- load bitmap font into osd engine
+ load bitmap font into osd engine
*/
static int osd_renderer_load_font(osd_renderer_t *this, char *filename) {
@@ -817,7 +817,7 @@ static int osd_renderer_load_font(osd_renderer_t *this, char *filename) {
gzFile *fp;
osd_font_t *font = NULL;
int i, ret = 0;
-
+
lprintf("name=%s\n", filename );
/* load quick & dirt font format */
@@ -828,36 +828,36 @@ static int osd_renderer_load_font(osd_renderer_t *this, char *filename) {
gzread(fp, font->name, sizeof(font->name) );
font->version = gzread_i16(fp);
-
+
if( font->version == FONT_VERSION ) {
-
+
font->size = gzread_i16(fp);
font->num_fontchars = gzread_i16(fp);
font->loaded = 1;
-
+
font->fontchar = malloc( sizeof(osd_fontchar_t) * font->num_fontchars );
-
+
lprintf("font '%s' chars=%d\n", font->name, font->num_fontchars);
-
+
/* load all characters */
for( i = 0; i < font->num_fontchars; i++ ) {
font->fontchar[i].code = gzread_i16(fp);
font->fontchar[i].width = gzread_i16(fp);
font->fontchar[i].height = gzread_i16(fp);
font->fontchar[i].bmp = malloc(font->fontchar[i].width*font->fontchar[i].height);
- if( gzread(fp, font->fontchar[i].bmp,
+ if( gzread(fp, font->fontchar[i].bmp,
font->fontchar[i].width*font->fontchar[i].height) <= 0 )
break;
}
-
+
/* check if all expected characters were loaded */
if( i == font->num_fontchars ) {
osd_font_t *known_font;
ret = 1;
-
+
lprintf("font '%s' loaded\n",font->name);
-
- /* check if font is already known to us */
+
+ /* check if font is already known to us */
known_font = this->fonts;
while( known_font ) {
if( !strcasecmp(known_font->name,font->name) &&
@@ -865,16 +865,16 @@ static int osd_renderer_load_font(osd_renderer_t *this, char *filename) {
break;
known_font = known_font->next;
}
-
+
if( !known_font ) {
-
+
/* new font, add it to list */
font->filename = strdup(filename);
font->next = this->fonts;
this->fonts = font;
-
+
} else {
-
+
if( !known_font->loaded ) {
/* the font was preloaded before.
* add loaded characters to the existing entry.
@@ -885,7 +885,7 @@ static int osd_renderer_load_font(osd_renderer_t *this, char *filename) {
known_font->fontchar = font->fontchar;
free(font);
} else {
- xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
+ xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
_("font '%s-%d' already loaded, weird.\n"), font->name, font->size);
while( --i >= 0 ) {
free(font->fontchar[i].bmp);
@@ -893,13 +893,13 @@ static int osd_renderer_load_font(osd_renderer_t *this, char *filename) {
free(font->fontchar);
free(font);
}
-
+
}
} else {
-
+
xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
_("font '%s' loading failed (%d < %d)\n") ,font->name, i, font->num_fontchars);
-
+
while( --i >= 0 ) {
free(font->fontchar[i].bmp);
}
@@ -925,13 +925,13 @@ static int osd_renderer_unload_font(osd_renderer_t *this, char *fontname ) {
osd_font_t *font, *last;
osd_object_t *osd;
int i, ret = 0;
-
+
lprintf("font '%s'\n", fontname);
pthread_mutex_lock (&this->osd_mutex);
osd = this->osds;
- while( osd ) {
+ while( osd ) {
if( !strcasecmp(osd->font->name, fontname) )
osd->font = NULL;
osd = osd->next;
@@ -943,14 +943,14 @@ static int osd_renderer_unload_font(osd_renderer_t *this, char *fontname ) {
if ( !strcasecmp(font->name,fontname) ) {
free( font->filename );
-
+
if( font->loaded ) {
for( i = 0; i < font->num_fontchars; i++ ) {
free( font->fontchar[i].bmp );
}
free( font->fontchar );
}
-
+
if( last )
last->next = font->next;
else
@@ -991,7 +991,7 @@ static int osd_lookup_fontconfig( osd_object_t *osd, const char *const fontname,
match = FcFontMatch(NULL, pat, &result);
FcPatternDestroy(pat);
-
+
if ( ! match ) {
FcFontSetDestroy(fs);
xprintf(osd->renderer->stream->xine, XINE_VERBOSITY_LOG,
@@ -1052,7 +1052,7 @@ static int osd_lookup_xdg( osd_object_t *osd, const char *const fontname ) {
data_dirs++;
}
- xprintf(osd->renderer->stream->xine, XINE_VERBOSITY_LOG,
+ xprintf(osd->renderer->stream->xine, XINE_VERBOSITY_LOG,
_("osd: error loading font %s with in XDG data directories.\n"), fontname);
return 0;
}
@@ -1073,7 +1073,7 @@ static int osd_set_font_freetype2( osd_object_t *osd, const char *fontname, int
FT_Done_Face (osd->ft2->face);
osd->ft2->face = NULL;
}
-
+
do { /* while 0 */
#ifdef HAVE_FONTCONFIG
if ( osd_lookup_fontconfig(osd, fontname, size) )
@@ -1102,11 +1102,11 @@ static int osd_set_font_freetype2( osd_object_t *osd, const char *fontname, int
set the font of osd object
*/
-static int osd_set_font( osd_object_t *osd, const char *fontname, int size) {
+static int osd_set_font( osd_object_t *osd, const char *fontname, int size) {
int ret = 1;
lprintf("osd=%p font '%s'\n", osd, fontname);
-
+
pthread_mutex_lock (&osd->renderer->osd_mutex);
#ifdef HAVE_FT2
@@ -1121,7 +1121,7 @@ static int osd_set_font( osd_object_t *osd, const char *fontname, int size) {
font = osd->renderer->fonts;
while( font ) {
- if( !strcasecmp(font->name, fontname) && (size>=font->size)
+ if( !strcasecmp(font->name, fontname) && (size>=font->size)
&& (best<font->size)) {
ret = 1;
osd->font = font;
@@ -1137,7 +1137,7 @@ static int osd_set_font( osd_object_t *osd, const char *fontname, int size) {
ret = osd_renderer_load_font(osd->renderer, osd->font->filename);
if(!ret)
osd->font = NULL;
- }
+ }
}
pthread_mutex_unlock (&osd->renderer->osd_mutex);
@@ -1167,29 +1167,29 @@ static int osd_search(osd_fontchar_t *array, size_t n, uint16_t code) {
if (array[right].code == code)
return right;
- else
+ else
return ALIAS_CHARACTER_FONT < n ? ALIAS_CHARACTER_FONT : n;
#else
size_t i;
-
+
for( i = 0; i < n; i++ ) {
if( font->fontchar[i].code == unicode )
break;
}
- if (i < n)
+ if (i < n)
return i;
- else
+ else
return ALIAS_CHARACTER_FONT < n ? ALIAS_CHARACTER_FONT : n;
#endif
}
#ifdef HAVE_ICONV
-/*
- * get next unicode value
+/*
+ * get next unicode value
*/
-static uint16_t osd_iconv_getunicode(xine_t *xine,
+static uint16_t osd_iconv_getunicode(xine_t *xine,
iconv_t cd, const char *encoding, ICONV_CONST char **inbuf,
size_t *inbytesleft) {
uint16_t unicode;
@@ -1241,7 +1241,7 @@ static void osd_free_encoding(osd_object_t *osd) {
/*
- * set encoding of text
+ * set encoding of text
*
* NULL ... no conversion (iso-8859-1)
* "" ... locale encoding
@@ -1306,7 +1306,7 @@ static int osd_render_text (osd_object_t *osd, int x1, int y1,
#endif
lprintf("osd=%p (%d,%d) \"%s\"\n", osd, x1, y1, text);
-
+
/* some sanity checks for the color indices */
if( color_base < 0 )
color_base = 0;
@@ -1322,7 +1322,7 @@ static int osd_render_text (osd_object_t *osd, int x1, int y1,
#ifdef HAVE_FT2
if (osd->ft2) proceed = 1;
#endif
-
+
if (proceed == 0) {
xprintf(this->stream->xine, XINE_VERBOSITY_LOG, _("osd: font isn't defined\n"));
pthread_mutex_unlock(&this->osd_mutex);
@@ -1336,10 +1336,10 @@ static int osd_render_text (osd_object_t *osd, int x1, int y1,
inbuf = text;
inbytesleft = strlen(text);
-
+
while( inbytesleft ) {
#ifdef HAVE_ICONV
- unicode = osd_iconv_getunicode(this->stream->xine, osd->cd, osd->encoding,
+ unicode = osd_iconv_getunicode(this->stream->xine, osd->cd, osd->encoding,
(ICONV_CONST char **)&inbuf, &inbytesleft);
#else
unicode = inbuf[0];
@@ -1397,7 +1397,7 @@ static int osd_render_text (osd_object_t *osd, int x1, int y1,
while (s < src + slot->bitmap.width) {
if ((d >= dst) && (d < dst + osd->width) && *s)
*d = (uint8_t)(*s/25) + (uint8_t) color_base;
-
+
d++;
s++;
}
@@ -1416,15 +1416,15 @@ static int osd_render_text (osd_object_t *osd, int x1, int y1,
#endif
i = osd_search(font->fontchar, font->num_fontchars, unicode);
-
- lprintf("font '%s' [%d, U+%04X == U+%04X] %dx%d -> %d,%d\n", font->name, i,
- unicode, font->fontchar[i].code, font->fontchar[i].width,
+
+ lprintf("font '%s' [%d, U+%04X == U+%04X] %dx%d -> %d,%d\n", font->name, i,
+ unicode, font->fontchar[i].code, font->fontchar[i].width,
font->fontchar[i].height, x1, y1);
-
+
if ( i != font->num_fontchars ) {
dst = osd->area + y1 * osd->width;
src = font->fontchar[i].bmp;
-
+
for( y = 0; y < font->fontchar[i].height; y++ ) {
uint8_t *s = src;
uint8_t *d = dst + x1;
@@ -1436,7 +1436,7 @@ static int osd_render_text (osd_object_t *osd, int x1, int y1,
while (s < src + font->fontchar[i].width) {
if((d >= dst) && (d < dst + osd->width) && (*s > 1)) /* skip drawing transparency */
*d = *s + (uint8_t) color_base;
-
+
d++;
s++;
}
@@ -1444,12 +1444,12 @@ static int osd_render_text (osd_object_t *osd, int x1, int y1,
dst += osd->width;
}
x1 += font->fontchar[i].width - (font->fontchar[i].width * FONT_OVERLAP);
-
+
if( x1 > osd->x2 ) osd->x2 = x1;
- if( y1 + font->fontchar[i].height > osd->y2 )
+ if( y1 + font->fontchar[i].height > osd->y2 )
osd->y2 = y1 + font->fontchar[i].height;
}
-
+
#ifdef HAVE_FT2
} /* !(osd->ft2) */
#endif
@@ -1481,7 +1481,7 @@ static int osd_get_text_size(osd_object_t *osd, const char *text, int *width, in
#endif
lprintf("osd=%p \"%s\"\n", osd, text);
-
+
pthread_mutex_lock (&this->osd_mutex);
{
@@ -1491,7 +1491,7 @@ static int osd_get_text_size(osd_object_t *osd, const char *text, int *width, in
#ifdef HAVE_FT2
if (osd->ft2) proceed = 1;
#endif
-
+
if (proceed == 0) {
xprintf(this->stream->xine, XINE_VERBOSITY_LOG, _("osd: font isn't defined\n"));
pthread_mutex_unlock(&this->osd_mutex);
@@ -1504,10 +1504,10 @@ static int osd_get_text_size(osd_object_t *osd, const char *text, int *width, in
inbuf = text;
inbytesleft = strlen(text);
-
+
while( inbytesleft ) {
#ifdef HAVE_ICONV
- unicode = osd_iconv_getunicode(this->stream->xine, osd->cd, osd->encoding,
+ unicode = osd_iconv_getunicode(this->stream->xine, osd->cd, osd->encoding,
(ICONV_CONST char **)&inbuf, &inbytesleft);
#else
unicode = inbuf[0];
@@ -1598,7 +1598,7 @@ static void osd_preload_fonts (osd_renderer_t *this, char *path) {
int len;
len = strlen (entry->d_name);
-
+
if ( (len > 12) && !strncmp (&entry->d_name[len-12], ".xinefont.gz", 12)) {
s = strdup(entry->d_name);
@@ -1609,15 +1609,15 @@ static void osd_preload_fonts (osd_renderer_t *this, char *path) {
*p++ = '\0';
font = calloc(1, sizeof(osd_font_t) );
-
+
strncpy(font->name, s, sizeof(font->name));
font->size = atoi(p);
- lprintf("font '%s' size %d is preloaded\n",
+ lprintf("font '%s' size %d is preloaded\n",
font->name, font->size);
asprintf (&font->filename, "%s/%s", path, entry->d_name);
-
+
font->next = this->fonts;
this->fonts = font;
}
@@ -1634,30 +1634,30 @@ static void osd_preload_fonts (osd_renderer_t *this, char *path) {
*/
static void osd_free_object (osd_object_t *osd_to_close) {
-
+
osd_renderer_t *this = osd_to_close->renderer;
video_overlay_manager_t *ovl_manager;
osd_object_t *osd, *last;
if( osd_to_close->handle >= 0 ) {
osd_hide(osd_to_close,0);
-
+
this->event.object.handle = osd_to_close->handle;
-
+
/* not really needed this, but good pratice to clean it up */
memset( this->event.object.overlay, 0, sizeof(this->event.object.overlay) );
this->event.event_type = OVERLAY_EVENT_FREE_HANDLE;
this->event.vpts = 0;
-
+
this->stream->xine->port_ticket->acquire(this->stream->xine->port_ticket, 1);
ovl_manager = this->stream->video_out->get_overlay_manager(this->stream->video_out);
ovl_manager->add_event(ovl_manager, (void *)&this->event);
this->stream->xine->port_ticket->release(this->stream->xine->port_ticket, 1);
-
+
osd_to_close->handle = -1; /* handle will be freed */
}
-
- pthread_mutex_lock (&this->osd_mutex);
+
+ pthread_mutex_lock (&this->osd_mutex);
last = NULL;
osd = this->osds;
@@ -1667,7 +1667,7 @@ static void osd_free_object (osd_object_t *osd_to_close) {
osd_free_ft2 (osd);
osd_free_encoding(osd);
-
+
if( last )
last->next = osd->next;
else
@@ -1680,7 +1680,7 @@ static void osd_free_object (osd_object_t *osd_to_close) {
last = osd;
osd = osd->next;
}
- pthread_mutex_unlock (&this->osd_mutex);
+ pthread_mutex_unlock (&this->osd_mutex);
}
static void osd_renderer_close (osd_renderer_t *this) {
@@ -1768,7 +1768,7 @@ static void osd_set_argb_buffer(osd_object_t *osd, uint32_t *argb_buffer,
}
static uint32_t osd_get_capabilities (osd_object_t *osd) {
-
+
osd_renderer_t *this = osd->renderer;
uint32_t capabilities = 0;
uint32_t vo_capabilities;
@@ -1786,14 +1786,14 @@ static uint32_t osd_get_capabilities (osd_object_t *osd) {
if (vo_capabilities & VO_CAP_CUSTOM_EXTENT_OVERLAY)
capabilities |= XINE_OSD_CAP_CUSTOM_EXTENT;
-
+
if (vo_capabilities & VO_CAP_ARGB_LAYER_OVERLAY)
capabilities |= XINE_OSD_CAP_ARGB_LAYER;
if (vo_capabilities & VO_CAP_VIDEO_WINDOW_OVERLAY)
capabilities |= XINE_OSD_CAP_VIDEO_WINDOW;
- return capabilities;
+ return capabilities;
}
@@ -1805,7 +1805,7 @@ osd_renderer_t *_x_osd_renderer_init( xine_stream_t *stream ) {
osd_renderer_t *this;
- this = calloc(1, sizeof(osd_renderer_t));
+ this = calloc(1, sizeof(osd_renderer_t));
this->stream = stream;
this->event.object.overlay = calloc(1, sizeof(vo_overlay_t));
@@ -1826,20 +1826,20 @@ osd_renderer_t *_x_osd_renderer_init( xine_stream_t *stream ) {
osd_preload_fonts(this, fontpath);
free(fontpath);
-
+
data_dirs++;
}
}
this->textpalette = this->stream->xine->config->register_enum (this->stream->xine->config,
"ui.osd.text_palette", 0,
- textpalettes_str,
+ textpalettes_str,
_("palette (foreground-border-background) to use for subtitles and OSD"),
_("The palette for on-screen-display and some subtitle formats that do "
"not specify any colouring themselves. The palettes are listed in the "
"form: foreground-border-background."),
10, update_text_palette, this);
-
+
/*
* set up function pointer
*/
diff --git a/src/xine-engine/post.c b/src/xine-engine/post.c
index 4c485035b..98cb3b69c 100644
--- a/src/xine-engine/post.c
+++ b/src/xine-engine/post.c
@@ -1,23 +1,23 @@
/*
* Copyright (C) 2000-2004 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
*/
-
+
/*
* some helper functions for post plugins
*/
@@ -41,7 +41,7 @@ void _x_post_init(post_plugin_t *post, int num_audio_inputs, int num_video_input
static uint32_t post_video_get_capabilities(xine_video_port_t *port_gen) {
post_video_port_t *port = (post_video_port_t *)port_gen;
uint32_t caps;
-
+
if (port->port_lock) pthread_mutex_lock(port->port_lock);
caps = port->original_port->get_capabilities(port->original_port);
if (port->port_lock) pthread_mutex_unlock(port->port_lock);
@@ -50,7 +50,7 @@ static uint32_t post_video_get_capabilities(xine_video_port_t *port_gen) {
static void post_video_open(xine_video_port_t *port_gen, xine_stream_t *stream) {
post_video_port_t *port = (post_video_port_t *)port_gen;
-
+
_x_post_rewire(port->post);
_x_post_inc_usage(port);
if (port->port_lock) pthread_mutex_lock(port->port_lock);
@@ -59,31 +59,31 @@ static void post_video_open(xine_video_port_t *port_gen, xine_stream_t *stream)
port->stream = stream;
}
-static vo_frame_t *post_video_get_frame(xine_video_port_t *port_gen, uint32_t width,
+static vo_frame_t *post_video_get_frame(xine_video_port_t *port_gen, uint32_t width,
uint32_t height, double ratio, int format, int flags) {
post_video_port_t *port = (post_video_port_t *)port_gen;
vo_frame_t *frame;
-
+
_x_post_rewire(port->post);
if (port->port_lock) pthread_mutex_lock(port->port_lock);
frame = port->original_port->get_frame(port->original_port,
width, height, ratio, format, flags);
if (port->port_lock) pthread_mutex_unlock(port->port_lock);
-
+
if (frame && (!port->intercept_frame || port->intercept_frame(port, frame))) {
_x_post_inc_usage(port);
if (port->frame_lock) pthread_mutex_lock(port->frame_lock);
frame = _x_post_intercept_video_frame(frame, port);
if (port->frame_lock) pthread_mutex_unlock(port->frame_lock);
}
-
+
return frame;
}
static vo_frame_t *post_video_get_last_frame(xine_video_port_t *port_gen) {
post_video_port_t *port = (post_video_port_t *)port_gen;
vo_frame_t *frame;
-
+
if (port->port_lock) pthread_mutex_lock(port->port_lock);
frame = port->original_port->get_last_frame(port->original_port);
if (port->port_lock) pthread_mutex_unlock(port->port_lock);
@@ -92,15 +92,15 @@ static vo_frame_t *post_video_get_last_frame(xine_video_port_t *port_gen) {
static void post_video_enable_ovl(xine_video_port_t *port_gen, int ovl_enable) {
post_video_port_t *port = (post_video_port_t *)port_gen;
-
+
if (port->port_lock) pthread_mutex_lock(port->port_lock);
port->original_port->enable_ovl(port->original_port, ovl_enable);
if (port->port_lock) pthread_mutex_unlock(port->port_lock);
}
-
+
static void post_video_close(xine_video_port_t *port_gen, xine_stream_t *stream) {
post_video_port_t *port = (post_video_port_t *)port_gen;
-
+
if (port->port_lock) pthread_mutex_lock(port->port_lock);
port->original_port->close(port->original_port, stream);
if (port->port_lock) pthread_mutex_unlock(port->port_lock);
@@ -110,7 +110,7 @@ static void post_video_close(xine_video_port_t *port_gen, xine_stream_t *stream)
static void post_video_exit(xine_video_port_t *port_gen) {
post_video_port_t *port = (post_video_port_t *)port_gen;
-
+
if (port->port_lock) pthread_mutex_lock(port->port_lock);
port->original_port->exit(port->original_port);
if (port->port_lock) pthread_mutex_unlock(port->port_lock);
@@ -119,11 +119,11 @@ static void post_video_exit(xine_video_port_t *port_gen) {
static video_overlay_manager_t *post_video_get_overlay_manager(xine_video_port_t *port_gen) {
post_video_port_t *port = (post_video_port_t *)port_gen;
video_overlay_manager_t *manager;
-
+
if (port->port_lock) pthread_mutex_lock(port->port_lock);
manager = port->original_port->get_overlay_manager(port->original_port);
if (port->port_lock) pthread_mutex_unlock(port->port_lock);
-
+
if (port->intercept_ovl && port->intercept_ovl(port)) {
if (manager && !port->original_manager)
/* this is the first access to overlay manager */
@@ -138,7 +138,7 @@ static video_overlay_manager_t *post_video_get_overlay_manager(xine_video_port_t
static void post_video_flush(xine_video_port_t *port_gen) {
post_video_port_t *port = (post_video_port_t *)port_gen;
-
+
if (port->port_lock) pthread_mutex_lock(port->port_lock);
port->original_port->flush(port->original_port);
if (port->port_lock) pthread_mutex_unlock(port->port_lock);
@@ -146,7 +146,7 @@ static void post_video_flush(xine_video_port_t *port_gen) {
static void post_video_trigger_drawing(xine_video_port_t *port_gen) {
post_video_port_t *port = (post_video_port_t *)port_gen;
-
+
if (port->port_lock) pthread_mutex_lock(port->port_lock);
port->original_port->trigger_drawing(port->original_port);
if (port->port_lock) pthread_mutex_unlock(port->port_lock);
@@ -156,7 +156,7 @@ static int post_video_status(xine_video_port_t *port_gen, xine_stream_t *stream,
int *width, int *height, int64_t *img_duration) {
post_video_port_t *port = (post_video_port_t *)port_gen;
int status;
-
+
if (port->port_lock) pthread_mutex_lock(port->port_lock);
status = port->original_port->status(port->original_port, stream, width, height, img_duration);
if (port->port_lock) pthread_mutex_unlock(port->port_lock);
@@ -166,7 +166,7 @@ static int post_video_status(xine_video_port_t *port_gen, xine_stream_t *stream,
static int post_video_get_property(xine_video_port_t *port_gen, int property) {
post_video_port_t *port = (post_video_port_t *)port_gen;
int prop;
-
+
if (port->port_lock) pthread_mutex_lock(port->port_lock);
prop = port->original_port->get_property(port->original_port, property);
if (port->port_lock) pthread_mutex_unlock(port->port_lock);
@@ -176,7 +176,7 @@ static int post_video_get_property(xine_video_port_t *port_gen, int property) {
static int post_video_set_property(xine_video_port_t *port_gen, int property, int value) {
post_video_port_t *port = (post_video_port_t *)port_gen;
int val;
-
+
if (port->port_lock) pthread_mutex_lock(port->port_lock);
val = port->original_port->set_property(port->original_port, property, value);
if (port->port_lock) pthread_mutex_unlock(port->port_lock);
@@ -191,23 +191,23 @@ static int post_video_rewire(xine_post_out_t *output_gen, void *data) {
post_plugin_t *this = output->post;
int64_t img_duration;
int width, height;
-
+
if (!new_port)
return 0;
-
+
this->running_ticket->lock_port_rewiring(this->running_ticket, -1);
this->running_ticket->revoke(this->running_ticket, 1);
-
+
if (input_port->original_port->status(input_port->original_port, input_port->stream,
&width, &height, &img_duration)) {
(new_port->open) (new_port, input_port->stream);
input_port->original_port->close(input_port->original_port, input_port->stream);
}
input_port->original_port = new_port;
-
+
this->running_ticket->issue(this->running_ticket, 1);
this->running_ticket->unlock_port_rewiring(this->running_ticket);
-
+
return 1;
}
@@ -215,10 +215,10 @@ static int post_video_rewire(xine_post_out_t *output_gen, void *data) {
post_video_port_t *_x_post_intercept_video_port(post_plugin_t *post, xine_video_port_t *original,
post_in_t **input, post_out_t **output) {
post_video_port_t *port = calloc(1, sizeof(post_video_port_t));
-
+
if (!port)
return NULL;
-
+
port->new_port.get_capabilities = post_video_get_capabilities;
port->new_port.open = post_video_open;
port->new_port.get_frame = post_video_get_frame;
@@ -233,15 +233,15 @@ post_video_port_t *_x_post_intercept_video_port(post_plugin_t *post, xine_video_
port->new_port.get_property = post_video_get_property;
port->new_port.set_property = post_video_set_property;
port->new_port.driver = original->driver;
-
+
port->original_port = original;
port->new_frame = &port->frame_storage;
port->new_manager = &port->manager_storage;
port->post = post;
-
+
pthread_mutex_init(&port->usage_lock, NULL);
pthread_mutex_init(&port->free_frames_lock, NULL);
-
+
if (input) {
*input = calloc(1, sizeof(post_in_t));
if (!*input) return port;
@@ -251,7 +251,7 @@ post_video_port_t *_x_post_intercept_video_port(post_plugin_t *post, xine_video_
(*input)->post = post;
xine_list_push_back(post->input, *input);
}
-
+
if (output) {
*output = calloc(1, sizeof(post_out_t));
if (!*output) return port;
@@ -263,7 +263,7 @@ post_video_port_t *_x_post_intercept_video_port(post_plugin_t *post, xine_video_
(*output)->user_data = port;
xine_list_push_back(post->output, *output);
}
-
+
return port;
}
@@ -271,7 +271,7 @@ post_video_port_t *_x_post_intercept_video_port(post_plugin_t *post, xine_video_
/* dummy intercept functions for frames */
static void post_frame_free(vo_frame_t *vo_img) {
post_video_port_t *port = _x_post_video_frame_to_port(vo_img);
-
+
if (port->frame_lock) pthread_mutex_lock(port->frame_lock);
if (--vo_img->lock_counter == 0) {
/* this frame is free */
@@ -290,7 +290,7 @@ static void post_frame_free(vo_frame_t *vo_img) {
static void post_frame_proc_slice(vo_frame_t *vo_img, uint8_t **src) {
post_video_port_t *port = _x_post_video_frame_to_port(vo_img);
-
+
if (port->frame_lock) pthread_mutex_lock(port->frame_lock);
_x_post_frame_copy_down(vo_img, vo_img->next);
vo_img->next->proc_slice(vo_img->next, src);
@@ -300,7 +300,7 @@ static void post_frame_proc_slice(vo_frame_t *vo_img, uint8_t **src) {
static void post_frame_proc_frame(vo_frame_t *vo_img) {
post_video_port_t *port = _x_post_video_frame_to_port(vo_img);
-
+
if (port->frame_lock) pthread_mutex_lock(port->frame_lock);
_x_post_frame_copy_down(vo_img, vo_img->next);
vo_img->next->proc_frame(vo_img->next);
@@ -310,7 +310,7 @@ static void post_frame_proc_frame(vo_frame_t *vo_img) {
static void post_frame_field(vo_frame_t *vo_img, int which_field) {
post_video_port_t *port = _x_post_video_frame_to_port(vo_img);
-
+
if (port->frame_lock) pthread_mutex_lock(port->frame_lock);
_x_post_frame_copy_down(vo_img, vo_img->next);
vo_img->next->field(vo_img->next, which_field);
@@ -321,7 +321,7 @@ static void post_frame_field(vo_frame_t *vo_img, int which_field) {
static int post_frame_draw(vo_frame_t *vo_img, xine_stream_t *stream) {
post_video_port_t *port = _x_post_video_frame_to_port(vo_img);
int skip;
-
+
if (port->frame_lock) pthread_mutex_lock(port->frame_lock);
_x_post_frame_copy_down(vo_img, vo_img->next);
skip = vo_img->next->draw(vo_img->next, stream);
@@ -332,7 +332,7 @@ static int post_frame_draw(vo_frame_t *vo_img, xine_stream_t *stream) {
static void post_frame_lock(vo_frame_t *vo_img) {
post_video_port_t *port = _x_post_video_frame_to_port(vo_img);
-
+
if (port->frame_lock) pthread_mutex_lock(port->frame_lock);
_x_post_frame_copy_down(vo_img, vo_img->next);
vo_img->lock_counter++;
@@ -343,7 +343,7 @@ static void post_frame_lock(vo_frame_t *vo_img) {
static void post_frame_dispose(vo_frame_t *vo_img) {
post_video_port_t *port = _x_post_video_frame_to_port(vo_img);
-
+
if (port->frame_lock) pthread_mutex_lock(port->frame_lock);
vo_img = _x_post_restore_video_frame(vo_img, port);
vo_img->dispose(vo_img);
@@ -354,7 +354,7 @@ static void post_frame_dispose(vo_frame_t *vo_img) {
vo_frame_t *_x_post_intercept_video_frame(vo_frame_t *frame, post_video_port_t *port) {
vo_frame_t *new_frame;
-
+
/* get a free frame slot */
pthread_mutex_lock(&port->free_frames_lock);
if (port->free_frame_slots) {
@@ -364,14 +364,14 @@ vo_frame_t *_x_post_intercept_video_frame(vo_frame_t *frame, post_video_port_t *
new_frame = calloc(1, sizeof(vo_frame_t));
}
pthread_mutex_unlock(&port->free_frames_lock);
-
+
/* make a copy and attach the original */
xine_fast_memcpy(new_frame, frame, sizeof(vo_frame_t));
new_frame->next = frame;
if (new_frame->stream)
_x_refcounter_inc(new_frame->stream->refcounter);
-
+
/* modify the frame with the intercept functions */
new_frame->port = &port->new_port;
new_frame->proc_frame =
@@ -398,17 +398,17 @@ vo_frame_t *_x_post_intercept_video_frame(vo_frame_t *frame, post_video_port_t *
if (frame->proc_slice && !new_frame->proc_slice)
new_frame->proc_slice = post_frame_proc_slice;
}
-
+
return new_frame;
}
vo_frame_t *_x_post_restore_video_frame(vo_frame_t *frame, post_video_port_t *port) {
/* the first attched context is the original frame */
vo_frame_t *original = frame->next;
-
+
/* propagate any changes */
_x_post_frame_copy_down(frame, original);
-
+
if (frame->stream)
_x_refcounter_dec(frame->stream->refcounter);
@@ -417,7 +417,7 @@ vo_frame_t *_x_post_restore_video_frame(vo_frame_t *frame, post_video_port_t *po
frame->next = port->free_frame_slots;
port->free_frame_slots = frame;
pthread_mutex_unlock(&port->free_frames_lock);
-
+
return original;
}
@@ -458,7 +458,7 @@ void _x_post_frame_copy_up(vo_frame_t *to, vo_frame_t *from) {
to->vpts = from->vpts;
to->duration = from->duration;
to->stream = from->stream;
-
+
if (to->extra_info != from->extra_info)
_x_extra_info_merge(to->extra_info, from->extra_info);
}
@@ -474,14 +474,14 @@ void _x_post_frame_u_turn(vo_frame_t *frame, xine_stream_t *stream) {
if (stream) {
_x_extra_info_merge(frame->extra_info, stream->video_decoder_extra_info);
stream->metronom->got_video_frame(stream->metronom, frame);
- }
+ }
}
/* dummy intercept functions that just pass the call on to the original overlay manager */
static void post_overlay_init(video_overlay_manager_t *ovl_gen) {
post_video_port_t *port = _x_post_ovl_manager_to_port(ovl_gen);
-
+
if (port->manager_lock) pthread_mutex_lock(port->manager_lock);
port->original_manager->init(port->original_manager);
if (port->manager_lock) pthread_mutex_unlock(port->manager_lock);
@@ -489,7 +489,7 @@ static void post_overlay_init(video_overlay_manager_t *ovl_gen) {
static void post_overlay_dispose(video_overlay_manager_t *ovl_gen) {
post_video_port_t *port = _x_post_ovl_manager_to_port(ovl_gen);
-
+
if (port->manager_lock) pthread_mutex_lock(port->manager_lock);
port->original_manager->dispose(port->original_manager);
if (port->manager_lock) pthread_mutex_unlock(port->manager_lock);
@@ -498,7 +498,7 @@ static void post_overlay_dispose(video_overlay_manager_t *ovl_gen) {
static int32_t post_overlay_get_handle(video_overlay_manager_t *ovl_gen, int object_type) {
post_video_port_t *port = _x_post_ovl_manager_to_port(ovl_gen);
int32_t handle;
-
+
if (port->manager_lock) pthread_mutex_lock(port->manager_lock);
handle = port->original_manager->get_handle(port->original_manager, object_type);
if (port->manager_lock) pthread_mutex_unlock(port->manager_lock);
@@ -507,7 +507,7 @@ static int32_t post_overlay_get_handle(video_overlay_manager_t *ovl_gen, int obj
static void post_overlay_free_handle(video_overlay_manager_t *ovl_gen, int32_t handle) {
post_video_port_t *port = _x_post_ovl_manager_to_port(ovl_gen);
-
+
if (port->manager_lock) pthread_mutex_lock(port->manager_lock);
port->original_manager->free_handle(port->original_manager, handle);
if (port->manager_lock) pthread_mutex_unlock(port->manager_lock);
@@ -516,7 +516,7 @@ static void post_overlay_free_handle(video_overlay_manager_t *ovl_gen, int32_t h
static int32_t post_overlay_add_event(video_overlay_manager_t *ovl_gen, void *event) {
post_video_port_t *port = _x_post_ovl_manager_to_port(ovl_gen);
int32_t result;
-
+
if (port->manager_lock) pthread_mutex_lock(port->manager_lock);
result = port->original_manager->add_event(port->original_manager, event);
if (port->manager_lock) pthread_mutex_unlock(port->manager_lock);
@@ -525,7 +525,7 @@ static int32_t post_overlay_add_event(video_overlay_manager_t *ovl_gen, void *ev
static void post_overlay_flush_events(video_overlay_manager_t *ovl_gen) {
post_video_port_t *port = _x_post_ovl_manager_to_port(ovl_gen);
-
+
if (port->manager_lock) pthread_mutex_lock(port->manager_lock);
port->original_manager->flush_events(port->original_manager);
if (port->manager_lock) pthread_mutex_unlock(port->manager_lock);
@@ -534,17 +534,17 @@ static void post_overlay_flush_events(video_overlay_manager_t *ovl_gen) {
static int post_overlay_redraw_needed(video_overlay_manager_t *ovl_gen, int64_t vpts) {
post_video_port_t *port = _x_post_ovl_manager_to_port(ovl_gen);
int redraw;
-
+
if (port->manager_lock) pthread_mutex_lock(port->manager_lock);
redraw = port->original_manager->redraw_needed(port->original_manager, vpts);
if (port->manager_lock) pthread_mutex_unlock(port->manager_lock);
return redraw;
}
-static void post_overlay_multiple_overlay_blend(video_overlay_manager_t *ovl_gen, int64_t vpts,
+static void post_overlay_multiple_overlay_blend(video_overlay_manager_t *ovl_gen, int64_t vpts,
vo_driver_t *output, vo_frame_t *vo_img, int enabled) {
post_video_port_t *port = _x_post_ovl_manager_to_port(ovl_gen);
-
+
if (port->manager_lock) pthread_mutex_lock(port->manager_lock);
port->original_manager->multiple_overlay_blend(port->original_manager, vpts, output, vo_img, enabled);
if (port->manager_lock) pthread_mutex_unlock(port->manager_lock);
@@ -568,7 +568,7 @@ void _x_post_intercept_overlay_manager(video_overlay_manager_t *original, post_v
port->new_manager->redraw_needed = post_overlay_redraw_needed;
if (!port->new_manager->multiple_overlay_blend)
port->new_manager->multiple_overlay_blend = post_overlay_multiple_overlay_blend;
-
+
port->original_manager = original;
}
@@ -577,7 +577,7 @@ void _x_post_intercept_overlay_manager(video_overlay_manager_t *original, post_v
static uint32_t post_audio_get_capabilities(xine_audio_port_t *port_gen) {
post_audio_port_t *port = (post_audio_port_t *)port_gen;
uint32_t caps;
-
+
if (port->port_lock) pthread_mutex_lock(port->port_lock);
caps = port->original_port->get_capabilities(port->original_port);
if (port->port_lock) pthread_mutex_unlock(port->port_lock);
@@ -587,7 +587,7 @@ static uint32_t post_audio_get_capabilities(xine_audio_port_t *port_gen) {
static int post_audio_get_property(xine_audio_port_t *port_gen, int property) {
post_audio_port_t *port = (post_audio_port_t *)port_gen;
int prop;
-
+
if (port->port_lock) pthread_mutex_lock(port->port_lock);
prop = port->original_port->get_property(port->original_port, property);
if (port->port_lock) pthread_mutex_unlock(port->port_lock);
@@ -597,7 +597,7 @@ static int post_audio_get_property(xine_audio_port_t *port_gen, int property) {
static int post_audio_set_property(xine_audio_port_t *port_gen, int property, int value) {
post_audio_port_t *port = (post_audio_port_t *)port_gen;
int val;
-
+
if (port->port_lock) pthread_mutex_lock(port->port_lock);
val = port->original_port->set_property(port->original_port, property, value);
if (port->port_lock) pthread_mutex_unlock(port->port_lock);
@@ -608,7 +608,7 @@ static int post_audio_open(xine_audio_port_t *port_gen, xine_stream_t *stream,
uint32_t bits, uint32_t rate, int mode) {
post_audio_port_t *port = (post_audio_port_t *)port_gen;
int result;
-
+
_x_post_rewire(port->post);
_x_post_inc_usage(port);
if (port->port_lock) pthread_mutex_lock(port->port_lock);
@@ -624,7 +624,7 @@ static int post_audio_open(xine_audio_port_t *port_gen, xine_stream_t *stream,
static audio_buffer_t *post_audio_get_buffer(xine_audio_port_t *port_gen) {
post_audio_port_t *port = (post_audio_port_t *)port_gen;
audio_buffer_t *buf;
-
+
_x_post_rewire(port->post);
if (port->port_lock) pthread_mutex_lock(port->port_lock);
buf = port->original_port->get_buffer(port->original_port);
@@ -635,15 +635,15 @@ static audio_buffer_t *post_audio_get_buffer(xine_audio_port_t *port_gen) {
static void post_audio_put_buffer(xine_audio_port_t *port_gen, audio_buffer_t *buf,
xine_stream_t *stream) {
post_audio_port_t *port = (post_audio_port_t *)port_gen;
-
+
if (port->port_lock) pthread_mutex_lock(port->port_lock);
port->original_port->put_buffer(port->original_port, buf, stream);
if (port->port_lock) pthread_mutex_unlock(port->port_lock);
}
-
+
static void post_audio_close(xine_audio_port_t *port_gen, xine_stream_t *stream) {
post_audio_port_t *port = (post_audio_port_t *)port_gen;
-
+
if (port->port_lock) pthread_mutex_lock(port->port_lock);
port->original_port->close(port->original_port, stream);
if (port->port_lock) pthread_mutex_unlock(port->port_lock);
@@ -653,7 +653,7 @@ static void post_audio_close(xine_audio_port_t *port_gen, xine_stream_t *stream)
static void post_audio_exit(xine_audio_port_t *port_gen) {
post_audio_port_t *port = (post_audio_port_t *)port_gen;
-
+
if (port->port_lock) pthread_mutex_lock(port->port_lock);
port->original_port->exit(port->original_port);
if (port->port_lock) pthread_mutex_unlock(port->port_lock);
@@ -677,7 +677,7 @@ static int post_audio_control(xine_audio_port_t *port_gen, int cmd, ...) {
static void post_audio_flush(xine_audio_port_t *port_gen) {
post_audio_port_t *port = (post_audio_port_t *)port_gen;
-
+
if (port->port_lock) pthread_mutex_lock(port->port_lock);
port->original_port->flush(port->original_port);
if (port->port_lock) pthread_mutex_unlock(port->port_lock);
@@ -687,7 +687,7 @@ static int post_audio_status(xine_audio_port_t *port_gen, xine_stream_t *stream,
uint32_t *bits, uint32_t *rate, int *mode) {
post_audio_port_t *port = (post_audio_port_t *)port_gen;
int result;
-
+
if (port->port_lock) pthread_mutex_lock(port->port_lock);
result = port->original_port->status(port->original_port, stream, bits, rate, mode);
*bits = port->bits;
@@ -705,33 +705,33 @@ static int post_audio_rewire(xine_post_out_t *output_gen, void *data) {
post_plugin_t *this = output->post;
uint32_t bits, rate;
int mode;
-
+
if (!new_port)
return 0;
-
+
this->running_ticket->lock_port_rewiring(this->running_ticket, -1);
this->running_ticket->revoke(this->running_ticket, 1);
-
+
if (input_port->original_port->status(input_port->original_port, input_port->stream,
&bits, &rate, &mode)) {
(new_port->open) (new_port, input_port->stream, bits, rate, mode);
input_port->original_port->close(input_port->original_port, input_port->stream);
}
input_port->original_port = new_port;
-
+
this->running_ticket->issue(this->running_ticket, 1);
this->running_ticket->unlock_port_rewiring(this->running_ticket);
-
+
return 1;
}
post_audio_port_t *_x_post_intercept_audio_port(post_plugin_t *post, xine_audio_port_t *original,
post_in_t **input, post_out_t **output) {
post_audio_port_t *port = calloc(1, sizeof(post_audio_port_t));
-
+
if (!port)
return NULL;
-
+
port->new_port.open = post_audio_open;
port->new_port.get_buffer = post_audio_get_buffer;
port->new_port.put_buffer = post_audio_put_buffer;
@@ -743,12 +743,12 @@ post_audio_port_t *_x_post_intercept_audio_port(post_plugin_t *post, xine_audio_
port->new_port.control = post_audio_control;
port->new_port.flush = post_audio_flush;
port->new_port.status = post_audio_status;
-
+
port->original_port = original;
port->post = post;
-
+
pthread_mutex_init(&port->usage_lock, NULL);
-
+
if (input) {
*input = calloc(1, sizeof(post_in_t));
if (!*input) return port;
@@ -758,7 +758,7 @@ post_audio_port_t *_x_post_intercept_audio_port(post_plugin_t *post, xine_audio_
(*input)->post = post;
xine_list_push_back(post->input, *input);
}
-
+
if (output) {
*output = calloc(1, sizeof(post_out_t));
if (!*output) return port;
@@ -770,14 +770,14 @@ post_audio_port_t *_x_post_intercept_audio_port(post_plugin_t *post, xine_audio_
(*output)->user_data = port;
xine_list_push_back(post->output, *output);
}
-
+
return port;
}
int _x_post_dispose(post_plugin_t *this) {
int i, in_use = 0;
-
+
/* acquire all usage locks */
for (i = 0; this->xine_post.audio_input[i]; i++) {
post_audio_port_t *port = (post_audio_port_t *)this->xine_post.audio_input[i];
@@ -787,11 +787,11 @@ int _x_post_dispose(post_plugin_t *this) {
post_video_port_t *port = (post_video_port_t *)this->xine_post.video_input[i];
pthread_mutex_lock(&port->usage_lock);
}
-
+
/* we can set this witout harm, because it is always checked with
* usage lock held */
this->dispose_pending = 1;
-
+
/* check counters */
for (i = 0; this->xine_post.audio_input[i]; i++) {
post_audio_port_t *port = (post_audio_port_t *)this->xine_post.audio_input[i];
@@ -807,7 +807,7 @@ int _x_post_dispose(post_plugin_t *this) {
break;
}
}
-
+
/* free the locks */
for (i = 0; this->xine_post.audio_input[i]; i++) {
post_audio_port_t *port = (post_audio_port_t *)this->xine_post.audio_input[i];
@@ -817,20 +817,20 @@ int _x_post_dispose(post_plugin_t *this) {
post_video_port_t *port = (post_video_port_t *)this->xine_post.video_input[i];
pthread_mutex_unlock(&port->usage_lock);
}
-
+
if (!in_use) {
xine_post_in_t *input;
xine_post_out_t *output;
xine_list_iterator_t ite;
-
+
/* we can really dispose it */
-
+
free(this->xine_post.audio_input);
free(this->xine_post.video_input);
/* these were allocated in the plugin loader */
free(this->input_ids);
free(this->output_ids);
-
+
for (ite = xine_list_front(this->input); ite;
ite = xine_list_next(this->input, ite)) {
input = xine_list_get_value(this->input, ite);
@@ -839,16 +839,16 @@ int _x_post_dispose(post_plugin_t *this) {
{
post_video_port_t *port = (post_video_port_t *)input->data;
vo_frame_t *first, *second;
-
+
pthread_mutex_destroy(&port->usage_lock);
pthread_mutex_destroy(&port->free_frames_lock);
-
+
second = NULL;
for (first = port->free_frame_slots; first;
second = first, first = first->next)
free(second);
free(second);
-
+
free(port);
free(input);
}
@@ -856,9 +856,9 @@ int _x_post_dispose(post_plugin_t *this) {
case XINE_POST_DATA_AUDIO:
{
post_audio_port_t *port = (post_audio_port_t *)input->data;
-
+
pthread_mutex_destroy(&port->usage_lock);
-
+
free(port);
free(input);
}
@@ -881,18 +881,18 @@ int _x_post_dispose(post_plugin_t *this) {
break;
}
}
-
+
xine_list_delete(this->input);
xine_list_delete(this->output);
-
+
/* since the plugin loader does not know, when the plugin gets disposed,
* we have to handle the reference counter here */
pthread_mutex_lock(&this->xine->plugin_catalog->lock);
this->node->ref--;
pthread_mutex_unlock(&this->xine->plugin_catalog->lock);
-
+
return 1;
}
-
+
return 0;
}
diff --git a/src/xine-engine/refcounter.c b/src/xine-engine/refcounter.c
index 2c1b5a786..216693e88 100644
--- a/src/xine-engine/refcounter.c
+++ b/src/xine-engine/refcounter.c
@@ -1,18 +1,18 @@
/*
* Copyright (C) 2000-2004 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -27,7 +27,7 @@
/*
#define LOG
*/
-
+
#include <xine/xine_internal.h>
#include <xine/refcounter.h>
@@ -53,7 +53,7 @@ int _x_refcounter_inc(refcounter_t *refcounter)
_x_abort();
res = ++refcounter->count;
pthread_mutex_unlock(&refcounter->lock);
-
+
return res;
}
@@ -68,7 +68,7 @@ int _x_refcounter_dec(refcounter_t *refcounter)
lprintf("calling destructor of object %p\n", refcounter->object);
refcounter->destructor(refcounter->object);
}
-
+
return res;
}
diff --git a/src/xine-engine/resample.c b/src/xine-engine/resample.c
index f907c965e..c354bbd68 100644
--- a/src/xine-engine/resample.c
+++ b/src/xine-engine/resample.c
@@ -1,18 +1,18 @@
-/*
+/*
* Copyright (C) 2000-2003 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -30,7 +30,7 @@
/* contributed by paul flinders */
void _x_audio_out_resample_mono(int16_t *last_sample,
- int16_t* input_samples, uint32_t in_samples,
+ int16_t* input_samples, uint32_t in_samples,
int16_t* output_samples, uint32_t out_samples)
{
unsigned int osample;
@@ -54,11 +54,11 @@ void _x_audio_out_resample_mono(int16_t *last_sample,
int s2;
int16_t os;
uint32_t t = isample&0xffff;
-
+
/* don't "optimize" the (isample >> 16)*2 to (isample >> 15) */
s1 = input_samples[(isample >> 16)];
s2 = input_samples[(isample >> 16)+1];
-
+
os = (s1 * (0x10000-t)+ s2 * t) >> 16;
output_samples[osample] = os;
@@ -68,7 +68,7 @@ void _x_audio_out_resample_mono(int16_t *last_sample,
}
void _x_audio_out_resample_stereo(int16_t *last_sample,
- int16_t* input_samples, uint32_t in_samples,
+ int16_t* input_samples, uint32_t in_samples,
int16_t* output_samples, uint32_t out_samples)
{
unsigned int osample;
@@ -93,17 +93,17 @@ void _x_audio_out_resample_stereo(int16_t *last_sample,
int s2;
int16_t os;
uint32_t t = isample&0xffff;
-
+
/* don't "optimize" the (isample >> 16)*2 to (isample >> 15) */
s1 = input_samples[(isample >> 16)*2];
s2 = input_samples[(isample >> 16)*2+2];
-
+
os = (s1 * (0x10000-t)+ s2 * t) >> 16;
output_samples[osample * 2] = os;
s1 = input_samples[(isample >> 16)*2+1];
s2 = input_samples[(isample >> 16)*2+3];
-
+
os = (s1 * (0x10000-t)+ s2 * t) >> 16;
output_samples[(osample * 2 )+1] = os;
isample += istep;
@@ -113,7 +113,7 @@ void _x_audio_out_resample_stereo(int16_t *last_sample,
void _x_audio_out_resample_4channel(int16_t *last_sample,
- int16_t* input_samples, uint32_t in_samples,
+ int16_t* input_samples, uint32_t in_samples,
int16_t* output_samples, uint32_t out_samples)
{
unsigned int osample;
@@ -140,29 +140,29 @@ void _x_audio_out_resample_4channel(int16_t *last_sample,
int s2;
int16_t os;
uint32_t t = isample&0xffff;
-
+
/* don't "optimize" the (isample >> 16)*2 to (isample >> 15) */
s1 = input_samples[(isample >> 16)*4];
s2 = input_samples[(isample >> 16)*4+4];
-
+
os = (s1 * (0x10000-t)+ s2 * t) >> 16;
output_samples[osample * 4] = os;
s1 = input_samples[(isample >> 16)*4+1];
s2 = input_samples[(isample >> 16)*4+5];
-
+
os = (s1 * (0x10000-t)+ s2 * t) >> 16;
output_samples[(osample * 4 )+1] = os;
s1 = input_samples[(isample >> 16)*4+2];
s2 = input_samples[(isample >> 16)*4+6];
-
+
os = (s1 * (0x10000-t)+ s2 * t) >> 16;
output_samples[(osample * 4 )+2] = os;
s1 = input_samples[(isample >> 16)*4+3];
s2 = input_samples[(isample >> 16)*4+7];
-
+
os = (s1 * (0x10000-t)+ s2 * t) >> 16;
output_samples[(osample * 4 )+3] = os;
@@ -173,7 +173,7 @@ void _x_audio_out_resample_4channel(int16_t *last_sample,
void _x_audio_out_resample_5channel(int16_t *last_sample,
- int16_t* input_samples, uint32_t in_samples,
+ int16_t* input_samples, uint32_t in_samples,
int16_t* output_samples, uint32_t out_samples)
{
unsigned int osample;
@@ -201,35 +201,35 @@ void _x_audio_out_resample_5channel(int16_t *last_sample,
int s2;
int16_t os;
uint32_t t = isample&0xffff;
-
+
/* don't "optimize" the (isample >> 16)*2 to (isample >> 15) */
s1 = input_samples[(isample >> 16)*5];
s2 = input_samples[(isample >> 16)*5+5];
-
+
os = (s1 * (0x10000-t)+ s2 * t) >> 16;
output_samples[osample * 5] = os;
s1 = input_samples[(isample >> 16)*5+1];
s2 = input_samples[(isample >> 16)*5+6];
-
+
os = (s1 * (0x10000-t)+ s2 * t) >> 16;
output_samples[(osample * 5 )+1] = os;
s1 = input_samples[(isample >> 16)*5+2];
s2 = input_samples[(isample >> 16)*5+7];
-
+
os = (s1 * (0x10000-t)+ s2 * t) >> 16;
output_samples[(osample * 5 )+2] = os;
s1 = input_samples[(isample >> 16)*5+3];
s2 = input_samples[(isample >> 16)*5+8];
-
+
os = (s1 * (0x10000-t)+ s2 * t) >> 16;
output_samples[(osample * 5 )+3] = os;
s1 = input_samples[(isample >> 16)*5+4];
s2 = input_samples[(isample >> 16)*5+9];
-
+
os = (s1 * (0x10000-t)+ s2 * t) >> 16;
output_samples[(osample * 5 )+4] = os;
@@ -240,7 +240,7 @@ void _x_audio_out_resample_5channel(int16_t *last_sample,
void _x_audio_out_resample_6channel(int16_t *last_sample,
- int16_t* input_samples, uint32_t in_samples,
+ int16_t* input_samples, uint32_t in_samples,
int16_t* output_samples, uint32_t out_samples)
{
unsigned int osample;
@@ -269,41 +269,41 @@ void _x_audio_out_resample_6channel(int16_t *last_sample,
int s2;
int16_t os;
uint32_t t = isample&0xffff;
-
+
/* don't "optimize" the (isample >> 16)*2 to (isample >> 15) */
s1 = input_samples[(isample >> 16)*6];
s2 = input_samples[(isample >> 16)*6+6];
-
+
os = (s1 * (0x10000-t)+ s2 * t) >> 16;
output_samples[osample * 6] = os;
s1 = input_samples[(isample >> 16)*6+1];
s2 = input_samples[(isample >> 16)*6+7];
-
+
os = (s1 * (0x10000-t)+ s2 * t) >> 16;
output_samples[(osample * 6 )+1] = os;
s1 = input_samples[(isample >> 16)*6+2];
s2 = input_samples[(isample >> 16)*6+8];
-
+
os = (s1 * (0x10000-t)+ s2 * t) >> 16;
output_samples[(osample * 6 )+2] = os;
s1 = input_samples[(isample >> 16)*6+3];
s2 = input_samples[(isample >> 16)*6+9];
-
+
os = (s1 * (0x10000-t)+ s2 * t) >> 16;
output_samples[(osample * 6 )+3] = os;
s1 = input_samples[(isample >> 16)*6+4];
s2 = input_samples[(isample >> 16)*6+10];
-
+
os = (s1 * (0x10000-t)+ s2 * t) >> 16;
output_samples[(osample * 6 )+4] = os;
s1 = input_samples[(isample >> 16)*6+5];
s2 = input_samples[(isample >> 16)*6+11];
-
+
os = (s1 * (0x10000-t)+ s2 * t) >> 16;
output_samples[(osample * 6 )+5] = os;
@@ -312,48 +312,48 @@ void _x_audio_out_resample_6channel(int16_t *last_sample,
memcpy (last_sample, &input_samples[in_samples*6-6], 6 * sizeof (last_sample[0]));
}
-void _x_audio_out_resample_8to16(int8_t* input_samples,
+void _x_audio_out_resample_8to16(int8_t* input_samples,
int16_t* output_samples, uint32_t samples)
{
while( samples-- ) {
int16_t os;
-
+
os = *input_samples++;
os = (os - 0x80) << 8;
*output_samples++ = os;
}
}
-void _x_audio_out_resample_16to8(int16_t* input_samples,
+void _x_audio_out_resample_16to8(int16_t* input_samples,
int8_t* output_samples, uint32_t samples)
{
while( samples-- ) {
int16_t os;
-
+
os = *input_samples++;
os = (os >> 8) + 0x80;
*output_samples++ = os;
}
}
-void _x_audio_out_resample_monotostereo(int16_t* input_samples,
+void _x_audio_out_resample_monotostereo(int16_t* input_samples,
int16_t* output_samples, uint32_t frames)
{
while( frames-- ) {
int16_t os;
-
+
os = *input_samples++;
*output_samples++ = os;
*output_samples++ = os;
}
}
-void _x_audio_out_resample_stereotomono(int16_t* input_samples,
+void _x_audio_out_resample_stereotomono(int16_t* input_samples,
int16_t* output_samples, uint32_t frames)
{
while( frames-- ) {
int16_t os;
-
+
os = (*input_samples++)>>1;
os += (*input_samples++)>>1;
*output_samples++ = os;
diff --git a/src/xine-engine/scratch.c b/src/xine-engine/scratch.c
index 02c415e96..a15cd42d1 100644
--- a/src/xine-engine/scratch.c
+++ b/src/xine-engine/scratch.c
@@ -1,18 +1,18 @@
/*
* Copyright (C) 2000-2003 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -84,14 +84,14 @@ static char **scratch_get_content (scratch_buffer_t *this) {
static void scratch_dispose (scratch_buffer_t *this) {
int i;
-
+
pthread_mutex_lock (&this->lock);
for(i = 0; i < this->num_lines; i++ ) {
free(this->ordered[i]);
free(this->lines[i]);
}
-
+
free (this->lines);
free (this->ordered);
diff --git a/src/xine-engine/spu.c b/src/xine-engine/spu.c
index c610a43c9..9bc1de84c 100644
--- a/src/xine-engine/spu.c
+++ b/src/xine-engine/spu.c
@@ -1,18 +1,18 @@
-/*
+/*
* Copyright (C) 2007 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
@@ -46,7 +46,7 @@ void _x_spu_misc_init (xine_t *this)
void _x_spu_get_opacity (xine_t *this, xine_spu_opacity_t *opacity)
{
cfg_entry_t *entry;
-
+
entry = this->config->lookup_entry (this->config, "subtitles.bitmap.black_opacity");
opacity->black = entry ? entry->num_value : BLACK_OPACITY;
entry = this->config->lookup_entry (this->config, "subtitles.bitmap.colour_opacity");
diff --git a/src/xine-engine/video_decoder.c b/src/xine-engine/video_decoder.c
index af22ecdd0..ed2e41ef3 100644
--- a/src/xine-engine/video_decoder.c
+++ b/src/xine-engine/video_decoder.c
@@ -1,18 +1,18 @@
-/*
+/*
* Copyright (C) 2000-2005 the xine project
*
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -46,13 +46,13 @@
static void update_spu_decoder (xine_stream_t *stream, int type) {
int streamtype = (type>>16) & 0xFF;
-
+
if( stream->spu_decoder_streamtype != streamtype ||
!stream->spu_decoder_plugin ) {
-
+
if (stream->spu_decoder_plugin)
_x_free_spu_decoder (stream, stream->spu_decoder_plugin);
-
+
stream->spu_decoder_streamtype = streamtype;
stream->spu_decoder_plugin = _x_get_spu_decoder (stream, streamtype);
@@ -64,27 +64,27 @@ int _x_spu_decoder_sleep(xine_stream_t *stream, int64_t next_spu_vpts)
{
int64_t time, wait;
int thread_vacant = 1;
-
+
/* we wait until one second before the next SPU is due */
next_spu_vpts -= 90000;
-
+
do {
if (next_spu_vpts)
time = stream->xine->clock->get_current_time(stream->xine->clock);
else
time = 0;
-
+
/* wait in pieces of one half second */
if (next_spu_vpts - time < SPU_SLEEP_INTERVAL)
wait = next_spu_vpts - time;
else
wait = SPU_SLEEP_INTERVAL;
-
+
if (wait > 0) xine_usec_sleep(wait * 11);
-
+
if (stream->xine->port_ticket->ticket_revoked)
stream->xine->port_ticket->renew(stream->xine->port_ticket, 0);
-
+
/* never wait, if we share the thread with a video decoder */
thread_vacant = !stream->video_decoder_plugin;
/* we have to return if video out calls for the decoder */
@@ -93,9 +93,9 @@ int _x_spu_decoder_sleep(xine_stream_t *stream, int64_t next_spu_vpts)
/* we have to return if the demuxer needs us to release a buffer */
if (thread_vacant)
thread_vacant = !stream->demux_action_pending;
-
+
} while (wait == SPU_SLEEP_INTERVAL && thread_vacant);
-
+
return thread_vacant;
}
@@ -118,7 +118,7 @@ static void *video_decoder_loop (void *stream_gen) {
*/
nice(-1);
#endif /* WIN32 */
-
+
if (prof_video_decode == -1)
prof_video_decode = xine_profiler_allocate_slot ("video decoder");
if (prof_spu_decode == -1)
@@ -126,15 +126,15 @@ static void *video_decoder_loop (void *stream_gen) {
while (running) {
- lprintf ("getting buffer...\n");
+ lprintf ("getting buffer...\n");
buf = stream->video_fifo->get (stream->video_fifo);
-
+
_x_extra_info_merge( stream->video_decoder_extra_info, buf->extra_info );
stream->video_decoder_extra_info->seek_count = stream->video_seek_count;
-
- lprintf ("got buffer 0x%08x\n", buf->type);
-
+
+ lprintf ("got buffer 0x%08x\n", buf->type);
+
switch (buf->type & 0xffff0000) {
case BUF_CONTROL_HEADERS_DONE:
pthread_mutex_lock (&stream->counter_lock);
@@ -144,34 +144,34 @@ static void *video_decoder_loop (void *stream_gen) {
break;
case BUF_CONTROL_START:
-
+
/* decoder dispose might call port functions */
running_ticket->acquire(running_ticket, 0);
-
+
if (stream->video_decoder_plugin) {
_x_free_video_decoder (stream, stream->video_decoder_plugin);
stream->video_decoder_plugin = NULL;
}
-
+
if (stream->spu_decoder_plugin) {
_x_free_spu_decoder (stream, stream->spu_decoder_plugin);
stream->spu_decoder_plugin = NULL;
stream->spu_track_map_entries = 0;
}
-
+
running_ticket->release(running_ticket, 0);
-
+
if( !(buf->decoder_flags & BUF_FLAG_GAPLESS_SW) )
- stream->metronom->handle_video_discontinuity (stream->metronom,
+ stream->metronom->handle_video_discontinuity (stream->metronom,
DISC_STREAMSTART, 0);
-
+
buftype_unknown = 0;
break;
case BUF_CONTROL_SPU_CHANNEL:
{
xine_event_t ui_event;
-
+
/* We use widescreen spu as the auto selection, because widescreen
* display is common. SPU decoders can choose differently if it suits
* them. */
@@ -180,7 +180,7 @@ static void *video_decoder_loop (void *stream_gen) {
stream->spu_channel_pan_scan = buf->decoder_info[2];
if (stream->spu_channel_user == -1)
stream->spu_channel = stream->spu_channel_auto;
-
+
/* Inform UI of SPU channel changes */
ui_event.type = XINE_EVENT_UI_CHANNELS_CHANGED;
ui_event.data_length = 0;
@@ -190,7 +190,7 @@ static void *video_decoder_loop (void *stream_gen) {
break;
case BUF_CONTROL_END:
-
+
/* flush decoder frames if stream finished naturally (non-user stop) */
if( buf->decoder_flags ) {
running_ticket->acquire(running_ticket, 0);
@@ -211,12 +211,12 @@ static void *video_decoder_loop (void *stream_gen) {
*/
while(1) {
int num_bufs, num_streams;
-
+
running_ticket->acquire(running_ticket, 0);
num_bufs = stream->video_out->get_property(stream->video_out, VO_PROP_BUFS_IN_FIFO);
num_streams = stream->video_out->get_property(stream->video_out, VO_PROP_NUM_STREAMS);
running_ticket->release(running_ticket, 0);
-
+
if( num_bufs > 0 && num_streams == 1 && !stream->early_finish_event &&
stream->master == stream )
xine_usec_sleep (10000);
@@ -230,7 +230,7 @@ static void *video_decoder_loop (void *stream_gen) {
stream->finished_count_video++;
- lprintf ("reached end marker # %d\n",
+ lprintf ("reached end marker # %d\n",
stream->finished_count_video);
pthread_cond_broadcast (&stream->counter_changed);
@@ -247,7 +247,7 @@ static void *video_decoder_loop (void *stream_gen) {
pthread_cond_timedwait (&stream->counter_changed, &stream->counter_lock, &ts);
}
}
-
+
pthread_mutex_unlock (&stream->counter_lock);
/* Wake up xine_play if it's waiting for a frame */
@@ -262,7 +262,7 @@ static void *video_decoder_loop (void *stream_gen) {
case BUF_CONTROL_QUIT:
/* decoder dispose might call port functions */
running_ticket->acquire(running_ticket, 0);
-
+
if (stream->video_decoder_plugin) {
_x_free_video_decoder (stream, stream->video_decoder_plugin);
stream->video_decoder_plugin = NULL;
@@ -298,7 +298,7 @@ static void *video_decoder_loop (void *stream_gen) {
running_ticket->release(running_ticket, 0);
}
break;
-
+
case BUF_CONTROL_DISCONTINUITY:
lprintf ("discontinuity ahead\n");
@@ -310,11 +310,11 @@ static void *video_decoder_loop (void *stream_gen) {
stream->video_decoder_plugin->discontinuity (stream->video_decoder_plugin);
running_ticket->release(running_ticket, 0);
}
-
+
stream->metronom->handle_video_discontinuity (stream->metronom, DISC_RELATIVE, buf->disc_off);
break;
-
+
case BUF_CONTROL_NEWPTS:
lprintf ("new pts %"PRId64"\n", buf->disc_off);
@@ -326,14 +326,14 @@ static void *video_decoder_loop (void *stream_gen) {
stream->video_decoder_plugin->discontinuity (stream->video_decoder_plugin);
running_ticket->release(running_ticket, 0);
}
-
+
if (buf->decoder_flags & BUF_FLAG_SEEK) {
stream->metronom->handle_video_discontinuity (stream->metronom, DISC_STREAMSEEK, buf->disc_off);
} else {
stream->metronom->handle_video_discontinuity (stream->metronom, DISC_ABSOLUTE, buf->disc_off);
- }
+ }
break;
-
+
case BUF_CONTROL_AUDIO_CHANNEL:
{
xine_event_t ui_event;
@@ -346,7 +346,7 @@ static void *video_decoder_loop (void *stream_gen) {
case BUF_CONTROL_NOP:
break;
-
+
default:
if ( (buf->type & 0xFF000000) == BUF_VIDEO_BASE ) {
@@ -355,43 +355,43 @@ static void *video_decoder_loop (void *stream_gen) {
break;
xine_profiler_start_count (prof_video_decode);
-
+
running_ticket->acquire(running_ticket, 0);
-
+
/*
- printf ("video_decoder: got package %d, decoder_info[0]:%d\n",
+ printf ("video_decoder: got package %d, decoder_info[0]:%d\n",
buf, buf->decoder_info[0]);
- */
-
+ */
+
streamtype = (buf->type>>16) & 0xFF;
-
+
if( buf->type != buftype_unknown &&
(stream->video_decoder_streamtype != streamtype ||
!stream->video_decoder_plugin) ) {
-
+
if (stream->video_decoder_plugin) {
_x_free_video_decoder (stream, stream->video_decoder_plugin);
}
-
+
stream->video_decoder_streamtype = streamtype;
stream->video_decoder_plugin = _x_get_video_decoder (stream, streamtype);
-
+
_x_stream_info_set(stream, XINE_STREAM_INFO_VIDEO_HANDLED, (stream->video_decoder_plugin != NULL));
}
if (stream->video_decoder_plugin)
- stream->video_decoder_plugin->decode_data (stream->video_decoder_plugin, buf);
-
- if (buf->type != buftype_unknown &&
+ stream->video_decoder_plugin->decode_data (stream->video_decoder_plugin, buf);
+
+ if (buf->type != buftype_unknown &&
!_x_stream_info_get(stream, XINE_STREAM_INFO_VIDEO_HANDLED)) {
- xine_log (stream->xine, XINE_LOG_MSG,
+ xine_log (stream->xine, XINE_LOG_MSG,
_("video_decoder: no plugin available to handle '%s'\n"), _x_buf_video_name( buf->type ) );
-
+
if( !_x_meta_info_get(stream, XINE_META_INFO_VIDEOCODEC))
_x_meta_info_set_utf8(stream, XINE_META_INFO_VIDEOCODEC, _x_buf_video_name( buf->type ));
-
+
buftype_unknown = buf->type;
-
+
/* fatal error - dispose plugin */
if (stream->video_decoder_plugin) {
_x_free_video_decoder (stream, stream->video_decoder_plugin);
@@ -402,7 +402,7 @@ static void *video_decoder_loop (void *stream_gen) {
if (running_ticket->ticket_revoked)
running_ticket->renew(running_ticket, 0);
running_ticket->release(running_ticket, 0);
-
+
xine_profiler_stop_count (prof_video_decode);
} else if ( (buf->type & 0xFF000000) == BUF_SPU_BASE ) {
@@ -415,15 +415,15 @@ static void *video_decoder_loop (void *stream_gen) {
xine_profiler_start_count (prof_spu_decode);
running_ticket->acquire(running_ticket, 0);
-
+
update_spu_decoder(stream, buf->type);
/* update track map */
i = 0;
- while ( (i<stream->spu_track_map_entries) && (stream->spu_track_map[i]<buf->type) )
+ while ( (i<stream->spu_track_map_entries) && (stream->spu_track_map[i]<buf->type) )
i++;
-
+
if ( (i==stream->spu_track_map_entries)
|| (stream->spu_track_map[i] != buf->type) ) {
xine_event_t ui_event;
@@ -459,15 +459,15 @@ static void *video_decoder_loop (void *stream_gen) {
if (running_ticket->ticket_revoked)
running_ticket->renew(running_ticket, 0);
running_ticket->release(running_ticket, 0);
-
+
xine_profiler_stop_count (prof_spu_decode);
} else if (buf->type != buftype_unknown) {
- xine_log (stream->xine, XINE_LOG_MSG,
+ xine_log (stream->xine, XINE_LOG_MSG,
_("video_decoder: error, unknown buffer type: %08x\n"), buf->type );
buftype_unknown = buf->type;
}
-
+
break;
}
@@ -479,13 +479,13 @@ static void *video_decoder_loop (void *stream_gen) {
}
int _x_video_decoder_init (xine_stream_t *stream) {
-
+
if (stream->video_out == NULL) {
stream->video_fifo = _x_dummy_fifo_buffer_new (5, 8192);
stream->spu_track_map_entries = 0;
return 1;
} else {
-
+
pthread_attr_t pth_attrs;
struct sched_param pth_params;
int err, num_buffers;
@@ -496,7 +496,7 @@ int _x_video_decoder_init (xine_stream_t *stream) {
* We provide buffers of 8k size instead of 2k for demuxers sending
* larger chunks.
*/
-
+
num_buffers = stream->xine->config->register_num (stream->xine->config,
"engine.buffers.video_num_buffers",
500,
@@ -506,15 +506,15 @@ int _x_video_decoder_init (xine_stream_t *stream) {
"mean smoother playback for unreliable inputs, but "
"also increased latency and memory consumption."),
20, NULL, NULL);
-
+
stream->video_fifo = _x_fifo_buffer_new (num_buffers, 8192);
if (stream->video_fifo == NULL) {
xine_log(stream->xine, XINE_LOG_MSG, "video_decoder: can't allocated video fifo\n");
return 0;
}
-
+
stream->spu_track_map_entries = 0;
-
+
pthread_attr_init(&pth_attrs);
pthread_attr_getschedparam(&pth_attrs, &pth_params);
pth_params.sched_priority = sched_get_priority_min(SCHED_OTHER);
@@ -530,7 +530,7 @@ int _x_video_decoder_init (xine_stream_t *stream) {
pthread_attr_destroy(&pth_attrs);
return 0;
}
-
+
pthread_attr_destroy(&pth_attrs);
}
return 1;
@@ -562,7 +562,7 @@ void _x_video_decoder_shutdown (xine_stream_t *stream) {
lprintf ("shutdown...4\n");
}
-
+
stream->video_fifo->dispose (stream->video_fifo);
stream->video_fifo = NULL;
}
diff --git a/src/xine-engine/video_out.c b/src/xine-engine/video_out.c
index ba00d5c21..cc21b441d 100644
--- a/src/xine-engine/video_out.c
+++ b/src/xine-engine/video_out.c
@@ -1,18 +1,18 @@
/*
* Copyright (C) 2000-2004 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -57,10 +57,10 @@
#define FIRST_FRAME_POLL_DELAY 3000
#define FIRST_FRAME_MAX_POLL 10 /* poll n times at most */
-/* experimental optimization: try to allocate frames from free queue
+/* experimental optimization: try to allocate frames from free queue
* in the same format as requested (avoid unnecessary free/alloc in
* vo driver). up to 25% less cpu load using deinterlace with film mode.
- */
+ */
#define EXPERIMENTAL_FRAME_QUEUE_OPTIMIZATION 1
static vo_frame_t * crop_frame( xine_video_port_t *this_gen, vo_frame_t *img );
@@ -77,7 +77,7 @@ typedef struct {
} img_buf_fifo_t;
typedef struct {
-
+
xine_video_port_t vo; /* public part */
vo_driver_t *driver;
@@ -86,7 +86,7 @@ typedef struct {
metronom_clock_t *clock;
xine_list_t *streams;
pthread_mutex_t streams_lock;
-
+
img_buf_fifo_t *free_img_buf_queue;
img_buf_fifo_t *display_img_buf_queue;
@@ -105,7 +105,7 @@ typedef struct {
uint32_t redraw_needed:3;
int discard_frames;
-
+
pthread_t video_thread;
int num_frames_delivered;
@@ -118,7 +118,7 @@ typedef struct {
int warn_threshold_exceeded;
/* pts value when decoder delivered last video frame */
- int64_t last_delivery_pts;
+ int64_t last_delivery_pts;
video_overlay_manager_t *overlay_source;
@@ -218,7 +218,7 @@ static vo_frame_t *vo_remove_from_img_buf_queue_int (img_buf_fifo_t *queue, int
img = img->next;
i++;
}
-
+
if( width && height ) {
if( !img ) {
if( queue->num_buffers == 1 && !blocking && queue->num_buffers_max > 8) {
@@ -266,7 +266,7 @@ static vo_frame_t *vo_remove_from_img_buf_queue_int (img_buf_fifo_t *queue, int
if( img == queue->last )
queue->last = previous;
}
-
+
img->next = NULL;
if (!queue->first) {
queue->last = NULL;
@@ -275,7 +275,7 @@ static vo_frame_t *vo_remove_from_img_buf_queue_int (img_buf_fifo_t *queue, int
queue->num_buffers--;
}
}
-
+
return img;
}
@@ -306,7 +306,7 @@ static vo_frame_t *vo_remove_from_img_buf_queue_nonblock (img_buf_fifo_t *queue,
* functions to maintain lock_counter
*/
static void vo_frame_inc_lock (vo_frame_t *img) {
-
+
pthread_mutex_lock (&img->mutex);
img->lock_counter++;
@@ -315,11 +315,11 @@ static void vo_frame_inc_lock (vo_frame_t *img) {
}
static void vo_frame_dec_lock (vo_frame_t *img) {
-
+
pthread_mutex_lock (&img->mutex);
img->lock_counter--;
- if (!img->lock_counter) {
+ if (!img->lock_counter) {
vos_t *this = (vos_t *) img->port;
if (img->stream)
_x_refcounter_dec(img->stream->refcounter);
@@ -336,11 +336,11 @@ static void vo_frame_driver_proc(vo_frame_t *img)
img->proc_frame(img);
}
if (img->proc_called) return;
-
+
if (img->proc_slice) {
int height = img->height;
uint8_t* src[3];
-
+
switch (img->format) {
case XINE_IMGFMT_YV12:
src[0] = img->base[0];
@@ -365,7 +365,7 @@ static void vo_frame_driver_proc(vo_frame_t *img)
}
/*
- *
+ *
* functions called by video decoder:
*
* get_frame => alloc frame for rendering
@@ -396,7 +396,7 @@ static vo_frame_t *vo_get_frame (xine_video_port_t *this_gen,
/* some decoders report strange ratios */
if (ratio <= 0.0)
ratio = (double)width / (double)height;
-
+
pthread_mutex_lock (&img->mutex);
img->lock_counter = 1;
img->width = width;
@@ -421,11 +421,11 @@ static vo_frame_t *vo_get_frame (xine_video_port_t *this_gen,
/* let driver ensure this image has the right format */
- this->driver->update_frame_format (this->driver, img, width, height,
+ this->driver->update_frame_format (this->driver, img, width, height,
ratio, format, flags);
pthread_mutex_unlock (&img->mutex);
-
+
lprintf ("get_frame (%d x %d) done\n", width, height);
return img;
@@ -442,11 +442,11 @@ static int vo_frame_draw (vo_frame_t *img, xine_stream_t *stream) {
/* handle anonymous streams like NULL for easy checking */
if (stream == XINE_ANON_STREAM) stream = NULL;
-
+
img->stream = stream;
this->current_width = img->width;
this->current_height = img->height;
-
+
if (stream) {
_x_refcounter_inc(stream->refcounter);
_x_extra_info_merge( img->extra_info, stream->video_decoder_extra_info );
@@ -468,13 +468,13 @@ static int vo_frame_draw (vo_frame_t *img, xine_stream_t *stream) {
this->num_frames_delivered++;
diff = pic_vpts - cur_vpts;
-
+
/* avoid division by zero */
if( img->duration <= 0 )
duration = DEFAULT_FRAME_DURATION;
else
duration = img->duration;
-
+
/* Frame dropping slow start:
* The engine starts to drop frames if there are less than frame_drop_limit
* frames in advance. There might be a problem just after a seek because
@@ -500,7 +500,7 @@ static int vo_frame_draw (vo_frame_t *img, xine_stream_t *stream) {
if (this->display_img_buf_queue->num_buffers >= this->frame_drop_limit ||
frames_to_skip < 0)
frames_to_skip = 0;
-
+
/* Do not drop frames immediately, but remember this as suggestion and give
* decoder a further chance to supply frames.
* This avoids unnecessary frame drops in situations where there is only
@@ -518,7 +518,7 @@ static int vo_frame_draw (vo_frame_t *img, xine_stream_t *stream) {
lprintf ("delivery diff : %" PRId64 ", current vpts is %" PRId64 ", %d frames to skip\n",
diff, cur_vpts, frames_to_skip);
-
+
} else {
frames_to_skip = 0;
@@ -531,18 +531,18 @@ static int vo_frame_draw (vo_frame_t *img, xine_stream_t *stream) {
if (!img->bad_frame) {
-
+
int img_already_locked = 0;
xine_list_iterator_t ite;
-
+
/* add cropping requested by frontend */
img->crop_left += this->crop_left;
img->crop_right += this->crop_right;
img->crop_top += this->crop_top;
img->crop_bottom += this->crop_bottom;
-
+
/* perform cropping when vo driver does not support it */
- if( (img->crop_left || img->crop_top ||
+ if( (img->crop_left || img->crop_top ||
img->crop_right || img->crop_bottom) &&
(this->grab_only ||
!(this->driver->get_capabilities (this->driver) & VO_CAP_CROP)) ) {
@@ -559,11 +559,11 @@ static int vo_frame_draw (vo_frame_t *img, xine_stream_t *stream) {
img->crop_bottom = 0;
}
}
-
+
/* do not call proc_*() for frames that will be dropped */
if( !frames_to_skip && !img->proc_called )
vo_frame_driver_proc(img);
-
+
/*
* put frame into FIFO-Buffer
*/
@@ -597,7 +597,7 @@ static int vo_frame_draw (vo_frame_t *img, xine_stream_t *stream) {
if (!img_already_locked)
vo_frame_inc_lock( img );
vo_append_to_img_buf_queue (this->display_img_buf_queue, img);
-
+
} else {
lprintf ("bad_frame\n");
@@ -629,7 +629,7 @@ static int vo_frame_draw (vo_frame_t *img, xine_stream_t *stream) {
/* make sure threshold has being consistently exceeded - 5 times in a row
* (that is, this is not just a small burst of dropped frames).
*/
- send_event = (this->warn_threshold_exceeded == 5 &&
+ send_event = (this->warn_threshold_exceeded == 5 &&
!this->warn_threshold_event_sent);
this->warn_threshold_event_sent = send_event;
@@ -638,7 +638,7 @@ static int vo_frame_draw (vo_frame_t *img, xine_stream_t *stream) {
ite = xine_list_next(this->streams, ite)) {
stream = xine_list_get_value(this->streams, ite);
if (stream == XINE_ANON_STREAM) continue;
- _x_stream_info_set(stream, XINE_STREAM_INFO_SKIPPED_FRAMES,
+ _x_stream_info_set(stream, XINE_STREAM_INFO_SKIPPED_FRAMES,
1000 * this->num_frames_skipped / this->num_frames_delivered);
_x_stream_info_set(stream, XINE_STREAM_INFO_DISCARDED_FRAMES,
1000 * this->num_frames_discarded / this->num_frames_delivered);
@@ -666,8 +666,8 @@ static int vo_frame_draw (vo_frame_t *img, xine_stream_t *stream) {
if( this->num_frames_skipped || this->num_frames_discarded ) {
xine_log(this->xine, XINE_LOG_MSG,
- _("%d frames delivered, %d frames skipped, %d frames discarded\n"),
- this->num_frames_delivered,
+ _("%d frames delivered, %d frames skipped, %d frames discarded\n"),
+ this->num_frames_delivered,
this->num_frames_skipped, this->num_frames_discarded);
}
@@ -675,7 +675,7 @@ static int vo_frame_draw (vo_frame_t *img, xine_stream_t *stream) {
this->num_frames_discarded = 0;
this->num_frames_skipped = 0;
}
-
+
return frames_to_skip;
}
@@ -685,9 +685,9 @@ static int vo_frame_draw (vo_frame_t *img, xine_stream_t *stream) {
*
*/
-/* duplicate_frame(): this function is used to keep playing frames
- * while video is still or player paused.
- *
+/* duplicate_frame(): this function is used to keep playing frames
+ * while video is still or player paused.
+ *
* frame allocation inside vo loop is dangerous:
* we must never wait for a free frame -> deadlock condition.
* to avoid deadlocks we don't use vo_remove_from_img_buf_queue()
@@ -712,7 +712,7 @@ static vo_frame_t * duplicate_frame( vos_t *this, vo_frame_t *img ) {
else {
this->free_img_buf_queue->num_buffers--;
}
-
+
pthread_mutex_lock (&dupl->mutex);
dupl->lock_counter = 1;
dupl->width = img->width;
@@ -729,16 +729,16 @@ static vo_frame_t * duplicate_frame( vos_t *this, vo_frame_t *img ) {
dupl->crop_bottom = img->crop_bottom;
dupl->overlay_offset_x = img->overlay_offset_x;
dupl->overlay_offset_y = img->overlay_offset_y;
-
- this->driver->update_frame_format (this->driver, dupl, dupl->width, dupl->height,
+
+ this->driver->update_frame_format (this->driver, dupl, dupl->width, dupl->height,
dupl->ratio, dupl->format, dupl->flags);
pthread_mutex_unlock (&dupl->mutex);
-
+
if (dupl->proc_duplicate_frame_data) {
dupl->proc_duplicate_frame_data(dupl,img);
} else {
-
+
switch (img->format) {
case XINE_IMGFMT_YV12:
yv12_to_yv12(
@@ -764,8 +764,8 @@ static vo_frame_t * duplicate_frame( vos_t *this, vo_frame_t *img ) {
img->width, img->height);
break;
}
- }
-
+ }
+
dupl->bad_frame = 0;
dupl->pts = 0;
dupl->vpts = 0;
@@ -776,10 +776,10 @@ static vo_frame_t * duplicate_frame( vos_t *this, vo_frame_t *img ) {
dupl->stream = NULL;
memcpy( dupl->extra_info, img->extra_info, sizeof(extra_info_t) );
-
+
/* delay frame processing for now, we might not even need it (eg. frame will be discarded) */
/* vo_frame_driver_proc(dupl); */
-
+
return dupl;
}
@@ -792,7 +792,7 @@ static void expire_frames (vos_t *this, int64_t cur_vpts) {
int duration;
pthread_mutex_lock(&this->display_img_buf_queue->mutex);
-
+
img = this->display_img_buf_queue->first;
/*
@@ -809,7 +809,7 @@ static void expire_frames (vos_t *this, int64_t cur_vpts) {
/*
* before displaying the first frame without
- * "metronom prebuffering" we should make sure it's
+ * "metronom prebuffering" we should make sure it's
* not used as a decoder reference anymore.
*/
if( img->lock_counter == 1 ) {
@@ -831,21 +831,21 @@ static void expire_frames (vos_t *this, int64_t cur_vpts) {
duration = DEFAULT_FRAME_DURATION;
} else
duration = img->duration;
-
+
pts = img->vpts;
diff = cur_vpts - pts;
-
+
if (diff > duration || this->discard_frames) {
-
+
if( !this->discard_frames ) {
xine_log(this->xine, XINE_LOG_MSG,
_("video_out: throwing away image with pts %" PRId64 " because it's too old (diff : %" PRId64 ").\n"), pts, diff);
this->num_frames_discarded++;
}
-
+
img = vo_remove_from_img_buf_queue_int (this->display_img_buf_queue, 1, 0, 0, 0, 0, 0);
-
+
if (img->stream) {
pthread_mutex_lock( &img->stream->current_extra_info_lock );
_x_extra_info_merge( img->stream->current_extra_info, img->extra_info );
@@ -854,21 +854,21 @@ static void expire_frames (vos_t *this, int64_t cur_vpts) {
/* when flushing frames, keep the first one as backup */
if( this->discard_frames ) {
-
+
if (!this->img_backup) {
this->img_backup = img;
} else {
vo_frame_dec_lock( img );
- }
-
+ }
+
} else {
/*
- * last frame? back it up for
+ * last frame? back it up for
* still frame creation
*/
-
+
if (!this->display_img_buf_queue->first) {
-
+
if (this->img_backup) {
lprintf("overwriting frame backup\n");
@@ -878,20 +878,20 @@ static void expire_frames (vos_t *this, int64_t cur_vpts) {
lprintf("possible still frame (old)\n");
this->img_backup = img;
-
- /* wait 4 frames before drawing this one.
+
+ /* wait 4 frames before drawing this one.
this allow slower systems to recover. */
- this->redraw_needed = 4;
+ this->redraw_needed = 4;
} else {
vo_frame_dec_lock( img );
}
}
img = this->display_img_buf_queue->first;
-
+
} else
break;
}
-
+
pthread_mutex_unlock(&this->display_img_buf_queue->mutex);
}
@@ -900,16 +900,16 @@ static void expire_frames (vos_t *this, int64_t cur_vpts) {
*/
static vo_frame_t *get_next_frame (vos_t *this, int64_t cur_vpts,
int64_t *next_frame_vpts) {
-
+
vo_frame_t *img;
pthread_mutex_lock(&this->display_img_buf_queue->mutex);
-
+
img = this->display_img_buf_queue->first;
*next_frame_vpts = 0;
- /*
+ /*
* still frame detection:
*/
@@ -938,7 +938,7 @@ static vo_frame_t *get_next_frame (vos_t *this, int64_t cur_vpts,
return img;
} else {
-
+
if( this->redraw_needed )
this->redraw_needed--;
@@ -970,13 +970,13 @@ static vo_frame_t *get_next_frame (vos_t *this, int64_t cur_vpts,
vo_frame_dec_lock( this->img_backup );
this->img_backup = NULL;
}
-
- /*
- * last frame? make backup for possible still image
+
+ /*
+ * last frame? make backup for possible still image
*/
pthread_mutex_lock( &this->free_img_buf_queue->mutex );
if (img && !img->next) {
-
+
if (!img->stream ||
_x_stream_info_get(img->stream, XINE_STREAM_INFO_VIDEO_HAS_STILL) ||
!img->stream->video_fifo ||
@@ -1007,7 +1007,7 @@ static vo_frame_t *get_next_frame (vos_t *this, int64_t cur_vpts,
}
}
-static void overlay_and_display_frame (vos_t *this,
+static void overlay_and_display_frame (vos_t *this,
vo_frame_t *img, int64_t vpts) {
xine_stream_t *stream;
xine_list_iterator_t ite;
@@ -1019,19 +1019,19 @@ static void overlay_and_display_frame (vos_t *this,
*/
if(!img->proc_called )
vo_frame_driver_proc(img);
-
+
if (img->stream) {
int64_t diff;
pthread_mutex_lock( &img->stream->current_extra_info_lock );
diff = img->extra_info->vpts - img->stream->current_extra_info->vpts;
- if ((diff > 3000) || (diff<-300000))
+ if ((diff > 3000) || (diff<-300000))
_x_extra_info_merge( img->stream->current_extra_info, img->extra_info );
pthread_mutex_unlock( &img->stream->current_extra_info_lock );
}
if (this->overlay_source) {
- this->overlay_source->multiple_overlay_blend (this->overlay_source,
- vpts,
+ this->overlay_source->multiple_overlay_blend (this->overlay_source,
+ vpts,
this->driver, img,
this->video_loop_running && this->overlay_enabled);
}
@@ -1044,7 +1044,7 @@ static void overlay_and_display_frame (vos_t *this,
this->last_frame = img;
this->driver->display_frame (this->driver, img);
-
+
/*
* Wake up xine_play if it's waiting for a frame
*/
@@ -1064,16 +1064,16 @@ static void overlay_and_display_frame (vos_t *this,
pthread_mutex_unlock(&this->streams_lock);
}
- this->redraw_needed = 0;
+ this->redraw_needed = 0;
}
static void check_redraw_needed (vos_t *this, int64_t vpts) {
if (this->overlay_source) {
if( this->overlay_source->redraw_needed (this->overlay_source, vpts) )
- this->redraw_needed = 1;
+ this->redraw_needed = 1;
}
-
+
if( this->driver->redraw_needed (this->driver) )
this->redraw_needed = 1;
}
@@ -1107,36 +1107,36 @@ static int interruptable_sleep(vos_t *this, int usec_to_sleep)
/* special loop for paused mode
* needed to update screen due overlay changes, resize, window
* movement, brightness adjusting etc.
- */
+ */
static void paused_loop( vos_t *this, int64_t vpts )
{
vo_frame_t *img;
-
+
pthread_mutex_lock( &this->free_img_buf_queue->mutex );
/* prevent decoder thread from allocating new frames */
this->free_img_buf_queue->locked_for_read = 1;
-
+
while (this->clock->speed == XINE_SPEED_PAUSE && this->video_loop_running) {
-
+
/* we need at least one free frame to keep going */
if( this->display_img_buf_queue->first &&
!this->free_img_buf_queue->first ) {
-
+
img = vo_remove_from_img_buf_queue (this->display_img_buf_queue);
img->next = NULL;
this->free_img_buf_queue->first = img;
this->free_img_buf_queue->last = img;
this->free_img_buf_queue->num_buffers = 1;
}
-
+
/* set img_backup to play the same frame several times */
if( this->display_img_buf_queue->first && !this->img_backup ) {
this->img_backup = vo_remove_from_img_buf_queue (this->display_img_buf_queue);
this->redraw_needed = 1;
}
-
+
check_redraw_needed( this, vpts );
-
+
if( this->redraw_needed && this->img_backup ) {
img = duplicate_frame (this, this->img_backup );
if( img ) {
@@ -1145,16 +1145,16 @@ static void paused_loop( vos_t *this, int64_t vpts )
pthread_mutex_unlock( &this->free_img_buf_queue->mutex );
overlay_and_display_frame (this, img, vpts);
pthread_mutex_lock( &this->free_img_buf_queue->mutex );
- }
+ }
}
-
+
pthread_mutex_unlock( &this->free_img_buf_queue->mutex );
interruptable_sleep(this, 20000);
pthread_mutex_lock( &this->free_img_buf_queue->mutex );
}
-
+
this->free_img_buf_queue->locked_for_read = 0;
-
+
if( this->free_img_buf_queue->first )
pthread_cond_signal (&this->free_img_buf_queue->not_empty);
pthread_mutex_unlock( &this->free_img_buf_queue->mutex );
@@ -1167,7 +1167,7 @@ static void *video_out_loop (void *this_gen) {
vos_t *this = (vos_t *) this_gen;
int64_t next_frame_vpts = 0;
int64_t usec_to_sleep;
-
+
#ifndef WIN32
/* nice(-value) will fail silently for normal users.
* however when running as root this may provide smoother
@@ -1181,7 +1181,7 @@ static void *video_out_loop (void *this_gen) {
* here it is - the heart of xine (or rather: one of the hearts
* of xine) : the video output loop
*/
-
+
lprintf ("loop starting...\n");
while ( this->video_loop_running ) {
@@ -1221,7 +1221,7 @@ static void *video_out_loop (void *this_gen) {
diff = vpts - this->last_delivery_pts;
if (diff > 30000 && !this->display_img_buf_queue->first) {
xine_list_iterator_t ite;
-
+
pthread_mutex_lock(&this->streams_lock);
for (ite = xine_list_front(this->streams); ite;
ite = xine_list_next(this->streams, ite)) {
@@ -1229,9 +1229,9 @@ static void *video_out_loop (void *this_gen) {
if (stream == XINE_ANON_STREAM) continue;
if (stream->video_decoder_plugin && stream->video_fifo) {
buf_element_t *buf;
-
+
lprintf ("flushing current video decoder plugin\n");
-
+
buf = stream->video_fifo->buffer_pool_try_alloc (stream->video_fifo);
if( buf ) {
buf->type = BUF_CONTROL_FLUSH_DECODER;
@@ -1251,12 +1251,12 @@ static void *video_out_loop (void *this_gen) {
next_frame_vpts = img->vpts + img->duration;
}
/* else next_frame_vpts is returned by get_next_frame */
-
+
lprintf ("next_frame_vpts is %" PRId64 "\n", next_frame_vpts);
-
+
do {
vpts = this->clock->get_current_time (this->clock);
-
+
if (this->clock->speed == XINE_SPEED_PAUSE)
paused_loop (this, vpts);
@@ -1273,11 +1273,11 @@ static void *video_out_loop (void *this_gen) {
usec_to_sleep = MAX_USEC_TO_SLEEP;
lprintf ("%" PRId64 " usec to sleep at master vpts %" PRId64 "\n", usec_to_sleep, vpts);
-
+
if ( (next_frame_vpts - vpts) > 2*90000 )
xprintf(this->xine, XINE_VERBOSITY_DEBUG,
"video_out: vpts/clock error, next_vpts=%" PRId64 " cur_vpts=%" PRId64 "\n", next_frame_vpts,vpts);
-
+
if (usec_to_sleep > 0)
{
if (0 == interruptable_sleep(this, usec_to_sleep))
@@ -1293,7 +1293,7 @@ static void *video_out_loop (void *this_gen) {
/*
* throw away undisplayed frames
*/
-
+
pthread_mutex_lock(&this->display_img_buf_queue->mutex);
img = this->display_img_buf_queue->first;
while (img) {
@@ -1336,9 +1336,9 @@ int xine_get_next_video_frame (xine_video_port_t *this_gen,
xine_usec_sleep (5000);
continue;
}
-
+
/* FIXME: ugly, use conditions and locks instead? */
-
+
pthread_mutex_lock(&this->display_img_buf_queue->mutex);
img = this->display_img_buf_queue->first;
if (!img) {
@@ -1355,7 +1355,7 @@ int xine_get_next_video_frame (xine_video_port_t *this_gen,
/*
* remove frame from display queue and show it
*/
-
+
img = vo_remove_from_img_buf_queue_int (this->display_img_buf_queue, 1, 0, 0, 0, 0, 0);
pthread_mutex_unlock(&this->display_img_buf_queue->mutex);
@@ -1374,7 +1374,7 @@ int xine_get_next_video_frame (xine_video_port_t *this_gen,
return 1;
}
-void xine_free_video_frame (xine_video_port_t *port,
+void xine_free_video_frame (xine_video_port_t *port,
xine_video_frame_t *frame) {
vo_frame_t *img = (vo_frame_t *) frame->xine_frame;
@@ -1416,7 +1416,7 @@ static void vo_close (xine_video_port_t *this_gen, xine_stream_t *stream) {
this->overlay_source->flush_events (this->overlay_source);
this->video_opened = 0;
-
+
/* unregister stream */
pthread_mutex_lock(&this->streams_lock);
for (ite = xine_list_front(this->streams); ite;
@@ -1439,17 +1439,17 @@ static int vo_get_property (xine_video_port_t *this_gen, int property) {
case VO_PROP_DISCARD_FRAMES:
ret = this->discard_frames;
break;
-
+
case VO_PROP_BUFS_IN_FIFO:
ret = this->video_loop_running ? this->display_img_buf_queue->num_buffers : -1;
break;
-
+
case VO_PROP_NUM_STREAMS:
pthread_mutex_lock(&this->streams_lock);
ret = xine_list_size(this->streams);
pthread_mutex_unlock(&this->streams_lock);
break;
-
+
/*
* handle XINE_PARAM_xxx properties (convert from driver's range)
*/
@@ -1465,7 +1465,7 @@ static int vo_get_property (xine_video_port_t *this_gen, int property) {
case XINE_PARAM_VO_CROP_BOTTOM:
ret = this->crop_bottom;
break;
-
+
case XINE_PARAM_VO_SHARPNESS:
case XINE_PARAM_VO_NOISE_REDUCTION:
case XINE_PARAM_VO_HUE:
@@ -1485,12 +1485,12 @@ static int vo_get_property (xine_video_port_t *this_gen, int property) {
if (range_v > 0)
ret = ((v-min_v) * 65536 + 32768) / range_v;
- else
+ else
ret = 0;
pthread_mutex_unlock( &this->driver_lock );
}
break;
-
+
default:
pthread_mutex_lock( &this->driver_lock );
ret = this->driver->get_property(this->driver, property & 0xffffff);
@@ -1504,7 +1504,7 @@ static int vo_set_property (xine_video_port_t *this_gen, int property, int value
int ret;
switch (property) {
-
+
case VO_PROP_DISCARD_FRAMES:
/* recursive discard frames setting */
pthread_mutex_lock(&this->display_img_buf_queue->mutex);
@@ -1514,19 +1514,19 @@ static int vo_set_property (xine_video_port_t *this_gen, int property, int value
this->discard_frames--;
pthread_mutex_unlock(&this->display_img_buf_queue->mutex);
ret = this->discard_frames;
-
+
/* discard buffers here because we have no output thread */
if (this->grab_only && this->discard_frames) {
vo_frame_t *img;
-
+
pthread_mutex_lock(&this->display_img_buf_queue->mutex);
-
+
while ((img = this->display_img_buf_queue->first)) {
-
+
lprintf ("flushing out frame\n");
-
+
img = vo_remove_from_img_buf_queue_int (this->display_img_buf_queue, 1, 0, 0, 0, 0, 0);
-
+
vo_frame_dec_lock (img);
}
pthread_mutex_unlock(&this->display_img_buf_queue->mutex);
@@ -1556,7 +1556,7 @@ static int vo_set_property (xine_video_port_t *this_gen, int property, int value
value = 0;
ret = this->crop_bottom = value;
break;
-
+
case XINE_PARAM_VO_SHARPNESS:
case XINE_PARAM_VO_NOISE_REDUCTION:
case XINE_PARAM_VO_HUE:
@@ -1565,25 +1565,25 @@ static int vo_set_property (xine_video_port_t *this_gen, int property, int value
case XINE_PARAM_VO_BRIGHTNESS:
if (!this->grab_only) {
int v, min_v, max_v, range_v;
-
+
pthread_mutex_lock( &this->driver_lock );
-
+
this->driver->get_property_min_max (this->driver,
- property & 0xffffff,
- &min_v, &max_v);
-
+ property & 0xffffff,
+ &min_v, &max_v);
+
range_v = max_v - min_v + 1;
-
+
v = (value * range_v + (range_v/2)) / 65536 + min_v;
-
+
this->driver->set_property(this->driver, property & 0xffffff, v);
pthread_mutex_unlock( &this->driver_lock );
ret = value;
} else
ret = 0;
break;
-
-
+
+
default:
if (!this->grab_only) {
pthread_mutex_lock( &this->driver_lock );
@@ -1617,7 +1617,7 @@ static int vo_status (xine_video_port_t *this_gen, xine_stream_t *stream,
}
}
pthread_mutex_unlock(&this->streams_lock);
-
+
return ret;
}
@@ -1662,7 +1662,7 @@ static void vo_exit (xine_video_port_t *this_gen) {
if (this->overlay_source) {
this->overlay_source->dispose (this->overlay_source);
}
-
+
xine_list_delete(this->streams);
pthread_mutex_destroy(&this->streams_lock);
@@ -1681,7 +1681,7 @@ static vo_frame_t *vo_get_last_frame (xine_video_port_t *this_gen) {
}
/*
- * overlay stuff
+ * overlay stuff
*/
static video_overlay_manager_t *vo_get_overlay_manager (xine_video_port_t *this_gen) {
@@ -1691,7 +1691,7 @@ static video_overlay_manager_t *vo_get_overlay_manager (xine_video_port_t *this_
static void vo_enable_overlay (xine_video_port_t *this_gen, int overlay_enabled) {
vos_t *this = (vos_t *) this_gen;
-
+
if (overlay_enabled) {
/* we always ENable ... */
this->overlay_enabled = 1;
@@ -1724,7 +1724,7 @@ static void vo_flush (xine_video_port_t *this_gen) {
pthread_mutex_lock(&this->display_img_buf_queue->mutex);
this->discard_frames++;
pthread_mutex_unlock(&this->display_img_buf_queue->mutex);
-
+
/* do not try this in paused mode */
while(this->clock->speed != XINE_SPEED_PAUSE) {
pthread_mutex_lock(&this->display_img_buf_queue->mutex);
@@ -1734,7 +1734,7 @@ static void vo_flush (xine_video_port_t *this_gen) {
break;
xine_usec_sleep (20000); /* pthread_cond_t could be used here */
}
-
+
pthread_mutex_lock(&this->display_img_buf_queue->mutex);
this->discard_frames--;
pthread_mutex_unlock(&this->display_img_buf_queue->mutex);
@@ -1758,29 +1758,29 @@ static vo_frame_t * crop_frame( xine_video_port_t *this_gen, vo_frame_t *img ) {
vo_frame_t *dupl;
dupl = vo_get_frame ( this_gen,
- img->width - img->crop_left - img->crop_right,
+ img->width - img->crop_left - img->crop_right,
img->height - img->crop_top - img->crop_bottom,
img->ratio, img->format, img->flags | VO_BOTH_FIELDS);
-
+
dupl->progressive_frame = img->progressive_frame;
dupl->repeat_first_field = img->repeat_first_field;
dupl->top_field_first = img->top_field_first;
dupl->overlay_offset_x = img->overlay_offset_x;
dupl->overlay_offset_y = img->overlay_offset_y;
-
+
switch (img->format) {
case XINE_IMGFMT_YV12:
yv12_to_yv12(
/* Y */
- img->base[0] + img->crop_top * img->pitches[0] +
+ img->base[0] + img->crop_top * img->pitches[0] +
img->crop_left, img->pitches[0],
dupl->base[0], dupl->pitches[0],
/* U */
- img->base[1] + img->crop_top/2 * img->pitches[1] +
+ img->base[1] + img->crop_top/2 * img->pitches[1] +
img->crop_left/2, img->pitches[1],
dupl->base[1], dupl->pitches[1],
/* V */
- img->base[2] + img->crop_top/2 * img->pitches[2] +
+ img->base[2] + img->crop_top/2 * img->pitches[2] +
img->crop_left/2, img->pitches[2],
dupl->base[2], dupl->pitches[2],
/* width x height */
@@ -1797,7 +1797,7 @@ static vo_frame_t * crop_frame( xine_video_port_t *this_gen, vo_frame_t *img ) {
dupl->width, dupl->height);
break;
}
-
+
dupl->bad_frame = 0;
dupl->pts = img->pts;
dupl->vpts = img->vpts;
@@ -1810,10 +1810,10 @@ static vo_frame_t * crop_frame( xine_video_port_t *this_gen, vo_frame_t *img ) {
if (img->stream)
_x_refcounter_inc(img->stream->refcounter);
memcpy( dupl->extra_info, img->extra_info, sizeof(extra_info_t) );
-
+
/* delay frame processing for now, we might not even need it (eg. frame will be discarded) */
/* vo_frame_driver_proc(dupl); */
-
+
return dupl;
}
@@ -1832,10 +1832,10 @@ xine_video_port_t *_x_vo_new_port (xine_t *xine, vo_driver_t *driver, int grabon
this->clock = xine->clock;
this->driver = driver;
this->streams = xine_list_new();
-
+
pthread_mutex_init(&this->streams_lock, NULL);
pthread_mutex_init(&this->driver_lock, NULL );
-
+
this->vo.open = vo_open;
this->vo.get_frame = vo_get_frame;
this->vo.get_last_frame = vo_get_last_frame;
@@ -1860,7 +1860,7 @@ xine_video_port_t *_x_vo_new_port (xine_t *xine, vo_driver_t *driver, int grabon
this->last_frame = NULL;
this->img_backup = NULL;
-
+
this->overlay_source = _x_video_overlay_new_manager(xine);
this->overlay_source->init (this->overlay_source);
this->overlay_enabled = 1;
@@ -1882,7 +1882,7 @@ xine_video_port_t *_x_vo_new_port (xine_t *xine, vo_driver_t *driver, int grabon
num_frame_buffers = i;
/* we need at least 5 frames */
- if (num_frame_buffers<5)
+ if (num_frame_buffers<5)
num_frame_buffers = 5;
/* Choose a frame_drop_limit which matches num_frame_buffers.
@@ -1914,7 +1914,7 @@ xine_video_port_t *_x_vo_new_port (xine_t *xine, vo_driver_t *driver, int grabon
img->proc_duplicate_frame_data = NULL;
img->id = i;
-
+
img->port = &this->vo;
img->free = vo_frame_dec_lock;
img->lock = vo_frame_inc_lock;
@@ -1926,13 +1926,13 @@ xine_video_port_t *_x_vo_new_port (xine_t *xine, vo_driver_t *driver, int grabon
img);
}
- this->warn_skipped_threshold =
+ this->warn_skipped_threshold =
xine->config->register_num (xine->config, "engine.performance.warn_skipped_threshold", 10,
_("percentage of skipped frames to tolerate"),
_("When more than this percentage of frames are not shown, because they "
"were not decoded in time, xine sends a notification."),
20, NULL, NULL);
- this->warn_discarded_threshold =
+ this->warn_discarded_threshold =
xine->config->register_num (xine->config, "engine.performance.warn_discarded_threshold", 10,
_("percentage of discarded frames to tolerate"),
_("When more than this percentage of frames are not shown, because they "
@@ -1962,14 +1962,14 @@ xine_video_port_t *_x_vo_new_port (xine_t *xine, vo_driver_t *driver, int grabon
this->video_loop_running = 1;
this->video_opened = 0;
this->grab_only = 0;
-
+
pthread_attr_init(&pth_attrs);
pthread_attr_setscope(&pth_attrs, PTHREAD_SCOPE_SYSTEM);
-
+
if ((err = pthread_create (&this->video_thread,
&pth_attrs, video_out_loop, this)) != 0) {
- xprintf (this->xine, XINE_VERBOSITY_DEBUG, "video_out: can't create thread (%s)\n", strerror(err));
+ xprintf (this->xine, XINE_VERBOSITY_NONE, "video_out: can't create thread (%s)\n", strerror(err));
/* FIXME: how does this happen ? */
xprintf (this->xine, XINE_VERBOSITY_LOG,
_("video_out: sorry, this should not happen. please restart xine.\n"));
@@ -1977,7 +1977,7 @@ xine_video_port_t *_x_vo_new_port (xine_t *xine, vo_driver_t *driver, int grabon
}
else
xprintf(this->xine, XINE_VERBOSITY_DEBUG, "video_out: thread created\n");
-
+
pthread_attr_destroy(&pth_attrs);
}
diff --git a/src/xine-engine/video_overlay.c b/src/xine-engine/video_overlay.c
index cb9aa96fa..172a93c3e 100644
--- a/src/xine-engine/video_overlay.c
+++ b/src/xine-engine/video_overlay.c
@@ -1,18 +1,18 @@
/*
* Copyright (C) 2000-2006 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -51,15 +51,15 @@ typedef struct video_overlay_showing_s {
typedef struct video_overlay_s {
video_overlay_manager_t video_overlay;
-
+
xine_t *xine;
- pthread_mutex_t events_mutex;
+ pthread_mutex_t events_mutex;
video_overlay_events_t events[MAX_EVENTS];
- pthread_mutex_t objects_mutex;
+ pthread_mutex_t objects_mutex;
video_overlay_object_t objects[MAX_OBJECTS];
pthread_mutex_t showing_mutex;
- video_overlay_showing_t showing[MAX_SHOWING];
+ video_overlay_showing_t showing[MAX_SHOWING];
int showing_changed;
} video_overlay_t;
@@ -67,24 +67,24 @@ typedef struct video_overlay_s {
static void add_showing_handle( video_overlay_t *this, int32_t handle )
{
int i;
-
+
pthread_mutex_lock( &this->showing_mutex );
this->showing_changed++;
-
+
for( i = 0; i < MAX_SHOWING; i++ )
if( this->showing[i].handle == handle )
break; /* already showing */
-
+
if( i == MAX_SHOWING ) {
for( i = 0; i < MAX_SHOWING && this->showing[i].handle >= 0; i++ )
;
-
+
if( i != MAX_SHOWING )
this->showing[i].handle = handle;
else
xprintf(this->xine, XINE_VERBOSITY_DEBUG, "video_overlay: error: no showing slots available\n");
}
-
+
pthread_mutex_unlock( &this->showing_mutex );
}
@@ -94,13 +94,13 @@ static void remove_showing_handle( video_overlay_t *this, int32_t handle )
pthread_mutex_lock( &this->showing_mutex );
this->showing_changed++;
-
+
for( i = 0; i < MAX_SHOWING; i++ ) {
if( this->showing[i].handle == handle ) {
this->showing[i].handle = -1;
}
}
-
+
pthread_mutex_unlock( &this->showing_mutex );
}
@@ -110,34 +110,34 @@ static void remove_events_handle( video_overlay_t *this, int32_t handle, int loc
if( lock )
pthread_mutex_lock( &this->events_mutex );
-
+
this_event=0;
do {
last_event=this_event;
this_event=this->events[last_event].next_event;
-
- while( this_event &&
+
+ while( this_event &&
this->events[this_event].event->object.handle == handle ) {
/* remove event from pts list */
this->events[last_event].next_event=
this->events[this_event].next_event;
- /* free its overlay */
- if( this->events[this_event].event->object.overlay ) {
+ /* free its overlay */
+ if( this->events[this_event].event->object.overlay ) {
if( this->events[this_event].event->object.overlay->rle )
free( this->events[this_event].event->object.overlay->rle );
free(this->events[this_event].event->object.overlay);
this->events[this_event].event->object.overlay = NULL;
}
-
+
/* mark as free */
this->events[this_event].next_event = 0;
this->events[this_event].event->event_type = OVERLAY_EVENT_NULL;
-
+
this_event=this->events[last_event].next_event;
}
} while ( this_event );
-
+
if( lock )
pthread_mutex_unlock( &this->events_mutex );
}
@@ -149,35 +149,35 @@ static void remove_events_handle( video_overlay_t *this, int32_t handle, int loc
static int32_t video_overlay_get_handle(video_overlay_manager_t *this_gen, int object_type ) {
video_overlay_t *this = (video_overlay_t *) this_gen;
int n;
-
+
pthread_mutex_lock( &this->objects_mutex );
-
+
for( n=0; n < MAX_OBJECTS && this->objects[n].handle > -1; n++ )
;
-
+
if (n == MAX_OBJECTS) {
n = -1;
} else {
this->objects[n].handle = n;
this->objects[n].object_type = object_type;
}
-
+
pthread_mutex_unlock( &this->objects_mutex );
return n;
}
-/*
+/*
free a handle from the object pool (internal function)
*/
static void internal_video_overlay_free_handle(video_overlay_t *this, int32_t handle) {
-
+
pthread_mutex_lock( &this->objects_mutex );
if( this->objects[handle].overlay ) {
if( this->objects[handle].overlay->rle )
free( this->objects[handle].overlay->rle );
free( this->objects[handle].overlay );
- this->objects[handle].overlay = NULL;
+ this->objects[handle].overlay = NULL;
}
this->objects[handle].handle = -1;
@@ -199,7 +199,7 @@ static void video_overlay_free_handle(video_overlay_manager_t *this_gen, int32_t
static void video_overlay_reset (video_overlay_t *this) {
int i;
-
+
pthread_mutex_lock (&this->events_mutex);
for (i=0; i < MAX_EVENTS; i++) {
if (this->events[i].event == NULL) {
@@ -212,17 +212,17 @@ static void video_overlay_reset (video_overlay_t *this) {
#endif
}
this->events[i].event->event_type = 0; /* Empty slot */
- this->events[i].next_event = 0;
+ this->events[i].next_event = 0;
}
pthread_mutex_unlock (&this->events_mutex);
-
+
for( i = 0; i < MAX_SHOWING; i++ )
this->showing[i].handle = -1;
-
+
for (i=0; i < MAX_OBJECTS; i++) {
internal_video_overlay_free_handle(this, i);
}
-
+
this->showing_changed = 0;
}
@@ -234,7 +234,7 @@ static void video_overlay_init (video_overlay_manager_t *this_gen) {
pthread_mutex_init (&this->events_mutex,NULL);
pthread_mutex_init (&this->objects_mutex,NULL);
pthread_mutex_init (&this->showing_mutex,NULL);
-
+
video_overlay_reset(this);
}
@@ -256,13 +256,13 @@ static int32_t video_overlay_add_event(video_overlay_manager_t *this_gen, void
uint32_t last_event,this_event,new_event;
pthread_mutex_lock (&this->events_mutex);
-
+
/* We skip the 0 entry because that is used as a pointer to the first event.*/
/* Find a free event slot */
- for( new_event = 1; new_event<MAX_EVENTS &&
+ for( new_event = 1; new_event<MAX_EVENTS &&
this->events[new_event].event->event_type > 0; new_event++ )
;
-
+
if (new_event < MAX_EVENTS) {
/* Find position in event queue to be added. */
this_event=0;
@@ -274,7 +274,7 @@ static int32_t video_overlay_add_event(video_overlay_manager_t *this_gen, void
this->events[last_event].next_event=new_event;
this->events[new_event].next_event=this_event;
-
+
/* memcpy everything except the actual image */
if ( this->events[new_event].event == NULL ) {
xprintf(this->xine, XINE_VERBOSITY_DEBUG, "video_overlay: error: event slot is NULL!\n");
@@ -287,7 +287,7 @@ static int32_t video_overlay_add_event(video_overlay_manager_t *this_gen, void
if ( this->events[new_event].event->object.overlay ) {
xprintf(this->xine, XINE_VERBOSITY_DEBUG, "video_overlay: add_event: event->object.overlay was not freed!\n");
}
-
+
if( event->object.overlay ) {
int i;
for(i = 0; i < OVL_PALETTE_SIZE; i++) {
@@ -298,7 +298,7 @@ static int32_t video_overlay_add_event(video_overlay_manager_t *this_gen, void
}
this->events[new_event].event->object.overlay = calloc(1, sizeof(vo_overlay_t));
- xine_fast_memcpy(this->events[new_event].event->object.overlay,
+ xine_fast_memcpy(this->events[new_event].event->object.overlay,
event->object.overlay, sizeof(vo_overlay_t));
/* We took the callers rle and data, therefore it will be our job to free it */
@@ -311,9 +311,9 @@ static int32_t video_overlay_add_event(video_overlay_manager_t *this_gen, void
xprintf(this->xine, XINE_VERBOSITY_DEBUG, "video_overlay:No spare subtitle event slots\n");
new_event = -1;
}
-
+
pthread_mutex_unlock (&this->events_mutex);
-
+
return new_event;
}
@@ -335,7 +335,7 @@ static void video_overlay_print_overlay( vo_overlay_t *ovl ) {
printf ("video_overlay: \thili_trans [%d %d %d %d]\n",
ovl->hili_trans[0], ovl->hili_trans[1], ovl->hili_trans[2], ovl->hili_trans[3]);
return;
-}
+}
#endif
/*
@@ -347,9 +347,9 @@ static int video_overlay_event( video_overlay_t *this, int64_t vpts ) {
int32_t handle;
uint32_t this_event;
int processed = 0;
-
+
pthread_mutex_lock (&this->events_mutex);
-
+
this_event=this->events[0].next_event;
while ( this_event && (vpts > this->events[this_event].event->vpts ||
vpts == 0) ) {
@@ -375,21 +375,21 @@ static int video_overlay_event( video_overlay_t *this, int64_t vpts ) {
*/
remove_showing_handle(this,handle);
internal_video_overlay_free_handle(this, handle);
-
+
this->objects[handle].handle = handle;
if( this->objects[handle].overlay ) {
xprintf(this->xine, XINE_VERBOSITY_DEBUG, "video_overlay: error: object->overlay was not freed!\n");
}
- this->objects[handle].overlay =
+ this->objects[handle].overlay =
this->events[this_event].event->object.overlay;
- this->objects[handle].pts =
+ this->objects[handle].pts =
this->events[this_event].event->object.pts;
this->events[this_event].event->object.overlay = NULL;
-
+
add_showing_handle( this, handle );
}
break;
-
+
case OVERLAY_EVENT_HIDE:
#ifdef LOG_DEBUG
printf ("video_overlay: HIDE SPU NOW\n");
@@ -399,17 +399,17 @@ static int video_overlay_event( video_overlay_t *this, int64_t vpts ) {
if( this->events[this_event].event->object.overlay->rle != NULL )
free( this->events[this_event].event->object.overlay->rle );
free(this->events[this_event].event->object.overlay);
- this->events[this_event].event->object.overlay = NULL;
+ this->events[this_event].event->object.overlay = NULL;
}
remove_showing_handle( this, handle );
break;
-
+
case OVERLAY_EVENT_FREE_HANDLE:
#ifdef LOG_DEBUG
printf ("video_overlay: FREE SPU NOW\n");
#endif
/* free any overlay associated with this event */
- if( this->events[this_event].event->object.overlay != NULL) {
+ if( this->events[this_event].event->object.overlay != NULL) {
if( this->events[this_event].event->object.overlay->rle != NULL )
free( this->events[this_event].event->object.overlay->rle );
free(this->events[this_event].event->object.overlay);
@@ -423,7 +423,7 @@ static int video_overlay_event( video_overlay_t *this, int64_t vpts ) {
internal_video_overlay_free_handle( this, handle );
break;
-
+
case OVERLAY_EVENT_MENU_BUTTON:
/* mixes palette and copy clip coords */
#ifdef LOG_DEBUG
@@ -433,10 +433,10 @@ static int video_overlay_event( video_overlay_t *this, int64_t vpts ) {
/* This code drops buttons, where the button PTS derived from the NAV
* packet on DVDs does not match the SPU PTS. Practical experience shows,
* that this is not necessary and causes problems with some DVDs */
- if ( (this->events[this_event].event->object.pts !=
+ if ( (this->events[this_event].event->object.pts !=
this->objects[handle].pts) ) {
- xprintf (this->xine, XINE_VERBOSITY_DEBUG,
- "video_overlay:MENU BUTTON DROPPED menu pts=%lld spu pts=%lld\n",
+ xprintf (this->xine, XINE_VERBOSITY_DEBUG,
+ "video_overlay:MENU BUTTON DROPPED menu pts=%lld spu pts=%lld\n",
this->events[this_event].event->object.pts,
this->objects[handle].pts);
break;
@@ -446,7 +446,7 @@ static int video_overlay_event( video_overlay_t *this, int64_t vpts ) {
(this->objects[handle].overlay) ) {
vo_overlay_t *overlay = this->objects[handle].overlay;
vo_overlay_t *event_overlay = this->events[this_event].event->object.overlay;
-
+
#ifdef LOG_DEBUG
printf ("video_overlay:overlay present\n");
#endif
@@ -477,84 +477,84 @@ static int video_overlay_event( video_overlay_t *this, int64_t vpts ) {
free( this->events[this_event].event->object.overlay->rle );
this->events[this_event].event->object.overlay->rle = NULL;
}
-
+
if (this->events[this_event].event->object.overlay != NULL) {
free (this->events[this_event].event->object.overlay);
this->events[this_event].event->object.overlay = NULL;
}
break;
-
+
default:
xprintf (this->xine, XINE_VERBOSITY_DEBUG, "video_overlay: unhandled event type\n");
break;
}
-
- this->events[0].next_event = this->events[this_event].next_event;
+
+ this->events[0].next_event = this->events[this_event].next_event;
this->events[this_event].next_event = 0;
this->events[this_event].event->event_type = 0;
-
+
this_event=this->events[0].next_event;
}
-
+
pthread_mutex_unlock (&this->events_mutex);
return processed;
}
-
-/* This is called from video_out.c
+
+/* This is called from video_out.c
* must call output->overlay_blend for each active overlay.
*/
-static void video_overlay_multiple_overlay_blend (video_overlay_manager_t *this_gen, int64_t vpts,
+static void video_overlay_multiple_overlay_blend (video_overlay_manager_t *this_gen, int64_t vpts,
vo_driver_t *output, vo_frame_t *vo_img, int enabled) {
video_overlay_t *this = (video_overlay_t *) this_gen;
int i;
int32_t handle;
- /* Look at next events, if current video vpts > first event on queue, process the event
- * else just continue
+ /* Look at next events, if current video vpts > first event on queue, process the event
+ * else just continue
*/
video_overlay_event( this, vpts );
-
- /* Scan through 5 entries and display any present.
+
+ /* Scan through 5 entries and display any present.
*/
pthread_mutex_lock( &this->showing_mutex );
if( output->overlay_begin )
output->overlay_begin(output, vo_img, this->showing_changed);
-
+
for( i = 0; enabled && output->overlay_blend && i < MAX_SHOWING; i++ ) {
- handle=this->showing[i].handle;
+ handle=this->showing[i].handle;
if (handle >= 0 ) {
output->overlay_blend(output, vo_img, this->objects[handle].overlay);
}
}
-
+
if( output->overlay_end )
output->overlay_end(output, vo_img);
-
+
this->showing_changed = 0;
-
+
pthread_mutex_unlock( &this->showing_mutex );
}
-/* this should be called on stream end or stop to make sure every
+/* this should be called on stream end or stop to make sure every
hide event is processed.
*/
static void video_overlay_flush_events(video_overlay_manager_t *this_gen )
{
video_overlay_t *this = (video_overlay_t *) this_gen;
-
+
video_overlay_event( this, 0 );
}
-/* this is called from video_out.c on still frames to check
+/* this is called from video_out.c on still frames to check
if a redraw is needed.
*/
static int video_overlay_redraw_needed(video_overlay_manager_t *this_gen, int64_t vpts )
{
video_overlay_t *this = (video_overlay_t *) this_gen;
-
+
video_overlay_event( this, vpts );
return this->showing_changed;
}
@@ -575,7 +575,7 @@ static void video_overlay_dispose(video_overlay_manager_t *this_gen) {
free (this->events[i].event);
}
}
-
+
for (i=0; i < MAX_OBJECTS; i++)
internal_video_overlay_free_handle(this, i);
diff --git a/src/xine-engine/vo_scale.c b/src/xine-engine/vo_scale.c
index 7c5cfd38c..e44fc4966 100644
--- a/src/xine-engine/vo_scale.c
+++ b/src/xine-engine/vo_scale.c
@@ -7,7 +7,7 @@
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
@@ -53,14 +53,14 @@ void _x_vo_scale_compute_ideal_size (vo_scale_t *this) {
this->video_pixel_aspect = this->gui_pixel_aspect;
} else {
-
- /*
+
+ /*
* aspect ratio
*/
-
+
image_ratio = (double) (this->delivered_width - (this->crop_left + this->crop_right)) /
(double) (this->delivered_height - (this->crop_top + this->crop_bottom));
-
+
switch (this->user_ratio) {
case XINE_VO_ASPECT_AUTO:
desired_ratio = this->delivered_ratio;
@@ -80,7 +80,7 @@ void _x_vo_scale_compute_ideal_size (vo_scale_t *this) {
}
this->video_pixel_aspect = desired_ratio / image_ratio;
-
+
_x_assert(this->gui_pixel_aspect != 0.0);
if (fabs (this->video_pixel_aspect / this->gui_pixel_aspect - 1.0)
@@ -89,7 +89,7 @@ void _x_vo_scale_compute_ideal_size (vo_scale_t *this) {
}
#if 0
-
+
/* onefield_xv divide by 2 the number of lines */
if (this->deinterlace_enabled
&& (this->deinterlace_method == DEINTERLACE_ONEFIELDXV)
@@ -107,17 +107,17 @@ void _x_vo_scale_compute_ideal_size (vo_scale_t *this) {
*/
void _x_vo_scale_compute_output_size (vo_scale_t *this) {
-
+
int cropped_width, cropped_height;
double x_factor, y_factor, aspect;
-
+
cropped_width = this->delivered_width - (this->crop_left + this->crop_right);
- cropped_height = this->delivered_height - (this->crop_top + this->crop_bottom);
+ cropped_height = this->delivered_height - (this->crop_top + this->crop_bottom);
aspect = this->video_pixel_aspect / this->gui_pixel_aspect;
x_factor = (double) this->gui_width / (double) (cropped_width * aspect);
y_factor = (double) (this->gui_height * aspect) / (double) cropped_height;
-
+
if (this->scaling_disabled) {
this->output_width = cropped_width;
@@ -128,8 +128,8 @@ void _x_vo_scale_compute_output_size (vo_scale_t *this) {
} else {
if ( this->support_zoom ) {
-
- /* zoom behaviour:
+
+ /* zoom behaviour:
* - window size never changes due zooming
* - output image shall be increased whenever there are
* black borders to use.
@@ -138,7 +138,7 @@ void _x_vo_scale_compute_output_size (vo_scale_t *this) {
if (((double)this->gui_width - (double)cropped_width * y_factor) < ((double)this->gui_height - (double)cropped_height * x_factor)) {
this->output_width = this->gui_width;
this->displayed_width = (double)cropped_width / this->zoom_factor_x + 0.5;
-
+
this->output_height = (double)cropped_height * x_factor + 0.5;
if( this->output_height * this->zoom_factor_y <= this->gui_height ) {
this->displayed_height = cropped_height;
@@ -151,7 +151,7 @@ void _x_vo_scale_compute_output_size (vo_scale_t *this) {
} else {
this->output_height = this->gui_height;
this->displayed_height = (double)cropped_height / this->zoom_factor_y + 0.5;
-
+
this->output_width = (double)cropped_width * y_factor + 0.5;
if( this->output_width * this->zoom_factor_x <= this->gui_width ) {
this->displayed_width = cropped_width;
@@ -162,7 +162,7 @@ void _x_vo_scale_compute_output_size (vo_scale_t *this) {
this->output_width = this->gui_width;
}
}
-
+
} else {
if (((double)this->gui_width - (double)cropped_width * y_factor) < ((double)this->gui_height - (double)cropped_height * x_factor)) {
this->output_width = (double) this->gui_width;
@@ -174,27 +174,27 @@ void _x_vo_scale_compute_output_size (vo_scale_t *this) {
this->displayed_width = cropped_width;
this->displayed_height = cropped_height;
}
- }
-
+ }
+
/* make sure displayed values are sane, that is, we are not trying to display
* something outside the delivered image. may happen when zoom < 100%.
*/
if( this->displayed_width > this->delivered_width ) {
- this->output_width = (double) this->output_width *
+ this->output_width = (double) this->output_width *
this->delivered_width / this->displayed_width + 0.5;
this->displayed_width = this->delivered_width;
}
if( this->displayed_height > this->delivered_height ) {
- this->output_height = (double) this->output_height *
+ this->output_height = (double) this->output_height *
this->delivered_height / this->displayed_height + 0.5;
this->displayed_height = this->delivered_height;
}
-
+
this->output_xoffset =
(this->gui_width - this->output_width) * this->output_horizontal_position + this->gui_x;
this->output_yoffset =
(this->gui_height - this->output_height) * this->output_vertical_position + this->gui_y;
-
+
this->displayed_xoffset = ((cropped_width - this->displayed_width) / 2) + this->crop_left;
this->displayed_yoffset = ((cropped_height - this->displayed_height) / 2) + this->crop_top;
@@ -219,8 +219,8 @@ void _x_vo_scale_compute_output_size (vo_scale_t *this) {
/* no top/bottom borders */
this->border[0].w = this->border[0].h = 0;
this->border[1].w = this->border[1].h = 0;
- }
-
+ }
+
if (this->output_width < this->gui_width) {
/* left */
this->border[2].x = 0;
@@ -252,10 +252,10 @@ int _x_vo_scale_redraw_needed (vo_scale_t *this) {
_x_assert(this->frame_output_cb);
if ( ! this->frame_output_cb )
return 0;
-
+
this->frame_output_cb (this->user_data,
- this->delivered_width - (this->crop_left + this->crop_right),
- this->delivered_height - (this->crop_top + this->crop_bottom),
+ this->delivered_width - (this->crop_left + this->crop_right),
+ this->delivered_height - (this->crop_top + this->crop_bottom),
this->video_pixel_aspect,
&gui_x, &gui_y, &gui_width, &gui_height,
&gui_pixel_aspect, &gui_win_x, &gui_win_y );
@@ -277,7 +277,7 @@ int _x_vo_scale_redraw_needed (vo_scale_t *this) {
}
else
ret = this->force_redraw;
-
+
this->force_redraw = 0;
return ret;
}
@@ -306,7 +306,7 @@ void _x_vo_scale_translate_gui2video(vo_scale_t *this,
* translate output area coordianates into the delivered area
* coordiantes.
*/
-
+
x = x * this->displayed_width / this->output_width + this->displayed_xoffset;
y = y * this->displayed_height / this->output_height + this->displayed_yoffset;
}
@@ -336,21 +336,21 @@ const char _x_vo_scale_aspect_ratio_name_table[][8] = {
*/
static void vo_scale_horizontal_pos_changed(void *data, xine_cfg_entry_t *entry) {
vo_scale_t *this = (vo_scale_t *)data;
-
+
this->output_horizontal_position = entry->num_value / 100.0;
this->force_redraw = 1;
}
static void vo_scale_vertical_pos_changed(void *data, xine_cfg_entry_t *entry) {
vo_scale_t *this = (vo_scale_t *)data;
-
+
this->output_vertical_position = entry->num_value / 100.0;
this->force_redraw = 1;
}
static void vo_scale_disable_scaling_changed(void *data, xine_cfg_entry_t *entry) {
vo_scale_t *this = (vo_scale_t *)data;
-
+
if (this->scaling_disabled < 2) {
this->scaling_disabled = entry->num_value;
this->force_redraw = 1;
@@ -358,13 +358,13 @@ static void vo_scale_disable_scaling_changed(void *data, xine_cfg_entry_t *entry
}
-/*
+/*
* initialize rescaling struct
*/
-
+
void _x_vo_scale_init(vo_scale_t *this, int support_zoom, int scaling_disabled,
config_values_t *config ) {
-
+
memset( this, 0, sizeof(vo_scale_t) );
this->support_zoom = support_zoom;
this->force_redraw = 1;
@@ -373,13 +373,13 @@ void _x_vo_scale_init(vo_scale_t *this, int support_zoom, int scaling_disabled,
this->gui_pixel_aspect = 1.0;
this->user_ratio = XINE_VO_ASPECT_AUTO;
this->delivered_ratio = 0.0;
-
+
this->crop_left = 0;
this->crop_right = 0;
this->crop_top = 0;
this->crop_bottom = 0;
-
- this->output_horizontal_position =
+
+ this->output_horizontal_position =
config->register_range(config, "video.output.horizontal_position", 50, 0, 100,
_("horizontal image position in the output window"),
_("If the video window's horizontal size is bigger than the actual image "
diff --git a/src/xine-engine/xine.c b/src/xine-engine/xine.c
index 1299b0f01..8162598aa 100644
--- a/src/xine-engine/xine.c
+++ b/src/xine-engine/xine.c
@@ -1,18 +1,18 @@
/*
* Copyright (C) 2000-2006 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -98,7 +98,7 @@ void _x_handle_stream_end (xine_stream_t *stream, int non_user) {
* if they have called xine_stop explicitly, so only send
* it if stream playback finished because of stream end reached
*/
-
+
xine_event_t event;
event.data_length = 0;
@@ -156,7 +156,7 @@ static int acquire_allowed_to_block(xine_ticket_t *this) {
/* List too small. Realloc to larger size */
new_size = this->holder_thread_count * 2;
lprintf("Reallocing from %d to %d entries\n", this->holder_thread_count, new_size);
-
+
this->holder_threads = realloc(this->holder_threads, sizeof(*this->holder_threads) * new_size);
memset(this->holder_threads + this->holder_thread_count, 0, this->holder_thread_count);
@@ -165,15 +165,15 @@ static int acquire_allowed_to_block(xine_ticket_t *this) {
this->holder_threads[this->holder_thread_count].holder = own_id;
this->holder_thread_count = new_size;
- return 1;
+ return 1;
}
-
+
static int ticket_acquire_internal(xine_ticket_t *this, int irrevocable, int nonblocking) {
int must_wait = 0;
pthread_mutex_lock(&this->lock);
int allowed_to_block = acquire_allowed_to_block(this);
-
+
if (this->ticket_revoked && !this->irrevocable_tickets)
must_wait = !nonblocking;
else if (this->atomic_revoke && !pthread_equal(this->atomic_revoker_thread, pthread_self()))
@@ -187,12 +187,12 @@ static int ticket_acquire_internal(xine_ticket_t *this, int irrevocable, int non
pthread_cond_wait(&this->issued, &this->lock);
}
-
+
this->tickets_granted++;
if (irrevocable)
this->irrevocable_tickets++;
-
- pthread_mutex_unlock(&this->lock);
+
+ pthread_mutex_unlock(&this->lock);
return 1;
}
@@ -207,7 +207,7 @@ static void ticket_acquire(xine_ticket_t *this, int irrevocable) {
static int release_allowed_to_block(xine_ticket_t *this) {
pthread_t own_id = pthread_self();
unsigned entry;
-
+
for(entry = 0; entry < this->holder_thread_count; ++entry) {
if(pthread_equal(this->holder_threads[entry].holder, own_id)) {
this->holder_threads[entry].count--;
@@ -223,18 +223,18 @@ static void ticket_release_internal(xine_ticket_t *this, int irrevocable, int no
pthread_mutex_lock(&this->lock);
int allowed_to_block = release_allowed_to_block(this);
-
+
this->tickets_granted--;
if (irrevocable)
this->irrevocable_tickets--;
-
+
if (this->ticket_revoked && !this->tickets_granted)
pthread_cond_broadcast(&this->revoked);
if (allowed_to_block) {
if (this->ticket_revoked && !this->irrevocable_tickets && !nonblocking)
pthread_cond_wait(&this->issued, &this->lock);
}
-
+
pthread_mutex_unlock(&this->lock);
}
@@ -249,17 +249,17 @@ static void ticket_release(xine_ticket_t *this, int irrevocable) {
static void ticket_renew(xine_ticket_t *this, int irrevocable) {
pthread_mutex_lock(&this->lock);
-
+
this->tickets_granted--;
-
+
_x_assert(this->ticket_revoked);
if (!this->tickets_granted)
pthread_cond_broadcast(&this->revoked);
if (!this->irrevocable_tickets || !irrevocable)
pthread_cond_wait(&this->issued, &this->lock);
-
+
this->tickets_granted++;
-
+
pthread_mutex_unlock(&this->lock);
}
@@ -268,12 +268,12 @@ static void ticket_issue(xine_ticket_t *this, int atomic) {
if (!atomic)
pthread_mutex_lock(&this->revoke_lock);
pthread_mutex_lock(&this->lock);
-
+
this->pending_revocations--;
if (!this->pending_revocations)
pthread_cond_broadcast(&this->issued);
this->atomic_revoke = 0;
-
+
pthread_mutex_unlock(&this->lock);
pthread_mutex_unlock(&this->revoke_lock);
}
@@ -282,7 +282,7 @@ static void ticket_revoke(xine_ticket_t *this, int atomic) {
pthread_mutex_lock(&this->revoke_lock);
pthread_mutex_lock(&this->lock);
-
+
this->pending_revocations++;
this->ticket_revoked = 1;
if (this->tickets_granted)
@@ -293,7 +293,7 @@ static void ticket_revoke(xine_ticket_t *this, int atomic) {
this->atomic_revoke = 1;
this->atomic_revoker_thread = pthread_self();
}
-
+
pthread_mutex_unlock(&this->lock);
if (!atomic)
pthread_mutex_unlock(&this->revoke_lock);
@@ -334,15 +334,15 @@ static void ticket_dispose(xine_ticket_t *this) {
pthread_mutex_destroy(&this->revoke_lock);
pthread_cond_destroy(&this->issued);
pthread_cond_destroy(&this->revoked);
-
+
free(this);
}
static xine_ticket_t *XINE_MALLOC ticket_init(void) {
xine_ticket_t *port_ticket;
-
+
port_ticket = calloc(1, sizeof(xine_ticket_t));
-
+
port_ticket->acquire_nonblocking = ticket_acquire_nonblocking;
port_ticket->acquire = ticket_acquire;
port_ticket->release_nonblocking = ticket_release_nonblocking;
@@ -355,13 +355,13 @@ static xine_ticket_t *XINE_MALLOC ticket_init(void) {
port_ticket->dispose = ticket_dispose;
port_ticket->holder_thread_count = XINE_MAX_TICKET_HOLDER_THREADS;
port_ticket->holder_threads = calloc(XINE_MAX_TICKET_HOLDER_THREADS,sizeof(*port_ticket->holder_threads));
-
+
pthread_mutex_init(&port_ticket->lock, NULL);
pthread_mutex_init(&port_ticket->revoke_lock, NULL);
pthread_mutex_init(&port_ticket->port_rewiring_lock, NULL);
pthread_cond_init(&port_ticket->issued, NULL);
pthread_cond_init(&port_ticket->revoked, NULL);
-
+
return port_ticket;
}
@@ -372,25 +372,25 @@ static void set_speed_internal (xine_stream_t *stream, int speed) {
if (old_speed != XINE_SPEED_PAUSE && speed == XINE_SPEED_PAUSE)
/* get all decoder and post threads in a state where they agree to be blocked */
xine->port_ticket->revoke(xine->port_ticket, 0);
-
+
if (old_speed == XINE_SPEED_PAUSE && speed != XINE_SPEED_PAUSE)
/* all decoder and post threads may continue now */
xine->port_ticket->issue(xine->port_ticket, 0);
-
+
if (old_speed != XINE_SPEED_PAUSE && speed == XINE_SPEED_PAUSE)
/* set master clock so audio_out loop can pause in a safe place */
stream->xine->clock->set_fine_speed (stream->xine->clock, speed);
-
+
/* see coment on audio_out loop about audio_paused */
if( stream->audio_out ) {
xine->port_ticket->acquire(xine->port_ticket, 1);
-
+
/* inform audio_out that speed has changed - he knows what to do */
stream->audio_out->set_property (stream->audio_out, AO_PROP_CLOCK_SPEED, speed);
-
+
xine->port_ticket->release(xine->port_ticket, 1);
}
-
+
if (old_speed == XINE_SPEED_PAUSE || speed != XINE_SPEED_PAUSE)
/* master clock is set after resuming the audio device (audio_out loop may continue) */
stream->xine->clock->set_fine_speed (stream->xine->clock, speed);
@@ -443,18 +443,18 @@ void xine_stop (xine_stream_t *stream) {
stream->video_out->set_property(stream->video_out, VO_PROP_DISCARD_FRAMES, 1);
stop_internal (stream);
-
+
if (stream->slave && (stream->slave_affection & XINE_MASTER_SLAVE_STOP))
xine_stop(stream->slave);
if (stream->video_out)
- stream->video_out->set_property(stream->video_out, VO_PROP_DISCARD_FRAMES, 0);
+ stream->video_out->set_property(stream->video_out, VO_PROP_DISCARD_FRAMES, 0);
if (stream->audio_out)
stream->audio_out->set_property(stream->audio_out, AO_PROP_DISCARD_BUFFERS, 0);
-
+
stream->xine->port_ticket->release(stream->xine->port_ticket, 1);
stream->ignore_speed_change = 0;
-
+
pthread_cleanup_pop (0);
pthread_mutex_unlock (&stream->frontend_lock);
}
@@ -481,25 +481,25 @@ static void close_internal (xine_stream_t *stream) {
pthread_mutex_unlock(&stream->speed_change_lock);
stream->xine->port_ticket->acquire(stream->xine->port_ticket, 1);
-
+
if (stream->audio_out)
stream->audio_out->set_property(stream->audio_out, AO_PROP_DISCARD_BUFFERS, 1);
if (stream->video_out)
stream->video_out->set_property(stream->video_out, VO_PROP_DISCARD_FRAMES, 1);
}
-
+
stop_internal( stream );
-
+
if( !gapless_switch ) {
if (stream->video_out)
- stream->video_out->set_property(stream->video_out, VO_PROP_DISCARD_FRAMES, 0);
+ stream->video_out->set_property(stream->video_out, VO_PROP_DISCARD_FRAMES, 0);
if (stream->audio_out)
stream->audio_out->set_property(stream->audio_out, AO_PROP_DISCARD_BUFFERS, 0);
-
+
stream->xine->port_ticket->release(stream->xine->port_ticket, 1);
stream->ignore_speed_change = 0;
}
-
+
if (stream->demux_plugin) {
_x_free_demux_plugin(stream, stream->demux_plugin);
stream->demux_plugin = NULL;
@@ -562,14 +562,14 @@ static int stream_rewire_audio(xine_post_out_t *output, void *data)
stream->xine->port_ticket->lock_port_rewiring(stream->xine->port_ticket, -1);
stream->xine->port_ticket->revoke(stream->xine->port_ticket, 1);
-
+
if (stream->audio_out->status(stream->audio_out, stream, &bits, &rate, &mode)) {
/* register our stream at the new output port */
(new_port->open) (new_port, stream, bits, rate, mode);
stream->audio_out->close(stream->audio_out, stream);
}
stream->audio_out = new_port;
-
+
stream->xine->port_ticket->issue(stream->xine->port_ticket, 1);
stream->xine->port_ticket->unlock_port_rewiring(stream->xine->port_ticket);
@@ -582,20 +582,20 @@ static int stream_rewire_video(xine_post_out_t *output, void *data)
xine_video_port_t *new_port = (xine_video_port_t *)data;
int64_t img_duration;
int width, height;
-
+
if (!data)
return 0;
stream->xine->port_ticket->lock_port_rewiring(stream->xine->port_ticket, -1);
stream->xine->port_ticket->revoke(stream->xine->port_ticket, 1);
-
+
if (stream->video_out->status(stream->video_out, stream, &width, &height, &img_duration)) {
/* register our stream at the new output port */
(new_port->open) (new_port, stream);
stream->video_out->close(stream->video_out, stream);
}
stream->video_out = new_port;
-
+
stream->xine->port_ticket->issue(stream->xine->port_ticket, 1);
stream->xine->port_ticket->unlock_port_rewiring(stream->xine->port_ticket);
@@ -652,24 +652,24 @@ xine_stream_t *xine_stream_new (xine_t *this,
stream->video_driver = vo->driver;
else
stream->video_driver = NULL;
-
+
stream->video_channel = 0;
stream->video_decoder_plugin = NULL;
stream->video_decoder_streamtype = -1;
- stream->header_count_audio = 0;
- stream->header_count_video = 0;
- stream->finished_count_audio = 0;
+ stream->header_count_audio = 0;
+ stream->header_count_video = 0;
+ stream->finished_count_audio = 0;
stream->finished_count_video = 0;
stream->err = 0;
stream->broadcaster = NULL;
-
+
/*
* initial master/slave
*/
stream->master = stream;
stream->slave = NULL;
stream->slave_is_subtitle = 0;
-
+
/*
* init mutexes and conditions
*/
@@ -704,7 +704,7 @@ xine_stream_t *xine_stream_new (xine_t *this,
_x_meta_info_reset(stream, i);
_x_meta_info_public_reset(stream, i);
}
-
+
/*
* event queues
*/
@@ -776,12 +776,12 @@ xine_stream_t *xine_stream_new (xine_t *this,
stream->video_source.type = XINE_POST_DATA_VIDEO;
stream->video_source.data = stream;
stream->video_source.rewire = stream_rewire_video;
-
+
stream->audio_source.name = "audio source";
stream->audio_source.type = XINE_POST_DATA_AUDIO;
stream->audio_source.data = stream;
stream->audio_source.rewire = stream_rewire_audio;
-
+
return stream;
}
@@ -791,7 +791,7 @@ void _x_mrl_unescape(char *mrl) {
for (i = 0; i < len; i++) {
if ((mrl[i]=='%') && (i<(len-2))) {
unsigned int c;
-
+
if (sscanf(&mrl[i + 1], "%02x", &c) == 1) {
mrl[i]= (char)c;
memmove(mrl + i + 1, mrl + i + 3, len - i - 3);
@@ -851,7 +851,7 @@ static int open_internal (xine_stream_t *stream, const char *mrl) {
const char *stream_setup = NULL;
const char *mrl_proto = NULL;
int no_cache = 0;
-
+
if (!mrl) {
xprintf (stream->xine, XINE_VERBOSITY_LOG, _("xine: error while parsing mrl\n"));
stream->err = XINE_ERROR_MALFORMED_MRL;
@@ -883,23 +883,23 @@ static int open_internal (xine_stream_t *stream, const char *mrl) {
if (!mrl_proto[0] || mrl_proto[0] != ':' || mrl_proto[1] != '/')
mrl_proto = NULL;
}
-
+
/* for raw filenames we must try every '#' checking if it is part of the filename */
if( !mrl_proto && stream_setup) {
struct stat stat_buf;
int res;
-
+
while( stream_setup ) {
char *raw_filename = strndup (mrl, stream_setup - mrl);
-
+
res = stat(raw_filename, &stat_buf);
free(raw_filename);
- if( !res )
+ if( !res )
break;
stream_setup = strchr(stream_setup + 1, '#');
}
}
-
+
{
char *input_source = strndup (mrl, stream_setup ? stream_setup - mrl : strlen (mrl));
@@ -908,7 +908,7 @@ static int open_internal (xine_stream_t *stream, const char *mrl) {
*/
stream->input_plugin = _x_find_input_plugin (stream, input_source);
free(input_source);
-
+
if ( stream->input_plugin ) {
int res;
@@ -917,7 +917,7 @@ static int open_internal (xine_stream_t *stream, const char *mrl) {
stream->input_plugin->input_class->description));
if (stream->input_plugin->input_class->eject_media)
stream->eject_class = stream->input_plugin->input_class;
- _x_meta_info_set_utf8(stream, XINE_META_INFO_INPUT_PLUGIN,
+ _x_meta_info_set_utf8(stream, XINE_META_INFO_INPUT_PLUGIN,
stream->input_plugin->input_class->identifier);
res = (stream->input_plugin->open) (stream->input_plugin);
@@ -936,7 +936,7 @@ static int open_internal (xine_stream_t *stream, const char *mrl) {
}
}
}
-
+
if (!stream->input_plugin) {
xine_log (stream->xine, XINE_LOG_MSG, _("xine: cannot find input plugin for MRL [%s]\n"),mrl);
stream->err = XINE_ERROR_NO_INPUT_PLUGIN;
@@ -1004,7 +1004,7 @@ static int open_internal (xine_stream_t *stream, const char *mrl) {
xine_log(stream->xine, XINE_LOG_MSG, _("xine: join rip input plugin\n"));
input_saver = _x_rip_plugin_get_instance (stream, filename);
free(filename);
-
+
if( input_saver ) {
stream->input_plugin = input_saver;
} else {
@@ -1182,7 +1182,7 @@ static int open_internal (xine_stream_t *stream, const char *mrl) {
if( xine_open( stream->slave, subtitle_mrl ) ) {
xprintf (stream->xine, XINE_VERBOSITY_LOG, _("subtitle mrl opened '%s'\n"), subtitle_mrl);
stream->slave->master = stream;
- stream->slave_is_subtitle = 1;
+ stream->slave_is_subtitle = 1;
} else {
xprintf(stream->xine, XINE_VERBOSITY_LOG, _("xine: error opening subtitle mrl\n"));
xine_dispose( stream->slave );
@@ -1382,9 +1382,9 @@ static int play_internal (xine_stream_t *stream, int start_pos, int start_time)
/* set normal speed */
if (_x_get_speed(stream) != XINE_SPEED_NORMAL)
set_speed_internal (stream, XINE_FINE_SPEED_NORMAL);
-
+
stream->xine->port_ticket->acquire(stream->xine->port_ticket, 1);
-
+
/* only flush/discard output ports on master streams */
if( stream->master == stream && !stream->gapless_switch) {
/* discard audio/video buffers to get engine going and take the lock faster */
@@ -1393,26 +1393,26 @@ static int play_internal (xine_stream_t *stream, int start_pos, int start_time)
if (stream->video_out)
stream->video_out->set_property(stream->video_out, VO_PROP_DISCARD_FRAMES, 1);
}
-
+
pthread_mutex_lock( &stream->demux_lock );
/* demux_lock taken. now demuxer is suspended */
stream->demux_action_pending = 0;
pthread_cond_signal(&stream->demux_resume);
- /* set normal speed again (now that demuxer/input pair is suspended)
+ /* set normal speed again (now that demuxer/input pair is suspended)
* some input plugin may have changed speed by itself, we must ensure
* the engine is not paused.
*/
if (_x_get_speed(stream) != XINE_SPEED_NORMAL)
set_speed_internal (stream, XINE_FINE_SPEED_NORMAL);
-
+
/*
* start/seek demux
*/
/* seek to new position (no data is sent to decoders yet) */
demux_status = stream->demux_plugin->seek (stream->demux_plugin,
- start_pos, start_time,
+ start_pos, start_time,
stream->demux_thread_running);
/* only flush/discard output ports on master streams */
@@ -1422,9 +1422,9 @@ static int play_internal (xine_stream_t *stream, int start_pos, int start_time)
if (stream->video_out)
stream->video_out->set_property(stream->video_out, VO_PROP_DISCARD_FRAMES, 0);
}
-
+
stream->xine->port_ticket->release(stream->xine->port_ticket, 1);
-
+
/* before resuming the demuxer, set first_frame_flag */
pthread_mutex_lock (&stream->first_frame_lock);
stream->first_frame_flag = 2;
@@ -1436,7 +1436,7 @@ static int play_internal (xine_stream_t *stream, int start_pos, int start_time)
pthread_mutex_unlock( &stream->current_extra_info_lock );
demux_thread_running = stream->demux_thread_running;
-
+
/* now resume demuxer thread if it is running already */
pthread_mutex_unlock( &stream->demux_lock );
@@ -1459,7 +1459,7 @@ static int play_internal (xine_stream_t *stream, int start_pos, int start_time)
* see video_out.c
*/
wait_first_frame (stream);
-
+
xprintf (stream->xine, XINE_VERBOSITY_DEBUG, "play_internal ...done\n");
return 1;
@@ -1473,26 +1473,26 @@ int xine_play (xine_stream_t *stream, int start_pos, int start_time) {
pthread_cleanup_push (mutex_cleanup, (void *) &stream->frontend_lock);
stream->delay_finish_event = 0;
-
+
ret = play_internal (stream, start_pos, start_time);
if( stream->slave && (stream->slave_affection & XINE_MASTER_SLAVE_PLAY) )
xine_play (stream->slave, start_pos, start_time);
-
+
stream->gapless_switch = 0;
pthread_cleanup_pop (0);
pthread_mutex_unlock (&stream->frontend_lock);
-
+
return ret;
}
int xine_eject (xine_stream_t *stream) {
-
+
int status;
- if (!stream->eject_class)
+ if (!stream->eject_class)
return 0;
-
+
pthread_mutex_lock (&stream->frontend_lock);
pthread_cleanup_push (mutex_cleanup, (void *) &stream->frontend_lock);
@@ -1507,7 +1507,7 @@ int xine_eject (xine_stream_t *stream) {
pthread_cleanup_pop (0);
pthread_mutex_unlock (&stream->frontend_lock);
-
+
return status;
}
@@ -1539,7 +1539,7 @@ static void xine_dispose_internal (xine_stream_t *stream) {
pthread_mutex_unlock(&stream->xine->streams_lock);
_x_refcounter_dispose(stream->refcounter);
-
+
free (stream->current_extra_info);
free (stream->video_decoder_extra_info);
free (stream->audio_decoder_extra_info);
@@ -1557,7 +1557,7 @@ void xine_dispose (xine_stream_t *stream) {
xine_close(stream);
if( stream->master != stream ) {
- stream->master->slave = NULL;
+ stream->master->slave = NULL;
}
if( stream->slave && stream->slave->master == stream ) {
stream->slave->master = NULL;
@@ -1565,7 +1565,7 @@ void xine_dispose (xine_stream_t *stream) {
if(stream->broadcaster)
_x_close_broadcaster(stream->broadcaster);
-
+
xprintf (stream->xine, XINE_VERBOSITY_DEBUG, "shutdown audio\n");
_x_audio_decoder_shutdown (stream);
@@ -1597,13 +1597,13 @@ void xine_exit (xine_t *this) {
if(this->clock)
this->clock->exit (this->clock);
-
+
if(this->config)
this->config->dispose(this->config);
if(this->port_ticket)
this->port_ticket->dispose(this->port_ticket);
-
+
#if defined(WIN32)
WSACleanup();
#endif
@@ -1663,7 +1663,7 @@ xine_t *xine_new (void) {
#endif /* WIN32 */
this->verbosity = XINE_VERBOSITY_NONE;
-
+
return this;
}
@@ -1717,10 +1717,10 @@ static void config_save_cb (void *this_gen, xine_cfg_entry_t *entry) {
strcmp(entry->str_value, homedir_trail_slash) == 0)) {
xine_stream_t *stream;
xine_list_iterator_t ite;
-
+
xine_log(this, XINE_LOG_MSG,
_("xine: The specified save_dir \"%s\" might be a security risk.\n"), entry->str_value);
-
+
pthread_mutex_lock(&this->streams_lock);
if ( (ite = xine_list_front(this->streams)) ) {
stream = xine_list_get_value(this->streams, ite);
@@ -1728,7 +1728,7 @@ static void config_save_cb (void *this_gen, xine_cfg_entry_t *entry) {
}
pthread_mutex_unlock(&this->streams_lock);
}
-
+
this->save_path = entry->str_value;
}
@@ -1744,7 +1744,7 @@ void xine_init (xine_t *this) {
*/
pthread_mutex_init (&this->streams_lock, NULL);
pthread_mutex_init (&this->log_lock, NULL);
-
+
/* initialize color conversion tables and functions */
init_yuv_conversion();
@@ -1784,7 +1784,7 @@ void xine_init (xine_t *this) {
* save directory
*/
this->save_path = this->config->register_filename (
- this->config,
+ this->config,
"media.capture.save_dir", "", XINE_CONFIG_STRING_IS_DIRECTORY_NAME,
_("directory for saving streams"),
_("When using the stream save feature, files will be written only into this directory.\n"
@@ -1792,7 +1792,7 @@ void xine_init (xine_t *this) {
"can be used to fill files in it with arbitrary content. So you should be careful that "
"the directory you specify is robust against any content in any file."),
XINE_CONFIG_SECURITY, config_save_cb, this);
-
+
/*
* implicit configuration changes
*/
@@ -1832,7 +1832,7 @@ void xine_init (xine_t *this) {
this->clock = _x_metronom_clock_init(this);
this->clock->start_clock (this->clock, 0);
-
+
/*
* tickets
*/
@@ -1845,7 +1845,7 @@ void _x_select_spu_channel (xine_stream_t *stream, int channel) {
stream->spu_channel_user = (channel >= -2 ? channel : -2);
stream->xine->port_ticket->acquire(stream->xine->port_ticket, 0);
-
+
switch (stream->spu_channel_user) {
case -2:
stream->spu_channel = -1;
@@ -1865,7 +1865,7 @@ void _x_select_spu_channel (xine_stream_t *stream, int channel) {
lprintf("set to %d\n",stream->spu_channel);
stream->xine->port_ticket->release(stream->xine->port_ticket, 0);
-
+
pthread_mutex_unlock (&stream->frontend_lock);
}
@@ -1925,10 +1925,10 @@ void _x_set_fine_speed (xine_stream_t *stream, int speed) {
{
if (speed <= XINE_SPEED_PAUSE)
speed = XINE_SPEED_PAUSE;
-
+
xprintf (stream->xine, XINE_VERBOSITY_DEBUG, "set_speed %d\n", speed);
set_speed_internal (stream, speed);
-
+
if (stream->slave && (stream->slave_affection & XINE_MASTER_SLAVE_SPEED))
set_speed_internal (stream->slave, speed);
}
@@ -1940,7 +1940,7 @@ int _x_get_fine_speed (xine_stream_t *stream) {
}
void _x_set_speed (xine_stream_t *stream, int speed) {
-
+
if (speed > XINE_SPEED_FAST_4)
speed = XINE_SPEED_FAST_4;
@@ -1949,13 +1949,13 @@ void _x_set_speed (xine_stream_t *stream, int speed) {
int _x_get_speed (xine_stream_t *stream) {
int speed = _x_get_fine_speed (stream);
-
+
/*
- * ensure compatibility with old API, only valid XINE_SPEED_xxx
+ * ensure compatibility with old API, only valid XINE_SPEED_xxx
* constants are allowed. XINE_SPEED_NORMAL may only be returned
* if speed is exactly XINE_FINE_SPEED_NORMAL.
*/
-
+
if( speed <= XINE_SPEED_PAUSE )
return XINE_SPEED_PAUSE;
if( speed <= XINE_SPEED_SLOW_4 * XINE_FINE_SPEED_NORMAL / XINE_SPEED_NORMAL )
@@ -2023,7 +2023,7 @@ static int _x_get_current_frame_data (xine_stream_t *stream,
if (frame)
frame->lock(frame);
stream->xine->port_ticket->release(stream->xine->port_ticket, 0);
-
+
if (!frame) {
data->img_size = 0;
return 0;
@@ -2047,7 +2047,7 @@ static int _x_get_current_frame_data (xine_stream_t *stream,
data->ratio_code = XINE_VO_ASPECT_ANAMORPHIC;
else if (RATIO_LIKE(data->ratio_code, 21100))
data->ratio_code = XINE_VO_ASPECT_DVB;
-
+
data->format = frame->format;
data->interlaced = frame->progressive_frame ? 0 : (2 - frame->top_field_first);
@@ -2072,7 +2072,7 @@ static int _x_get_current_frame_data (xine_stream_t *stream,
if (!data->img && !(flags & XINE_FRAME_DATA_ALLOCATE_IMG))
break; /* not interested in image data */
- xprintf (stream->xine, XINE_VERBOSITY_DEBUG,
+ xprintf (stream->xine, XINE_VERBOSITY_DEBUG,
"xine: error, snapshot function not implemented for format 0x%x\n", frame->format);
/* fall though and provide "green" YV12 image */
data->format = XINE_IMGFMT_YV12;
@@ -2109,7 +2109,7 @@ static int _x_get_current_frame_data (xine_stream_t *stream,
/* return used buffer size */
data->img_size = required_size;
}
-
+
if (data->img) {
switch (frame->format) {
@@ -2307,7 +2307,7 @@ static inline void check_log_alloc (xine_t *this, int buf)
void xine_log (xine_t *this, int buf, const char *format, ...) {
va_list argp;
char buffer[SCRATCH_LINE_LEN_MAX];
-
+
check_log_alloc (this, buf);
va_start (argp, format);
@@ -2319,13 +2319,13 @@ void xine_log (xine_t *this, int buf, const char *format, ...) {
vsnprintf(buffer, SCRATCH_LINE_LEN_MAX, format, argp);
printf("%s", buffer);
va_end (argp);
- }
+ }
if (this->log_cb)
this->log_cb (this->log_cb_user_data, buf);
}
-void xine_vlog(xine_t *this, int buf, const char *format,
+void xine_vlog(xine_t *this, int buf, const char *format,
va_list args)
{
check_log_alloc (this, buf);
@@ -2373,13 +2373,13 @@ int _x_query_buffer_usage(xine_stream_t *stream, int *num_video_buffers, int *nu
if (num_video_buffers)
*num_video_buffers = (stream->video_fifo ? stream->video_fifo->size(stream->video_fifo) : 0);
-
+
if (num_audio_buffers)
*num_audio_buffers = (stream->audio_fifo ? stream->audio_fifo->size(stream->audio_fifo) : 0);
-
+
if ((num_video_frames && stream->video_out)
|| (num_audio_frames && stream->audio_out)) {
-
+
ticket_acquired = stream->xine->port_ticket->acquire_nonblocking(stream->xine->port_ticket, 1);
}
@@ -2437,14 +2437,14 @@ int _x_query_unprocessed_osd_events(xine_stream_t *stream)
{
video_overlay_manager_t *ovl;
int redraw_needed;
-
+
if (!stream->xine->port_ticket->acquire_nonblocking(stream->xine->port_ticket, 1))
return -1;
ovl = stream->video_out->get_overlay_manager(stream->video_out);
redraw_needed = ovl->redraw_needed(ovl, 0);
-
- if (redraw_needed)
+
+ if (redraw_needed)
stream->video_out->trigger_drawing(stream->video_out);
stream->xine->port_ticket->release_nonblocking(stream->xine->port_ticket, 1);
diff --git a/src/xine-engine/xine_interface.c b/src/xine-engine/xine_interface.c
index 3eeafb032..87775c470 100644
--- a/src/xine-engine/xine_interface.c
+++ b/src/xine-engine/xine_interface.c
@@ -1,18 +1,18 @@
/*
* Copyright (C) 2000-2004 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -46,7 +46,7 @@
#include <xine/demux.h>
#include <xine/post.h>
-/*
+/*
* version information / checking
*/
@@ -65,12 +65,12 @@ void xine_get_version (int *major, int *minor, int *sub) {
}
int xine_check_version(int major, int minor, int sub) {
-
- if((XINE_MAJOR > major) ||
- ((XINE_MAJOR == major) && (XINE_MINOR > minor)) ||
+
+ if((XINE_MAJOR > major) ||
+ ((XINE_MAJOR == major) && (XINE_MINOR > minor)) ||
((XINE_MAJOR == major) && (XINE_MINOR == minor) && (XINE_SUB >= sub)))
return 1;
-
+
return 0;
}
@@ -86,7 +86,7 @@ const char* xine_config_register_string (xine_t *self,
int exp_level,
xine_config_cb_t changed_cb,
void *cb_data) {
-
+
return self->config->register_string (self->config,
key,
def_value,
@@ -107,7 +107,7 @@ const char* xine_config_register_filename (xine_t *self,
int exp_level,
xine_config_cb_t changed_cb,
void *cb_data) {
-
+
return self->config->register_filename (self->config,
key, def_value, req_type,
description, help, exp_level,
@@ -128,7 +128,7 @@ int xine_config_register_range (xine_t *self,
description, help, exp_level,
changed_cb, cb_data);
}
-
+
int xine_config_register_enum (xine_t *self,
const char *key,
@@ -144,7 +144,7 @@ int xine_config_register_enum (xine_t *self,
description, help, exp_level,
changed_cb, cb_data);
}
-
+
int xine_config_register_num (xine_t *self,
const char *key,
@@ -155,7 +155,7 @@ int xine_config_register_num (xine_t *self,
xine_config_cb_t changed_cb,
void *cb_data) {
return self->config->register_num (self->config,
- key, def_value,
+ key, def_value,
description, help, exp_level,
changed_cb, cb_data);
}
@@ -170,11 +170,11 @@ int xine_config_register_bool (xine_t *self,
xine_config_cb_t changed_cb,
void *cb_data) {
return self->config->register_bool (self->config,
- key, def_value,
+ key, def_value,
description, help, exp_level,
changed_cb, cb_data);
}
-
+
/*
* helper function:
@@ -210,7 +210,7 @@ static int config_get_current_entry (xine_t *this, xine_cfg_entry_t *entry) {
}
/*
- * get first config item
+ * get first config item
*/
int xine_config_get_first_entry (xine_t *this, xine_cfg_entry_t *entry) {
int result;
@@ -227,12 +227,12 @@ int xine_config_get_first_entry (xine_t *this, xine_cfg_entry_t *entry) {
return result;
}
-
+
/*
* get next config item (iterate through the items)
* this will return NULL when called after returning the last item
- */
+ */
int xine_config_get_next_entry (xine_t *this, xine_cfg_entry_t *entry) {
int result;
config_values_t *config = this->config;
@@ -243,7 +243,7 @@ int xine_config_get_next_entry (xine_t *this, xine_cfg_entry_t *entry) {
pthread_mutex_unlock(&config->config_lock);
return (xine_config_get_first_entry(this, entry));
}
-
+
/* do not hand out unclaimed entries */
do {
config->cur = config->cur->next;
@@ -252,11 +252,11 @@ int xine_config_get_next_entry (xine_t *this, xine_cfg_entry_t *entry) {
pthread_mutex_unlock(&config->config_lock);
return result;
-}
-
+}
+
/*
- * search for a config entry by key
+ * search for a config entry by key
*/
int xine_config_lookup_entry (xine_t *this, const char *key,
@@ -274,7 +274,7 @@ int xine_config_lookup_entry (xine_t *this, const char *key,
return result;
}
-
+
/*
* update a config entry (which was returned from lookup_entry() )
@@ -294,12 +294,12 @@ void xine_config_update_entry (xine_t *this, const xine_cfg_entry_t *entry) {
break;
default:
- xprintf (this, XINE_VERBOSITY_DEBUG,
+ xprintf (this, XINE_VERBOSITY_DEBUG,
"xine_interface: error, unknown config entry type %d\n", entry->type);
_x_abort();
}
}
-
+
void xine_config_reset (xine_t *this) {
@@ -325,7 +325,7 @@ void xine_config_reset (xine_t *this) {
int xine_port_send_gui_data (xine_video_port_t *vo,
int type, void *data) {
- return vo->driver->gui_data_exchange (vo->driver,
+ return vo->driver->gui_data_exchange (vo->driver,
type, data);
}
@@ -360,7 +360,7 @@ void xine_set_param (xine_stream_t *stream, int param, int value) {
_x_set_speed (stream, value);
pthread_mutex_unlock (&stream->frontend_lock);
break;
-
+
case XINE_PARAM_FINE_SPEED:
pthread_mutex_lock (&stream->frontend_lock);
_x_set_fine_speed (stream, value);
@@ -370,7 +370,7 @@ void xine_set_param (xine_stream_t *stream, int param, int value) {
case XINE_PARAM_AV_OFFSET:
stream->metronom->set_option (stream->metronom, METRONOM_AV_OFFSET, value);
break;
-
+
case XINE_PARAM_SPU_OFFSET:
stream->metronom->set_option (stream->metronom, METRONOM_SPU_OFFSET, value);
break;
@@ -408,14 +408,14 @@ void xine_set_param (xine_stream_t *stream, int param, int value) {
stream->audio_out->set_property (stream->audio_out, AO_PROP_MUTE_VOL, value);
stream->xine->port_ticket->release(stream->xine->port_ticket, 0);
break;
-
+
case XINE_PARAM_AUDIO_COMPR_LEVEL:
stream->xine->port_ticket->acquire(stream->xine->port_ticket, 0);
if (stream->audio_out)
stream->audio_out->set_property (stream->audio_out, AO_PROP_COMPRESSOR, value);
stream->xine->port_ticket->release(stream->xine->port_ticket, 0);
break;
-
+
case XINE_PARAM_AUDIO_AMP_LEVEL:
stream->xine->port_ticket->acquire(stream->xine->port_ticket, 0);
if (stream->audio_out) {
@@ -455,8 +455,8 @@ void xine_set_param (xine_stream_t *stream, int param, int value) {
case XINE_PARAM_EQ_16000HZ:
stream->xine->port_ticket->acquire(stream->xine->port_ticket, 0);
if (stream->audio_out)
- stream->audio_out->set_property (stream->audio_out,
- param - XINE_PARAM_EQ_30HZ + AO_PROP_EQ_30HZ,
+ stream->audio_out->set_property (stream->audio_out,
+ param - XINE_PARAM_EQ_30HZ + AO_PROP_EQ_30HZ,
value);
stream->xine->port_ticket->release(stream->xine->port_ticket, 0);
break;
@@ -488,15 +488,15 @@ void xine_set_param (xine_stream_t *stream, int param, int value) {
case XINE_PARAM_IGNORE_VIDEO:
_x_stream_info_set(stream, XINE_STREAM_INFO_IGNORE_VIDEO, value);
break;
-
+
case XINE_PARAM_IGNORE_AUDIO:
_x_stream_info_set(stream, XINE_STREAM_INFO_IGNORE_AUDIO, value);
break;
-
+
case XINE_PARAM_IGNORE_SPU:
_x_stream_info_set(stream, XINE_STREAM_INFO_IGNORE_SPU, value);
break;
-
+
case XINE_PARAM_METRONOM_PREBUFFER:
stream->metronom->set_option(stream->metronom, METRONOM_PREBUFFER, value);
break;
@@ -509,26 +509,26 @@ void xine_set_param (xine_stream_t *stream, int param, int value) {
stream->broadcaster = NULL;
}
break;
-
+
case XINE_PARAM_EARLY_FINISHED_EVENT:
stream->early_finish_event = !!value;
break;
-
+
case XINE_PARAM_DELAY_FINISHED_EVENT:
stream->delay_finish_event = value;
break;
-
+
case XINE_PARAM_GAPLESS_SWITCH:
stream->gapless_switch = !!value;
if( stream->gapless_switch && !stream->early_finish_event ) {
xprintf (stream->xine, XINE_VERBOSITY_DEBUG, "frontend possibly buggy: gapless_switch without early_finish_event\n");
}
break;
-
+
default:
xprintf (stream->xine, XINE_VERBOSITY_DEBUG,
"xine_interface: unknown or deprecated stream param %d set\n", param);
- }
+ }
}
int xine_get_param (xine_stream_t *stream, int param) {
@@ -538,7 +538,7 @@ int xine_get_param (xine_stream_t *stream, int param) {
case XINE_PARAM_SPEED:
ret = _x_get_speed(stream);
break;
-
+
case XINE_PARAM_FINE_SPEED:
ret = _x_get_fine_speed(stream);
break;
@@ -546,7 +546,7 @@ int xine_get_param (xine_stream_t *stream, int param) {
case XINE_PARAM_AV_OFFSET:
ret = stream->metronom->get_option (stream->metronom, METRONOM_AV_OFFSET);
break;
-
+
case XINE_PARAM_SPU_OFFSET:
ret = stream->metronom->get_option (stream->metronom, METRONOM_SPU_OFFSET);
break;
@@ -569,7 +569,7 @@ int xine_get_param (xine_stream_t *stream, int param) {
ret = -1;
else
ret = stream->audio_out->get_property (stream->audio_out, AO_PROP_MIXER_VOL);
- stream->xine->port_ticket->release(stream->xine->port_ticket, 0);
+ stream->xine->port_ticket->release(stream->xine->port_ticket, 0);
break;
case XINE_PARAM_AUDIO_MUTE:
@@ -578,7 +578,7 @@ int xine_get_param (xine_stream_t *stream, int param) {
ret = -1;
else
ret = stream->audio_out->get_property (stream->audio_out, AO_PROP_MUTE_VOL);
- stream->xine->port_ticket->release(stream->xine->port_ticket, 0);
+ stream->xine->port_ticket->release(stream->xine->port_ticket, 0);
break;
case XINE_PARAM_AUDIO_COMPR_LEVEL:
@@ -587,7 +587,7 @@ int xine_get_param (xine_stream_t *stream, int param) {
ret = -1;
else
ret = stream->audio_out->get_property (stream->audio_out, AO_PROP_COMPRESSOR);
- stream->xine->port_ticket->release(stream->xine->port_ticket, 0);
+ stream->xine->port_ticket->release(stream->xine->port_ticket, 0);
break;
case XINE_PARAM_AUDIO_AMP_LEVEL:
@@ -596,7 +596,7 @@ int xine_get_param (xine_stream_t *stream, int param) {
ret = -1;
else
ret = stream->audio_out->get_property (stream->audio_out, AO_PROP_AMP);
- stream->xine->port_ticket->release(stream->xine->port_ticket, 0);
+ stream->xine->port_ticket->release(stream->xine->port_ticket, 0);
break;
case XINE_PARAM_AUDIO_AMP_MUTE:
@@ -605,7 +605,7 @@ int xine_get_param (xine_stream_t *stream, int param) {
ret = -1;
else
ret = stream->audio_out->get_property (stream->audio_out, AO_PROP_AMP_MUTE);
- stream->xine->port_ticket->release(stream->xine->port_ticket, 0);
+ stream->xine->port_ticket->release(stream->xine->port_ticket, 0);
break;
case XINE_PARAM_EQ_30HZ:
@@ -622,9 +622,9 @@ int xine_get_param (xine_stream_t *stream, int param) {
if (!stream->audio_out)
ret = -1;
else
- ret= stream->audio_out->get_property (stream->audio_out,
+ ret= stream->audio_out->get_property (stream->audio_out,
param - XINE_PARAM_EQ_30HZ + AO_PROP_EQ_30HZ);
- stream->xine->port_ticket->release(stream->xine->port_ticket, 0);
+ stream->xine->port_ticket->release(stream->xine->port_ticket, 0);
break;
case XINE_PARAM_VERBOSITY:
@@ -650,17 +650,17 @@ int xine_get_param (xine_stream_t *stream, int param) {
case XINE_PARAM_VO_CROP_BOTTOM:
stream->xine->port_ticket->acquire(stream->xine->port_ticket, 0);
ret = stream->video_out->get_property(stream->video_out, param);
- stream->xine->port_ticket->release(stream->xine->port_ticket, 0);
+ stream->xine->port_ticket->release(stream->xine->port_ticket, 0);
break;
-
+
case XINE_PARAM_IGNORE_VIDEO:
ret = _x_stream_info_get_public(stream, XINE_STREAM_INFO_IGNORE_VIDEO);
break;
-
+
case XINE_PARAM_IGNORE_AUDIO:
ret = _x_stream_info_get_public(stream, XINE_STREAM_INFO_IGNORE_AUDIO);
break;
-
+
case XINE_PARAM_IGNORE_SPU:
ret = _x_stream_info_get_public(stream, XINE_STREAM_INFO_IGNORE_SPU);
break;
@@ -668,22 +668,22 @@ int xine_get_param (xine_stream_t *stream, int param) {
case XINE_PARAM_METRONOM_PREBUFFER:
ret = stream->metronom->get_option(stream->metronom, METRONOM_PREBUFFER);
break;
-
+
case XINE_PARAM_BROADCASTER_PORT:
if( stream->broadcaster )
ret = _x_get_broadcaster_port(stream->broadcaster);
else
ret = 0;
break;
-
+
case XINE_PARAM_EARLY_FINISHED_EVENT:
ret = stream->early_finish_event;
break;
-
+
case XINE_PARAM_DELAY_FINISHED_EVENT:
ret = stream->delay_finish_event;
break;
-
+
case XINE_PARAM_GAPLESS_SWITCH:
ret = stream->gapless_switch;
break;
@@ -753,7 +753,7 @@ uint32_t xine_get_stream_info (xine_stream_t *stream, int info) {
case XINE_STREAM_INFO_MAX_SPU_CHANNEL:
return stream->spu_track_map_entries;
-
+
default:
xprintf (stream->xine, XINE_VERBOSITY_DEBUG,
"xine_interface: unknown or deprecated stream info %d requested\n", info);
@@ -774,11 +774,11 @@ xine_osd_t *xine_osd_new(xine_stream_t *stream, int x, int y, int width, int hei
uint32_t xine_osd_get_capabilities(xine_osd_t *this) {
return this->osd.renderer->get_capabilities(&this->osd);
-}
+}
void xine_osd_draw_point(xine_osd_t *this, int x, int y, int color) {
this->osd.renderer->point(&this->osd, x, y, color);
-}
+}
void xine_osd_draw_line(xine_osd_t *this, int x1, int y1, int x2, int y2, int color) {
this->osd.renderer->line(&this->osd, x1, y1, x2, y2, color);
@@ -880,7 +880,7 @@ const char *const *xine_post_list_outputs(xine_post_t *this_gen) {
xine_post_in_t *xine_post_input(xine_post_t *this_gen, const char *name) {
post_plugin_t *this = (post_plugin_t *)this_gen;
xine_list_iterator_t ite;
-
+
ite = xine_list_front(this->input);
while (ite) {
xine_post_in_t *input = xine_list_get_value(this->input, ite);
@@ -894,7 +894,7 @@ xine_post_in_t *xine_post_input(xine_post_t *this_gen, const char *name) {
xine_post_out_t *xine_post_output(xine_post_t *this_gen, const char *name) {
post_plugin_t *this = (post_plugin_t *)this_gen;
xine_list_iterator_t ite;
-
+
ite = xine_list_front(this->output);
while (ite) {
xine_post_out_t *output = xine_list_get_value(this->output, ite);
@@ -945,7 +945,7 @@ int xine_post_wire_audio_port(xine_post_out_t *source, xine_audio_port_t *ao) {
}
xine_post_out_t * xine_get_video_source(xine_stream_t *stream) {
- return &stream->video_source;
+ return &stream->video_source;
}
xine_post_out_t * xine_get_audio_source(xine_stream_t *stream) {
@@ -1002,14 +1002,14 @@ int _x_message(xine_stream_t *stream, int type, ...) {
va_end(ap);
args[n] = NULL;
-
+
size += sizeof(xine_ui_message_data_t) + 1;
data = calloc(1, size );
strcpy(data->compatibility.str, "Upgrade your frontend to see the error messages");
data->type = type;
data->num_parameters = n;
-
+
if( explanation ) {
strcpy(data->messages, explanation);
data->explanation = data->messages - (char *)data;
@@ -1020,10 +1020,10 @@ int _x_message(xine_stream_t *stream, int type, ...) {
}
data->parameters = params - (char *)data;
-
+
n = 0;
*params = '\0';
-
+
while(args[n]) {
strcpy(params, args[n]);
params += strlen(args[n]) + 1;
diff --git a/src/xine-engine/xine_private.h b/src/xine-engine/xine_private.h
index 6fb215bab..6c01d3a2d 100644
--- a/src/xine-engine/xine_private.h
+++ b/src/xine-engine/xine_private.h
@@ -1,18 +1,18 @@
/*
* Copyright (C) 2000-2008 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
diff --git a/src/xine-utils/array.c b/src/xine-utils/array.c
index 0db45be0c..2cc540c34 100644
--- a/src/xine-utils/array.c
+++ b/src/xine-utils/array.c
@@ -1,18 +1,18 @@
-/*
+/*
* Copyright (C) 2000-2006 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
diff --git a/src/xine-utils/color.c b/src/xine-utils/color.c
index 69bba01c9..5c433ed59 100644
--- a/src/xine-utils/color.c
+++ b/src/xine-utils/color.c
@@ -18,7 +18,7 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
*
* Color Conversion Utility Functions
- *
+ *
* Overview: xine's video output modules only accept YUV images from
* video decoder modules. A video decoder can either send a planar (YV12)
* image or a packed (YUY2) image to a video output module. However, many
@@ -141,16 +141,16 @@ void (*yuv411_to_yv12)
const unsigned char *v_src, int v_src_pitch, unsigned char *v_dest, int v_dest_pitch,
int width, int height);
void (*yv12_to_yuy2)
- (const unsigned char *y_src, int y_src_pitch,
- const unsigned char *u_src, int u_src_pitch,
- const unsigned char *v_src, int v_src_pitch,
+ (const unsigned char *y_src, int y_src_pitch,
+ const unsigned char *u_src, int u_src_pitch,
+ const unsigned char *v_src, int v_src_pitch,
unsigned char *yuy2_map, int yuy2_pitch,
int width, int height, int progressive);
void (*yuy2_to_yv12)
(const unsigned char *yuy2_map, int yuy2_pitch,
- unsigned char *y_dst, int y_dst_pitch,
- unsigned char *u_dst, int u_dst_pitch,
- unsigned char *v_dst, int v_dst_pitch,
+ unsigned char *y_dst, int y_dst_pitch,
+ unsigned char *u_dst, int u_dst_pitch,
+ unsigned char *v_dst, int v_dst_pitch,
int width, int height);
/*
@@ -184,7 +184,7 @@ void free_yuv_planes(yuv_planes_t *yuv_planes) {
free(yuv_planes->v);
}
-/*
+/*
* yuv444_to_yuy2_c
*
* This is the simple, portable C version of the yuv444_to_yuy2() function.
@@ -201,7 +201,7 @@ void free_yuv_planes(yuv_planes_t *yuv_planes) {
*
* YUY2 map: Y0 U0 Y1 V1 Y2 U2 Y3 V3
*/
-static void yuv444_to_yuy2_c(const yuv_planes_t *yuv_planes, unsigned char *yuy2_map,
+static void yuv444_to_yuy2_c(const yuv_planes_t *yuv_planes, unsigned char *yuy2_map,
int pitch) {
unsigned int row_ptr, pixel_ptr;
@@ -236,12 +236,12 @@ static void yuv444_to_yuy2_c(const yuv_planes_t *yuv_planes, unsigned char *yuy2
}
}
-/*
+/*
* yuv444_to_yuy2_mmx
*
* This is the proper, filtering version of the yuv444_to_yuy2() function
* optimized with basic Intel MMX instructions.
- *
+ *
* yuv_planes contains the 3 non-subsampled planes that represent Y, U,
* and V samples for every pixel in the image. The goal is to convert the
* 3 planes to a single packed YUY2 byte stream. Dealing with the Y
@@ -346,7 +346,7 @@ static void yuv444_to_yuy2_mmx(const yuv_planes_t *yuv_planes, unsigned char *yu
block_loops--;
}
- /* set up some MMX registers:
+ /* set up some MMX registers:
* mm0 = 0, mm7 = color filter */
pxor_r2r(mm0, mm0);
movq_m2r(*filter, mm7);
@@ -526,8 +526,8 @@ static void vscale_chroma_line (unsigned char *dst, int pitch,
}
}
-static void upsample_c_plane_c(const unsigned char *src, int src_width,
- int src_height, unsigned char *dest,
+static void upsample_c_plane_c(const unsigned char *src, int src_width,
+ int src_height, unsigned char *dest,
unsigned int src_pitch, unsigned int dest_pitch) {
unsigned char *cr1;
@@ -586,11 +586,11 @@ static void yuv9_to_yv12_c
}
/* U plane */
- upsample_c_plane_c(u_src, width / 4, height / 4, u_dest,
+ upsample_c_plane_c(u_src, width / 4, height / 4, u_dest,
u_src_pitch, u_dest_pitch);
/* V plane */
- upsample_c_plane_c(v_src, width / 4, height / 4, v_dest,
+ upsample_c_plane_c(v_src, width / 4, height / 4, v_dest,
v_src_pitch, v_dest_pitch);
}
@@ -629,7 +629,7 @@ static void yuv411_to_yv12_c
c_src_pixel++) {
/* downsample by averaging the samples from 2 rows */
- c_sample =
+ c_sample =
(u_src[c_src_pixel] + u_src[c_src_pixel + u_src_pitch] + 1) / 2;
/* upsample by outputting the sample twice on the YV12 row */
u_dest[c_dest_pixel++] = c_sample;
@@ -648,7 +648,7 @@ static void yuv411_to_yv12_c
c_src_pixel++) {
/* downsample by averaging the samples from 2 rows */
- c_sample =
+ c_sample =
(v_src[c_src_pixel] + v_src[c_src_pixel + v_src_pitch] + 1 ) / 2;
/* upsample by outputting the sample twice on the YV12 row */
v_dest[c_dest_pixel++] = c_sample;
@@ -671,9 +671,9 @@ static void yuv411_to_yv12_c
* changed to support interlaced frames and use simple mean interpolation [MF]
*****************************************************************************/
static void yv12_to_yuy2_c
- (const unsigned char *y_src, int y_src_pitch,
- const unsigned char *u_src, int u_src_pitch,
- const unsigned char *v_src, int v_src_pitch,
+ (const unsigned char *y_src, int y_src_pitch,
+ const unsigned char *u_src, int u_src_pitch,
+ const unsigned char *v_src, int v_src_pitch,
unsigned char *yuy2_map, int yuy2_pitch,
int width, int height, int progressive) {
@@ -698,15 +698,15 @@ static void yv12_to_yuy2_c
{
p_line1 = p_line2;
p_line2 += yuy2_pitch;
-
+
p_y1 = p_y2;
p_y2 += y_src_pitch;
-
+
for( i_x = width / 2 ; i_x-- ; )
{
C_YUV420_YUYV( );
}
-
+
p_y2 += i_source_margin;
p_u += i_source_u_margin;
p_v += i_source_v_margin;
@@ -728,15 +728,15 @@ static void yv12_to_yuy2_c
{
p_line1 = p_line2;
p_line2 += 2 * yuy2_pitch;
-
+
p_y1 = p_y2;
p_y2 += 2 * y_src_pitch;
-
+
for( i_x = width / 2 ; i_x-- ; )
{
C_YUV420_YUYV( );
}
-
+
p_y2 += i_source_margin + y_src_pitch;
p_u += i_source_u_margin + u_src_pitch;
p_v += i_source_v_margin + v_src_pitch;
@@ -749,27 +749,27 @@ static void yv12_to_yuy2_c
}
p_line2 += i_dest_margin + yuy2_pitch;
}
-
+
p_line2 = yuy2_map + yuy2_pitch;
p_y2 = y_src + y_src_pitch;
p_u = u_src + u_src_pitch;
p_v = v_src + v_src_pitch;
p_u2 = u_src + 3*u_src_pitch;
p_v2 = v_src + 3*v_src_pitch;
-
+
for( i_y = height / 4 ; i_y-- ; )
{
p_line1 = p_line2;
p_line2 += 2 * yuy2_pitch;
-
+
p_y1 = p_y2;
p_y2 += 2 * y_src_pitch;
-
+
for( i_x = width / 2 ; i_x-- ; )
{
C_YUV420_YUYV( );
}
-
+
p_y2 += i_source_margin + y_src_pitch;
p_u += i_source_u_margin + u_src_pitch;
p_v += i_source_v_margin + v_src_pitch;
@@ -826,9 +826,9 @@ do {
#endif
static void yv12_to_yuy2_mmxext
- (const unsigned char *y_src, int y_src_pitch,
- const unsigned char *u_src, int u_src_pitch,
- const unsigned char *v_src, int v_src_pitch,
+ (const unsigned char *y_src, int y_src_pitch,
+ const unsigned char *u_src, int u_src_pitch,
+ const unsigned char *v_src, int v_src_pitch,
unsigned char *yuy2_map, int yuy2_pitch,
int width, int height, int progressive ) {
#if defined(ARCH_X86) || defined(ARCH_X86_64)
@@ -852,10 +852,10 @@ static void yv12_to_yuy2_mmxext
{
p_line1 = p_line2;
p_line2 += yuy2_pitch;
-
+
p_y1 = p_y2;
p_y2 += y_src_pitch;
-
+
for( i_x = width / 8 ; i_x-- ; )
{
MMXEXT_YUV420_YUYV( );
@@ -864,7 +864,7 @@ static void yv12_to_yuy2_mmxext
{
C_YUV420_YUYV( );
}
-
+
p_y2 += i_source_margin;
p_u += i_source_u_margin;
p_v += i_source_v_margin;
@@ -886,10 +886,10 @@ static void yv12_to_yuy2_mmxext
{
p_line1 = p_line2;
p_line2 += 2 * yuy2_pitch;
-
+
p_y1 = p_y2;
p_y2 += 2 * y_src_pitch;
-
+
for( i_x = width / 8 ; i_x-- ; )
{
MMXEXT_YUV420_YUYV( );
@@ -898,7 +898,7 @@ static void yv12_to_yuy2_mmxext
{
C_YUV420_YUYV( );
}
-
+
p_y2 += i_source_margin + y_src_pitch;
p_u += i_source_u_margin + u_src_pitch;
p_v += i_source_v_margin + v_src_pitch;
@@ -911,22 +911,22 @@ static void yv12_to_yuy2_mmxext
}
p_line2 += i_dest_margin + yuy2_pitch;
}
-
+
p_line2 = yuy2_map + yuy2_pitch;
p_y2 = y_src + y_src_pitch;
p_u = u_src + u_src_pitch;
p_v = v_src + v_src_pitch;
p_u2 = u_src + 3*u_src_pitch;
p_v2 = v_src + 3*v_src_pitch;
-
+
for( i_y = height / 4 ; i_y-- ; )
{
p_line1 = p_line2;
p_line2 += 2 * yuy2_pitch;
-
+
p_y1 = p_y2;
p_y2 += 2 * y_src_pitch;
-
+
for( i_x = width / 8 ; i_x-- ; )
{
MMXEXT_YUV420_YUYV( );
@@ -935,7 +935,7 @@ static void yv12_to_yuy2_mmxext
{
C_YUV420_YUYV( );
}
-
+
p_y2 += i_source_margin + y_src_pitch;
p_u += i_source_u_margin + u_src_pitch;
p_v += i_source_v_margin + v_src_pitch;
@@ -965,9 +965,9 @@ static void yv12_to_yuy2_mmxext
static void yuy2_to_yv12_c
(const unsigned char *yuy2_map, int yuy2_pitch,
- unsigned char *y_dst, int y_dst_pitch,
- unsigned char *u_dst, int u_dst_pitch,
- unsigned char *v_dst, int v_dst_pitch,
+ unsigned char *y_dst, int y_dst_pitch,
+ unsigned char *u_dst, int u_dst_pitch,
+ unsigned char *v_dst, int v_dst_pitch,
int width, int height) {
const uint8_t *p_line1, *p_line2 = yuy2_map;
@@ -987,10 +987,10 @@ static void yuy2_to_yv12_c
{
p_line1 = p_line2;
p_line2 += yuy2_pitch;
-
+
p_y1 = p_y2;
p_y2 += y_dst_pitch;
-
+
for( i_x = width / 8 ; i_x-- ; )
{
C_YUYV_YUV420( );
@@ -998,7 +998,7 @@ static void yuy2_to_yv12_c
C_YUYV_YUV420( );
C_YUYV_YUV420( );
}
-
+
p_y2 += i_dest_margin;
p_u += i_dest_u_margin;
p_v += i_dest_v_margin;
@@ -1058,9 +1058,9 @@ do {
static void yuy2_to_yv12_mmxext
(const unsigned char *yuy2_map, int yuy2_pitch,
- unsigned char *y_dst, int y_dst_pitch,
- unsigned char *u_dst, int u_dst_pitch,
- unsigned char *v_dst, int v_dst_pitch,
+ unsigned char *y_dst, int y_dst_pitch,
+ unsigned char *u_dst, int u_dst_pitch,
+ unsigned char *v_dst, int v_dst_pitch,
int width, int height) {
#if defined(ARCH_X86) || defined(ARCH_X86_64)
const uint8_t *p_line1, *p_line2 = yuy2_map;
@@ -1084,15 +1084,15 @@ static void yuy2_to_yv12_mmxext
{
p_line1 = p_line2;
p_line2 += yuy2_pitch;
-
+
p_y1 = p_y2;
p_y2 += y_dst_pitch;
-
+
for( i_x = width / 8 ; i_x-- ; )
{
MMXEXT_YUYV_YUV420( );
}
-
+
p_y2 += i_dest_margin;
p_u += i_dest_u_margin;
p_v += i_dest_v_margin;
diff --git a/src/xine-utils/copy.c b/src/xine-utils/copy.c
index 500b6db73..ed762fad1 100644
--- a/src/xine-utils/copy.c
+++ b/src/xine-utils/copy.c
@@ -17,10 +17,10 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
*
- * $Id:
+ * $Id:
*
*/
-
+
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
@@ -32,9 +32,9 @@ void yv12_to_yv12
const unsigned char *u_src, int u_src_pitch, unsigned char *u_dst, int u_dst_pitch,
const unsigned char *v_src, int v_src_pitch, unsigned char *v_dst, int v_dst_pitch,
int width, int height) {
-
+
int y, half_width = width / 2;
-
+
/* Y Plane */
if(y_src_pitch == y_dst_pitch)
xine_fast_memcpy(y_dst, y_src, y_src_pitch*height);
@@ -45,7 +45,7 @@ void yv12_to_yv12
y_dst += y_dst_pitch;
}
}
-
+
/* U/V Planes */
if((u_src_pitch == u_dst_pitch) && (v_src_pitch == v_dst_pitch)) {
xine_fast_memcpy(u_dst, u_src, u_src_pitch*height/2);
@@ -54,12 +54,12 @@ void yv12_to_yv12
for(y = 0; y < (height / 2); y++) {
xine_fast_memcpy(u_dst, u_src, half_width);
xine_fast_memcpy(v_dst, v_src, half_width);
-
+
u_src += u_src_pitch;
v_src += v_src_pitch;
-
+
u_dst += u_dst_pitch;
- v_dst += v_dst_pitch;
+ v_dst += v_dst_pitch;
}
}
}
@@ -68,9 +68,9 @@ void yuy2_to_yuy2
(const unsigned char *src, int src_pitch,
unsigned char *dst, int dst_pitch,
int width, int height) {
-
+
int y, double_width = width * 2;
-
+
if(src_pitch == dst_pitch)
xine_fast_memcpy(dst, src, src_pitch*height);
else {
diff --git a/src/xine-utils/cpu_accel.c b/src/xine-utils/cpu_accel.c
index 629a09a50..adcc4edc0 100644
--- a/src/xine-utils/cpu_accel.c
+++ b/src/xine-utils/cpu_accel.c
@@ -305,10 +305,10 @@ static uint32_t arch_accel (void)
}
canjump = 1;
-
+
/* pdist %f0, %f0, %f0 */
__asm__ __volatile__(".word\t0x81b007c0");
-
+
canjump = 0;
flags |= MM_ACCEL_SPARC_VIS;
@@ -316,15 +316,15 @@ static uint32_t arch_accel (void)
signal(SIGILL, SIG_DFL);
return flags;
}
-
+
canjump = 1;
-
+
/* edge8n %g0, %g0, %g0 */
__asm__ __volatile__(".word\t0x81b00020");
-
+
canjump = 0;
flags |= MM_ACCEL_SPARC_VIS2;
-
+
signal(SIGILL, SIG_DFL);
return flags;
}
diff --git a/src/xine-utils/list.c b/src/xine-utils/list.c
index e57a6e604..32c1d8fac 100644
--- a/src/xine-utils/list.c
+++ b/src/xine-utils/list.c
@@ -1,18 +1,18 @@
-/*
+/*
* Copyright (C) 2000-2006 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
diff --git a/src/xine-utils/mangle.h b/src/xine-utils/mangle.h
index 746317fa5..4ca7db7a5 100644
--- a/src/xine-utils/mangle.h
+++ b/src/xine-utils/mangle.h
@@ -8,12 +8,12 @@
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
diff --git a/src/xine-utils/memcpy.c b/src/xine-utils/memcpy.c
index 45009d23c..b7611ed86 100644
--- a/src/xine-utils/memcpy.c
+++ b/src/xine-utils/memcpy.c
@@ -470,7 +470,7 @@ void xine_probe_fast_memcpy(xine_t *xine)
#endif
NULL
};
-
+
config_flags = xine_mm_accel();
best = xine->config->register_enum (xine->config, "engine.performance.memcpy_method", 0,
diff --git a/src/xine-utils/monitor.c b/src/xine-utils/monitor.c
index 906cd9278..0c68cd59b 100644
--- a/src/xine-utils/monitor.c
+++ b/src/xine-utils/monitor.c
@@ -1,18 +1,18 @@
-/*
+/*
* Copyright (C) 2000-2008 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
diff --git a/src/xine-utils/pool.c b/src/xine-utils/pool.c
index 9dbe4c736..a6166bf62 100644
--- a/src/xine-utils/pool.c
+++ b/src/xine-utils/pool.c
@@ -1,18 +1,18 @@
-/*
+/*
* Copyright (C) 2000-2006 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -39,7 +39,7 @@ struct xine_pool_chunk_s {
struct xine_pool_s {
size_t object_size;
-
+
/* callbacks */
void (*create_object)(void *object);
void (*prepare_object)(void *object);
diff --git a/src/xine-utils/ring_buffer.c b/src/xine-utils/ring_buffer.c
index 7042eaa68..1da9d7c4d 100644
--- a/src/xine-utils/ring_buffer.c
+++ b/src/xine-utils/ring_buffer.c
@@ -1,18 +1,18 @@
-/*
+/*
* Copyright (C) 2000-2006 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
diff --git a/src/xine-utils/sorted_array.c b/src/xine-utils/sorted_array.c
index 9dbe1fd0e..2f4bbeb0f 100644
--- a/src/xine-utils/sorted_array.c
+++ b/src/xine-utils/sorted_array.c
@@ -1,18 +1,18 @@
-/*
+/*
* Copyright (C) 2000-2006 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
diff --git a/src/xine-utils/utils.c b/src/xine-utils/utils.c
index 3b84e6295..75caaf09f 100644
--- a/src/xine-utils/utils.c
+++ b/src/xine-utils/utils.c
@@ -1,18 +1,18 @@
/*
* Copyright (C) 2000-2005 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -552,13 +552,13 @@ static const lang_locale_t *_get_first_lang_locale(const char *lcal) {
lang_len = mod++ - lcal;
else
lang_len = strlen(lcal);
-
+
while(*(llocale->language)) {
if(!strncmp(lcal, llocale->language, lang_len)) {
if ((!mod && !llocale->modifier) || (mod && llocale->modifier && !strcmp(mod, llocale->modifier)))
return llocale;
}
-
+
llocale++;
}
}
@@ -568,7 +568,7 @@ static const lang_locale_t *_get_first_lang_locale(const char *lcal) {
static char *_get_lang(void) {
char *lang;
-
+
if(!(lang = getenv("LC_ALL")))
if(!(lang = getenv("LC_MESSAGES")))
lang = getenv("LANG");
@@ -582,7 +582,7 @@ static char *_get_lang(void) {
*/
char *xine_get_system_encoding(void) {
char *codeset = NULL;
-
+
#ifdef HAVE_NL_LANGINFO
setlocale(LC_CTYPE, "");
codeset = nl_langinfo(CODESET);
@@ -666,15 +666,15 @@ int xine_monotonic_clock(struct timeval *tv, struct timezone *tz)
#if _POSIX_TIMERS > 0 && defined(_POSIX_MONOTONIC_CLOCK) && defined(HAVE_POSIX_TIMERS)
static int initialized = 0;
static int use_clock_monotonic = 0;
-
+
struct timespec tp;
-
- if( !initialized ) {
+
+ if( !initialized ) {
struct timespec res;
int ret;
-
+
ret = clock_getres(CLOCK_MONOTONIC, &res);
-
+
if( ret != 0 ) {
lprintf("get resolution of monotonic clock failed\n");
} else {
@@ -693,8 +693,8 @@ int xine_monotonic_clock(struct timeval *tv, struct timezone *tz)
}
}
initialized = 1;
- }
-
+ }
+
if(use_clock_monotonic && !clock_gettime(CLOCK_MONOTONIC, &tp)) {
tv->tv_sec = tp.tv_sec;
tv->tv_usec = tp.tv_nsec / 1000;
@@ -704,7 +704,7 @@ int xine_monotonic_clock(struct timeval *tv, struct timezone *tz)
}
#else
-
+
return gettimeofday(tv, tz);
#endif
diff --git a/src/xine-utils/xine_buffer.c b/src/xine-utils/xine_buffer.c
index 4518d8f05..436991b33 100644
--- a/src/xine-utils/xine_buffer.c
+++ b/src/xine-utils/xine_buffer.c
@@ -1,18 +1,18 @@
-/*
+/*
* Copyright (C) 2000-2003 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -74,9 +74,9 @@ typedef struct {
uint32_t size;
uint32_t chunk_size;
-
+
uint8_t magic;
-
+
} xine_buffer_header_t;
#define XINE_BUFFER_HEADER_SIZE 9
@@ -120,7 +120,7 @@ typedef struct {
* reallocation on slow growing buffers.
*/
void *xine_buffer_init(int chunk_size) {
-
+
uint8_t *data=calloc(1, chunk_size+XINE_BUFFER_HEADER_SIZE);
xine_buffer_header_t *header=(xine_buffer_header_t*)data;
@@ -157,7 +157,7 @@ void *_xine_buffer_free(void *buf) {
void *xine_buffer_dup(const void *buf) {
uint8_t *new;
-
+
#ifdef CHECKS
if (!buf) {
lprintf("warning: got NULL pointer\n");
@@ -168,7 +168,7 @@ void *xine_buffer_dup(const void *buf) {
new = malloc(GET_HEADER(buf)->size+XINE_BUFFER_HEADER_SIZE);
- xine_fast_memcpy(new, ((uint8_t*)buf)-XINE_BUFFER_HEADER_SIZE,
+ xine_fast_memcpy(new, ((uint8_t*)buf)-XINE_BUFFER_HEADER_SIZE,
GET_HEADER(buf)->size+XINE_BUFFER_HEADER_SIZE);
return new+XINE_BUFFER_HEADER_SIZE;
@@ -180,7 +180,7 @@ void *xine_buffer_dup(const void *buf) {
#define xine_buffer_copyin(buf,i,data,len) \
buf=_xine_buffer_copyin(buf,i,data,len)
void *_xine_buffer_copyin(void *buf, int index, const void *data, int len) {
-
+
#ifdef CHECKS
if (!buf || !data) {
lprintf("warning: got NULL pointer\n");
@@ -237,7 +237,7 @@ void *_xine_buffer_set(void *buf, int index, uint8_t b, int len) {
#endif
GROW_TO(buf, index+len);
-
+
memset(((uint8_t*)buf)+index, b, len);
return buf;
@@ -326,6 +326,6 @@ void *_xine_buffer_ensure_size(void *buf, int size) {
#endif
GROW_TO(buf, size);
-
+
return buf;
}
diff --git a/src/xine-utils/xine_check.c b/src/xine-utils/xine_check.c
index 9887915de..b0a252b6f 100644
--- a/src/xine-utils/xine_check.c
+++ b/src/xine-utils/xine_check.c
@@ -114,7 +114,7 @@ static xine_health_check_t* _x_health_check_kernel (xine_health_check_t* hc) {
hc->status = XINE_HEALTH_CHECK_OK;
}
else {
- set_hc_result (hc, XINE_HEALTH_CHECK_FAIL,
+ set_hc_result (hc, XINE_HEALTH_CHECK_FAIL,
"FAILED - Could not get kernel information.");
}
return hc;
@@ -129,7 +129,7 @@ static xine_health_check_t* _x_health_check_mtrr (xine_health_check_t* hc) {
fd = fopen("/proc/mtrr", "r");
if (!fd) {
- set_hc_result (hc, XINE_HEALTH_CHECK_FAIL,
+ set_hc_result (hc, XINE_HEALTH_CHECK_FAIL,
"FAILED: mtrr is not enabled.");
} else {
hc->status = XINE_HEALTH_CHECK_OK;
@@ -143,7 +143,7 @@ static xine_health_check_t* _x_health_check_mtrr (xine_health_check_t* hc) {
hc->title = "Check for MTRR support";
hc->explanation = "Don't worry about this one";
- set_hc_result (hc, XINE_HEALTH_CHECK_OK,
+ set_hc_result (hc, XINE_HEALTH_CHECK_OK,
"mtrr does not apply on this hw platform.");
return hc;
}
@@ -162,12 +162,12 @@ static xine_health_check_t* _x_health_check_cdrom (xine_health_check_t* hc) {
set_hc_result (hc, XINE_HEALTH_CHECK_FAIL, "FAILED - could not access cdrom: %s\n", hc->cdrom_dev);
return hc;
}
-
+
if ((cdrom_st.st_mode & S_IFMT) != S_IFBLK) {
set_hc_result (hc, XINE_HEALTH_CHECK_FAIL, "FAILED - %s is not a block device.\n", hc->cdrom_dev);
return hc;
}
-
+
if ( (fd = open(hc->cdrom_dev, O_RDWR)) < 0) {
switch (errno) {
case EACCES:
@@ -180,7 +180,7 @@ static xine_health_check_t* _x_health_check_cdrom (xine_health_check_t* hc) {
}
} else
close(fd);
-
+
hc->status = XINE_HEALTH_CHECK_OK;
return hc;
}
@@ -279,7 +279,7 @@ static xine_health_check_t* _x_health_check_x (xine_health_check_t* hc) {
char* env_display = getenv("DISPLAY");
hc->title = "Check for X11 environment";
- hc->explanation = "Make sure you're running X11, if this is an ssh connection,\n"
+ hc->explanation = "Make sure you're running X11, if this is an ssh connection,\n"
"make sure you have X11 forwarding enabled (ssh -X ...)";
if (strlen (env_display) == 0) {
@@ -341,7 +341,7 @@ static xine_health_check_t* _x_health_check_xv (xine_health_check_t* hc) {
dlclose(x11_handle);
return hc;
}
-
+
dlerror(); /* clear error code */
xv_handle = dlopen(LIBXV_SO, RTLD_LAZY);
if(!xv_handle) {
@@ -362,7 +362,7 @@ static xine_health_check_t* _x_health_check_xv (xine_health_check_t* hc) {
dlclose(xv_handle);
return hc;
}
-
+
/* Get reference to XvQueryAdaptors */
xvqueryadaptors = dlsym(xv_handle,"XvQueryAdaptors");
if((err = dlerror()) != NULL) {
@@ -372,7 +372,7 @@ static xine_health_check_t* _x_health_check_xv (xine_health_check_t* hc) {
dlclose(xv_handle);
return hc;
}
-
+
/* Get reference to XvListImageFormats */
xvlistimageformats = dlsym(xv_handle,"XvListImageFormats");
if((err = dlerror()) != NULL) {
@@ -382,7 +382,7 @@ static xine_health_check_t* _x_health_check_xv (xine_health_check_t* hc) {
dlclose(xv_handle);
return hc;
}
-
+
if(!(dpy = (*xopendisplay)(disname))) {
if (!disname) {
@@ -445,7 +445,7 @@ static xine_health_check_t* _x_health_check_xv (xine_health_check_t* hc) {
dlclose(x11_handle);
dlclose(xv_handle);
-
+
return hc;
#else
hc->title = "Check for MIT Xv extension";
@@ -501,7 +501,7 @@ xine_health_check_t* xine_health_check (xine_health_check_t* hc, int check_num)
hc->title = "xine health check not supported on this platform";
hc->explanation = "contact the xine-devel mailing list if you'd like to\n"
"contribute code for your platform.";
- set_hc_result(hc, XINE_HEALTH_CHECK_NO_SUCH_CHECK,
+ set_hc_result(hc, XINE_HEALTH_CHECK_NO_SUCH_CHECK,
"xine health check not supported on the OS.\n");
return hc;
}
diff --git a/src/xine-utils/xine_mmx.h b/src/xine-utils/xine_mmx.h
index 440d1efcc..26e712409 100644
--- a/src/xine-utils/xine_mmx.h
+++ b/src/xine-utils/xine_mmx.h
@@ -173,7 +173,7 @@ typedef union {
#define punpckhwd_m2r(var,reg) mmx_m2r (punpckhwd, var, reg)
#define punpckhwd_r2r(regs,regd) mmx_r2r (punpckhwd, regs, regd)
-#define punpcklbw_m2r(var,reg) mmx_m2r (punpcklbw, var, reg)
+#define punpcklbw_m2r(var,reg) mmx_m2r (punpcklbw, var, reg)
#define punpcklbw_r2r(regs,regd) mmx_r2r (punpcklbw, regs, regd)
#define punpckldq_m2r(var,reg) mmx_m2r (punpckldq, var, reg)
#define punpckldq_r2r(regs,regd) mmx_r2r (punpckldq, regs, regd)
diff --git a/src/xine-utils/xine_mutex.c b/src/xine-utils/xine_mutex.c
index 52d17d8e5..64722e0be 100644
--- a/src/xine-utils/xine_mutex.c
+++ b/src/xine-utils/xine_mutex.c
@@ -1,18 +1,18 @@
-/*
+/*
* Copyright (C) 2000-2003 the xine project
- *
+ *
* This file is part of xine, a free video player.
- *
+ *
* xine is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* xine is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
@@ -40,7 +40,7 @@ int xine_mutex_init (xine_mutex_t *mutex, const pthread_mutexattr_t *mutexattr,
return pthread_mutex_init (&mutex->mutex, mutexattr);
}
-
+
int xine_mutex_lock (xine_mutex_t *mutex, const char *who) {
#ifndef DBG_MUTEX
@@ -50,13 +50,13 @@ int xine_mutex_lock (xine_mutex_t *mutex, const char *who) {
#else
if (pthread_mutex_trylock (&mutex->mutex)) {
- printf ("xine_mutex: BLOCK when %s tried to lock mutex %s because it is locked by %s. continue trying...)\n",
+ printf ("xine_mutex: BLOCK when %s tried to lock mutex %s because it is locked by %s. continue trying...)\n",
who, mutex->id, mutex->locked_by);
pthread_mutex_lock (&mutex->mutex);
}
- printf ("xine_mutex: %s has now locked mutex %s\n",
+ printf ("xine_mutex: %s has now locked mutex %s\n",
who, mutex->id);
mutex->locked_by = who;
diff --git a/src/xine-utils/xmllexer.c b/src/xine-utils/xmllexer.c
index c37510903..4e72ba57c 100644
--- a/src/xine-utils/xmllexer.c
+++ b/src/xine-utils/xmllexer.c
@@ -207,7 +207,7 @@ int lexer_get_token_d_r(struct lexer * lexer, char ** _tok, int * _tok_size, int
break;
case '/':
- if (!lexer->in_comment)
+ if (!lexer->in_comment)
state = STATE_T_M_STOP_2;
tok[tok_pos] = c;
tok_pos++;
@@ -530,7 +530,7 @@ int lexer_get_token_d_r(struct lexer * lexer, char ** _tok, int * _tok_size, int
break;
}
}
- lprintf ("loop done tok_pos = %d, tok_size=%d, lexbuf_pos=%d, lexbuf_size=%d\n",
+ lprintf ("loop done tok_pos = %d, tok_size=%d, lexbuf_pos=%d, lexbuf_size=%d\n",
tok_pos, tok_size, lexer->lexbuf_pos, lexer->lexbuf_size);
/* pb */
diff --git a/src/xine-utils/xmlparser.c b/src/xine-utils/xmlparser.c
index 7ae0626eb..9d29ca8e8 100644
--- a/src/xine-utils/xmlparser.c
+++ b/src/xine-utils/xmlparser.c
@@ -399,7 +399,7 @@ static int xml_parser_get_node_internal (xml_parser_t *xml_parser,
current_subtree = subtree;
} else {
current_subtree->next = subtree;
- current_subtree = subtree;
+ current_subtree = subtree;
}
state = STATE_IDLE;
break;
@@ -766,7 +766,7 @@ const char *xml_parser_get_property (const xml_node_t *node, const char *name) {
return NULL;
}
-int xml_parser_get_property_int (const xml_node_t *node, const char *name,
+int xml_parser_get_property_int (const xml_node_t *node, const char *name,
int def_value) {
const char *v;
@@ -783,7 +783,7 @@ int xml_parser_get_property_int (const xml_node_t *node, const char *name,
return ret;
}
-int xml_parser_get_property_bool (const xml_node_t *node, const char *name,
+int xml_parser_get_property_bool (const xml_node_t *node, const char *name,
int def_value) {
const char *v;