Mercurial > mplayer.hg
changeset 30990:0ad2da052b2e
the great MPlayer tab removal: part I
line wrap: on
line diff
--- a/DOCS/default.css Mon Apr 12 08:03:39 2010 +0000 +++ b/DOCS/default.css Mon Apr 12 10:56:17 2010 +0000 @@ -1,5 +1,5 @@ -body,table { - font-family : Arial, Helvetica, sans-serif; - font-size : 14px; - background : white; +body,table { + font-family : Arial, Helvetica, sans-serif; + font-size : 14px; + background : white; }
--- a/DOCS/man/fr/mplayer.1 Mon Apr 12 08:03:39 2010 +0000 +++ b/DOCS/man/fr/mplayer.1 Mon Apr 12 10:56:17 2010 +0000 @@ -5786,8 +5786,8 @@ int nch /*nombre de canaux*/ int size /*taille du tampon*/ unsigned long long counter /*Utilisé pour garder la synchro, mis à jour - chaque fois que de nouvelles données son - exportées.*/ + chaque fois que de nouvelles données son + exportées.*/ .fi .sp 1 Le reste est charge utile, constitué de données 16bit (non-entrelacées).
--- a/DOCS/tech/codec-devel.txt Mon Apr 12 08:03:39 2010 +0000 +++ b/DOCS/tech/codec-devel.txt Mon Apr 12 10:56:17 2010 +0000 @@ -43,7 +43,7 @@ media file format that the program does understand, or write your own MPlayer file demuxer that can handle the data. Writing a file demuxer is beyond the scope of this document. - Try to obtain media that stresses all possible modes of a + Try to obtain media that stresses all possible modes of a decoder. If an audio codec is known to work with both mono and stereo data, search for sample media of both types. If a video codec is known to work at 7 different bit depths, then, as painful as it may be, do what you
--- a/DOCS/tech/colorspaces.txt Mon Apr 12 08:03:39 2010 +0000 +++ b/DOCS/tech/colorspaces.txt Mon Apr 12 10:56:17 2010 +0000 @@ -66,9 +66,9 @@ In MPlayer, we usually have 3 pointers to the Y, U and V planes, so it doesn't matter what the order of the planes in the memory is: for mp_image_t and libvo's draw_slice(): - planes[0] = Y = luminance - planes[1] = U = Cb = blue - planes[2] = V = Cr = red + planes[0] = Y = luminance + planes[1] = U = Cb = blue + planes[2] = V = Cr = red Note: planes[1] is ALWAYS U, and planes[2] is V, the FOURCC (YV12 vs. I420) doesn't matter here! So, every codec using 3 pointers (not only the first one) normally supports YV12 and I420 (=IYUV), too!
--- a/DOCS/tech/general.txt Mon Apr 12 08:03:39 2010 +0000 +++ b/DOCS/tech/general.txt Mon Apr 12 10:56:17 2010 +0000 @@ -14,64 +14,64 @@ 2. demuxer.c: this does the demultiplexing (separating) of the input to audio, video or dvdsub channels, and their reading by buffered packages. - The demuxer.c is basically a framework, which is the same for all the - input formats, and there are parsers for each of them (mpeg-es, - mpeg-ps, avi, avi-ni, asf), these are in the demux_*.c files. - The structure is the demuxer_t. There is only one demuxer. + The demuxer.c is basically a framework, which is the same for all the + input formats, and there are parsers for each of them (mpeg-es, + mpeg-ps, avi, avi-ni, asf), these are in the demux_*.c files. + The structure is the demuxer_t. There is only one demuxer. 2.a. demux_packet_t, that is DP. Contains one chunk (avi) or packet (asf,mpg). They are stored in memory as - in linked list, cause of their different size. + in linked list, cause of their different size. 2.b. demuxer stream, that is DS. Struct: demux_stream_t Every channel (a/v/s) has one. This contains the packets for the stream (see 2.a). For now, there can be 3 for each demuxer : - - audio (d_audio) - - video (d_video) - - DVD subtitle (d_dvdsub) + - audio (d_audio) + - video (d_video) + - DVD subtitle (d_dvdsub) 2.c. stream header. There are 2 types (for now): sh_audio_t and sh_video_t This contains every parameter essential for decoding, such as input/output - buffers, chosen codec, fps, etc. There are each for every stream in - the file. At least one for video, if sound is present then another, - but if there are more, then there'll be one structure for each. - These are filled according to the header (avi/asf), or demux_mpg.c - does it (mpg) if it founds a new stream. If a new stream is found, - the ====> Found audio/video stream: <id> messages is displayed. + buffers, chosen codec, fps, etc. There are each for every stream in + the file. At least one for video, if sound is present then another, + but if there are more, then there'll be one structure for each. + These are filled according to the header (avi/asf), or demux_mpg.c + does it (mpg) if it founds a new stream. If a new stream is found, + the ====> Found audio/video stream: <id> messages is displayed. - The chosen stream header and its demuxer are connected together - (ds->sh and sh->ds) to simplify the usage. So it's enough to pass the - ds or the sh, depending on the function. + The chosen stream header and its demuxer are connected together + (ds->sh and sh->ds) to simplify the usage. So it's enough to pass the + ds or the sh, depending on the function. - For example: we have an asf file, 6 streams inside it, 1 audio, 5 - video. During the reading of the header, 6 sh structs are created, 1 - audio and 5 video. When it starts reading the packet, it chooses the - stream for the first found audio & video packet, and sets the sh - pointers of d_audio and d_video according to them. So later it reads - only these streams. Of course the user can force choosing a specific - stream with - -vid and -aid switches. - A good example for this is the DVD, where the english stream is not - always the first, so every VOB has different language :) - That's when we have to use for example the -aid 128 switch. + For example: we have an asf file, 6 streams inside it, 1 audio, 5 + video. During the reading of the header, 6 sh structs are created, 1 + audio and 5 video. When it starts reading the packet, it chooses the + stream for the first found audio & video packet, and sets the sh + pointers of d_audio and d_video according to them. So later it reads + only these streams. Of course the user can force choosing a specific + stream with + -vid and -aid switches. + A good example for this is the DVD, where the english stream is not + always the first, so every VOB has different language :) + That's when we have to use for example the -aid 128 switch. Now, how this reading works? - - demuxer.c/demux_read_data() is called, it gets how many bytes, - and where (memory address), would we like to read, and from which + - demuxer.c/demux_read_data() is called, it gets how many bytes, + and where (memory address), would we like to read, and from which DS. The codecs call this. - - this checks if the given DS's buffer contains something, if so, it - reads from there as much as needed. If there isn't enough, it calls - ds_fill_buffer(), which: - - checks if the given DS has buffered packages (DP's), if so, it moves - the oldest to the buffer, and reads on. If the list is empty, it - calls demux_fill_buffer() : - - this calls the parser for the input format, which reads the file - onward, and moves the found packages to their buffers. - Well it we'd like an audio package, but only a bunch of video - packages are available, then sooner or later the: - DEMUXER: Too many (%d in %d bytes) audio packets in the buffer - error shows up. + - this checks if the given DS's buffer contains something, if so, it + reads from there as much as needed. If there isn't enough, it calls + ds_fill_buffer(), which: + - checks if the given DS has buffered packages (DP's), if so, it moves + the oldest to the buffer, and reads on. If the list is empty, it + calls demux_fill_buffer() : + - this calls the parser for the input format, which reads the file + onward, and moves the found packages to their buffers. + Well it we'd like an audio package, but only a bunch of video + packages are available, then sooner or later the: + DEMUXER: Too many (%d in %d bytes) audio packets in the buffer + error shows up. 2.d. video.c: this file/function handle the reading and assembling of the video frames. each call to video_read_frame() should read and return a @@ -101,7 +101,7 @@ The given stream's actual position is in the 'timer' field of the corresponding stream header (sh_audio / sh_video). - The structure of the playing loop : + The structure of the playing loop : while(not EOF) { fill audio buffer (read & decode audio) + increase a_frame read & decode a single video frame + increase v_frame @@ -111,89 +111,89 @@ handle events (keys,lirc etc) -> pause,seek,... } - When playing (a/v), it increases the variables by the duration of the - played a/v. - - with audio this is played bytes / sh_audio->o_bps - Note: i_bps = number of compressed bytes for one second of audio - o_bps = number of uncompressed bytes for one second of audio - (this is = bps*samplerate*channels) - - with video this is usually == 1.0/fps, but I have to note that - fps doesn't really matters at video, for example asf doesn't have that, - instead there is "duration" and it can change per frame. - MPEG2 has "repeat_count" which delays the frame by 1-2.5 ... - Maybe only AVI and MPEG1 has fixed fps. + When playing (a/v), it increases the variables by the duration of the + played a/v. + - with audio this is played bytes / sh_audio->o_bps + Note: i_bps = number of compressed bytes for one second of audio + o_bps = number of uncompressed bytes for one second of audio + (this is = bps*samplerate*channels) + - with video this is usually == 1.0/fps, but I have to note that + fps doesn't really matters at video, for example asf doesn't have that, + instead there is "duration" and it can change per frame. + MPEG2 has "repeat_count" which delays the frame by 1-2.5 ... + Maybe only AVI and MPEG1 has fixed fps. - So everything works right until the audio and video are in perfect - synchronity, since the audio goes, it gives the timing, and if the - time of a frame passed, the next frame is displayed. - But what if these two aren't synchronized in the input file? - PTS correction kicks in. The input demuxers read the PTS (presentation - timestamp) of the packages, and with it we can see if the streams - are synchronized. Then MPlayer can correct the a_frame, within - a given maximal bounder (see -mc option). The summary of the - corrections can be found in c_total . + So everything works right until the audio and video are in perfect + synchronity, since the audio goes, it gives the timing, and if the + time of a frame passed, the next frame is displayed. + But what if these two aren't synchronized in the input file? + PTS correction kicks in. The input demuxers read the PTS (presentation + timestamp) of the packages, and with it we can see if the streams + are synchronized. Then MPlayer can correct the a_frame, within + a given maximal bounder (see -mc option). The summary of the + corrections can be found in c_total . - Of course this is not everything, several things suck. - For example the soundcards delay, which has to be corrected by - MPlayer! The audio delay is the sum of all these: - - bytes read since the last timestamp: - t1 = d_audio->pts_bytes/sh_audio->i_bps - - if Win32/ACM then the bytes stored in audio input buffer - t2 = a_in_buffer_len/sh_audio->i_bps - - uncompressed bytes in audio out buffer - t3 = a_buffer_len/sh_audio->o_bps - - not yet played bytes stored in the soundcard's (or DMA's) buffer - t4 = get_audio_delay()/sh_audio->o_bps + Of course this is not everything, several things suck. + For example the soundcards delay, which has to be corrected by + MPlayer! The audio delay is the sum of all these: + - bytes read since the last timestamp: + t1 = d_audio->pts_bytes/sh_audio->i_bps + - if Win32/ACM then the bytes stored in audio input buffer + t2 = a_in_buffer_len/sh_audio->i_bps + - uncompressed bytes in audio out buffer + t3 = a_buffer_len/sh_audio->o_bps + - not yet played bytes stored in the soundcard's (or DMA's) buffer + t4 = get_audio_delay()/sh_audio->o_bps - From this we can calculate what PTS we need for the just played - audio, then after we compare this with the video's PTS, we have - the difference! + From this we can calculate what PTS we need for the just played + audio, then after we compare this with the video's PTS, we have + the difference! - Life didn't get simpler with AVI. There's the "official" timing - method, the BPS-based, so the header contains how many compressed - audio bytes or chunks belong to one second of frames. - In the AVI stream header there are 2 important fields, the - dwSampleSize, and dwRate/dwScale pairs: - - If the dwSampleSize is 0, then it's VBR stream, so its bitrate - isn't constant. It means that 1 chunk stores 1 sample, and - dwRate/dwScale gives the chunks/sec value. - - If the dwSampleSize is >0, then it's constant bitrate, and the - time can be measured this way: time = (bytepos/dwSampleSize) / - (dwRate/dwScale) (so the sample's number is divided with the - samplerate). Now the audio can be handled as a stream, which can - be cut to chunks, but can be one chunk also. + Life didn't get simpler with AVI. There's the "official" timing + method, the BPS-based, so the header contains how many compressed + audio bytes or chunks belong to one second of frames. + In the AVI stream header there are 2 important fields, the + dwSampleSize, and dwRate/dwScale pairs: + - If the dwSampleSize is 0, then it's VBR stream, so its bitrate + isn't constant. It means that 1 chunk stores 1 sample, and + dwRate/dwScale gives the chunks/sec value. + - If the dwSampleSize is >0, then it's constant bitrate, and the + time can be measured this way: time = (bytepos/dwSampleSize) / + (dwRate/dwScale) (so the sample's number is divided with the + samplerate). Now the audio can be handled as a stream, which can + be cut to chunks, but can be one chunk also. - The other method can be used only for interleaved files: from - the order of the chunks, a timestamp (PTS) value can be calculated. - The PTS of the video chunks are simple: chunk number * fps - The audio is the same as the previous video chunk was. - We have to pay attention to the so called "audio preload", that is, - there is a delay between the audio and video streams. This is - usually 0.5-1.0 sec, but can be totally different. - The exact value was measured until now, but now the demux_avi.c - handles it: at the audio chunk after the first video, it calculates - the A/V difference, and take this as a measure for audio preload. + The other method can be used only for interleaved files: from + the order of the chunks, a timestamp (PTS) value can be calculated. + The PTS of the video chunks are simple: chunk number * fps + The audio is the same as the previous video chunk was. + We have to pay attention to the so called "audio preload", that is, + there is a delay between the audio and video streams. This is + usually 0.5-1.0 sec, but can be totally different. + The exact value was measured until now, but now the demux_avi.c + handles it: at the audio chunk after the first video, it calculates + the A/V difference, and take this as a measure for audio preload. 3.a. audio playback: - Some words on audio playback: - Not the playing is hard, but: - 1. knowing when to write into the buffer, without blocking - 2. knowing how much was played of what we wrote into - The first is needed for audio decoding, and to keep the buffer - full (so the audio will never skip). And the second is needed for - correct timing, because some soundcards delay even 3-7 seconds, - which can't be forgotten about. - To solve this, the OSS gives several possibilities: - - ioctl(SNDCTL_DSP_GETODELAY): tells how many unplayed bytes are in - the soundcard's buffer -> perfect for timing, but not all drivers - support it :( - - ioctl(SNDCTL_DSP_GETOSPACE): tells how much can we write into the - soundcard's buffer, without blocking. If the driver doesn't - support GETODELAY, we can use this to know how much the delay is. - - select(): should tell if we can write into the buffer without - blocking. Unfortunately it doesn't say how much we could :(( - Also, doesn't/badly works with some drivers. - Only used if none of the above works. + Some words on audio playback: + Not the playing is hard, but: + 1. knowing when to write into the buffer, without blocking + 2. knowing how much was played of what we wrote into + The first is needed for audio decoding, and to keep the buffer + full (so the audio will never skip). And the second is needed for + correct timing, because some soundcards delay even 3-7 seconds, + which can't be forgotten about. + To solve this, the OSS gives several possibilities: + - ioctl(SNDCTL_DSP_GETODELAY): tells how many unplayed bytes are in + the soundcard's buffer -> perfect for timing, but not all drivers + support it :( + - ioctl(SNDCTL_DSP_GETOSPACE): tells how much can we write into the + soundcard's buffer, without blocking. If the driver doesn't + support GETODELAY, we can use this to know how much the delay is. + - select(): should tell if we can write into the buffer without + blocking. Unfortunately it doesn't say how much we could :(( + Also, doesn't/badly works with some drivers. + Only used if none of the above works. 4. Codecs. Consists of libmpcodecs/* and separate files or libs, for example liba52, libmpeg2, xa/*, alaw.c, opendivx/*, loader, mp3lib.
--- a/DOCS/tech/hwac3.txt Mon Apr 12 08:03:39 2010 +0000 +++ b/DOCS/tech/hwac3.txt Mon Apr 12 10:56:17 2010 +0000 @@ -131,9 +131,9 @@ is no big deal here since movies usually are in 48Khz anyway. The configuration in '/etc/modules.conf' is no big deal also: -alias snd-card-0 snd-card-cmipci # insert your card here -alias snd-card-1 snd-pcm-oss # load OSS emulation -options snd-pcm-oss snd_dsp_map=0 snd_adsp_map=2 # do the mapping +alias snd-card-0 snd-card-cmipci # insert your card here +alias snd-card-1 snd-pcm-oss # load OSS emulation +options snd-pcm-oss snd_dsp_map=0 snd_adsp_map=2 # do the mapping This works flawlessly in combination with alsa's native SysVrc-init-script 'alsasound'. Be sure to disable any distribution
--- a/DOCS/tech/libvo.txt Mon Apr 12 08:03:39 2010 +0000 +++ b/DOCS/tech/libvo.txt Mon Apr 12 10:56:17 2010 +0000 @@ -17,7 +17,7 @@ Each vo driver _has_ to implement these: preinit(): - init the video system (to support querying for supported formats) + init the video system (to support querying for supported formats) uninit(): Uninit the whole system, this is on the same "level" as preinit. @@ -26,95 +26,95 @@ Current controls (VOCTRL_QUERY_FORMAT must be implemented, VOCTRL_DRAW_IMAGE, VOCTRL_FULLSCREEN, VOCTRL_UPDATE_SCREENINFO should be implemented): - VOCTRL_QUERY_FORMAT - queries if a given pixelformat is supported. - It also returns various flags decsirbing the capabilities - of the driver with teh given mode. for the flags, see - file vfcaps.h ! - the most important flags, every driver must properly report - these: - 0x1 - supported (with or without conversion) - 0x2 - supported without conversion (define 0x1 too!) - 0x100 - driver/hardware handles timing (blocking) - also SET sw/hw scaling and osd support flags, and flip, - and accept_stride if you implement VOCTRL_DRAW_IMAGE (see bellow) - NOTE: VOCTRL_QUERY_FORMAT may be called _before_ first config() - but is always called between preinit() and uninit() - VOCTRL_GET_IMAGE - libmpcodecs Direct Rendering interface - You need to update mpi (mp_image.h) structure, for example, - look at vo_x11, vo_sdl, vo_xv or mga_common. - VOCTRL_DRAW_IMAGE - replacement for the current draw_slice/draw_frame way of - passing video frames. by implementing SET_IMAGE, you'll get - image in mp_image struct instead of by calling draw_*. - unless you return VO_TRUE for VOCTRL_DRAW_IMAGE call, the - old-style draw_* functils will be called! - Note: draw_slice is still mandatory, for per-slice rendering! - VOCTRL_RESET - reset the video device - This is sent on seeking and similar and is useful if you are - using a device which prebuffers frames that need to flush them - before refilling audio/video buffers. - VOCTRL_PAUSE - VOCTRL_RESUME - VOCTRL_GUISUPPORT - return true only if driver supports co-operation with - MPlayer's GUI (not yet used by GUI) - VOCTRL_SET_EQUALIZER - set the video equalizer to the given values - two arguments are provided: item and value - item is a string, the possible values are (currently): - brightness, contrast, saturation, hue - VOCTRL_GET_EQUALIZER - get the current video equalizer values - two arguments are provided: item and value - item is a string, the possible values are (currently): - brightness, contrast, saturation, hue - VOCTRL_ONTOP - Makes the player window stay-on-top. Only supported (currently) - by drivers which use X11, except SDL, as well as directx and - gl2 under Windows. - VOCTRL_BORDER - Makes the player window borderless. - VOCTRL_FULLSCREEN - Switch from and to fullscreen mode - VOCTRL_GET_PANSCAN - VOCTRL_SET_PANSCAN + VOCTRL_QUERY_FORMAT - queries if a given pixelformat is supported. + It also returns various flags decsirbing the capabilities + of the driver with teh given mode. for the flags, see + file vfcaps.h ! + the most important flags, every driver must properly report + these: + 0x1 - supported (with or without conversion) + 0x2 - supported without conversion (define 0x1 too!) + 0x100 - driver/hardware handles timing (blocking) + also SET sw/hw scaling and osd support flags, and flip, + and accept_stride if you implement VOCTRL_DRAW_IMAGE (see bellow) + NOTE: VOCTRL_QUERY_FORMAT may be called _before_ first config() + but is always called between preinit() and uninit() + VOCTRL_GET_IMAGE + libmpcodecs Direct Rendering interface + You need to update mpi (mp_image.h) structure, for example, + look at vo_x11, vo_sdl, vo_xv or mga_common. + VOCTRL_DRAW_IMAGE + replacement for the current draw_slice/draw_frame way of + passing video frames. by implementing SET_IMAGE, you'll get + image in mp_image struct instead of by calling draw_*. + unless you return VO_TRUE for VOCTRL_DRAW_IMAGE call, the + old-style draw_* functils will be called! + Note: draw_slice is still mandatory, for per-slice rendering! + VOCTRL_RESET - reset the video device + This is sent on seeking and similar and is useful if you are + using a device which prebuffers frames that need to flush them + before refilling audio/video buffers. + VOCTRL_PAUSE + VOCTRL_RESUME + VOCTRL_GUISUPPORT + return true only if driver supports co-operation with + MPlayer's GUI (not yet used by GUI) + VOCTRL_SET_EQUALIZER + set the video equalizer to the given values + two arguments are provided: item and value + item is a string, the possible values are (currently): + brightness, contrast, saturation, hue + VOCTRL_GET_EQUALIZER + get the current video equalizer values + two arguments are provided: item and value + item is a string, the possible values are (currently): + brightness, contrast, saturation, hue + VOCTRL_ONTOP + Makes the player window stay-on-top. Only supported (currently) + by drivers which use X11, except SDL, as well as directx and + gl2 under Windows. + VOCTRL_BORDER + Makes the player window borderless. + VOCTRL_FULLSCREEN + Switch from and to fullscreen mode + VOCTRL_GET_PANSCAN + VOCTRL_SET_PANSCAN Needed to implement pan-scan support ('w' and 'e' keys during - playback in fullscreen mode) - VOCTRL_START_SLICE - Called before the first draw_slice of each frame, useful if - you need to do some set-up work. - VOCTRL_DRAW_EOSD - Required for EOSD (ASS subtitle) support. Provides all - information necessary to draw the EOSD for the current video - frame. - VOCTRL_GET_EOSD_RES - Required for EOSD (ASS subtitle) support. Informs the ASS - renderer about the properties of the drawing area (size, - borders). - VOCTRL_SET_DEINTERLACE - VOCTRL_GET_DEINTERLACE - Get or set deinterlacing status for VOs that support some kind - of deinterlacing. - VOCTRL_UPDATE_SCREENINFO - Should set the xinerama_x, xinerama_y, vo_screenwidth and - vo_screenheight appropriately for the currently used - monitor and -xineramascreen option. - Usually should simply call the w32_update_xinerama_info or - update_xinerama_info function. - By supporting this, the VO also requests the newer API - that sets vo_dx, vo_dy etc. appropriately before config() - is called. + playback in fullscreen mode) + VOCTRL_START_SLICE + Called before the first draw_slice of each frame, useful if + you need to do some set-up work. + VOCTRL_DRAW_EOSD + Required for EOSD (ASS subtitle) support. Provides all + information necessary to draw the EOSD for the current video + frame. + VOCTRL_GET_EOSD_RES + Required for EOSD (ASS subtitle) support. Informs the ASS + renderer about the properties of the drawing area (size, + borders). + VOCTRL_SET_DEINTERLACE + VOCTRL_GET_DEINTERLACE + Get or set deinterlacing status for VOs that support some kind + of deinterlacing. + VOCTRL_UPDATE_SCREENINFO + Should set the xinerama_x, xinerama_y, vo_screenwidth and + vo_screenheight appropriately for the currently used + monitor and -xineramascreen option. + Usually should simply call the w32_update_xinerama_info or + update_xinerama_info function. + By supporting this, the VO also requests the newer API + that sets vo_dx, vo_dy etc. appropriately before config() + is called. config(): Set up the video system. You get the dimensions and flags. width, height: size of the source image d_width, d_height: wanted scaled/display size (it's a hint) Flags: - 0x01 - force fullscreen (-fs) - 0x02 - allow mode switching (-vm) - 0x04 - allow software scaling (-zoom) - 0x08 - flipping (-flip) + 0x01 - force fullscreen (-fs) + 0x02 - allow mode switching (-vm) + 0x04 - allow software scaling (-zoom) + 0x08 - flipping (-flip) They're defined as VOFLAG_* (see libvo/video_out.h) IMPORTANT NOTE: config() may be called 0 (zero), 1 or more (2,3...) @@ -132,42 +132,42 @@ support multi-monitor setups (if based on x11_common, w32_common). draw_slice(): this displays YV12 pictures (3 planes, one full sized that - contains brightness (Y), and 2 quarter-sized which the colour-info - (U,V). MPEG codecs (libmpeg2, opendivx) use this. This doesn't have - to display the whole frame, only update small parts of it. - If this is not supported, it must be signaled in QUERY_FORMAT with - VOCAP_NOSLICES. + contains brightness (Y), and 2 quarter-sized which the colour-info + (U,V). MPEG codecs (libmpeg2, opendivx) use this. This doesn't have + to display the whole frame, only update small parts of it. + If this is not supported, it must be signaled in QUERY_FORMAT with + VOCAP_NOSLICES. draw_frame(): this is the older interface, this displays only complete - frames, and can do only packed format (YUY2, RGB/BGR). - Win32 codecs use this (DivX, Indeo, etc). - If you implement VOCTRL_DRAW_IMAGE, you do not need to implement draw_frame. + frames, and can do only packed format (YUY2, RGB/BGR). + Win32 codecs use this (DivX, Indeo, etc). + If you implement VOCTRL_DRAW_IMAGE, you do not need to implement draw_frame. draw_osd(): this displays subtitles and OSD. - It's a bit tricky to use it, since it's a callback-style stuff. - It should call vo_draw_text() with screen dimension and your - draw_alpha implementation for the pixelformat (function pointer). - The vo_draw_text() checks the characters to draw, and calls - draw_alpha() for each. As a help, osd.c contains draw_alpha for - each pixelformats, use this if possible! - Note that if you do not draw directly onto the video you should - use vo_draw_text_ext() which allows you to specify the border - values etc. needed to draw DVD menu highlights at the correct place. - If you do not want to implement this, you can still use -vf - expand=osd=1 to draw the OSD, or even implement code to insert - this filter automatically. - Make sure you set VFCAP_OSD depending on whether you implemented it - or not. + It's a bit tricky to use it, since it's a callback-style stuff. + It should call vo_draw_text() with screen dimension and your + draw_alpha implementation for the pixelformat (function pointer). + The vo_draw_text() checks the characters to draw, and calls + draw_alpha() for each. As a help, osd.c contains draw_alpha for + each pixelformats, use this if possible! + Note that if you do not draw directly onto the video you should + use vo_draw_text_ext() which allows you to specify the border + values etc. needed to draw DVD menu highlights at the correct place. + If you do not want to implement this, you can still use -vf + expand=osd=1 to draw the OSD, or even implement code to insert + this filter automatically. + Make sure you set VFCAP_OSD depending on whether you implemented it + or not. - NOTE: This one will be obsolete soon! But it's still useful when - you want to do tricks, like rendering osd _after_ hardware scaling - (tdfxfb) or render subtitles under of the image (vo_mpegpes, sdl) + NOTE: This one will be obsolete soon! But it's still useful when + you want to do tricks, like rendering osd _after_ hardware scaling + (tdfxfb) or render subtitles under of the image (vo_mpegpes, sdl) - NOTE2: above NOTE is probably wrong, there are currently no plans to - obsolete draw_osd, though there is the more advanced EOSD support for - ASS subtitles. + NOTE2: above NOTE is probably wrong, there are currently no plans to + obsolete draw_osd, though there is the more advanced EOSD support for + ASS subtitles. flip_page(): this is called after each frame, this displays the buffer for - real. This is 'swapbuffers' when doublebuffering. - Try to do as little work here as possible, since that affect jitter/ - A-V sync. + real. This is 'swapbuffers' when doublebuffering. + Try to do as little work here as possible, since that affect jitter/ + A-V sync.
--- a/DOCS/tech/mirrors/mirror_howto.txt Mon Apr 12 08:03:39 2010 +0000 +++ b/DOCS/tech/mirrors/mirror_howto.txt Mon Apr 12 10:56:17 2010 +0000 @@ -1,6 +1,6 @@ - ------------------------------ + ------------------------------ How to build an MPlayer mirror - ------------------------------ + ------------------------------ This document might be inacurate or even incomplete, please send feedback + corrections to the mplayer-mirror mailing list.
--- a/DOCS/tech/mpdsf.txt Mon Apr 12 08:03:39 2010 +0000 +++ b/DOCS/tech/mpdsf.txt Mon Apr 12 10:56:17 2010 +0000 @@ -6,17 +6,17 @@ The file starts with a variable size header: -------------------------------------------- -32-bit Stream format fourcc (MPVS or MPAS) - MPVS = MPlayer Video Stream - MPAS = MPlayer Audio Stream -8-bit Demuxer type (AVI,MOV,ASF,REAL,...) -8-bit Flags (marks dumped headers) - Values: 0x1: WAVEFORMATEX - 0x2: Audio extra codec data - 0x4: BITMAPINFOHEADER - 0x8: QT's ImageDesc - 0x16: indicates 32-bit chunk size before every data chunk -16-bit Length of headers +32-bit Stream format fourcc (MPVS or MPAS) + MPVS = MPlayer Video Stream + MPAS = MPlayer Audio Stream +8-bit Demuxer type (AVI,MOV,ASF,REAL,...) +8-bit Flags (marks dumped headers) + Values: 0x1: WAVEFORMATEX + 0x2: Audio extra codec data + 0x4: BITMAPINFOHEADER + 0x8: QT's ImageDesc + 0x16: indicates 32-bit chunk size before every data chunk +16-bit Length of headers There's strict rule in the follow-up of the codec-headers. Depending on flags, @@ -24,5 +24,5 @@ Data chunks: ------------ -32-bit Optional 32-bit chunk size -... Data +32-bit Optional 32-bit chunk size +... Data
--- a/DOCS/tech/mpsub.sub Mon Apr 12 08:03:39 2010 +0000 +++ b/DOCS/tech/mpsub.sub Mon Apr 12 10:56:17 2010 +0000 @@ -1,12 +1,12 @@ TITLE=Weird Al Yankovic - The Saga Begins (clip) - # just to be informative (maybe future - # use?) -FILE=14233792,7972c637f619e01854ecb453b7339e3f # size,md5 + # just to be informative (maybe future + # use?) +FILE=14233792,7972c637f619e01854ecb453b7339e3f # size,md5 AUTHOR=Gabucino -TYPE=VIDEO # maybe AUDIO in future (for displaying - # mp3 lyrics while playing or whatever) -FORMAT=TIME # this file contains measures based on - # TIME, not frames. +TYPE=VIDEO # maybe AUDIO in future (for displaying + # mp3 lyrics while playing or whatever) +FORMAT=TIME # this file contains measures based on + # TIME, not frames. # if FORMAT is a number, then it's frame based, i.e.: # FORMAT=25
--- a/DOCS/tech/osd.txt Mon Apr 12 08:03:39 2010 +0000 +++ b/DOCS/tech/osd.txt Mon Apr 12 10:56:17 2010 +0000 @@ -51,36 +51,36 @@ unsigned char type; unsigned char alignment; // 2 bits: x;y percentages, 2 bits: x;y relative to parent; 2 bits: alignment left/right/center unsigned short flags; - int x,y; // coords + int x,y; // coords unsigned char color[4]; // YUVA mp_osd_bbox_t bbox; // bounding box unsigned int start,duration; // PTS union { - struct { - int x1,y1,x2,y2; - } line; - struct { - int x,y,w,h; - } rect; - struct { - char* text; - mp_font_t* font; - } text; - struct { - int symbol; // unicode - mp_font_t* font; - } symbol; - struct { - float value; - mp_font_t* font; - } pbar; - struct { - int w,h; - unsigned char* image; - unsigned int* palette; - } spu; // FIXME! - struct { - struct mp_osd_obj_s* children; - } group; + struct { + int x1,y1,x2,y2; + } line; + struct { + int x,y,w,h; + } rect; + struct { + char* text; + mp_font_t* font; + } text; + struct { + int symbol; // unicode + mp_font_t* font; + } symbol; + struct { + float value; + mp_font_t* font; + } pbar; + struct { + int w,h; + unsigned char* image; + unsigned int* palette; + } spu; // FIXME! + struct { + struct mp_osd_obj_s* children; + } group; } params; } mp_osd_obj_t;
--- a/DOCS/tech/realcodecs/audio-codecs.txt Mon Apr 12 08:03:39 2010 +0000 +++ b/DOCS/tech/realcodecs/audio-codecs.txt Mon Apr 12 10:56:17 2010 +0000 @@ -38,17 +38,17 @@ ulong result=RAInitDecoder(ra_main_t *raMain, ra_init_struct *raInit); struct ra_init_struct { - ulong sample_rate; - ushort bits_per_sample; // unused by RAInitDecoder - ushort number_of_channels; - ushort unknown1; // 0 - ushort unknown2; // also unused (100) - ulong leaf_size; // leaf size (used for interleaving, but - // exists in audio stream description header (ASDH)) - ulong block_align; // packet size - ulong bits_per_sample; // unused (always 16) - char *ext_data; // 16 bytes located at the end of the - // ASDH + ulong sample_rate; + ushort bits_per_sample; // unused by RAInitDecoder + ushort number_of_channels; + ushort unknown1; // 0 + ushort unknown2; // also unused (100) + ulong leaf_size; // leaf size (used for interleaving, but + // exists in audio stream description header (ASDH)) + ulong block_align; // packet size + ulong bits_per_sample; // unused (always 16) + char *ext_data; // 16 bytes located at the end of the + // ASDH }; There are some information missing that you usually need for playback, @@ -61,7 +61,7 @@ void *GetRAFlavorProperty(ra_main_t *raMain, ulong flavor, ulong property, - short *property_length_in_bytes); + short *property_length_in_bytes); returns property data for a specific data This is not important, because it's just a read only function. @@ -69,8 +69,8 @@ ulong RADecode(ra_main_t *raMain, char *input_buffer, - ulong input_buffer_size, char *output_buffer, - ulong *decoded_bytes, ulong p6=-1); + ulong input_buffer_size, char *output_buffer, + ulong *decoded_bytes, ulong p6=-1); RAFreeDecoder(ra_main_t *);
--- a/DOCS/tech/realcodecs/streaming.txt Mon Apr 12 08:03:39 2010 +0000 +++ b/DOCS/tech/realcodecs/streaming.txt Mon Apr 12 10:56:17 2010 +0000 @@ -38,8 +38,8 @@ dddd: when it's 0, {} exists (only in this case) mask 3FFF: offset of fragment inside the whole packet. it's counted from the beginning of the packet, except when hdr&0x80, - hten it's relative to the _end_ of the packet, so it's - equal to fragment size! + hten it's relative to the _end_ of the packet, so it's + equal to fragment size! mask C000: like cccc, except the first case (always 4000) when it's all 0000, it indicates value >=0x4000, you should read {eeee} and use all 16 bits of it. dunno what happens when length>=65536...
--- a/DOCS/tech/realcodecs/video-codecs.txt Mon Apr 12 08:03:39 2010 +0000 +++ b/DOCS/tech/realcodecs/video-codecs.txt Mon Apr 12 10:56:17 2010 +0000 @@ -40,12 +40,12 @@ result=RV20toYUV420Init(struct init_data *, struct rvyuvMain **); struct init_data { - short constant=0xb; - short width, height; - short 0, 0, 0; - ulong format1; - long 1; - ulong format2; + short constant=0xb; + short width, height; + short 0, 0, 0; + ulong format1; + long 1; + ulong format2; }; format1 and format2 are stored in the .rm file's stream headers. @@ -53,22 +53,22 @@ it's the only difference between low and high bitrate files. result=RV20toYUV420Transform(char *input_stream, char *output_data, - struct transin *, struct transout *, struct rvyuvMain *); + struct transin *, struct transout *, struct rvyuvMain *); struct transin { - ulong length_of_input_data; - ulong null; - ulong num_sub_packets_in_block_minus_one; - ulong *sub_packets_list; - ulong another_null; - ulong timestamp_from_stream; + ulong length_of_input_data; + ulong null; + ulong num_sub_packets_in_block_minus_one; + ulong *sub_packets_list; + ulong another_null; + ulong timestamp_from_stream; }; struct transout { - ulong flag1; // ((var_94&2!=0)&&(result==0))?1:0 - ulong flag2; // 4 LBS from var_94 - ulong zero; - ulong width, height; + ulong flag1; // ((var_94&2!=0)&&(result==0))?1:0 + ulong flag2; // 4 LBS from var_94 + ulong zero; + ulong width, height; }; The length of output_stream is 1.5*width*height (I420 planar yuv 4:2:0). @@ -131,37 +131,37 @@ there are two w/h pairs at 05C. the first is the size of the unscaled video stream, the second possibly image size -000 1 6 3 1 -010 1 0 AEBFC0D1(magic) 0 -020 0 ptr->? 0 0 -030 0 0 ->rvyuvMain+0x050 ? -040 width height 0x17 0x479 -050 ->rvyuvMain 0x17 0x17 width -060 height width height 0 -070 0 1 0 0 -080 0 0xb w h -090 w h 0 0 -0A0 1 0xb0(w?) 0x58 0x58 -0B0 ptr->? 0 0 1 -0C0 0x32 1 0 0 -0D0 0 0 0 0 -0E0 0 0 0 0 -0F0 0 0 0 0 -100 0 0 0 0 -110 p p p p p are pointers to several function, for -120 p p p p example to the actual public functions -130 p p p p (except init, the others are some kind of -140 p p p p interfaces) -150 p 0 0 0 -160 0 0x2000 1 0 -170 0 0 0 0 -180 1 1 0 0 -190 0 0 0 0 -1A0 0 0 0 0 -1B0 1 0 ptr->? ptr->? -1C0 1 0 0 0 -1D0 0 0 0 0 -1E0 0 0 0 0 +000 1 6 3 1 +010 1 0 AEBFC0D1(magic) 0 +020 0 ptr->? 0 0 +030 0 0 ->rvyuvMain+0x050 ? +040 width height 0x17 0x479 +050 ->rvyuvMain 0x17 0x17 width +060 height width height 0 +070 0 1 0 0 +080 0 0xb w h +090 w h 0 0 +0A0 1 0xb0(w?) 0x58 0x58 +0B0 ptr->? 0 0 1 +0C0 0x32 1 0 0 +0D0 0 0 0 0 +0E0 0 0 0 0 +0F0 0 0 0 0 +100 0 0 0 0 +110 p p p p p are pointers to several function, for +120 p p p p example to the actual public functions +130 p p p p (except init, the others are some kind of +140 p p p p interfaces) +150 p 0 0 0 +160 0 0x2000 1 0 +170 0 0 0 0 +180 1 1 0 0 +190 0 0 0 0 +1A0 0 0 0 0 +1B0 1 0 ptr->? ptr->? +1C0 1 0 0 0 +1D0 0 0 0 0 +1E0 0 0 0 0 ...
--- a/DOCS/tech/subcp.txt Mon Apr 12 08:03:39 2010 +0000 +++ b/DOCS/tech/subcp.txt Mon Apr 12 10:56:17 2010 +0000 @@ -7,21 +7,21 @@ There are 2 approaches: 1. (preferred) You can generate Unicode subtitles with: - subfont --unicode <signle-byte encoding known by iconv> ... + subfont --unicode <signle-byte encoding known by iconv> ... or - subfont --unicode <path to custom encoding file> ... - (this custom encoding file could list all iso-8859-* characters to create + subfont --unicode <path to custom encoding file> ... + (this custom encoding file could list all iso-8859-* characters to create single font file for common encodings) and then run mplayer this way (-subcp and -utf8 expect Unicode font!): - mplayer -subcp <any encoding known by iconv> ... + mplayer -subcp <any encoding known by iconv> ... or - mplayer -utf8 ... + mplayer -utf8 ... 2. (current) Generate subtitles for some specific encoding with: - subfont <signle-byte encoding known by iconv> ... + subfont <signle-byte encoding known by iconv> ... or - subfont <path to custom signle-byte or EUC encoding file> ... + subfont <path to custom signle-byte or EUC encoding file> ... and then run mplayer without any encoding options for signle-byte encodings, or with -unicode option for EUC (and the like) encodings
--- a/DOCS/tech/swscaler_filters.txt Mon Apr 12 08:03:39 2010 +0000 +++ b/DOCS/tech/swscaler_filters.txt Mon Apr 12 10:56:17 2010 +0000 @@ -1,18 +1,18 @@ software scaler filter docs -ssf cgb=<float> chrominance gaussian blur - useful for videos with some chroma (color) noise (TV captures, VHS, ...) + useful for videos with some chroma (color) noise (TV captures, VHS, ...) -ssf lgb=<float> -> luminance gaussian blur - hmm, mostly special effect, could be used as lame noise reducer though + hmm, mostly special effect, could be used as lame noise reducer though -ssf chs=<int> -> shift chrominance horizontally -ssf cvs=<int> -> shift chrominance vertically - useful if the luma & chroma are not aligned exactly + useful if the luma & chroma are not aligned exactly -ssf cs=<float> -> chrominance sharpen -ssf ls=<float> -> luminance sharpen - simple sharpening filter + simple sharpening filter note: these will only work if the swscaler is used at all (use -vf scale)
--- a/DOCS/tech/swscaler_methods.txt Mon Apr 12 08:03:39 2010 +0000 +++ b/DOCS/tech/swscaler_methods.txt Mon Apr 12 10:56:17 2010 +0000 @@ -2,29 +2,29 @@ artifact types: --------------------------------------------------------------------- ringing - wave or noise like patterns around sharp edges - bad: sinc, lanczos (with high filter length) - acceptable: lanczos (with low filter length), cubic, spline - ok: area, (fast)blinear, gauss, point + wave or noise like patterns around sharp edges + bad: sinc, lanczos (with high filter length) + acceptable: lanczos (with low filter length), cubic, spline + ok: area, (fast)blinear, gauss, point blur - loss of detail / high frequency - bad: gauss with high variance - acceptable: (fast)bilinear, area - ok: others + loss of detail / high frequency + bad: gauss with high variance + acceptable: (fast)bilinear, area + ok: others aliasing (only downscale) - straight lines look like staircases - areas of high detail look worse - regular patterns turn into a funny looking mess (moire patterns) - bad: fast bilinear, point, gauss with low variance - acceptable: area - ok: others + straight lines look like staircases + areas of high detail look worse + regular patterns turn into a funny looking mess (moire patterns) + bad: fast bilinear, point, gauss with low variance + acceptable: area + ok: others blocky (upscale only) - looks like the image is made of rectangular blocks like a mosaic - bad: point - ok: others + looks like the image is made of rectangular blocks like a mosaic + bad: point + ok: others recommendations: (based upon my personal opinion many ppl might disagree ...) --------------------------------------------------------------------- @@ -49,20 +49,20 @@ a aliasing (downscale only) m mosaic (blocky) (upscale only) --sws 0 fast bilinear bA --sws 1 bilinear b --sws 2 bicubic high sharpness r - low sharpness b --sws 3 experimental ???? --sws 4 nearest neighbour AM --sws 5 area ba --sws 6 luma bicubic / chroma bilinear r --sws 7 gauss low sharpness B - high sharpness AM --sws 8 sinc R --sws 9 lanczos long filter R - short filter b --sws 10 bicubic spline r +-sws 0 fast bilinear bA +-sws 1 bilinear b +-sws 2 bicubic high sharpness r + low sharpness b +-sws 3 experimental ???? +-sws 4 nearest neighbour AM +-sws 5 area ba +-sws 6 luma bicubic / chroma bilinear r +-sws 7 gauss low sharpness B + high sharpness AM +-sws 8 sinc R +-sws 9 lanczos long filter R + short filter b +-sws 10 bicubic spline r Notes: - area upscale is identical to bilinear + area upscale is identical to bilinear
--- a/DOCS/tech/vidix.txt Mon Apr 12 08:03:39 2010 +0000 +++ b/DOCS/tech/vidix.txt Mon Apr 12 10:56:17 2010 +0000 @@ -1,5 +1,5 @@ - VIDIX - VIDeo Interface for *niX - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + VIDIX - VIDeo Interface for *niX + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This interface was designed and introduced as interface to userspace drivers to provide DGA everywhere where it's possible (unline X11). @@ -40,43 +40,43 @@ 7) APP calls vixConfigPlayback. Driver should prepare BES on this call. APP pass to driver following info: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - vidix_playback_t.fourcc - contains fourcc of movie - vidix_playback_t.capability - currently contsinas copy of vidix_capability_t.flags + vidix_playback_t.fourcc - contains fourcc of movie + vidix_playback_t.capability - currently contsinas copy of vidix_capability_t.flags vidix_playback_t.blend_factor- currently unused - vidix_playback_t.src - x,y,w,h fields contain original movie size - (in pixels) x and y often are nulls. + vidix_playback_t.src - x,y,w,h fields contain original movie size + (in pixels) x and y often are nulls. vidix_playback_t.src.pitch.y These fields contain source pitches vidix_playback_t.src.pitch.u - for each Y,U,V plane in bytes. vidix_playback_t.src.pitch.v (For packed fourcc only Y value is used) - They are hints for driver to use same destinition - pitches as in source memory (to speed up - memcpy process). - Note: when source pitches are unknown or - variable these field will be filled into 0. - vidix_playback_t.dest - x,y,w,h fields contains destinition rectange - on the screen in pixels. + They are hints for driver to use same destinition + pitches as in source memory (to speed up + memcpy process). + Note: when source pitches are unknown or + variable these field will be filled into 0. + vidix_playback_t.dest - x,y,w,h fields contains destinition rectange + on the screen in pixels. vidix_playback_t.num_frames - maximal # of frames which can be used by APP. - (Currently 10). + (Currently 10). Driver should fill following fields: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vidix_playback_t.num_frames - real # of frames which will be used by driver. - (Should be less or equal to app's num_frames). + (Should be less or equal to app's num_frames). vidix_playback_t.dest.pitch.y These fields should contain alignment vidix_playback_t.dest.pitch.u - for each Y,U,V plane in bytes. vidix_playback_t.dest.pitch.v (For packed fourcc only Y value is used) - vidix_playback_t.frame_size - Driver should tell to app which size of - source frame (src.w and src.h) should - use APP (according to pitches and offsets) + vidix_playback_t.frame_size - Driver should tell to app which size of + source frame (src.w and src.h) should + use APP (according to pitches and offsets) - vidix_playback_t.offsets - offsets from begin of BES memory for each frame + vidix_playback_t.offsets - offsets from begin of BES memory for each frame - vidix_playback_t.offset.y These field should contain offset - vidix_playback_t.offset.u - for each Y,U,V plane within frame. - vidix_playback_t.offset.v (For packed fourcc only Y value is used) + vidix_playback_t.offset.y These field should contain offset + vidix_playback_t.offset.u - for each Y,U,V plane within frame. + vidix_playback_t.offset.v (For packed fourcc only Y value is used) - vidix_playback_t.dga_addr - Address of BES memory. + vidix_playback_t.dga_addr - Address of BES memory. Also see this picture: @@ -85,9 +85,9 @@ | | v v [ RGB memory | YUV memory | UNDEF ] - ^ - | - +---- begin of BES memory + ^ + | + +---- begin of BES memory BES MEMORY layout: +-------- begin of BES memory @@ -109,22 +109,22 @@ But often: vidix_playback_t.offsets[0] = vidix_playback_t.offset.y = 0; Formula: (For Y plane) copy source to: - vidix_playback_t.dga_addr + - vidix_playback_t.offsets[i] + - vidix_playback_t.offset.y + vidix_playback_t.dga_addr + + vidix_playback_t.offsets[i] + + vidix_playback_t.offset.y 8) APP calls vixPlaybackOn. Driver should activate BES on this call. 9) PLAYBACK. Driver should sleep here ;) But during playback can be called: vixFrameSelect (if this function is exported) - Driver should prepare and activate corresponded frame. - This function is used only for double and trilpe buffering and - never used for single buffering playback. + Driver should prepare and activate corresponded frame. + This function is used only for double and trilpe buffering and + never used for single buffering playback. vixGet(Set)GrKeys (if this function is exported) - This interface should be tuned but intriduced for overlapped playback - and video effects (TYPE_FX) + This interface should be tuned but intriduced for overlapped playback + and video effects (TYPE_FX) vixPlaybackGet(Set)Eq (if this function is exported) - For color correction. + For color correction. 10) APP calls vixPlaybackOff. Driver should deactivate BES on this call. 11) If vixDestroy is defined APP calls this function before unloading driver from memory. @@ -144,10 +144,10 @@ Useful links: ~~~~~~~~~~~~~ -Guide to DTV http://www.digitaltelevision.com/dtvbook/toc.shtml -Fourcc http://www.webartz.com/fourcc/ -MPEG http://www.mpeg.org/MPEG/index.html -Analog colors http://www.miranda.com/en/app_notes/TN/TN-05/TN-05.htm +Guide to DTV http://www.digitaltelevision.com/dtvbook/toc.shtml +Fourcc http://www.webartz.com/fourcc/ +MPEG http://www.mpeg.org/MPEG/index.html +Analog colors http://www.miranda.com/en/app_notes/TN/TN-05/TN-05.htm Please send your suggestions, reports, feedback to mplayer-dev-eng@mplayerhq.hu Best regards! Nick Kurshev.
--- a/DOCS/xml/README Mon Apr 12 08:03:39 2010 +0000 +++ b/DOCS/xml/README Mon Apr 12 10:56:17 2010 +0000 @@ -39,13 +39,13 @@ 2) Download the docbook-xml package from http://www.oasis-open.org/docbook/xml/ Use the newest version. The URL will be something like this: - http://www.oasis-open.org/docbook/xml/4.2/docbook-xml-4.2.zip + http://www.oasis-open.org/docbook/xml/4.2/docbook-xml-4.2.zip Extract this package into a directory, enter it, and execute the following commands: - mkdir -p /usr/share/sgml/docbook/dtd/xml/4.2/ - cp -r * /usr/share/sgml/docbook/dtd/xml/4.2/ + mkdir -p /usr/share/sgml/docbook/dtd/xml/4.2/ + cp -r * /usr/share/sgml/docbook/dtd/xml/4.2/ 3) Download the docbook-xsl package from @@ -53,14 +53,13 @@ Use the newest version. The URL will be something like this: - http://prdownloads.sourceforge.net/docbook/docbook-xsl-1.62.0.tar.gz + http://prdownloads.sourceforge.net/docbook/docbook-xsl-1.62.0.tar.gz Extract this package into a directory, enter it, and execute the following commands: - mkdir -p /usr/share/sgml/docbook/stylesheet/xsl/nwalsh - cp -r VERSION common html lib \ - /usr/share/sgml/docbook/stylesheet/xsl/nwalsh + mkdir -p /usr/share/sgml/docbook/stylesheet/xsl/nwalsh + cp -r VERSION common html lib /usr/share/sgml/docbook/stylesheet/xsl/nwalsh Building the documentation @@ -68,7 +67,7 @@ Before trying to build the documentation, run - make help + make help to see all available build targets and make your choice. If something goes wrong, check the Configuration section of the toplevel Makefile and adjust @@ -82,15 +81,15 @@ both a public and a system identifier. For example: <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" - "/usr/share/sgml/docbook/dtd/xml/4.1.2/docbookx.dtd"> + "/usr/share/sgml/docbook/dtd/xml/4.1.2/docbookx.dtd"> where - "-//OASIS//DTD DocBook XML V4.1.2//EN" + "-//OASIS//DTD DocBook XML V4.1.2//EN" is the public, and - "/usr/share/sgml/docbook/dtd/xml/4.1.2/docbookx.dtd" + "/usr/share/sgml/docbook/dtd/xml/4.1.2/docbookx.dtd" is the system identifier.
--- a/DOCS/xml/README.maintainers Mon Apr 12 08:03:39 2010 +0000 +++ b/DOCS/xml/README.maintainers Mon Apr 12 10:56:17 2010 +0000 @@ -5,9 +5,9 @@ in subdirectories of the 'HTML' directory. IMPORTANT: Do NOT place sensitive files under 'HTML'! - It is for generated documentation only. - The whole directory tree is wiped out by the Makefile - when running 'make distclean' or 'make clean'. + It is for generated documentation only. + The whole directory tree is wiped out by the Makefile + when running 'make distclean' or 'make clean'. Each subdirectory must have a Makefile. Its purpose is to include the toplevel Makefile.inc file (with the rules to build the docs)
--- a/DOCS/xml/configure Mon Apr 12 08:03:39 2010 +0000 +++ b/DOCS/xml/configure Mon Apr 12 10:56:17 2010 +0000 @@ -164,7 +164,7 @@ EOF for file in `find $lang en -name \*.xml -exec basename \{\} \; | sort -u`; do - echo '<!ENTITY '$file' SYSTEM "'$file'">' >> $lang/main.xml + echo '<!ENTITY '$file' SYSTEM "'$file'">' >> $lang/main.xml done cat >> $lang/main.xml << EOF @@ -237,7 +237,7 @@ if test -z "$_fake_chunk_xsl" then # _xsltcommand="cd \$1 && if test \"\`dirname \$2 | head -c 1\`\" = \".\" ; then $_java -classpath $_saxon_jar com.icl.saxon.StyleSheet \$_IN_DIR/\$3 \$_IN_DIR/\$2 ; else $_java -classpath $_saxon_jar com.icl.saxon.StyleSheet \$_IN_DIR/\$3 \$2 ;fi" - _xsltcommand=" + _xsltcommand=" if test \"\`dirname \$2 | head -c 1\`\" = \".\" then _STYLESHEET=\$_IN_DIR/\$2 @@ -306,9 +306,9 @@ done if test "x$_docbook_dsl" = "x" -o "x$_xml_dcl" = "x" then - echo "One of the files docbook.dsl and xml.dcl or both of them weren't found." - echo "Bailing out." - exit 1 + echo "One of the files docbook.dsl and xml.dcl or both of them weren't found." + echo "Bailing out." + exit 1 fi _xsltcommand="cd \$1 && $_jade -t xml -d $_docbook_dsl $_xml_dcl \$_IN_DIR/\$3" else
--- a/DOCS/xml/cs/video.xml Mon Apr 12 08:03:39 2010 +0000 +++ b/DOCS/xml/cs/video.xml Mon Apr 12 10:56:17 2010 +0000 @@ -2229,7 +2229,7 @@ <screen> mplayer -vo zr -zrdev /dev/video0 -zrcrop 352x288+352+0 -zrxdoff 0 -zrbw \ -zrcrop 352x288+0+0 -zrdev /dev/video1 -zrquality 10 \ - <replaceable>movie.avi</replaceable> + <replaceable>movie.avi</replaceable> </screen> </para>
--- a/DOCS/xml/de/cd-dvd.xml Mon Apr 12 08:03:39 2010 +0000 +++ b/DOCS/xml/de/cd-dvd.xml Mon Apr 12 10:56:17 2010 +0000 @@ -201,8 +201,8 @@ <title>DVD-Entschlüsselung</title> <para> DVD-Entschlüsselung geschieht durch <systemitem>libdvdcss</systemitem>. Die dafür - verwendete Methode kann durch Umgebungsvariable <envar>DVDCSS_METHOD</envar> festgelegt werden, - siehe Manpage für Details. + verwendete Methode kann durch Umgebungsvariable <envar>DVDCSS_METHOD</envar> festgelegt werden, + siehe Manpage für Details. </para> </formalpara>
--- a/DOCS/xml/de/encoding-guide.xml Mon Apr 12 08:03:39 2010 +0000 +++ b/DOCS/xml/de/encoding-guide.xml Mon Apr 12 10:56:17 2010 +0000 @@ -4224,7 +4224,7 @@ <emphasis role="bold">partitions=all</emphasis>: Diese Option aktiviert die Verwendung von 8x4, 4x8 und 4x4 Unterteilungen in den vorhergesagten Macroblöcken (zusätzlich zu den Standardunterteilungen). - Sie zu aktivieren führt zu einem + Sie zu aktivieren führt zu einem recht beständigen Geschwindigkeitsverlust von 10%-15%. Sie ist ziemlich nutzlos bei Quellen, die nur langsame Bewegungen enthalten, obwohl in manchen Quellen mit sehr viel Bewegung und vielen kleinen,
--- a/DOCS/xml/de/faq.xml Mon Apr 12 08:03:39 2010 +0000 +++ b/DOCS/xml/de/faq.xml Mon Apr 12 10:56:17 2010 +0000 @@ -143,7 +143,7 @@ <answer> <para> Probiere folgende configure-Optionen: - <screen>/configure --target=i386-linux --cc="gcc -m32" --as="as --32" --with-extralibdir=/usr/lib </screen> + <screen>/configure --target=i386-linux --cc="gcc -m32" --as="as --32" --with-extralibdir=/usr/lib</screen> </para> </answer> </qandaentry>
--- a/DOCS/xml/de/tvinput.xml Mon Apr 12 08:03:39 2010 +0000 +++ b/DOCS/xml/de/tvinput.xml Mon Apr 12 10:56:17 2010 +0000 @@ -46,7 +46,7 @@ <screen>-tv channels=26-MTV1,23-TV2</screen> Erklärung: Durch Verwendung dieser Option sind nur die Kanäle 26 und 23 in Gebrauch, und es wird beim Kanalwechsel einen netten OSD-Text geben, der den Namen des Kanals - anzeigt. Leerzeichen im Kanalnamen müssen durch das Zeichen "_" ersetzt werden. + anzeigt. Leerzeichen im Kanalnamen müssen durch das Zeichen "_" ersetzt werden. </para> </listitem> @@ -304,4 +304,4 @@ </sect2> </sect1> -</chapter> \ No newline at end of file +</chapter>
--- a/DOCS/xml/de/usage.xml Mon Apr 12 08:03:39 2010 +0000 +++ b/DOCS/xml/de/usage.xml Mon Apr 12 10:56:17 2010 +0000 @@ -5,103 +5,103 @@ <title>Gebrauch</title> <sect1 id="commandline"> - <title>Kommandozeile</title> +<title>Kommandozeile</title> - <para> - <application>MPlayer</application> verwendet einen komplexen Wiedergabebaum. Er besteht aus - globalen Optionen, die zuerst geschrieben werden, zum Beispiel +<para> +<application>MPlayer</application> verwendet einen komplexen Wiedergabebaum. Er besteht aus +globalen Optionen, die zuerst geschrieben werden, zum Beispiel - <screen>mplayer -vfm 5</screen> +<screen>mplayer -vfm 5</screen> - und Optionen, die hinter den Dateinamen geschrieben werden und die sich nur auf die - angegebene Datei/URL/sonstwas beziehen, zum Beispiel: +und Optionen, die hinter den Dateinamen geschrieben werden und die sich nur auf die +angegebene Datei/URL/sonstwas beziehen, zum Beispiel: - <screen>mplayer -vfm 5 <replaceable>movie1.avi</replaceable> <replaceable>movie2.avi</replaceable> -vfm 4</screen> - </para> +<screen>mplayer -vfm 5 <replaceable>movie1.avi</replaceable> <replaceable>movie2.avi</replaceable> -vfm 4</screen> +</para> - <para> - Du kannst Dateinamen/URLs mit <literal>{</literal> und <literal>}</literal> gruppieren. - Dies ist nützlich mit der Option <option>-loop</option>: +<para> +Du kannst Dateinamen/URLs mit <literal>{</literal> und <literal>}</literal> gruppieren. +Dies ist nützlich mit der Option <option>-loop</option>: - <screen>mplayer { 1.avi -loop 2 2.avi } -loop 3</screen> +<screen>mplayer { 1.avi -loop 2 2.avi } -loop 3</screen> - Der obige Befehl wird die Dateien in folgender Reihenfolge abspielen: 1, 1, 2, 1, 1, 2, 1, 1, 2. - </para> +Der obige Befehl wird die Dateien in folgender Reihenfolge abspielen: 1, 1, 2, 1, 1, 2, 1, 1, 2. +</para> - <para> - Datei abspielen: - <synopsis><!-- - --> <command>mplayer</command><!-- - --> [<replaceable>Optionen</replaceable>]<!-- - --> [<replaceable>Pfad</replaceable>/]<replaceable>dateiname</replaceable><!-- - --></synopsis> - </para> +<para> +Datei abspielen: +<synopsis><!-- +--> <command>mplayer</command><!-- +--> [<replaceable>Optionen</replaceable>]<!-- +--> [<replaceable>Pfad</replaceable>/]<replaceable>dateiname</replaceable><!-- +--></synopsis> +</para> - <para> - Eine andere Möglichkeit, eine Datei abzuspielen: - <synopsis><!-- - --> <command>mplayer</command><!-- - --> [<replaceable>Optionen</replaceable>]<!-- - --> <replaceable>file:///uri-escaped-Pfad</replaceable> <!-- - --></synopsis> - </para> +<para> +Eine andere Möglichkeit, eine Datei abzuspielen: +<synopsis><!-- +--> <command>mplayer</command><!-- +--> [<replaceable>Optionen</replaceable>]<!-- +--> <replaceable>file:///uri-escaped-Pfad</replaceable> <!-- +--></synopsis> +</para> - <para> - Mehrere Dateien abspielen: - <synopsis><!-- - --> <command>mplayer</command><!-- - --> [<replaceable>Standardoptionen</replaceable>]<!-- - --> [<replaceable>Pfad</replaceable>/]<replaceable>dateiname1</replaceable><!-- - --> [<replaceable>Optionen für dateiname1</replaceable>]<!-- - --> <replaceable>dateiname2</replaceable><!-- - --> [<replaceable>Optionen für dateiname2</replaceable>] ... <!-- - --></synopsis> - </para> +<para> +Mehrere Dateien abspielen: +<synopsis><!-- +--> <command>mplayer</command><!-- +--> [<replaceable>Standardoptionen</replaceable>]<!-- +--> [<replaceable>Pfad</replaceable>/]<replaceable>dateiname1</replaceable><!-- +--> [<replaceable>Optionen für dateiname1</replaceable>]<!-- +--> <replaceable>dateiname2</replaceable><!-- +--> [<replaceable>Optionen für dateiname2</replaceable>] ... <!-- +--></synopsis> +</para> - <para> - VCD abspielen: - <synopsis><!-- - --> <command>mplayer</command> [<replaceable>Optionen</replaceable>]<!-- - --> vcd://<replaceable>tracknr</replaceable><!-- - --> [-cdrom-device <replaceable>/dev/cdrom</replaceable>]<!-- - --></synopsis> - </para> +<para> +VCD abspielen: +<synopsis><!-- +--> <command>mplayer</command> [<replaceable>Optionen</replaceable>]<!-- +--> vcd://<replaceable>tracknr</replaceable><!-- +--> [-cdrom-device <replaceable>/dev/cdrom</replaceable>]<!-- +--></synopsis> +</para> - <para> - DVD abspielen: - <synopsis><!-- - --> <command>mplayer</command> [<replaceable>Optionen</replaceable>]<!-- - --> dvd://<replaceable>titlenr</replaceable><!-- - --> [-dvd-device <replaceable>/dev/dvd</replaceable>]<!-- - --></synopsis> - </para> +<para> +DVD abspielen: +<synopsis><!-- +--> <command>mplayer</command> [<replaceable>Optionen</replaceable>]<!-- +--> dvd://<replaceable>titlenr</replaceable><!-- +--> [-dvd-device <replaceable>/dev/dvd</replaceable>]<!-- +--></synopsis> +</para> - <para> - Vom WWW abspielen: - <synopsis><!-- - --><command>mplayer</command> [<replaceable>Optionen</replaceable>]<!-- - --> http://<replaceable>site.com/datei.asf</replaceable><!-- - --></synopsis> (es können auch Playlists benutzt werden) - </para> +<para> +Vom WWW abspielen: +<synopsis><!-- +--><command>mplayer</command> [<replaceable>Optionen</replaceable>]<!-- +--> http://<replaceable>site.com/datei.asf</replaceable><!-- +--></synopsis> (es können auch Playlists benutzt werden) +</para> - <para> - Von RTSP abspielen: - <synopsis><!-- - --> <command>mplayer</command> [<replaceable>Optionen</replaceable>]<!-- - --> rtsp://<replaceable>server.example.com/streamName</replaceable><!-- - --></synopsis> - </para> +<para> +Von RTSP abspielen: +<synopsis><!-- +--> <command>mplayer</command> [<replaceable>Optionen</replaceable>]<!-- +--> rtsp://<replaceable>server.example.com/streamName</replaceable><!-- +--></synopsis> +</para> - <para> - Beispiele: - <screen> +<para> +Beispiele: +<screen> mplayer -vo x11 <replaceable>/mnt/Films/Contact/contact2.mpg</replaceable> mplayer vcd://<replaceable>2</replaceable> -cdrom-device <replaceable>/dev/hdc</replaceable> mplayer -afm 3 <replaceable>/mnt/DVDtrailers/alien4.vob</replaceable> mplayer dvd://<replaceable>1</replaceable> -dvd-device <replaceable>/dev/hdc</replaceable> mplayer -abs 65536 -delay -0.4 -nobps <replaceable>~/movies/test.avi</replaceable><!-- - --></screen> - </para> +--></screen> +</para> </sect1> @@ -227,36 +227,36 @@ <sect1 id="control"> - <title>Steuerung/Kontrolle</title> +<title>Steuerung/Kontrolle</title> - <para> - <application>MPlayer</application> hat einen vollständig konfigurierbaren, befehlgesteuerten - Steuerungslayer, der dir ermöglicht, <application>MPlayer</application> mit der Tastatur, - der Maus, einem Joystick oder einer Fernbedienung (durch Gebrauch von LIRC) zu kontrollieren. - Siehe Manpage für die komplette Liste der Tastatursteuerungen. - </para> +<para> +<application>MPlayer</application> hat einen vollständig konfigurierbaren, befehlgesteuerten +Steuerungslayer, der dir ermöglicht, <application>MPlayer</application> mit der Tastatur, +der Maus, einem Joystick oder einer Fernbedienung (durch Gebrauch von LIRC) zu kontrollieren. +Siehe Manpage für die komplette Liste der Tastatursteuerungen. +</para> - <sect2 id="ctrl-cfg"> - <title>Steuerungskonfiguration</title> +<sect2 id="ctrl-cfg"> +<title>Steuerungskonfiguration</title> - <para> - <application>MPlayer</application> erlaubt dir durch eine einfache Konfigurationsdatei, - jede Taste an jeden beliebigen <application>MPlayer</application>-Befehl zu binden. - Die Syntax besteht aus einem Tastennamen gefolgt von einem Befehl. Die Standardkonfigurationsdatei - ist <filename>$HOME/.mplayer/input.conf</filename>, dies kann jedoch mit der Option<option>-input <replaceable>conf</replaceable></option> überschrieben werden - (relative Pfade sind relativ zu <filename>$HOME/.mplayer</filename>). - </para> +<para> +<application>MPlayer</application> erlaubt dir durch eine einfache Konfigurationsdatei, +jede Taste an jeden beliebigen <application>MPlayer</application>-Befehl zu binden. +Die Syntax besteht aus einem Tastennamen gefolgt von einem Befehl. Die Standardkonfigurationsdatei +ist <filename>$HOME/.mplayer/input.conf</filename>, dies kann jedoch mit der Option<option>-input <replaceable>conf</replaceable></option> überschrieben werden +(relative Pfade sind relativ zu <filename>$HOME/.mplayer</filename>). +</para> - <para> - Du erhältst eine vollständige Liste der unterstützten Tastennamen, indem du den Befehl - <command>mplayer -input keylist</command> ausführst, eine vollständige Liste der - verfügbaren Befehle mit <command>mplayer -input cmdlist</command>. - </para> +<para> +Du erhältst eine vollständige Liste der unterstützten Tastennamen, indem du den Befehl +<command>mplayer -input keylist</command> ausführst, eine vollständige Liste der +verfügbaren Befehle mit <command>mplayer -input cmdlist</command>. +</para> - <example id="input_control_file"> - <title>Eine Beispiel-Input-Steuerungsdatei</title> - <programlisting> +<example id="input_control_file"> +<title>Eine Beispiel-Input-Steuerungsdatei</title> +<programlisting> ## ## MPlayer input control file ## @@ -269,38 +269,38 @@ > pt_step 1 < pt_step -1 ENTER pt_step 1 1<!-- - --></programlisting> - </example> - </sect2> +--></programlisting> +</example> +</sect2> - <sect2 id="lirc"> - <title>Steuerung mit LIRC</title> +<sect2 id="lirc"> +<title>Steuerung mit LIRC</title> - <para> - Linux Infrared Remote Control - benutze einen einfach zu erstellenden, selbstgemachten - IR-Empfänger, eine (fast) veraltete Fernbedienung und steuere deine Linuxkiste damit! - Mehr darüber auf der <ulink url="http://www.lirc.org">LIRC Homepage</ulink>. - </para> +<para> +Linux Infrared Remote Control - benutze einen einfach zu erstellenden, selbstgemachten +IR-Empfänger, eine (fast) veraltete Fernbedienung und steuere deine Linuxkiste damit! +Mehr darüber auf der <ulink url="http://www.lirc.org">LIRC Homepage</ulink>. +</para> - <para> - Wenn du das LIRC-Paket installiert hast, wird <filename>configure</filename> - dies automatisch erkennen. Wenn alles gut lief, wird <application>MPlayer</application> - beim Start "<systemitem>Initialisiere LIRC-Unterstützung...</systemitem>" ausgeben. - Wenn ein Fehler auftritt, wird er dir das sagen. Wenn keine Mitteilung über LIRC erscheint, - ist die entsprechende Unterstützung nicht eincompiliert. Das ist es schon :-) - </para> +<para> +Wenn du das LIRC-Paket installiert hast, wird <filename>configure</filename> +dies automatisch erkennen. Wenn alles gut lief, wird <application>MPlayer</application> +beim Start "<systemitem>Initialisiere LIRC-Unterstützung...</systemitem>" ausgeben. +Wenn ein Fehler auftritt, wird er dir das sagen. Wenn keine Mitteilung über LIRC erscheint, +ist die entsprechende Unterstützung nicht eincompiliert. Das ist es schon :-) +</para> - <para> - Der Anwendungsname für <application>MPlayer</application> ist - Überraschung - - <filename>mplayer</filename>. Du kannst jeden <application>MPlayer</application>-Befehl - verwenden und sogar mehrere Befehle übergeben, indem du sie mit <literal>\n</literal> - trennst. Vergiss nicht, das repeat-Flag in <filename>.lircrc</filename> zu setzen, wenn - es Sinn macht (spulen, Lautstärke, etc). Hier ist ein Auszug einer Beispieldatei - <filename>.lircrc</filename>: - </para> +<para> +Der Anwendungsname für <application>MPlayer</application> ist - Überraschung - +<filename>mplayer</filename>. Du kannst jeden <application>MPlayer</application>-Befehl +verwenden und sogar mehrere Befehle übergeben, indem du sie mit <literal>\n</literal> +trennst. Vergiss nicht, das repeat-Flag in <filename>.lircrc</filename> zu setzen, wenn +es Sinn macht (spulen, Lautstärke, etc). Hier ist ein Auszug einer Beispieldatei +<filename>.lircrc</filename>: +</para> - <programlisting> +<programlisting> begin button = VOLUME_PLUS prog = mplayer @@ -326,832 +326,832 @@ prog = mplayer config = seek 0 1\npause end<!-- - --></programlisting> +--></programlisting> - <para> - Wenn du die Standardposition für die LIRC-Konfigurationsdatei - (<filename>~/.lircrc</filename>) nicht magst, benutze die Option <option>-lircconf - <replaceable>Dateiname</replaceable></option>, um eine andere Datei anzugeben. - </para> - </sect2> +<para> +Wenn du die Standardposition für die LIRC-Konfigurationsdatei +(<filename>~/.lircrc</filename>) nicht magst, benutze die Option <option>-lircconf +<replaceable>Dateiname</replaceable></option>, um eine andere Datei anzugeben. +</para> +</sect2> - <sect2 id="slave-mode"> - <title>Slave-Modus</title> - <para> - Der Slave-Modus erlaubt dir, einfache Frontends für <application>MPlayer</application> - zu erstellen. Wenn dieser mit der Option <option>-slave</option> gestartet wird, - wird <application>MPlayer</application> durch Zeilenumsprünge (\n) getrennte - Befehle von der Standardeingabe lesen. - Die Befehle sind in der Datei <ulink url="../../tech/slave.txt">slave.txt</ulink> dokumentiert. - </para> - </sect2> +<sect2 id="slave-mode"> +<title>Slave-Modus</title> +<para> +Der Slave-Modus erlaubt dir, einfache Frontends für <application>MPlayer</application> +zu erstellen. Wenn dieser mit der Option <option>-slave</option> gestartet wird, +wird <application>MPlayer</application> durch Zeilenumsprünge (\n) getrennte +Befehle von der Standardeingabe lesen. +Die Befehle sind in der Datei <ulink url="../../tech/slave.txt">slave.txt</ulink> dokumentiert. +</para> +</sect2> </sect1> <sect1 id="streaming"> - <title>Streaming vom Netzwerk oder Pipes</title> +<title>Streaming vom Netzwerk oder Pipes</title> - <para> - <application>MPlayer</application> kann Dateien aus dem Netzwerk abspielen, mit Gebrauch - der Protokolle HTTP, FTP, MMS oder RTSP/RTP. - </para> +<para> +<application>MPlayer</application> kann Dateien aus dem Netzwerk abspielen, mit Gebrauch +der Protokolle HTTP, FTP, MMS oder RTSP/RTP. +</para> - <para> - Die Wiedergabe funktioniert durch einfache Übergabe der URL auf der Kommandozeile. - <application>MPlayer</application> berücksichtigt die <envar>http_proxy</envar>-Umgebungsvariable - und benutzt einen Proxy, wenn verfügbar. Proxies können auch erzwungen werden: - <screen>mplayer <replaceable>http_proxy://proxy.micorsops.com:3128/http://micorsops.com:80/stream.asf</replaceable></screen> - </para> +<para> +Die Wiedergabe funktioniert durch einfache Übergabe der URL auf der Kommandozeile. +<application>MPlayer</application> berücksichtigt die <envar>http_proxy</envar>-Umgebungsvariable +und benutzt einen Proxy, wenn verfügbar. Proxies können auch erzwungen werden: +<screen>mplayer <replaceable>http_proxy://proxy.micorsops.com:3128/http://micorsops.com:80/stream.asf</replaceable></screen> +</para> - <para> - <application>MPlayer</application> kann von der Standardeingabe lesen - (<emphasis>keine</emphasis> named Pipes). Dies kann beispielsweise benutzt werden, um direkt - von FTP abzuspielen: - <screen>wget <replaceable>ftp://micorsops.com/something.avi</replaceable> -O - | mplayer -</screen> - </para> +<para> +<application>MPlayer</application> kann von der Standardeingabe lesen +(<emphasis>keine</emphasis> named Pipes). Dies kann beispielsweise benutzt werden, um direkt +von FTP abzuspielen: +<screen>wget <replaceable>ftp://micorsops.com/something.avi</replaceable> -O - | mplayer -</screen> +</para> - <note> - <para> - Es wird auch empfohlen, bei der Wiedergabe vom Netzwerk <option>-cache</option> zu aktivieren: - <screen>wget <replaceable>ftp://micorsops.com/something.avi</replaceable> -O - | mplayer -cache 8192 -</screen> - </para> - </note> +<note> +<para> +Es wird auch empfohlen, bei der Wiedergabe vom Netzwerk <option>-cache</option> zu aktivieren: +<screen>wget <replaceable>ftp://micorsops.com/something.avi</replaceable> -O - | mplayer -cache 8192 -</screen> +</para> +</note> - <sect2 id="streaming-save"> - <title>Gestreamte Inhalte speichern</title> - <para> - Wenn du <application>MPlayer</application> ersteinmal erfolgreich dazu gebracht hast, deinen - Lieblingsinternetstream abzuspielen, kannst du die Option <option>-dumpstream</option> - verwenden, um den Stream in eine Datei zu speichern. - Zum Beispiel wird - <screen>mplayer <replaceable>http://217.71.208.37:8006</replaceable> -dumpstream -dumpfile <replaceable>stream.asf</replaceable> </screen> - den von <replaceable>http://217.71.208.37:8006</replaceable> gestreamten Inhalt nach - <replaceable>stream.asf</replaceable> speichern. Dies funktioniert mit allen Protokollen, - die von <application>MPlayer</application> unterstützt werden, wie MMS, RSTP und so weiter. - </para> - </sect2> +<sect2 id="streaming-save"> +<title>Gestreamte Inhalte speichern</title> +<para> +Wenn du <application>MPlayer</application> ersteinmal erfolgreich dazu gebracht hast, deinen +Lieblingsinternetstream abzuspielen, kannst du die Option <option>-dumpstream</option> +verwenden, um den Stream in eine Datei zu speichern. +Zum Beispiel wird +<screen>mplayer <replaceable>http://217.71.208.37:8006</replaceable> -dumpstream -dumpfile <replaceable>stream.asf</replaceable> </screen> +den von <replaceable>http://217.71.208.37:8006</replaceable> gestreamten Inhalt nach +<replaceable>stream.asf</replaceable> speichern. Dies funktioniert mit allen Protokollen, +die von <application>MPlayer</application> unterstützt werden, wie MMS, RSTP und so weiter. +</para> +</sect2> </sect1> <sect1 id="edl" xreflabel="Edit Decision Lists (EDL)"> - <title>Edit Decision Lists (EDL)</title> +<title>Edit Decision Lists (EDL)</title> - <para> - Das System der "edit decision list" (EDL) erlaubt dir, Abschnitte von Videos - während der Wiedergabe automatisch zu überspringen oder stummzuschalten, - basierend auf einer filmspezifischen EDL-Konfigurationsdatei. - </para> +<para> +Das System der "edit decision list" (EDL) erlaubt dir, Abschnitte von Videos +während der Wiedergabe automatisch zu überspringen oder stummzuschalten, +basierend auf einer filmspezifischen EDL-Konfigurationsdatei. +</para> - <para> - Dies ist nützlich für diejenigen, die einen Film im "familienfreundlichen" Modus - anschauen möchten. Du kannst jegliche Gewalt oder Obszönität nach persönlichen - Vorgaben aus einem Film herausschneiden. Daneben gibt es noch weitere - Nutzungsmöglichkeiten wie dem automatischen Überspringen von Werbung in den - Videos, die du dir anschaust. - </para> +<para> +Dies ist nützlich für diejenigen, die einen Film im "familienfreundlichen" Modus +anschauen möchten. Du kannst jegliche Gewalt oder Obszönität nach persönlichen +Vorgaben aus einem Film herausschneiden. Daneben gibt es noch weitere +Nutzungsmöglichkeiten wie dem automatischen Überspringen von Werbung in den +Videos, die du dir anschaust. +</para> - <para> - Das EDL-Dateiformat ist ziemlich simpel. Es gibt einen Befehl pro Zeile, der - angibt, was zu tun ist (überspringen/stumm schalten) und wann es zu tun ist (benutzt pts in Sekunden). - </para> +<para> +Das EDL-Dateiformat ist ziemlich simpel. Es gibt einen Befehl pro Zeile, der +angibt, was zu tun ist (überspringen/stumm schalten) und wann es zu tun ist (benutzt pts in Sekunden). +</para> - <sect2 id="edl_using"> - <title>Benutzung einer EDL-Datei</title> - <para> - Füge die Option <option>-edl <dateiname></option> mit der EDL-Datei, - die auf das Video angewendet werden soll, hinzu, wenn du - <application>MPlayer</application> aufrufst. - </para> - </sect2> +<sect2 id="edl_using"> +<title>Benutzung einer EDL-Datei</title> +<para> +Füge die Option <option>-edl <dateiname></option> mit der EDL-Datei, +die auf das Video angewendet werden soll, hinzu, wenn du +<application>MPlayer</application> aufrufst. +</para> +</sect2> - <sect2 id="edl_making"> - <title>Erstellung einer EDL-Datei</title> - <para> - Das aktuelle EDL-Dateiformat ist das folgende: - <programlisting>[Anfangssekunde] [Endsekunde] [Aktion]</programlisting> - Wobei die Sekunden Fließkommazahlen sind und die Aktion entweder - <literal>0</literal> zum Überspringen oder <literal>1</literal> für - Stummschaltung. Beispiel: - <programlisting> +<sect2 id="edl_making"> +<title>Erstellung einer EDL-Datei</title> +<para> +Das aktuelle EDL-Dateiformat ist das folgende: +<programlisting>[Anfangssekunde] [Endsekunde] [Aktion]</programlisting> +Wobei die Sekunden Fließkommazahlen sind und die Aktion entweder +<literal>0</literal> zum Überspringen oder <literal>1</literal> für +Stummschaltung. Beispiel: +<programlisting> 5.3 7.1 0 15 16.7 1 420 422 0<!-- - --></programlisting> - Dies wird den Bereich von Sekunde 5.3 bis Sekunde 7.1 des Videos überspringen - und dann bei 15 Sekunden stummschalten, bei 16.7 Sekunden den Ton wieder - anschalten. Der Bereich zwischen den Sekunden 420 bis 422 wird übersprungen. - Diese Aktionen werden ausgeführt, wenn der Wiedergabetimer die in der Datei - angegebenen Zeiten erreicht. - </para> +--></programlisting> +Dies wird den Bereich von Sekunde 5.3 bis Sekunde 7.1 des Videos überspringen +und dann bei 15 Sekunden stummschalten, bei 16.7 Sekunden den Ton wieder +anschalten. Der Bereich zwischen den Sekunden 420 bis 422 wird übersprungen. +Diese Aktionen werden ausgeführt, wenn der Wiedergabetimer die in der Datei +angegebenen Zeiten erreicht. +</para> - <para> - Um eine EDL-Datei zu erstellen, die als Arbeitsvorlage benutzt werden kann, - benutze die Option <option>-edlout <dateiname></option>. - Drücke dann während der Wiedergabe <keycap>i</keycap>, um den Anfang und as Ende - eines zu überspringenden Blocks zu markieren. Ein entsprechender Eintrag wird für - diese Zeit in die Datei geschrieben. Danach kannst du Feineinstellungen an - der generierten EDL-Datei vornehmen und zusätzlich die Standardeinstellung ändern, - welche darin besteht, den Block, der in einer Zeile beschrieben ist, zu überspringen. - </para> - </sect2> +<para> +Um eine EDL-Datei zu erstellen, die als Arbeitsvorlage benutzt werden kann, +benutze die Option <option>-edlout <dateiname></option>. +Drücke dann während der Wiedergabe <keycap>i</keycap>, um den Anfang und as Ende +eines zu überspringenden Blocks zu markieren. Ein entsprechender Eintrag wird für +diese Zeit in die Datei geschrieben. Danach kannst du Feineinstellungen an +der generierten EDL-Datei vornehmen und zusätzlich die Standardeinstellung ändern, +welche darin besteht, den Block, der in einer Zeile beschrieben ist, zu überspringen. +</para> +</sect2> </sect1> <sect1 id="advaudio" xreflabel="Advanced Audio"> - <title>Audio für Fortgeschrittene</title> +<title>Audio für Fortgeschrittene</title> - <sect2 id="advaudio-surround"> - <title>Surround/Multichannel-Wiedergabe</title> +<sect2 id="advaudio-surround"> +<title>Surround/Multichannel-Wiedergabe</title> - <sect3 id="advaudio-surround-DVD"> - <title>DVDs</title> - <para> - Die meisten DVDs und viele andere Dateien enthalten Surround-Sound. - <application>MPlayer</application> unterstützt Surround-Wiedergabe, aktiviert diese - jedoch nicht in der Voreinstellung, da Stereo-Ausrüstung weit gebräuchlicher ist. - Um eine Datei abzuspielen, die mehr als zwei Audiokanäle hat, benutze - die Option <option>-channels</option>. - Um eine DVD mit 5.1-Ton abzuspielen, benutze beispielsweise: +<sect3 id="advaudio-surround-DVD"> +<title>DVDs</title> +<para> +Die meisten DVDs und viele andere Dateien enthalten Surround-Sound. +<application>MPlayer</application> unterstützt Surround-Wiedergabe, aktiviert diese +jedoch nicht in der Voreinstellung, da Stereo-Ausrüstung weit gebräuchlicher ist. +Um eine Datei abzuspielen, die mehr als zwei Audiokanäle hat, benutze +die Option <option>-channels</option>. +Um eine DVD mit 5.1-Ton abzuspielen, benutze beispielsweise: - <screen>mplayer dvd://1 -channels 6</screen> +<screen>mplayer dvd://1 -channels 6</screen> - Beachte, dass es sich trotz des Namens "5.1" um sechs diskrete Kanäle handelt. - Wenn du eine entsprechende Ausrüstung für Surround-Sound hast, ist es sicher, die - Option <option>channels</option> in die <application>MPlayer</application>-Konfigurationsdatei - <filename>~/.mplayer/config</filename> zu schreiben. Um zum Beispiel Quadrophonie-Wiedergabe - als Voreinstellung zu verwenden, füge folgende Zeile hinzu: +Beachte, dass es sich trotz des Namens "5.1" um sechs diskrete Kanäle handelt. +Wenn du eine entsprechende Ausrüstung für Surround-Sound hast, ist es sicher, die +Option <option>channels</option> in die <application>MPlayer</application>-Konfigurationsdatei +<filename>~/.mplayer/config</filename> zu schreiben. Um zum Beispiel Quadrophonie-Wiedergabe +als Voreinstellung zu verwenden, füge folgende Zeile hinzu: - <programlisting>channels=4</programlisting> +<programlisting>channels=4</programlisting> - <application>MPlayer</application> wird dann den Ton in vier Kanäle ausgeben, falls - alle vier Kanäle zur Verfügung stehen. - </para> - </sect3> +<application>MPlayer</application> wird dann den Ton in vier Kanäle ausgeben, falls +alle vier Kanäle zur Verfügung stehen. +</para> +</sect3> - <sect3 id="advaudio-surround-stereoinfour"> - <title>Stereo-Dateien auf vier Lautsprechern wiedergeben</title> +<sect3 id="advaudio-surround-stereoinfour"> +<title>Stereo-Dateien auf vier Lautsprechern wiedergeben</title> - <para> - <application>MPlayer</application> dupliziert per Voreinstellung keine Kanäle, genausowenig - wie die meisten Audiotreiber. Wenn du dies manuell tun möchtest: +<para> +<application>MPlayer</application> dupliziert per Voreinstellung keine Kanäle, genausowenig +wie die meisten Audiotreiber. Wenn du dies manuell tun möchtest: - <screen>mplayer <replaceable>dateiname</replaceable> -af channels=2:2:0:1:0:0</screen> +<screen>mplayer <replaceable>dateiname</replaceable> -af channels=2:2:0:1:0:0</screen> - Siehe den Abschnitt über das <link linkend="advaudio-channels-copying">Kopieren von Kanälen</link> - für eine Erklärung. - </para> +Siehe den Abschnitt über das <link linkend="advaudio-channels-copying">Kopieren von Kanälen</link> +für eine Erklärung. +</para> - </sect3> +</sect3> - <sect3 id="advaudio-surround-passthrough"> - <title>AC3/DTS-Passthrough</title> +<sect3 id="advaudio-surround-passthrough"> +<title>AC3/DTS-Passthrough</title> - <para> - DVDs enthalten Surround-Ton normalerweise encodiert im Format AC3 (Dolby Digital) - oder DTS (Digital Theater System). Manche moderne Audioausrüstung ist dazu in - der Lage, diese Formate intern zu decodieren. - <application>MPlayer</application> kann angewiesen werden, die Audiodaten weiterzuleiten, - ohne diese zu decodieren. Dies wird jedoch nur funktionieren, wenn du einen - S/PDIF- (Sony/Philips Digital Interface) Anschluß an deiner Soundkarte hast. - </para> +<para> +DVDs enthalten Surround-Ton normalerweise encodiert im Format AC3 (Dolby Digital) +oder DTS (Digital Theater System). Manche moderne Audioausrüstung ist dazu in +der Lage, diese Formate intern zu decodieren. +<application>MPlayer</application> kann angewiesen werden, die Audiodaten weiterzuleiten, +ohne diese zu decodieren. Dies wird jedoch nur funktionieren, wenn du einen +S/PDIF- (Sony/Philips Digital Interface) Anschluß an deiner Soundkarte hast. +</para> - <para> - Wenn deine Audioausrüstung sowohl AC3 als auch DTS decodieren kann, ist es sicher, Passthrough - für beide Formate zu aktivieren. Sonst solltest du Passthrough nur für das Format aktivieren, - das deine Ausrüstung unterstützt. - </para> +<para> +Wenn deine Audioausrüstung sowohl AC3 als auch DTS decodieren kann, ist es sicher, Passthrough +für beide Formate zu aktivieren. Sonst solltest du Passthrough nur für das Format aktivieren, +das deine Ausrüstung unterstützt. +</para> - <itemizedlist> - <title>Passthrough auf der Kommandozeile aktivieren:</title> - <listitem><para> - Für nur AC3, benutze <option>-ac hwac3</option> - </para></listitem> - <listitem><para> - Für nur DTS, benutze <option>-ac hwdts</option> - </para></listitem> - <listitem><para> - Für AC3 und DTS, benutze <option>-afm hwac3</option> - </para></listitem> - </itemizedlist> +<itemizedlist> +<title>Passthrough auf der Kommandozeile aktivieren:</title> +<listitem><para> + Für nur AC3, benutze <option>-ac hwac3</option> +</para></listitem> +<listitem><para> + Für nur DTS, benutze <option>-ac hwdts</option> +</para></listitem> +<listitem><para> + Für AC3 und DTS, benutze <option>-afm hwac3</option> +</para></listitem> +</itemizedlist> - <itemizedlist> - <title> - Passthrough in der <application>MPlayer</application>-Konfigurationsdatei - aktivieren: - </title> - <listitem><para> - Für nur AC3, benutze <option>ac=hwac3,</option> - </para></listitem> - <listitem><para> - Für nur DTS, benutze <option>ac=hwdts,</option> - </para></listitem> - <listitem><para> - Für AC3 und DTS, benutze <option>afm=hwac3</option> - </para></listitem> - </itemizedlist> +<itemizedlist> +<title> + Passthrough in der <application>MPlayer</application>-Konfigurationsdatei + aktivieren: +</title> +<listitem><para> + Für nur AC3, benutze <option>ac=hwac3,</option> +</para></listitem> +<listitem><para> + Für nur DTS, benutze <option>ac=hwdts,</option> +</para></listitem> +<listitem><para> + Für AC3 und DTS, benutze <option>afm=hwac3</option> +</para></listitem> +</itemizedlist> - <para> - Beachte, dass am Ende von <option>ac=hwac3,</option> und <option>ac=hwdts,</option> ein Komma (",")steht. - Dies wird dafür sorgen, dass <application>MPlayer</application> auf andere Codecs zurückgreift, - die er normalerweise benutzt, wenn eine Datei keinen AC3- oder DTS-Ton besitzt. - <option>afm=hwac3</option> benötigt kein Komma; <application>MPlayer</application> wird sowieso - auf andere zurückgreigen, wenn eine Audiofamilie angegeben wurde. - </para> +<para> +Beachte, dass am Ende von <option>ac=hwac3,</option> und <option>ac=hwdts,</option> ein Komma (",")steht. +Dies wird dafür sorgen, dass <application>MPlayer</application> auf andere Codecs zurückgreift, +die er normalerweise benutzt, wenn eine Datei keinen AC3- oder DTS-Ton besitzt. +<option>afm=hwac3</option> benötigt kein Komma; <application>MPlayer</application> wird sowieso +auf andere zurückgreigen, wenn eine Audiofamilie angegeben wurde. +</para> - </sect3> +</sect3> - <sect3 id="hwmpa-surround-passthrough"> - <title>MPEG-Audio-Passthrough</title> +<sect3 id="hwmpa-surround-passthrough"> +<title>MPEG-Audio-Passthrough</title> - <para> - Digitale TV-Übertragungen (wie DVB und ATSC) und manche DVDs haben normalerweise - MPEG-Audiostreams (vornehmlich MP2). - Manche MPEG-Hardwaredecoder wie vollausgestattete DVB-Karten und DXR2-Adapter - können dieses Format nativ decodieren. - <application>MPlayer</application> kann angewiesen werden, die Audiodaten weiterzuleiten, - ohne sie zu decodieren. - </para> +<para> +Digitale TV-Übertragungen (wie DVB und ATSC) und manche DVDs haben normalerweise +MPEG-Audiostreams (vornehmlich MP2). +Manche MPEG-Hardwaredecoder wie vollausgestattete DVB-Karten und DXR2-Adapter +können dieses Format nativ decodieren. +<application>MPlayer</application> kann angewiesen werden, die Audiodaten weiterzuleiten, +ohne sie zu decodieren. +</para> - <para> - Um diesen Codec zu verwenden: - <screen> mplayer -ac hwmpa </screen> - </para> - </sect3> +<para> +Um diesen Codec zu verwenden: +<screen> mplayer -ac hwmpa </screen> +</para> +</sect3> - <sect3 id="advaudio-surround-matrix"> - <title>Matrix-encodierter Ton</title> +<sect3 id="advaudio-surround-matrix"> +<title>Matrix-encodierter Ton</title> - <para> - <emphasis>***TODO***</emphasis> - </para> - <para> - Dieser Abschnitt muss noch geschrieben werden und kann nicht vervollständigt werden, - bis uns jemand mit Beispieldateien zum Testen versorgt. Wenn du irgendwelche - Matrix-encodierten Audiodateien hast, weißt, wo man welche finden kann oder andere - hilfreiche Informationen hast, schicke bitte eine Nachricht auf die - <ulink url="http://lists.mplayerhq.hu/mailman/listinfo/mplayer-docs">MPlayer-DOCS</ulink>-Mailing-Liste. - Benutzt "[matrix-encoded audio]" in der Betreffzeile. - </para> - <para> - Wenn keine Dateien oder weitere Informationen hervorkommen, wird dieser Abschnitt entfernt. - </para> +<para> +<emphasis>***TODO***</emphasis> +</para> +<para> +Dieser Abschnitt muss noch geschrieben werden und kann nicht vervollständigt werden, +bis uns jemand mit Beispieldateien zum Testen versorgt. Wenn du irgendwelche +Matrix-encodierten Audiodateien hast, weißt, wo man welche finden kann oder andere +hilfreiche Informationen hast, schicke bitte eine Nachricht auf die +<ulink url="http://lists.mplayerhq.hu/mailman/listinfo/mplayer-docs">MPlayer-DOCS</ulink>-Mailing-Liste. +Benutzt "[matrix-encoded audio]" in der Betreffzeile. +</para> +<para> +Wenn keine Dateien oder weitere Informationen hervorkommen, wird dieser Abschnitt entfernt. +</para> - <para> - Gute Links: - <itemizedlist> - <listitem> - <para> - <ulink url="http://electronics.howstuffworks.com/surround-sound5.htm">http://electronics.howstuffworks.com/surround-sound5.htm</ulink> - </para> - </listitem> - <listitem> - <para> - <ulink url="http://www.extremetech.com/article2/0,1697,1016875,00.asp">http://www.extremetech.com/article2/0,1697,1016875,00.asp</ulink> - </para> - </listitem> - </itemizedlist> - </para> +<para> +Gute Links: +<itemizedlist> +<listitem> +<para> + <ulink url="http://electronics.howstuffworks.com/surround-sound5.htm">http://electronics.howstuffworks.com/surround-sound5.htm</ulink> +</para> +</listitem> +<listitem> +<para> + <ulink url="http://www.extremetech.com/article2/0,1697,1016875,00.asp">http://www.extremetech.com/article2/0,1697,1016875,00.asp</ulink> +</para> +</listitem> +</itemizedlist> +</para> - </sect3> +</sect3> - <sect3 id="advaudio-surround-hrtf"> - <title>Surround-Emulation bei Kopfhörern</title> +<sect3 id="advaudio-surround-hrtf"> +<title>Surround-Emulation bei Kopfhörern</title> - <para> - <application>MPlayer</application> besitzt einen HRTF- (Head Related Transfer - Function) Filter basierend auf einem - <ulink url="http://sound.media.mit.edu/KEMAR.html">MIT-Projekt</ulink>, - bei dem Messungen von an einem Puppenkopf befestigten Mikrofonen vorgenommen wurden. - </para> +<para> +<application>MPlayer</application> besitzt einen HRTF- (Head Related Transfer +Function) Filter basierend auf einem +<ulink url="http://sound.media.mit.edu/KEMAR.html">MIT-Projekt</ulink>, +bei dem Messungen von an einem Puppenkopf befestigten Mikrofonen vorgenommen wurden. +</para> - <para> - Obwohl es unmöglich ist, ein Surroundsystem exakt zu imitieren, liefert - <application>MPlayer</application>s HRTF-Filter in 2-Kanal-Kopfhörern einen - räumlich eindringlicheren Ton. Reguläres Heruntermixen kombiniert einfach alle - Kanäle zu zweien; neben der Kombinierung der Kanäle generiert <option>hrtf</option> - feine Echos, erhöht die Stereoseparation leicht und verändert die Lautstärke mancher - Frequenzen. Ob HRTF-Klänge besser klingen, kann vom Quellmaterial und persönlichem - Geschmack abhängen, den Filter auszuprobieren ist aber definitiv einen Versuch wert. - </para> +<para> +Obwohl es unmöglich ist, ein Surroundsystem exakt zu imitieren, liefert +<application>MPlayer</application>s HRTF-Filter in 2-Kanal-Kopfhörern einen +räumlich eindringlicheren Ton. Reguläres Heruntermixen kombiniert einfach alle +Kanäle zu zweien; neben der Kombinierung der Kanäle generiert <option>hrtf</option> +feine Echos, erhöht die Stereoseparation leicht und verändert die Lautstärke mancher +Frequenzen. Ob HRTF-Klänge besser klingen, kann vom Quellmaterial und persönlichem +Geschmack abhängen, den Filter auszuprobieren ist aber definitiv einen Versuch wert. +</para> - <para> - Eine DVD mit HRTF abspielen: +<para> +Eine DVD mit HRTF abspielen: - <screen>mplayer dvd://1 -channels 6 -af hrtf</screen> +<screen>mplayer dvd://1 -channels 6 -af hrtf</screen> - </para> +</para> - <para> - <option>hrtf</option> funktioniert nur gut bei 5 oder 6 Kanälen und benötigt außerdem - 48 kHz Ton. DVD-Ton ist schon 48 kHz, wenn du aber eine Datei mit einer anderen Samplerate - hast, die du mit <option>hrtf</option> abspielen willst, musst du sie resamplen: +<para> +<option>hrtf</option> funktioniert nur gut bei 5 oder 6 Kanälen und benötigt außerdem +48 kHz Ton. DVD-Ton ist schon 48 kHz, wenn du aber eine Datei mit einer anderen Samplerate +hast, die du mit <option>hrtf</option> abspielen willst, musst du sie resamplen: - <screen>mplayer <replaceable>filename</replaceable> -channels 6 -af resample=48000,hrtf</screen> +<screen>mplayer <replaceable>filename</replaceable> -channels 6 -af resample=48000,hrtf</screen> - </para> +</para> - </sect3> +</sect3> - <sect3 id="advaudio-surround-troubleshooting"> - <title>Troubleshooting/Problemlösung</title> +<sect3 id="advaudio-surround-troubleshooting"> +<title>Troubleshooting/Problemlösung</title> - <para> - Wenn du keinen Ton aus deinen Surround-Kanälen hören kannst, überprüfe deine - Mixereinstellungen mit Mixerprogrammen wie <application>alsamixer</application>; - Audioausgaben sind oft stummgeschaltet und per Voreinstellung auf Lautstärke 0 gesetzt. - </para> +<para> +Wenn du keinen Ton aus deinen Surround-Kanälen hören kannst, überprüfe deine +Mixereinstellungen mit Mixerprogrammen wie <application>alsamixer</application>; +Audioausgaben sind oft stummgeschaltet und per Voreinstellung auf Lautstärke 0 gesetzt. +</para> - </sect3> +</sect3> - </sect2> +</sect2> - <sect2 id="advaudio-channels"> - <title>Kanalmanipulationen</title> +<sect2 id="advaudio-channels"> +<title>Kanalmanipulationen</title> - <sect3 id="advaudio-channels-general"> - <title>Allgemeine Informationen</title> +<sect3 id="advaudio-channels-general"> +<title>Allgemeine Informationen</title> - <para> - Leider gibt es keinen Standard, der vorgibt, wie Kanäle angeordnet sind. Die unten - gelisteten Reihenfolgen sind die von AC3 und halbwegs typisch; versuche diese und - schaue, ob sie zu deiner Quelle passen. Kanäle sind durchnummeriert, beginnend bei 0. +<para> +Leider gibt es keinen Standard, der vorgibt, wie Kanäle angeordnet sind. Die unten +gelisteten Reihenfolgen sind die von AC3 und halbwegs typisch; versuche diese und +schaue, ob sie zu deiner Quelle passen. Kanäle sind durchnummeriert, beginnend bei 0. - <orderedlist spacing="compact"> - <title>Mono</title> - <listitem override="0"><para>mittig</para></listitem> - </orderedlist> +<orderedlist spacing="compact"> +<title>Mono</title> + <listitem override="0"><para>mittig</para></listitem> +</orderedlist> - <orderedlist spacing="compact"> - <title>Stereo</title> - <listitem override="0"><para>links</para></listitem> - <listitem><para>rechts</para></listitem> - </orderedlist> +<orderedlist spacing="compact"> +<title>Stereo</title> + <listitem override="0"><para>links</para></listitem> + <listitem><para>rechts</para></listitem> +</orderedlist> - <orderedlist spacing="compact"> - <title>Quadraphonisch</title> - <listitem override="0"><para>links vorne</para></listitem> - <listitem><para>rechts vorne</para></listitem> - <listitem><para>links hinten</para></listitem> - <listitem><para>rechts hinten</para></listitem> - </orderedlist> +<orderedlist spacing="compact"> +<title>Quadraphonisch</title> + <listitem override="0"><para>links vorne</para></listitem> + <listitem><para>rechts vorne</para></listitem> + <listitem><para>links hinten</para></listitem> + <listitem><para>rechts hinten</para></listitem> +</orderedlist> - <orderedlist spacing="compact"> - <title>Surround 4.0</title> - <listitem override="0"><para>links vorne</para></listitem> - <listitem><para>rechts vorne</para></listitem> - <listitem><para>mittig hinten</para></listitem> - <listitem><para>mittig vorne</para></listitem> - </orderedlist> +<orderedlist spacing="compact"> +<title>Surround 4.0</title> + <listitem override="0"><para>links vorne</para></listitem> + <listitem><para>rechts vorne</para></listitem> + <listitem><para>mittig hinten</para></listitem> + <listitem><para>mittig vorne</para></listitem> +</orderedlist> - <orderedlist spacing="compact"> - <title>Surround 5.0</title> - <listitem override="0"><para>links vorne</para></listitem> - <listitem><para>rechts vorne</para></listitem> - <listitem><para>links hinten</para></listitem> - <listitem><para>rechts hinten</para></listitem> - <listitem><para>mittig vorne</para></listitem> - </orderedlist> +<orderedlist spacing="compact"> +<title>Surround 5.0</title> + <listitem override="0"><para>links vorne</para></listitem> + <listitem><para>rechts vorne</para></listitem> + <listitem><para>links hinten</para></listitem> + <listitem><para>rechts hinten</para></listitem> + <listitem><para>mittig vorne</para></listitem> +</orderedlist> - <orderedlist spacing="compact"> - <title>Surround 5.1</title> - <listitem override="0"><para>links vorne</para></listitem> - <listitem><para>rechts vorne</para></listitem> - <listitem><para>links hinten</para></listitem> - <listitem><para>rechts hinten</para></listitem> - <listitem><para>mittig vorne</para></listitem> - <listitem><para>Subwoofer</para></listitem> - </orderedlist> +<orderedlist spacing="compact"> +<title>Surround 5.1</title> + <listitem override="0"><para>links vorne</para></listitem> + <listitem><para>rechts vorne</para></listitem> + <listitem><para>links hinten</para></listitem> + <listitem><para>rechts hinten</para></listitem> + <listitem><para>mittig vorne</para></listitem> + <listitem><para>Subwoofer</para></listitem> +</orderedlist> - </para> +</para> - <para> - Die Option <option>-channels</option> wird benutzt, um vom Audiodecoder eine Anzahl - Kanäle zu fordern. Manche Audiocodecs benutzen die angegebenen Kanäle, um zu entscheiden, - ob Heruntermixen der Quelle nötig ist. Beachte, dass dies nicht immer die Anzahl der - Ausgabekanäle beeinflusst. Zum Beispiel wird die Angabe der Option <option>-channels 4</option> - bei der Wiedergabe einer Stereo-MP3-Datei zur Ausgabe in 2 Kanälen führen, da der - MP3-Codec keine zusätzlichen Kanäle produziert. - </para> +<para> +Die Option <option>-channels</option> wird benutzt, um vom Audiodecoder eine Anzahl +Kanäle zu fordern. Manche Audiocodecs benutzen die angegebenen Kanäle, um zu entscheiden, +ob Heruntermixen der Quelle nötig ist. Beachte, dass dies nicht immer die Anzahl der +Ausgabekanäle beeinflusst. Zum Beispiel wird die Angabe der Option <option>-channels 4</option> +bei der Wiedergabe einer Stereo-MP3-Datei zur Ausgabe in 2 Kanälen führen, da der +MP3-Codec keine zusätzlichen Kanäle produziert. +</para> - <para> - Der Audiofilter <option>channels</option> kann genutzt werden, um Kanäle zu erstellen oder - zu entfernen. Er ist nützlich für die Kontrolle der Anzahl der Kanäle, die an die Soundkarte - geschickt werden. Siehe folgenden Abschnitt für weitergehende Informationen zur Kanalmanipulation. - </para> +<para> +Der Audiofilter <option>channels</option> kann genutzt werden, um Kanäle zu erstellen oder +zu entfernen. Er ist nützlich für die Kontrolle der Anzahl der Kanäle, die an die Soundkarte +geschickt werden. Siehe folgenden Abschnitt für weitergehende Informationen zur Kanalmanipulation. +</para> - </sect3> +</sect3> - <sect3 id="advaudio-channels-mono"> - <title>Mono-Wiedergabe mit zwei Lautsprechern</title> +<sect3 id="advaudio-channels-mono"> +<title>Mono-Wiedergabe mit zwei Lautsprechern</title> - <para> - Mono klingt viel besser, wenn es von zwei Lautsprechern wiedergegeben wird - - besonders bei Kopfhörern. Audiodateien, die wirklich nur einen Kanal haben, - werden automatisch von zwei Lautsprechern wiedergeben; leider sind jedoch die meisten - Dateien in mono tatsächlich als stereo encodiert, bei dem ein Kanal stumm ist. - Der einfachste und sicherste Weg, zwei Lautsprecher dasselbe ausgeben zu lassen ist - der Filter <option>extrastereo</option>: +<para> +Mono klingt viel besser, wenn es von zwei Lautsprechern wiedergegeben wird - +besonders bei Kopfhörern. Audiodateien, die wirklich nur einen Kanal haben, +werden automatisch von zwei Lautsprechern wiedergeben; leider sind jedoch die meisten +Dateien in mono tatsächlich als stereo encodiert, bei dem ein Kanal stumm ist. +Der einfachste und sicherste Weg, zwei Lautsprecher dasselbe ausgeben zu lassen ist +der Filter <option>extrastereo</option>: - <screen>mplayer <replaceable>dateiname</replaceable> -af extrastereo=0</screen> +<screen>mplayer <replaceable>dateiname</replaceable> -af extrastereo=0</screen> - </para> +</para> - <para> - Dieser mittelt über beide Kanäle, was darin resultiert, dass beide Kanäle jeweils halb - so laut sind wie das Original. Die nächsten Abschnitte enthalten Beispiele für - andere Möglichkeiten, dies ohne Minderung der Lautstärke zu erreichen, sie sind - aber komplexer und erfordern verschiedene Optionen, je nach dem, welche Kanäle - beibehalten werden sollen. Wenn du wirklich die Lautstärke beibehalten musst, - ist es möglicherweise leichter, mit dem Filter <option>volume</option> zu experimentieren - und den dafür richtigen Wert zu finden. Zum Beispiel: +<para> +Dieser mittelt über beide Kanäle, was darin resultiert, dass beide Kanäle jeweils halb +so laut sind wie das Original. Die nächsten Abschnitte enthalten Beispiele für +andere Möglichkeiten, dies ohne Minderung der Lautstärke zu erreichen, sie sind +aber komplexer und erfordern verschiedene Optionen, je nach dem, welche Kanäle +beibehalten werden sollen. Wenn du wirklich die Lautstärke beibehalten musst, +ist es möglicherweise leichter, mit dem Filter <option>volume</option> zu experimentieren +und den dafür richtigen Wert zu finden. Zum Beispiel: - <screen>mplayer <replaceable>dateiname</replaceable> -af extrastereo=0,volume=5</screen> +<screen>mplayer <replaceable>dateiname</replaceable> -af extrastereo=0,volume=5</screen> - </para> +</para> - </sect3> +</sect3> - <sect3 id="advaudio-channels-copying"> - <title>Kopieren/Verschieben von Kanälen</title> +<sect3 id="advaudio-channels-copying"> +<title>Kopieren/Verschieben von Kanälen</title> - <para> - Der Filter <option>channels</option> kann einen beliebigen oder alle Kanäle verschieben. - All die Suboptionen für den <option>channels</option>-Filter einzustellen kann - kompliziert sein und erfordert ein wenig Sorgfalt. +<para> +Der Filter <option>channels</option> kann einen beliebigen oder alle Kanäle verschieben. +All die Suboptionen für den <option>channels</option>-Filter einzustellen kann +kompliziert sein und erfordert ein wenig Sorgfalt. - <orderedlist spacing="compact"> - <listitem> - <para> - Entscheide, wieviele Ausgabekanäle du benötigst. Dies ist die erste Suboption. - </para> - </listitem> - <listitem> - <para> - Zähle, wieviele Kanäle du umordnen möchtest. Dies ist die zweite Suboption. - Jeder Kanal kann gleichzeitig zu mehreren verschiedenen Kanälen verschoben werden. - Behalte jedoch im Gedächtnis, dass ein Kanal leer ist, wenn er (auch wenn er - nur an ein Ziel) verschoben wird, es sei denn, ein anderer Kanal ersetzt ihn. - Um einen Kanal zu kopieren, wobei die Quelle gleich bleibt, verschiebe den Kanal - ins Ziel und in die Quelle, zum Beispiel: - <programlisting> +<orderedlist spacing="compact"> +<listitem> +<para> + Entscheide, wieviele Ausgabekanäle du benötigst. Dies ist die erste Suboption. +</para> +</listitem> +<listitem> +<para> + Zähle, wieviele Kanäle du umordnen möchtest. Dies ist die zweite Suboption. + Jeder Kanal kann gleichzeitig zu mehreren verschiedenen Kanälen verschoben werden. + Behalte jedoch im Gedächtnis, dass ein Kanal leer ist, wenn er (auch wenn er + nur an ein Ziel) verschoben wird, es sei denn, ein anderer Kanal ersetzt ihn. + Um einen Kanal zu kopieren, wobei die Quelle gleich bleibt, verschiebe den Kanal + ins Ziel und in die Quelle, zum Beispiel: + <programlisting> channel 2 --> channel 3 channel 2 --> channel 2<!-- - --></programlisting> - </para> - </listitem> - <listitem> - <para> - Schreibe die Kanalkopien als Suboptionspaare aus. Beachte, dass der erste Kanal - 0 ist, der zweite 1 usw. Die Reihenfolge dieser Suboptionen spielt keine Rolle, - solang sie entsprechend in Paare der Form - <replaceable>Quelle:Ziel</replaceable> gruppiert sind. - </para> - </listitem> - </orderedlist> - </para> + --></programlisting> +</para> +</listitem> +<listitem> +<para> + Schreibe die Kanalkopien als Suboptionspaare aus. Beachte, dass der erste Kanal + 0 ist, der zweite 1 usw. Die Reihenfolge dieser Suboptionen spielt keine Rolle, + solang sie entsprechend in Paare der Form + <replaceable>Quelle:Ziel</replaceable> gruppiert sind. +</para> +</listitem> +</orderedlist> +</para> - <bridgehead>Beispiel: ein Kanal auf zwei Lautsprecher</bridgehead> +<bridgehead>Beispiel: ein Kanal auf zwei Lautsprecher</bridgehead> - <para> - Hier ist ein Beispiel einer weiteren Möglichkeit, einen Kanal auf zwei Lautsprechern wiederzugeben. - Für dieses Beispiel sei angenommen, dass der linke Kanal abgespielt und der rechte verworfen - werden soll. Befolge die oben angegebenen Schritte: - <orderedlist> - <listitem> - <para> - Um einen Ausgabekanal für jeden der beiden Lautsprecher bereitzustellen, muss - die erste Suboption "2" sein. - </para> - </listitem> - <listitem> - <para> - Der linke Kanal muss zum rechten verschoben werden, und auch zu sich selbst, damit - er nicht leer ist. Dies sind insgesamt also zwei Bewegungen, was die zweite - Suboption auch "2" macht. - </para> - </listitem> - <listitem> - <para> - Den linken Kanal (Kanal 0) zum rechten (Kanal 1) zu verschieben, entspricht dem - Suboptionspaar "0:1", "0:0" bewegt den linken Kanal auf sich selbst. - </para> - </listitem> - </orderedlist> - All dies zusammengesetzt ergibt: +<para> +Hier ist ein Beispiel einer weiteren Möglichkeit, einen Kanal auf zwei Lautsprechern wiederzugeben. +Für dieses Beispiel sei angenommen, dass der linke Kanal abgespielt und der rechte verworfen +werden soll. Befolge die oben angegebenen Schritte: +<orderedlist> +<listitem> +<para> + Um einen Ausgabekanal für jeden der beiden Lautsprecher bereitzustellen, muss + die erste Suboption "2" sein. +</para> +</listitem> +<listitem> +<para> + Der linke Kanal muss zum rechten verschoben werden, und auch zu sich selbst, damit + er nicht leer ist. Dies sind insgesamt also zwei Bewegungen, was die zweite + Suboption auch "2" macht. +</para> +</listitem> +<listitem> +<para> + Den linken Kanal (Kanal 0) zum rechten (Kanal 1) zu verschieben, entspricht dem + Suboptionspaar "0:1", "0:0" bewegt den linken Kanal auf sich selbst. +</para> +</listitem> +</orderedlist> +All dies zusammengesetzt ergibt: - <screen>mplayer <replaceable>dateiname</replaceable> -af channels=2:2:0:1:0:0</screen> - </para> +<screen>mplayer <replaceable>dateiname</replaceable> -af channels=2:2:0:1:0:0</screen> +</para> - <para> - Der Vorteil, den diese Methode gegenüber <option>extrastereo</option> hat, ist, dass - die Lautstärke auf jedem Ausgabekanal die gleiche ist wie die des Eingabekanals. - Der Nachteil ist, dass die Suboptionen zu "2:2:1:0:1:1" geändert werden müssen, wenn - der gewünschte Ton im rechten Kanal ist. Außerdem ist es schwerer zu merken und einzutippen. - </para> +<para> +Der Vorteil, den diese Methode gegenüber <option>extrastereo</option> hat, ist, dass +die Lautstärke auf jedem Ausgabekanal die gleiche ist wie die des Eingabekanals. +Der Nachteil ist, dass die Suboptionen zu "2:2:1:0:1:1" geändert werden müssen, wenn +der gewünschte Ton im rechten Kanal ist. Außerdem ist es schwerer zu merken und einzutippen. +</para> - <bridgehead>Beispiel: ein Kanal auf zwei Lautsprecher, Abkürzung</bridgehead> +<bridgehead>Beispiel: ein Kanal auf zwei Lautsprecher, Abkürzung</bridgehead> - <para> - Tatsächlich gibt es einen viel einfacheren Weg, um mit dem <option>channels</option>-Filter - den linken Kanal auf beiden Lautsprechern wiederzugeben: +<para> +Tatsächlich gibt es einen viel einfacheren Weg, um mit dem <option>channels</option>-Filter +den linken Kanal auf beiden Lautsprechern wiederzugeben: - <screen>mplayer <replaceable>dateiname</replaceable> -af channels=1</screen> +<screen>mplayer <replaceable>dateiname</replaceable> -af channels=1</screen> - Der zweite Kanal wird verworfen und ohne weitere Suboptionen bleibt der übrige Kanal - allein. Soundkartentreiber spielen einkanaliges Audio automatisch auf beiden - Lautsprechern ab. Dies funktioniert nur, wenn der gewünschte Kanal der linke ist. - </para> +Der zweite Kanal wird verworfen und ohne weitere Suboptionen bleibt der übrige Kanal +allein. Soundkartentreiber spielen einkanaliges Audio automatisch auf beiden +Lautsprechern ab. Dies funktioniert nur, wenn der gewünschte Kanal der linke ist. +</para> - <bridgehead>Beispiel: Dupliziere die vorderen Kanäle hinten</bridgehead> - <para> - Eine weitere übliche Aktion ist die Duplizierung der vorderen Kanäle, um sie auf den hinteren - Lautsprechern einer quadraphonischen Installation abzuspielen. - <orderedlist> - <listitem> - <para> - Es sollte vier Ausgabekanäle geben. Die erste Suboption ist "4". - </para> - </listitem> - <listitem> - <para> - Jeder der zwei Frontkanäle muss zum entsprechenden hinteren Kanal und zu sich selbst - bewegt werden. Das sind vier Bewegungen, also ist die zweite Suboption "4". - </para> - </listitem> - <listitem> - <para> - Der vordere linke Kanal (0) muss zum hinteren linken (Kanal 2) bewegt werden: "0:2". - Der vordere linke muss auch zu sich selbst bewegt werden: "0:0". - Der vordere rechte (Kanal 1) wird zum hinteren rechten (Kanal 3) bewegt: "1:3", und zu - sich selbst: "1:1". - </para></listitem> - </orderedlist> - Setze alle Suboptionen zusammen und du erhältst: +<bridgehead>Beispiel: Dupliziere die vorderen Kanäle hinten</bridgehead> +<para> +Eine weitere übliche Aktion ist die Duplizierung der vorderen Kanäle, um sie auf den hinteren +Lautsprechern einer quadraphonischen Installation abzuspielen. +<orderedlist> +<listitem> +<para> + Es sollte vier Ausgabekanäle geben. Die erste Suboption ist "4". +</para> +</listitem> +<listitem> +<para> + Jeder der zwei Frontkanäle muss zum entsprechenden hinteren Kanal und zu sich selbst + bewegt werden. Das sind vier Bewegungen, also ist die zweite Suboption "4". +</para> +</listitem> +<listitem> +<para> + Der vordere linke Kanal (0) muss zum hinteren linken (Kanal 2) bewegt werden: "0:2". + Der vordere linke muss auch zu sich selbst bewegt werden: "0:0". + Der vordere rechte (Kanal 1) wird zum hinteren rechten (Kanal 3) bewegt: "1:3", und zu + sich selbst: "1:1". +</para></listitem> +</orderedlist> +Setze alle Suboptionen zusammen und du erhältst: - <screen>mplayer <replaceable>dateiname</replaceable> -af channels=4:4:0:2:0:0:1:3:1:1</screen> +<screen>mplayer <replaceable>dateiname</replaceable> -af channels=4:4:0:2:0:0:1:3:1:1</screen> - </para> +</para> - </sect3> +</sect3> - <sect3 id="advaudio-channels-mixing"> - <title>Kanäle mixen</title> +<sect3 id="advaudio-channels-mixing"> +<title>Kanäle mixen</title> - <para> - Der Filter <option>pan</option> in Kanäle in vom Benutzer angegebenen Verhältnissen mixen. - Dies ermöglicht alles, was der <option>channels</option>-Filter kann, und mehr. Leider - sind die Suboptionen auch viel schwieriger. - <orderedlist> - <listitem> - <para> - Entscheide, mit wievielen Kanälen du arbeiten möchtest. Dies musst du mit der Option - <option>-channels</option> und/oder <option>-af channels</option> angeben. - Spätere Beispiele werden dir zeigen, wann welcher zu benutzen ist. - </para> - </listitem> - <listitem> - <para> - Entscheide, mit wievielen Kanälen du <option>pan</option> füttern möchtest (weitere - decodierte Kanäle werden verworfen). - Dies ist die erste Suboption, und diese kontrolliert auch, wieviele Kanäle für - die Ausgabe bereitgestellt werden. - </para> - </listitem> - <listitem> - <para> - Die übrigen Suboptionen geben an, wieviel von jedem Kanal in jeden anderen Kanal gemixt - werden. Das ist der komplizierte Teil. Um die Arbeit übersichtlich zu machen, - zerlege die Suboptionen in mehrere Teile, einen Teil für jeden Ausgabekanal. - Jede Suboption innerhalb eines Teils entspricht einem Eingabekanal. Die Anzahl, die du - angibst, ist die prozentuale Menge, die vom Eingabekanal in den Ausgabekanal gemixt wird. - </para> - <para> - <option>pan</option> akzeptiert Werte von 0 bis 512, was Werte von 0% bis 512000% - der ursprünglichen Lautstärke ergibt.. Sei vorsichtig bei Werten größer als 1. Dies - liefert nicht nur eine sehr hohe Lautstärke, sondern sprengt auch den Samplebereich deiner - Soundkarte, und du könntest schmerzvolle Pops und Klicken hören. Wenn du willst, - kannst du auf <option>pan</option> <option>,volume</option> folgen lassen, um eine - Abschneidung zu ermöglichen, es ist aber das beste, die Werte von <option>pan</option> - niedrig genug zu halten, dass keine Abschneidung nötig ist. - </para> - </listitem> - </orderedlist> - </para> +<para> +Der Filter <option>pan</option> in Kanäle in vom Benutzer angegebenen Verhältnissen mixen. +Dies ermöglicht alles, was der <option>channels</option>-Filter kann, und mehr. Leider +sind die Suboptionen auch viel schwieriger. +<orderedlist> +<listitem> +<para> + Entscheide, mit wievielen Kanälen du arbeiten möchtest. Dies musst du mit der Option + <option>-channels</option> und/oder <option>-af channels</option> angeben. + Spätere Beispiele werden dir zeigen, wann welcher zu benutzen ist. +</para> +</listitem> +<listitem> +<para> + Entscheide, mit wievielen Kanälen du <option>pan</option> füttern möchtest (weitere + decodierte Kanäle werden verworfen). + Dies ist die erste Suboption, und diese kontrolliert auch, wieviele Kanäle für + die Ausgabebereitgestellt werden. +</para> +</listitem> +<listitem> +<para> + Die übrigen Suboptionen geben an, wieviel von jedem Kanal in jeden anderen Kanal gemixt + werden. Das ist der komplizierte Teil. Um die Arbeit übersichtlich zu machen, + zerlege die Suboptionen in mehrere Teile, einen Teil für jeden Ausgabekanal. + Jede Suboption innerhalb eines Teils entspricht einem Eingabekanal. Die Anzahl, die du + angibst, ist die prozentuale Menge, die vom Eingabekanal in den Ausgabekanal gemixt wird. +</para> +<para> + <option>pan</option> akzeptiert Werte von 0 bis 512, was Werte von 0% bis 512000% + der ursprünglichen Lautstärke ergibt.. Sei vorsichtig bei Werten größer als 1. Dies + liefert nicht nur eine sehr hohe Lautstärke, sondern sprengt auch den Samplebereich deiner + Soundkarte, und du könntest schmerzvolle Pops und Klicken hören. Wenn du willst, + kannst du auf <option>pan</option> <option>,volume</option> folgen lassen, um eine + Abschneidung zu ermöglichen, es ist aber das beste, die Werte von <option>pan</option> + niedrig genug zu halten, dass keine Abschneidung nötig ist. +</para> +</listitem> +</orderedlist> +</para> - <bridgehead>Beispiel: Ein Kanal auf zwei Lautsprechern</bridgehead> +<bridgehead>Beispiel: Ein Kanal auf zwei Lautsprechern</bridgehead> - <para> - Hier ist also noch ein Beispiel für die Wiedergabe des linken Kanals auf zwei Lautsprechern. - Befolge die Schritte oben: - <orderedlist> - <listitem> - <para> - <option>pan</option> sollte zwei Kanäle ausgeben, also ist die erste Suboption "2". - </para> - </listitem> - <listitem> - <para> - Da wir zwei Eingabekanäle haben, gibt es die Suboptionen in zwei Teilen. - Da es auch zwei Ausgabekanäle gibt, wird es pro Teil zwei Suboptionen geben. - Der linke Kanal der Datei sollte in voller Lautstärke auf den neuen linken Kanal - und den rechten gehen, daher ist der erste Teil der Suboptionen "1:1". - Der rechte Kanal sollte weggelassen werden, daher ist der zweite "0:0". - Alle 0-Werte am Ende können weggelassen werden, aber um das Verstehen leichter zu - machen, behalten wir sie. - </para> - </listitem> - </orderedlist> - Diese Optionen ergeben zusammen: +<para> +Hier ist also noch ein Beispiel für die Wiedergabe des linken Kanals auf zwei Lautsprechern. +Befolge die Schritte oben: +<orderedlist> +<listitem> +<para> + <option>pan</option> sollte zwei Kanäle ausgeben, also ist die erste Suboption "2". +</para> +</listitem> +<listitem> +<para> + Da wir zwei Eingabekanäle haben, gibt es die Suboptionen in zwei Teilen. + Da es auch zwei Ausgabekanäle gibt, wird es pro Teil zwei Suboptionen geben. + Der linke Kanal der Datei sollte in voller Lautstärke auf den neuen linken Kanal + und den rechten gehen, daher ist der erste Teil der Suboptionen "1:1". + Der rechte Kanal sollte weggelassen werden, daher ist der zweite "0:0". + Alle 0-Werte am Ende können weggelassen werden, aber um das Verstehen leichter zu + machen, behalten wir sie. +</para> +</listitem> +</orderedlist> +Diese Optionen ergeben zusammen: - <screen>mplayer <replaceable>dateiname</replaceable> -af pan=2:1:1:0:0</screen> +<screen>mplayer <replaceable>dateiname</replaceable> -af pan=2:1:1:0:0</screen> - Wenn der rechte Kanal anstelle des linken gewünscht ist, sind die Suboptionen für - <option>pan</option> "2:0:0:1:1". - </para> +Wenn der rechte Kanal anstelle des linken gewünscht ist, sind die Suboptionen für +<option>pan</option> "2:0:0:1:1". +</para> - <bridgehead>Beispiel: Ein Kanal auf zwei Lautsprechern, Abkürzung</bridgehead> +<bridgehead>Beispiel: Ein Kanal auf zwei Lautsprechern, Abkürzung</bridgehead> - <para> - Wie bei der Option <option>channels</option> gibt es eine Abkürzung, die nur mit dem linken - Kanal funktioniert: +<para> +Wie bei der Option <option>channels</option> gibt es eine Abkürzung, die nur mit dem linken +Kanal funktioniert: - <screen>mplayer <replaceable>dateiname</replaceable> -af pan=1:1</screen> +<screen>mplayer <replaceable>dateiname</replaceable> -af pan=1:1</screen> - Da <option>pan</option> nur einen Eingabekanal hat (der andere wird verworfen), gibt es nur - einen Teil mit einer Suboption, die angibt, dass der einzige Kanal 100% von sich selbst bekommt. - </para> +Da <option>pan</option> nur einen Eingabekanal hat (der andere wird verworfen), gibt es nur +einen Teil mit einer Suboption, die angibt, dass der einzige Kanal 100% von sich selbst bekommt. +</para> - <bridgehead>Beispiel: 6-kanaliges PCM heruntermixen</bridgehead> - <para> - <application>MPlayer</application>s Decoder für 6-kanaliges PCM ist nicht in der Lage, herunterzumixen. - Hier ist eine Möglichkeit, PCM unter Verwendung von <option>pan</option> herunterzumixen: - <orderedlist> - <listitem> - <para> - Die Anzahl der Ausgabekanäle ist zwei, daher ist die erste Suboption "2". - </para> - </listitem> - <listitem><para> - Bei sechs Eingabekanälen gibt es sechs Teile Optionen. Glücklicherweise müssen wir nur zwei - Teile machen, da wir uns nur für die Ausgabe der ersten beiden Kanäle interessieren. - Die übrigen vier Teile können weggelassen werden. Sei dir im klaren darüber, dass nicht - alle Audiodateien mit mehreren Kanälen die gleiche Kanalabfolge haben! Dieses Beispiel - demonstriert das Heruntermixen einer Datei mit den gleichen Kanälen wie MAC3 5.1: - <programlisting> +<bridgehead>Beispiel: 6-kanaliges PCM heruntermixen</bridgehead> +<para> +<application>MPlayer</application>s Decoder für 6-kanaliges PCM ist nicht in der Lage, herunterzumixen. +Hier ist eine Möglichkeit, PCM unter Verwendung von <option>pan</option> herunterzumixen: +<orderedlist> +<listitem> +<para> + Die Anzahl der Ausgabekanäle ist zwei, daher ist die erste Suboption "2". +</para> +</listitem> +<listitem><para> + Bei sechs Eingabekanälen gibt es sechs Teile Optionen. Glücklicherweise müssen wir nur zwei + Teile machen, da wir uns nur für die Ausgabe der ersten beiden Kanäle interessieren. + Die übrigen vier Teile können weggelassen werden. Sei dir im klaren darüber, dass nicht + alle Audiodateien mit mehreren Kanälen die gleiche Kanalabfolge haben! Dieses Beispiel + demonstriert das Heruntermixen einer Datei mit den gleichen Kanälen wie MAC3 5.1: + <programlisting> 0 - vorne links 1 - vorne rechts 2 - hinten links 3 - hinten rechts 4 - mittig vorne 5 - Subwoofer<!-- - --></programlisting> - Der erste Teil der Suboptionen listet die Prozente der ursprünglichen Lautstärke, und zwar - in der Reihenfolge, die jeder Ausgabekanal vom vorderen linken Kanal erhalten soll: "1:0". - Der vordere rechte Kanal sollte zur rechten Ausgabe gehen: "0:1". - Das gleiche gilt für die hinteren Kanäle: "1:0" und "0:1". - Der mittlere Kanal geht mit jeweils halber Lautstärke in beide Ausgabekanäle: - "0.5:0.5", und der Subwoofer geht mit voller Lautstärke in beide: "1:1". - </para> - </listitem> - </orderedlist> - All dies zusammen ergibt: + --></programlisting> + Der erste Teil der Suboptionen listet die Prozente der ursprünglichen Lautstärke, und zwar + in der Reihenfolge, die jeder Ausgabekanal vom vorderen linken Kanal erhalten soll: "1:0". + Der vordere rechte Kanal sollte zur rechten Ausgabe gehen: "0:1". + Das gleiche gilt für die hinteren Kanäle: "1:0" und "0:1". + Der mittlere Kanal geht mit jeweils halber Lautstärke in beide Ausgabekanäle: + "0.5:0.5", und der Subwoofer geht mit voller Lautstärke in beide: "1:1". +</para> +</listitem> +</orderedlist> +All dies zusammen ergibt: - <screen>mplayer <replaceable>6-kanal.wav</replaceable> -af pan=2:1:0:0:1:1:0:0:1:0.5:0.5:1:1</screen> +<screen>mplayer <replaceable>6-kanal.wav</replaceable> -af pan=2:1:0:0:1:1:0:0:1:0.5:0.5:1:1</screen> - Die oben gelisteten Prozente sind nur ein einfaches Beispiel. Fühle dich nicht eingeschränkt, - mit ihnen zu experimentieren. - </para> - <bridgehead>Beispiel: Wiedergabe von 5.1-Audio auf großen Lautsprechern ohne Subwoofer</bridgehead> +Die oben gelisteten Prozente sind nur ein einfaches Beispiel. Fühle dich nicht eingeschränkt, +mit ihnen zu experimentieren. +</para> +<bridgehead>Beispiel: Wiedergabe von 5.1-Audio auf großen Lautsprechern ohne Subwoofer</bridgehead> - <para> - Wenn du ein riesiges Paar Front-Lautsprecher hast und kein Geld darauf verschwenden möchtest, - einen Subwoofer für ein komplettes 5.1-Soundsystem zu erhalten. Wenn du die Option - <option>-channels 5</option> benutzt, damit liba52 5.1-Ton in 5.0 decodiert, wird der Subwoofer-Kanal - einfach weggelassen. Wenn du den Subwoofer-Kanal selbst verteilen möchtest, musst du - manuell mit <option>pan</option> heruntermixen: +<para> +Wenn du ein riesiges Paar Front-Lautsprecher hast und kein Geld darauf verschwenden möchtest, +einen Subwoofer für ein komplettes 5.1-Soundsystem zu erhalten. Wenn du die Option +<option>-channels 5</option> benutzt, damit liba52 5.1-Ton in 5.0 decodiert, wird der Subwoofer-Kanal +einfach weggelassen. Wenn du den Subwoofer-Kanal selbst verteilen möchtest, musst du +manuell mit <option>pan</option> heruntermixen: - <orderedlist> - <listitem> - <para> - Da <option>pan</option> alle sechs Kanäle untersuchen muss, gib - <option>-channels 6</option> an, so dass liba52 sie alle decodiert. - </para> - </listitem> - <listitem> - <para> - <option>pan</option> gibt nur fünf Kanäle aus, die erste Suboption ist 5. - </para> - </listitem> - <listitem> - <para> - Sechs Eingabekanäle und fünf Ausgabekanäle bedeuten sechs Teile von fünf Suboptionen. - <itemizedlist spacing="compact"> - <listitem> - <para> - Der linke vordere Kanal wird nur auf sich selbst repliziert: "1:0:0:0:0" - </para> - </listitem> - <listitem> - <para> - Das gleiche gilt für den rechten vorderen Kanal: "0:1:0:0:0" - </para> - </listitem> - <listitem> - <para> - Das gleiche gilt für den linken hinteren Kanal: "0:0:1:0:0" - </para> - </listitem> - <listitem> - <para> - Und das gleiche auch für den rechten hinteren Kanal: "0:0:0:1:0" - </para> - </listitem> - <listitem> - <para> - Vordere Mitte auch: "0:0:0:0:1" - </para> - </listitem> - <listitem> - <para> - Jetzt müssen wir entscheiden, was mit dem Subwoofer geschieht, zum Beispiel - eine Hälfte jeweils nach vorne rechts und vorne links: "0.5:0.5:0:0:0" - </para> - </listitem> - </itemizedlist> - </para> - </listitem> - </orderedlist> - Kombiniere all diese Optionen, um folgendes zu erhalten: +<orderedlist> +<listitem> +<para> + Da <option>pan</option> alle sechs Kanäle untersuchen muss, gib + <option>-channels 6</option> an, so dass liba52 sie alle decodiert. +</para> +</listitem> +<listitem> +<para> + <option>pan</option> gibt nur fünf Kanäle aus, die erste Suboption ist 5. +</para> +</listitem> +<listitem> +<para> + Sechs Eingabekanäle und fünf Ausgabekanäle bedeuten sechs Teile von fünf Suboptionen. + <itemizedlist spacing="compact"> + <listitem> + <para> + Der linke vordere Kanal wird nur auf sich selbst repliziert: "1:0:0:0:0" + </para> + </listitem> + <listitem> + <para> + Das gleiche gilt für den rechten vorderen Kanal: "0:1:0:0:0" + </para> + </listitem> + <listitem> + <para> + Das gleiche gilt für den linken hinteren Kanal:"0:0:1:0:0" + </para> + </listitem> + <listitem> + <para> + Und das gleiche auch für den rechten hinteren Kanal: "0:0:0:1:0" + </para> + </listitem> + <listitem> + <para> + Vordere Mitte auch: "0:0:0:0:1" + </para> + </listitem> + <listitem> + <para> + Jetzt müssen wir entscheiden, was mit dem Subwoofer geschieht, zum Beispiel + eine Hälfte jeweils nach vorne rechts und vorne links: "0.5:0.5:0:0:0" + </para> + </listitem> + </itemizedlist> +</para> +</listitem> +</orderedlist> +Kombiniere all diese Optionen, um folgendes zu erhalten: - <screen>mplayer <replaceable>dvd://1</replaceable> -channels 6 -af pan=5:1:0:0:0:0:0:1:0:0:0:0:0:1:0:0:0:0:0:1:0:0:0:0:0:1:0.5:0.5:0:0:0</screen> +<screen>mplayer <replaceable>dvd://1</replaceable> -channels 6 -af pan=5:1:0:0:0:0:0:1:0:0:0:0:0:1:0:0:0:0:0:1:0:0:0:0:0:1:0.5:0.5:0:0:0</screen> - </para> +</para> - </sect3> +</sect3> - </sect2> +</sect2> - <sect2 id="advaudio-volume"> - <title>Anpassung der softwaregesteuerten Lautstärke</title> +<sect2 id="advaudio-volume"> +<title>Anpassung der softwaregesteuerten Lautstärke</title> - <para> - Manche Audiotracks sind zu leise, um sie bequem ohne Anpassung zu hören. - Das kann zum Problem werden, wenn dein Audiosystem diese Anpassung nicht für dich - vornehmen kann. Die Option <option>-softvol</option> weist <application>MPlayer</application> - an, einen internen Mixer zu verwenden. Du kannst die Tasten zur Anpassung der Lautstärke - (in der Voreinstellung <keycap>9</keycap> und <keycap>0</keycap>) verwenden, um - wesentlich höhere Lautstärkelevel zu erreichen. Beachte, dass dies nicht den Mixer deiner - Soundkarte umgeht; <application>MPlayer</application> wird das Signal nur verändern, bevor - es an die Soundkarte gesendet wird. +<para> +Manche Audiotracks sind zu leise, um sie bequem ohne Anpassung zu hören. +Das kann zum Problem werden, wenn dein Audiosystem diese Anpassung nicht für dich +vornehmen kann. Die Option <option>-softvol</option> weist <application>MPlayer</application> +an, einen internen Mixer zu verwenden. Du kannst die Tasten zur Anpassung der Lautstärke +(in der Voreinstellung <keycap>9</keycap> und <keycap>0</keycap>) verwenden, um +wesentlich höhere Lautstärkelevel zu erreichen. Beachte, dass dies nicht den Mixer deiner +Soundkarte umgeht; <application>MPlayer</application> wird das Signal nur verändern, bevor +es an die Soundkarte gesendet wird. - Das folgende Beispiel ist ein guter Anfang: +Das folgende Beispiel ist ein guter Anfang: - <screen>mplayer <replaceable>leise-datei</replaceable> -softvol -softvol-max 300</screen> +<screen>mplayer <replaceable>leise-datei</replaceable> -softvol -softvol-max 300</screen> - Die Option <option>-softvol-max</option> gibt die maximal erlaubte Ausgabelautstärke als - prozentualen Wert hinsichtlich der Originallautstärke an. - Beispielsweise würde <option>-softvol-max 200</option> erlauben, die Lautstärke doppelt so - hoch wie das ursprüngliche Level zu setzen. Es ist sicher, einen größeren Wert mit - <option>-softvol-max</option> zu setzen; die höhere Lautstärke wird nicht verwendet, solange - du nicht die entsprechenden Tasten drückst. - Der einzige Nachteil bei Verwendung von hohen Werten ist, dass du nicht ganz so genaue Kontrolle - bei der Verwendung der Tasten hast, da <application>MPlayer</application> die Lautstärke in - Prozenten der maximalen Lautstärke anpasst. Benutze einen niedrigeren Wert mit - <option>-softvol-max</option> und/oder gib <option>-volstep 1</option> an, - wenn du höhere Genauigkeit brauchst. - </para> +Die Option <option>-softvol-max</option> gibt die maximal erlaubte Ausgabelautstärke als +prozentualen Wert hinsichtlich der Originallautstärke an. +Beispielsweise würde <option>-softvol-max 200</option> erlauben, die Lautstärke doppelt so +hoch wie das ursprüngliche Level zu setzen. Es ist sicher, einen größeren Wert mit +<option>-softvol-max</option> zu setzen; die höhere Lautstärke wird nicht verwendet, solange +du nicht die entsprechenden Tasten drückst. +Der einzige Nachteil bei Verwendung von hohen Werten ist, dass du nicht ganz so genaue Kontrolle +bei der Verwendung der Tasten hast, da <application>MPlayer</application> die Lautstärke in +Prozenten der maximalen Lautstärke anpasst. Benutze einen niedrigeren Wert mit +<option>-softvol-max</option> und/oder gib <option>-volstep 1</option> an, +wenn du höhere Genauigkeit brauchst. +</para> - <para> - Die Option <option>-softvol</option> funktioniert durch Kontrolle des Audiofilters - <option>volume</option>. Wenn du eine Datei von Anfang an mit einer gewissen Lautstärke - abspielen möchtest, kannst du die <option>volume</option> manuell angeben: +<para> +Die Option <option>-softvol</option> funktioniert durch Kontrolle des Audiofilters +<option>volume</option>. Wenn du eine Datei von Anfang an mit einer gewissen Lautstärke +abspielen möchtest, kannst du die <option>volume</option> manuell angeben: - <screen>mplayer <replaceable>leise-datei</replaceable> -af volume=10</screen> +<screen>mplayer <replaceable>leise-datei</replaceable> -af volume=10</screen> - Dies wird die Datei mit einer Erhöhung um zehn Dezibel wiedergeben. - Sei vorsichtig bei der Verwendung des <option>volume</option>-Filters - du kannst deinen Ohren - leicht schaden, wenn du einen zu hohen Wert benutzt. Beginne niedrig und arbeite dich stufenweise - hoch, bis du ein Gefühl dafür bekommst, wieviel Anpassung notwendig ist. Außerdem kann es - passieren, wenn du einen übermäßig hohen Wert angibst, dass <option>volume</option> das Signal - kappen muss, um keine Daten an die Soundkarte zu schicken, die außerhalb des gültigen Bereichs liegen; - dies führt zu gestörtem Ton. - </para> +Dies wird die Datei mit einer Erhöhung um zehn Dezibel wiedergeben. +Sei vorsichtig bei der Verwendung des <option>volume</option>-Filters - du kannst deinen Ohren +leicht schaden, wenn du einen zu hohen Wert benutzt. Beginne niedrig und arbeite dich stufenweise +hoch, bis du ein Gefühl dafür bekommst, wieviel Anpassung notwendig ist. Außerdem kann es +passieren, wenn du einen übermäßig hohen Wert angibst, dass <option>volume</option> das Signal +kappen muss, um keine Daten an die Soundkarte zu schicken, die außerhalb des gültigen Bereichs liegen; +dies führt zu gestörtem Ton. +</para> - </sect2> +</sect2> </sect1>
--- a/DOCS/xml/de/video.xml Mon Apr 12 08:03:39 2010 +0000 +++ b/DOCS/xml/de/video.xml Mon Apr 12 10:56:17 2010 +0000 @@ -123,13 +123,13 @@ in <filename>/var/log/XFree86.0.log</filename> - <note><para> + <note><para> Diese Meldung besagt nur, dass die XFree86-Erweiterung geladen wird. Bei einer guten Installation sollte das immer der Fall sein. Das heißt allerdings noch nicht, dass die <emphasis role="bold">XVideo-Unterstützung der Grafikkarte</emphasis> auch geladen wurde! - </para></note> + </para></note> </para></listitem> <listitem><para> Deine Karte muss unter Linux Xv-Unterstützung haben. Du kannst dich @@ -2367,8 +2367,8 @@ möchtest. Dann benutzt du dafür das folgende Kommando: <screen> mplayer -vo zr -zrdev /dev/video0 -zrcrop 352x288+352+0 -zrxdoff 0 -zrbw \ - -zrcrop 352x288+0+0 -zrdev /dev/video1 -zrquality 10 \ - <replaceable>movie.avi</replaceable> + -zrcrop 352x288+0+0 -zrdev /dev/video1 -zrquality 10 \ + <replaceable>movie.avi</replaceable> </screen> </para>
--- a/DOCS/xml/default.css Mon Apr 12 08:03:39 2010 +0000 +++ b/DOCS/xml/default.css Mon Apr 12 10:56:17 2010 +0000 @@ -1,44 +1,44 @@ body { - color: black; - background: white; + color: black; + background: white; - font-family: Arial, Helvetica, sans-serif; + font-family: Arial, Helvetica, sans-serif; /* * It's a Bad Idea(tm) to use fixed font sizes. * Uncomment it if you _really_ want */ - font-size: 14px; + font-size: 14px; } div.table table, div.informaltable table { - background: #333366; - border-collapse: separate; - border: solid 1px #333366; - border-spacing: 1px; + background: #333366; + border-collapse: separate; + border: solid 1px #333366; + border-spacing: 1px; } div.table th, div.informaltable th { - color: white; - background: #4488cc; - border: 0px; - padding: 2px; + color: white; + background: #4488cc; + border: 0px; + padding: 2px; } div.table td, div.informaltable td { - background: #fffff8; - border: 0px; - padding: 2px; + background: #fffff8; + border: 0px; + padding: 2px; } pre.screen { - padding: 4px; - background: #e0e0e0; + padding: 4px; + background: #e0e0e0; } pre.programlisting { - padding: 4px; - background: #e0e8f0; + padding: 4px; + background: #e0e8f0; } /* @@ -47,37 +47,37 @@ */ span.keycap { - background: #ddd; - border: solid 1px #aaa; - white-space: nowrap; - font-family: Arial, Helvetica, sans-serif; + background: #ddd; + border: solid 1px #aaa; + white-space: nowrap; + font-family: Arial, Helvetica, sans-serif; } span.guimenu, span.guisubmenu, span.guimenuitem { - background: #dddddd; + background: #dddddd; } tt.filename { - color: maroon; - white-space: nowrap; + color: maroon; + white-space: nowrap; } tt.option { - color: #066; - white-space: nowrap; + color: #066; + white-space: nowrap; } div.example { - padding-left: 0.5em; - border-left: solid 2px black; + padding-left: 0.5em; + border-left: solid 2px black; } div.important .title, div.caution .title, div.warning .title { - color: #c00; + color: #c00; } /* div.important, div.warning, div.caution { - padding-left: 0.5em; - border-left: solid 2px maroon; + padding-left: 0.5em; + border-left: solid 2px maroon; } */
--- a/DOCS/xml/en/ports.xml Mon Apr 12 08:03:39 2010 +0000 +++ b/DOCS/xml/en/ports.xml Mon Apr 12 10:56:17 2010 +0000 @@ -253,7 +253,7 @@ % gmake ... gcc -c -Iloader -Ilibvo -O4 -march=i686 -mcpu=i686 -pipe -ffast-math - -fomit-frame-pointer -I/usr/local/include -o mplayer.o mplayer.c + -fomit-frame-pointer -I/usr/local/include -o mplayer.o mplayer.c Assembler: mplayer.c "(stdin)", line 3567 : Illegal mnemonic "(stdin)", line 3567 : Syntax error
--- a/DOCS/xml/en/skin.xml Mon Apr 12 08:03:39 2010 +0000 +++ b/DOCS/xml/en/skin.xml Mon Apr 12 10:56:17 2010 +0000 @@ -496,7 +496,7 @@ <informaltable> <tgroup cols="2"> <thead> - <row><entry>Variable</entry><entry>Meaning</entry></row> + <row><entry>Variable</entry><entry>Meaning</entry></row> </thead> <tbody> <row> @@ -504,84 +504,84 @@ <entry>play time in <emphasis>hh:mm:ss</emphasis> format</entry> </row> <row> - <entry>$2</entry> - <entry>play time in <emphasis>mmmm:ss</emphasis> format</entry> + <entry>$2</entry> + <entry>play time in <emphasis>mmmm:ss</emphasis> format</entry> </row> <row> - <entry>$3</entry> - <entry>play time in <emphasis>hh</emphasis> format (hours)</entry> + <entry>$3</entry> + <entry>play time in <emphasis>hh</emphasis> format (hours)</entry> </row> <row> - <entry>$4</entry> - <entry>play time in <emphasis>mm</emphasis> format (minutes)</entry> + <entry>$4</entry> + <entry>play time in <emphasis>mm</emphasis> format (minutes)</entry> </row> <row> - <entry>$5</entry> - <entry>play time in <emphasis>ss</emphasis> format (seconds)</entry> + <entry>$5</entry> + <entry>play time in <emphasis>ss</emphasis> format (seconds)</entry> </row> <row> - <entry>$6</entry> - <entry>movie length in <emphasis>hh:mm:ss</emphasis> format</entry> + <entry>$6</entry> + <entry>movie length in <emphasis>hh:mm:ss</emphasis> format</entry> </row> <row> - <entry>$7</entry> - <entry>movie length in <emphasis>mmmm:ss</emphasis> format</entry> + <entry>$7</entry> + <entry>movie length in <emphasis>mmmm:ss</emphasis> format</entry> </row> <row> - <entry>$8</entry> - <entry>play time in <emphasis>h:mm:ss</emphasis> format</entry> + <entry>$8</entry> + <entry>play time in <emphasis>h:mm:ss</emphasis> format</entry> </row> <row> - <entry>$v</entry> - <entry>volume in <emphasis>xxx.xx</emphasis>% format</entry> + <entry>$v</entry> + <entry>volume in <emphasis>xxx.xx</emphasis>% format</entry> </row> <row> - <entry>$V</entry> - <entry>volume in <emphasis>xxx.xx</emphasis> format</entry> + <entry>$V</entry> + <entry>volume in <emphasis>xxx.xx</emphasis> format</entry> </row> <row> - <entry>$b</entry> - <entry>balance in <emphasis>xxx.xx</emphasis>% format</entry> + <entry>$b</entry> + <entry>balance in <emphasis>xxx.xx</emphasis>% format</entry> </row> <row> - <entry>$B</entry> - <entry>balance in <emphasis>xxx.xx</emphasis> format</entry> + <entry>$B</entry> + <entry>balance in <emphasis>xxx.xx</emphasis> format</entry> </row> <row> - <entry>$$</entry> - <entry>the $ character</entry> + <entry>$$</entry> + <entry>the $ character</entry> </row> <row> - <entry>$a</entry> - <entry>a character according to the audio type (none: <literal>n</literal>, - mono: <literal>m</literal>, stereo: <literal>t</literal>)</entry> + <entry>$a</entry> + <entry>a character according to the audio type (none: <literal>n</literal>, + mono: <literal>m</literal>, stereo: <literal>t</literal>)</entry> </row> <row> - <entry>$t</entry> - <entry>track number (in playlist)</entry> + <entry>$t</entry> + <entry>track number (in playlist)</entry> </row> <row> - <entry>$o</entry> - <entry>filename</entry> + <entry>$o</entry> + <entry>filename</entry> </row> <row> - <entry>$f</entry> - <entry>filename in lower case</entry> + <entry>$f</entry> + <entry>filename in lower case</entry> </row> <row> - <entry>$F</entry> - <entry>filename in upper case</entry> + <entry>$F</entry> + <entry>filename in upper case</entry> </row> <row> - <entry>$T</entry> - <entry> - a character according to the stream type (file: <literal>f</literal>, - Video CD: <literal>v</literal>, DVD: <literal>d</literal>, - URL: <literal>u</literal>) - </entry> + <entry>$T</entry> + <entry> + a character according to the stream type (file: <literal>f</literal>, + Video CD: <literal>v</literal>, DVD: <literal>d</literal>, + URL: <literal>u</literal>) + </entry> </row> <row> - <entry>$p</entry> + <entry>$p</entry> <entry>the <keycap>p</keycap> character (if a movie is playing and the font has the <keycap>p</keycap> character)</entry> </row>
--- a/DOCS/xml/en/video.xml Mon Apr 12 08:03:39 2010 +0000 +++ b/DOCS/xml/en/video.xml Mon Apr 12 10:56:17 2010 +0000 @@ -2255,7 +2255,7 @@ <screen> mplayer -vo zr -zrdev /dev/video0 -zrcrop 352x288+352+0 -zrxdoff 0 -zrbw \ -zrcrop 352x288+0+0 -zrdev /dev/video1 -zrquality 10 \ - <replaceable>movie.avi</replaceable> + <replaceable>movie.avi</replaceable> </screen> </para>
--- a/DOCS/xml/es/video.xml Mon Apr 12 08:03:39 2010 +0000 +++ b/DOCS/xml/es/video.xml Mon Apr 12 10:56:17 2010 +0000 @@ -2280,8 +2280,8 @@ todo esto deberá usar la siguiente órden <screen> mplayer -vo zr -zrdev /dev/video0 -zrcrop 352x288+352+0 -zrxdoff 0 -zrbw \ - -zrcrop 352x288+0+0 -zrdev /dev/video1 -zrquality 10 \ - <replaceable>movie.avi</replaceable> + -zrcrop 352x288+0+0 -zrdev /dev/video1 -zrquality 10 \ + <replaceable>movie.avi</replaceable> </screen> </para>
--- a/DOCS/xml/fr/encoding-guide.xml Mon Apr 12 08:03:39 2010 +0000 +++ b/DOCS/xml/fr/encoding-guide.xml Mon Apr 12 10:56:17 2010 +0000 @@ -2096,7 +2096,7 @@ et <option>-ofps</option> à deux fois le nombre d'image par seconde de votre source originale. <screen>mencoder dvd://1 -oac copy -vf tfields=2 -ovc lavc \ - -fps 60000/1001 -ofps 60000/1001</screen> + -fps 60000/1001 -ofps 60000/1001</screen> </para></listitem> <listitem><para> Si vous avez prévu de beaucoup réduire la taille, vous pouvez @@ -4460,16 +4460,16 @@ </para> <itemizedlist> <listitem><para> - Vous souhaitez que n'importe quel utilisateur non expérimenté soit capable - de regarder votre vidéo sur les plateformes majeures (Windows, Mac OS X, Unices …). + Vous souhaitez que n'importe quel utilisateur non expérimenté soit capable + de regarder votre vidéo sur les plateformes majeures (Windows, Mac OS X, Unices …). </para></listitem> <listitem><para> - <application>QuickTime</application> est capable de tirer plus - amplement profit des accélérations matérielles et logicielles - de Mac OS X que les lecteurs plus indépendant de la plateforme - comme <application>MPlayer</application> ou <application>VLC</application>. - Ainsi, vos vidéos ont plus de chance d'être jouées sans accros sur de - veilles machines basées sur des processeurs G4. + <application>QuickTime</application> est capable de tirer plus + amplement profit des accélérations matérielles et logicielles + de Mac OS X que les lecteurs plus indépendant de la plateforme + comme <application>MPlayer</application> ou <application>VLC</application>. + Ainsi, vos vidéos ont plus de chance d'être jouées sans accros sur de + veilles machines basées sur des processeurs G4. </para></listitem> <listitem><para> <application>QuickTime</application> 7 supporte la nouvelle génération de @@ -4484,45 +4484,45 @@ <title>Limitations de <application>QuickTime</application></title> <para> - <application>QuickTime</application> 7 supporte la vidéo en H.264 et l'audio en AAC, - mais il ne les supporte pas multipléxés dans le format de container AVI. - Cependant, vous pouvez utiliser <application>MEncoder</application> pour encoder - la vidéo et l'audio, et ensuite utiliser un programme externe comme - <application>mp4creator</application> (appartenant à la - <ulink url="http://mpeg4ip.sourceforge.net/">suite MPEG4IP</ulink>) - pour remultiplexer les pistes vidéos et audios dans un container MP4. -</para> - -<para> - Le support <application>QuickTime</application> du H.264 étant limité, - il vous faudra laisser tomber certaines options avancées. - Si vous encodez votre vidéo en utilisant des options que - <application>QuickTime</application> 7 ne supporte pas, - les lecteurs basés sur <application>QuickTime</application> afficheront - un joli écran blanc au lieu de la vidéo attendue. + <application>QuickTime</application> 7 supporte la vidéo en H.264 et l'audio en AAC, + mais il ne les supporte pas multipléxés dans le format de container AVI. + Cependant, vous pouvez utiliser <application>MEncoder</application> pour encoder + la vidéo et l'audio, et ensuite utiliser un programme externe comme + <application>mp4creator</application> (appartenant à la + <ulink url="http://mpeg4ip.sourceforge.net/">suite MPEG4IP</ulink>) + pour remultiplexer les pistes vidéos et audios dans un container MP4. +</para> + +<para> + Le support <application>QuickTime</application> du H.264 étant limité, + il vous faudra laisser tomber certaines options avancées. + Si vous encodez votre vidéo en utilisant des options que + <application>QuickTime</application> 7 ne supporte pas, + les lecteurs basés sur <application>QuickTime</application> afficheront + un joli écran blanc au lieu de la vidéo attendue. </para> <itemizedlist> <listitem><para> <emphasis role="bold">trames-B</emphasis> : - <application>QuickTime</application> 7 supporte un maximum d'une trame-B, i.e. - <option>-x264encopts bframes=1</option>. Ainsi, - <option>b_pyramid</option> et <option>weight_b</option> n'auront aucun - effet car ces options requierent que <option>bframes</option> soit supérieure à 1. + <application>QuickTime</application> 7 supporte un maximum d'une trame-B, i.e. + <option>-x264encopts bframes=1</option>. Ainsi, + <option>b_pyramid</option> et <option>weight_b</option> n'auront aucun + effet car ces options requierent que <option>bframes</option> soit supérieure à 1. </para></listitem> <listitem><para> <emphasis role="bold">Macroblocs</emphasis> : - <application>QuickTime</application> 7 ne supporte pas les macroblocs de type 8x8 DCT. - Cette option (<option>8x8dct</option>) est désactivée par défaut, - donc soyez sûr de ne pas l'activer explicitement. Ceci signifie aussi que l'option - <option>i8x8</option> n'aura aucun effet, car elle nécessite l'option <option>8x8dct</option>. + <application>QuickTime</application> 7 ne supporte pas les macroblocs de type 8x8 DCT. + Cette option (<option>8x8dct</option>) est désactivée par défaut, + donc soyez sûr de ne pas l'activer explicitement. Ceci signifie aussi que l'option + <option>i8x8</option> n'aura aucun effet, car elle nécessite l'option <option>8x8dct</option>. </para></listitem> <listitem><para> <emphasis role="bold">Ratio d'aspect</emphasis> : - <application>QuickTime</application> 7 ne supporte pas l'information sur le SAR (l'échantillonage - de ratio d'aspect ou Sample Aspect Ratio) dans les fichiers MPEG-4; il suppose que SAR=1. - Lisez <link linkend="menc-feat-quicktime-7-scale"> la section sur le redimensionnement</link> pour une - parade à cette limitation. + <application>QuickTime</application> 7 ne supporte pas l'information sur le SAR (l'échantillonage + de ratio d'aspect ou Sample Aspect Ratio) dans les fichiers MPEG-4; il suppose que SAR=1. + Lisez <link linkend="menc-feat-quicktime-7-scale"> la section sur le redimensionnement</link> pour une + parade à cette limitation. </para></listitem> </itemizedlist> @@ -4531,26 +4531,26 @@ <sect2 id="menc-feat-quicktime-7-crop"> <title>Recadrage</title> <para> - Supposons que vous voulez encoder votre DVD "Les chroniques de Narnia". - Votre DVD étant de région 1, il est en NTSC. L'exemple ci-dessous serait aussi - applicable au PAL, hormis qu'il faudrait omettre l'option <option>-ofps 24000/1001</option> - et utiliser des dimensions pour <option>crop</option> et <option>scale</option> - sensiblement différentes. -</para> - -<para> - Aprés avoir lancé <option>mplayer dvd://1</option>, vous suivez la procédure - détaillée dans la section - <link linkend="menc-feat-telecine">Comment gérer le téléciné et le dés-entrelacement avec les DVDs NTSC</link> - et découvrez que c'est une vidéo progréssive en 24000/1001 image par seconde. - Ceci simplifie quelque peu la procédure, car nous n'avons pas besoin d'utliser un filtre téléciné inverse - comme <option>pullup</option> ou un filtre de désentrelacement comme - <option>yadif</option>. -</para> - -<para> - Ensuite il faut rogner les bandes noires du haut et du bas de la vidéo, - comme détaillé dans la section précédente. + Supposons que vous voulez encoder votre DVD "Les chroniques de Narnia". + Votre DVD étant de région 1, il est en NTSC. L'exemple ci-dessous serait aussi + applicable au PAL, hormis qu'il faudrait omettre l'option <option>-ofps 24000/1001</option> + et utiliser des dimensions pour <option>crop</option> et <option>scale</option> + sensiblement différentes. +</para> + +<para> + Aprés avoir lancé <option>mplayer dvd://1</option>, vous suivez la procédure + détaillée dans la section + <link linkend="menc-feat-telecine">Comment gérer le téléciné et le dés-entrelacement avec les DVDs NTSC</link> + et découvrez que c'est une vidéo progréssive en 24000/1001 image par seconde. + Ceci simplifie quelque peu la procédure, car nous n'avons pas besoin d'utliser un filtre téléciné inverse + comme <option>pullup</option> ou un filtre de désentrelacement comme + <option>yadif</option>. +</para> + +<para> + Ensuite il faut rogner les bandes noires du haut et du bas de la vidéo, + comme détaillé dans la section précédente. </para> </sect2> @@ -4559,24 +4559,24 @@ <title>Redimensionnement</title> <para> - La prochaine étape à de quoi vous briser le coeur. - <application>QuickTime</application> 7 ne supporte pas les - vidéos MPEG-4 avec échantillonage du ratio d'aspect différent de 1, - de fait il vous faudra redimensionner à la hausse (ce qui gaspille - beaucoup d'espace disque) ou à la baisse (ce qui diminue le niveau - de détail de la source) la vidéo de façon à obtenir des pixels carrés. - D'une manière ou d'une autre, cette opération est très inéficace, mais - ne peut être evitée si vous souhaitez que votre vidéo soit lisible par - <application>QuickTime</application> 7. - <application>MEncoder</application> permet d'appliquer le redimensionnement - à la hausse ou à la baisse en spécifiant respectivement - <option>-vf scale=-10:-1</option> ou <option>-vf scale=-1:-10</option>. - Ces options vont redimensionner la vidéo à la bonne largeur pour la hauteur rognée, - arrondi au plus proche multiple de 16 pour une compression optimale. + La prochaine étape à de quoi vous briser le coeur. + <application>QuickTime</application> 7 ne supporte pas les + vidéos MPEG-4 avec échantillonage du ratio d'aspect différent de 1, + de fait il vous faudra redimensionner à la hausse (ce qui gaspille + beaucoup d'espace disque) ou à la baisse (ce qui diminue le niveau + de détail de la source) la vidéo de façon à obtenir des pixels carrés. + D'une manière ou d'une autre, cette opération est très inéficace, mais + ne peut être evitée si vous souhaitez que votre vidéo soit lisible par + <application>QuickTime</application> 7. + <application>MEncoder</application> permet d'appliquer le redimensionnement + à la hausse ou à la baisse en spécifiant respectivement + <option>-vf scale=-10:-1</option> ou <option>-vf scale=-1:-10</option>. + Ces options vont redimensionner la vidéo à la bonne largeur pour la hauteur rognée, + arrondi au plus proche multiple de 16 pour une compression optimale. Rappelez vous que si vous rognez, vous devez d'abord rogner et ensuite redimensionner : - <screen>-vf crop=720:352:0:62,scale=-10:-1</screen> + <screen>-vf crop=720:352:0:62,scale=-10:-1</screen> </para> </sect2> @@ -4585,19 +4585,19 @@ <title>Synchronisation de l'audio et de la vidéo</title> <para> - Parce que vous allez remultiplexer dans un container différent, - vous devriez toujours utiliser l'option <option>harddup</option> - afin de s'assurer que les trames dupliquées soient effectivement - dupliquées dans la vidéo de sortie. Sans cette option, <application>MEncoder</application> - placera simplement un marqueur dans la flux vidéo signalant qu'une trame - a été dupliquée, et délèguera au logiciel client l'initiative d'afficher - la même trame deux fois. Malheureusement, cette "duplication douce" ne survivant pas - au multiplexage, l'audio perdra lentement la synchronisation avec la vidéo. + Parce que vous allez remultiplexer dans un container différent, + vous devriez toujours utiliser l'option <option>harddup</option> + afin de s'assurer que les trames dupliquées soient effectivement + dupliquées dans la vidéo de sortie. Sans cette option, <application>MEncoder</application> + placera simplement un marqueur dans la flux vidéo signalant qu'une trame + a été dupliquée, et délèguera au logiciel client l'initiative d'afficher + la même trame deux fois. Malheureusement, cette "duplication douce" ne survivant pas + au multiplexage, l'audio perdra lentement la synchronisation avec la vidéo. </para> <para> La chaîne de filtre résultante a cette forme : - <screen>-vf crop=720:352:0:62,scale=-10:-1,harddup</screen> + <screen>-vf crop=720:352:0:62,scale=-10:-1,harddup</screen> </para> </sect2> @@ -4606,16 +4606,16 @@ <title>Débit</title> <para> - Comme toujours, le choix du débit est aussi bien une question de propriétés techniques - de la source, comme expliqué - <link linkend="menc-feat-dvd-mpeg4-resolution-bitrate">ici</link>, qu'une - question de goût. - Dans ce film, il y a pas mal d'action et beaucoup de détails, mais le H.264 - apparait plus beau que le XviD ou tout autre codec MPEG-4 à des débits moindres. - Après moultes expérimentations, l'auteur de ce guide a choisi d'encoder ce film à - 900kbps, et pense que le résultat est joli. - Vous pouvez diminuer le débit si vous souhaitez sauver de la place, - ou l'augmenter si vous voulez améliorer la qualité. + Comme toujours, le choix du débit est aussi bien une question de propriétés techniques + de la source, comme expliqué + <link linkend="menc-feat-dvd-mpeg4-resolution-bitrate">ici</link>, qu'une + question de goût. + Dans ce film, il y a pas mal d'action et beaucoup de détails, mais le H.264 + apparait plus beau que le XviD ou tout autre codec MPEG-4 à des débits moindres. + Après moultes expérimentations, l'auteur de ce guide a choisi d'encoder ce film à + 900kbps, et pense que le résultat est joli. + Vous pouvez diminuer le débit si vous souhaitez sauver de la place, + ou l'augmenter si vous voulez améliorer la qualité. </para> </sect2> @@ -4624,19 +4624,19 @@ <title>Exemple d'encodage</title> <para> - Vous êtes maintenant prêt à encoder la vidéo. Comme vous - tenez à la qualité, vous effectuerez un encodage en 2 passes, bien entendu. - Pour sauver un peu de temps d'encodage, vous pouvez spécifier - l'option <option>turbo</option> pour la première passe; cette option - réduit <option>subq</option> et <option>frameref</option> à 1. - Pour sauvegarder de l'espace disque vous pouvez utiliser l'option <option>ss</option> - afin d'enlever les toutes premières secondes de la vidéo. - (Je me suis aperçu que ce film a 32 secondes de générique et de logo.) - <option>bframes</option> peut être 0 ou 1. - Les autres options sont documentées dans <link - linkend="menc-feat-x264-encoding-options-speedvquality">Encodage avec - le codec <systemitem class="library">x264</systemitem></link> et la page - de man. + Vous êtes maintenant prêt à encoder la vidéo. Comme vous + tenez à la qualité, vous effectuerez un encodage en 2 passes, bien entendu. + Pour sauver un peu de temps d'encodage, vous pouvez spécifier + l'option <option>turbo</option> pour la première passe; cette option + réduit <option>subq</option> et <option>frameref</option> à 1. + Pour sauvegarder de l'espace disque vous pouvez utiliser l'option <option>ss</option> + afin d'enlever les toutes premières secondes de la vidéo. + (Je me suis aperçu que ce film a 32 secondes de générique et de logo.) + <option>bframes</option> peut être 0 ou 1. + Les autres options sont documentées dans <link + linkend="menc-feat-x264-encoding-options-speedvquality">Encodage avec + le codec <systemitem class="library">x264</systemitem></link> et la page + de man. <screen>mencoder dvd://1 -o /dev/null -ss 32 -ovc x264 \ -x264encopts pass=1:turbo:bitrate=900:bframes=1:\ @@ -4645,16 +4645,16 @@ -oac faac -faacopts br=192:mpeg=4:object=2 -channels 2 -srate 48000 \ -ofps 24000/1001</screen> - Si vous possédez une machine multi-processeur, ne manquez pas l'opportunité - d'augmenter grandement la vitesse d'encodage en activant - <link linkend="menc-feat-x264-encoding-options-speedvquality-threads"> - le mode multi-thread du <systemitem class="library">x264</systemitem></link> - en ajoutant <option>threads=auto</option> à votre ligne de commande <option>x264encopts</option>. -</para> - -<para> - La seconde passe est la même, excepté qu'il faut spécifier le fichier de sortie - et mettre <option>pass=2</option>. + Si vous possédez une machine multi-processeur, ne manquez pas l'opportunité + d'augmenter grandement la vitesse d'encodage en activant + <link linkend="menc-feat-x264-encoding-options-speedvquality-threads"> + le mode multi-thread du <systemitem class="library">x264</systemitem></link> + en ajoutant <option>threads=auto</option> à votre ligne de commande <option>x264encopts</option>. +</para> + +<para> + La seconde passe est la même, excepté qu'il faut spécifier le fichier de sortie + et mettre <option>pass=2</option>. <screen>mencoder dvd://1 <emphasis role="bold">-o narnia.avi</emphasis> -ss 32 -ovc x264 \ -x264encopts <emphasis role="bold">pass=2</emphasis>:turbo:bitrate=900:frameref=5:bframes=1:\ @@ -4665,12 +4665,12 @@ </para> <para> - L'AVI résultant doit être parfaitement lu - par <application>MPlayer</application>, mais bien entendu - <application>QuickTime</application> ne peut le lire - car il ne supporte pas le H.264 multiplexé dans de l'AVI. - De fait, la prochaine étape est de remultiplexer la vidéo dans - un container MP4. + L'AVI résultant doit être parfaitement lu + par <application>MPlayer</application>, mais bien entendu + <application>QuickTime</application> ne peut le lire + car il ne supporte pas le H.264 multiplexé dans de l'AVI. + De fait, la prochaine étape est de remultiplexer la vidéo dans + un container MP4. </para> </sect2> @@ -4678,50 +4678,50 @@ <title>Remultiplexage en MP4</title> <para> - Il existe différentes manières de remultiplexer des fichiers AVI en MP4. - Vous pouvez utiliser <application>mp4creator</application>, qui fait parti de la - <ulink url="http://mpeg4ip.sourceforge.net/">suite MPEG4IP</ulink>. -</para> - -<para> - Premièrement, demultiplexez l'AVI en un flux audio et un flux vidéo séparés - en utilisant <application>MPlayer</application>. - <screen>mplayer narnia.avi -dumpaudio -dumpfile narnia.aac - mplayer narnia.avi -dumpvideo -dumpfile narnia.h264</screen> - - Les noms de fichier sont important; <application>mp4creator</application> - nécessite que les flux audios AAC soient nommés <systemitem>.aac</systemitem> - et les flux vidéos H.264 soient nommés <systemitem>.h264</systemitem>. -</para> - -<para> - Maintenant utilisez <application>mp4creator</application> pour créer - un nouveau fichier MP4 depuis les flux audio et vidéo. - - <screen>mp4creator -create=narnia.aac narnia.mp4 - mp4creator -create=narnia.h264 -rate=23.976 narnia.mp4</screen> - - Contrairement à l'étape d'encodage, vous devez spécifier le nombre - d'image par seconde comme une valeur décimale (par exemple 23.976), et non - comme une valeur fractionnaire (par exemple 24000/1001). -</para> - -<para> - Le fichier <systemitem>narnia.mp4</systemitem> devrait être lisible - par n'importe quelle application <application>QuickTime</application> 7, - comme le <application>lecteur QuickTime</application> ou - comme <application>iTunes</application>. Si vous planifiez de voir la - vidéo dans un navigateur Internet avec le plugin <application>QuickTime</application>, - vous devriez aussi renseigner le film de sorte que le plugin - <application>QuickTime</application> puisse commencer à le lire - pendant qu'il se télécharge. <application>mp4creator</application> + Il existe différentes manières de remultiplexer des fichiers AVI en MP4. + Vous pouvez utiliser <application>mp4creator</application>, qui fait parti de la + <ulink url="http://mpeg4ip.sourceforge.net/">suite MPEG4IP</ulink>. +</para> + +<para> + Premièrement, demultiplexez l'AVI en un flux audio et un flux vidéo séparés + en utilisant <application>MPlayer</application>. + <screen>mplayer narnia.avi -dumpaudio -dumpfile narnia.aac + mplayer narnia.avi -dumpvideo -dumpfile narnia.h264</screen> + + Les noms de fichier sont important; <application>mp4creator</application> + nécessite que les flux audios AAC soient nommés <systemitem>.aac</systemitem> + et les flux vidéos H.264 soient nommés <systemitem>.h264</systemitem>. +</para> + +<para> + Maintenant utilisez <application>mp4creator</application> pour créer + un nouveau fichier MP4 depuis les flux audio et vidéo. + + <screen>mp4creator -create=narnia.aac narnia.mp4 + mp4creator -create=narnia.h264 -rate=23.976 narnia.mp4</screen> + + Contrairement à l'étape d'encodage, vous devez spécifier le nombre + d'image par seconde comme une valeur décimale (par exemple 23.976), et non + comme une valeur fractionnaire (par exemple 24000/1001). +</para> + +<para> + Le fichier <systemitem>narnia.mp4</systemitem> devrait être lisible + par n'importe quelle application <application>QuickTime</application> 7, + comme le <application>lecteur QuickTime</application> ou + comme <application>iTunes</application>. Si vous planifiez de voir la + vidéo dans un navigateur Internet avec le plugin <application>QuickTime</application>, + vous devriez aussi renseigner le film de sorte que le plugin + <application>QuickTime</application> puisse commencer à le lire + pendant qu'il se télécharge. <application>mp4creator</application> peut créer ces pistes de renseignement : - <screen>mp4creator -hint=1 narnia.mp4 - mp4creator -hint=2 narnia.mp4 - mp4creator -optimize narnia.mp4</screen> - - Vous pouvez vérifier le résultat final pour vous assurer + <screen>mp4creator -hint=1 narnia.mp4 + mp4creator -hint=2 narnia.mp4 + mp4creator -optimize narnia.mp4</screen> + + Vous pouvez vérifier le résultat final pour vous assurer que les pistes de renseignement ont été créées avec succès : <screen>mp4creator -list narnia.mp4</screen> @@ -4729,12 +4729,12 @@ Vous devriez voir une liste de pistes : 1 audio, 1 vidéo, et 2 pistes de renseignement - <screen>Track Type Info - 1 audio MPEG-4 AAC LC, 8548.714 secs, 190 kbps, 48000 Hz - 2 video H264 Main@5.1, 8549.132 secs, 899 kbps, 848x352 @ 23.976001 fps - 3 hint Payload mpeg4-generic for track 1 - 4 hint Payload H264 for track 2 - </screen> + <screen>Track Type Info + 1 audio MPEG-4 AAC LC, 8548.714 secs, 190 kbps, 48000 Hz + 2 video H264 Main@5.1, 8549.132 secs, 899 kbps, 848x352 @ 23.976001 fps + 3 hint Payload mpeg4-generic for track 1 + 4 hint Payload H264 for track 2 + </screen> </para> </sect2> @@ -4744,20 +4744,20 @@ <title>Ajouter des tags de méta-données</title> <para> - Si vous voulez ajouter des tags dans votre vidéo qui soient visible dans <application>iTunes</application>, - vous pouvez utiliser - <ulink url="http://atomicparsley.sourceforge.net/">AtomicParsley</ulink>. - - <screen>AtomicParsley narnia.mp4 --metaEnema --title "The Chronicles of Narnia" --year 2005 --stik Movie --freefree --overWrite</screen> - - L'option <option>--metaEnema</option> efface toutes meta-données existantes. - (<application>mp4creator</application> insère son nom dans le tag "encoding tool"), - et <option>--freefree</option> récupère l'espace libéré par les méta-données effacées. - L'option <option>--stik</option> paramétre le type de vidéo (tel que Film ou Show TV), - qu'<application>iTunes</application> utilise pour grouper des fichiers vidéos similaires. - L'option <option>--overWrite</option> écrase le fichier d'origine; - sans cette option, <application>AtomicParsley</application> créé un fichier automatiquement - nommé dans le même répertoire et laisse le fichier d'origine tel quel. + Si vous voulez ajouter des tags dans votre vidéo qui soient visible dans <application>iTunes</application>, + vous pouvez utiliser + <ulink url="http://atomicparsley.sourceforge.net/">AtomicParsley</ulink>. + + <screen>AtomicParsley narnia.mp4 --metaEnema --title "The Chronicles of Narnia" --year 2005 --stik Movie --freefree --overWrite</screen> + + L'option <option>--metaEnema</option> efface toutes meta-données existantes. + (<application>mp4creator</application> insère son nom dans le tag "encoding tool"), + et <option>--freefree</option> récupère l'espace libéré par les méta-données effacées. + L'option <option>--stik</option> paramétre le type de vidéo (tel que Film ou Show TV), + qu'<application>iTunes</application> utilise pour grouper des fichiers vidéos similaires. + L'option <option>--overWrite</option> écrase le fichier d'origine; + sans cette option, <application>AtomicParsley</application> créé un fichier automatiquement + nommé dans le même répertoire et laisse le fichier d'origine tel quel. </para> </sect2> @@ -4822,8 +4822,8 @@ <row> <entry>NTSC DVD</entry> <entry>352x240<footnote id='fn-rare-resolutions'><para> - Ces résolutions sont rarement utilisées pour les DVDs - parce qu'elles sont d'assez basse qualité.</para></footnote></entry> + Ces résolutions sont rarement utilisées pour les DVDs + parce qu'elles sont d'assez basse qualité.</para></footnote></entry> <entry>MPEG-1</entry> <entry>1856</entry> <entry>48000 Hz</entry>
--- a/DOCS/xml/fr/install.xml Mon Apr 12 08:03:39 2010 +0000 +++ b/DOCS/xml/fr/install.xml Mon Apr 12 10:56:17 2010 +0000 @@ -500,14 +500,14 @@ </para> <para> - Vous pouvez voir l'efficacité du nouveau timer sur la ligne d'état. - Les fonctions de gestion de l'énergie des BIOS des certains portables - avec des processeurs supportant SpeedStep ne font pas bon ménage avec la RTC. - Le son et les images risquent d'être désynchronisés. Brancher le portable sur - le secteur avant de le démarrer semble régler le problème dans la plupart des cas. - Avec certaines configurations matérielles (confirmé par l'utilisation de lecteurs DVD ne supportant pas - le DMA avec une carte-mère basée sur le chipset ALi1541), l'utilisation du timer RTC rend la lecture - saccadée (NdT: skippy). Il est recommandé d'utiliser la troisième méthode dans ce cas. + Vous pouvez voir l'efficacité du nouveau timer sur la ligne d'état. + Les fonctions de gestion de l'énergie des BIOS des certains portables + avec des processeurs supportant SpeedStep ne font pas bon ménage avec la RTC. + Le son et les images risquent d'être désynchronisés. Brancher le portable sur + le secteur avant de le démarrer semble régler le problème dans la plupart des cas. + Avec certaines configurations matérielles (confirmé par l'utilisation de lecteurs DVD ne supportant pas + le DMA avec une carte-mère basée sur le chipset ALi1541), l'utilisation du timer RTC rend la lecture + saccadée (NdT: skippy). Il est recommandé d'utiliser la troisième méthode dans ce cas. </para></listitem> <listitem><para> <emphasis role="bold">La troisième méthode de synchro</emphasis> est activée par l'option
--- a/DOCS/xml/fr/mencoder.xml Mon Apr 12 08:03:39 2010 +0000 +++ b/DOCS/xml/fr/mencoder.xml Mon Apr 12 10:56:17 2010 +0000 @@ -359,7 +359,7 @@ mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 -oac copy -o <replaceable>sortie.avi</replaceable> mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell:vpass=2 \ - -oac copy -o <replaceable>sortie.avi</replaceable> + -oac copy -o <replaceable>sortie.avi</replaceable> </screen> </para> </example> @@ -374,9 +374,9 @@ à des désynchronisation audio/vidéo. <screen> mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 \ - -oac mp3lame -lameopts vbr=3 -o /dev/null + -oac mp3lame -lameopts vbr=3 -o /dev/null mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell:vpass=2 \ - -oac mp3lame -lameopts vbr=3 -o <replaceable>sortie.avi</replaceable> + -oac mp3lame -lameopts vbr=3 -o <replaceable>sortie.avi</replaceable> </screen> </para> </example> @@ -514,7 +514,7 @@ Utilisation : <screen> mencoder <replaceable>entree.mpg</replaceable> -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell \ - -vf scale=640:480 -o <replaceable>sortie.avi</replaceable> + -vf scale=640:480 -o <replaceable>sortie.avi</replaceable> </screen> </para> </sect1> @@ -569,7 +569,7 @@ Exemple: <screen> mencoder <replaceable>entree.nsv</replaceable> -oac copy -fafmttag 0x706D \ - -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell -o <replaceable>sortie.avi</replaceable> + -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell -o <replaceable>sortie.avi</replaceable> </screen> </para> @@ -757,9 +757,9 @@ <screen> rm <replaceable>soustitres.idx</replaceable> <replaceable>soustitres.sub</replaceable> mencoder dvd://1 -oac copy -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 \ - -vobsubout <replaceable>soustitres</replaceable> -vobsuboutindex 0 -sid 2 + -vobsubout <replaceable>soustitres</replaceable> -vobsuboutindex 0 -sid 2 mencoder dvd://1 -oac copy -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell:vpass=2 \ - -vobsubout <replaceable>soustitres</replaceable> -vobsuboutindex 1 -sid 5 + -vobsubout <replaceable>soustitres</replaceable> -vobsuboutindex 1 -sid 5 </screen> </example> @@ -768,7 +768,7 @@ <screen> rm <replaceable>soustitres.idx</replaceable> <replaceable>soustitres.sub</replaceable> mencoder <replaceable>film.mpg</replaceable> -ifo <replaceable>film.ifo</replaceable> -vobsubout <replaceable>soustitres</replaceable> -vobsuboutindex 0 \ - -vobsuboutid fr -sid 1 -nosound -ovc copy + -vobsuboutid fr -sid 1 -nosound -ovc copy </screen> </example> </sect1>
--- a/DOCS/xml/fr/ports.xml Mon Apr 12 08:03:39 2010 +0000 +++ b/DOCS/xml/fr/ports.xml Mon Apr 12 10:56:17 2010 +0000 @@ -282,14 +282,14 @@ Erreur typique obtenue en construisant avec un compilateur C GNU qui n'utilise pas GNU as : <screen> - % gmake - ... - gcc -c -Iloader -Ilibvo -O4 -march=i686 -mcpu=i686 -pipe -ffast-math - -fomit-frame-pointer -I/usr/local/include -o mplayer.o mplayer.c - Assembler: mplayer.c - "(stdin)", line 3567 : Illegal mnemonic - "(stdin)", line 3567 : Syntax error - ... more "Illegal mnemonic" and "Syntax error" errors ... +% gmake +... +gcc -c -Iloader -Ilibvo -O4 -march=i686 -mcpu=i686 -pipe -ffast-math + -fomit-frame-pointer -I/usr/local/include -o mplayer.o mplayer.c +Assembler: mplayer.c +"(stdin)", line 3567 : Illegal mnemonic +"(stdin)", line 3567 : Syntax error +... more "Illegal mnemonic" and "Syntax error" errors ... </screen> </para> </listitem> @@ -381,12 +381,11 @@ ... ext_bus 1 8/16/5 c720 CLAIMED INTERFACE Built-in SCSI target 3 8/16/5.2 tgt CLAIMED DEVICE -disk 4 8/16/5.<emphasis role="bold">2</emphasis>.<emphasis role="bold">0</emphasis> sdisk CLAIMED DEVICE - <emphasis role="bold">PIONEER DVD-ROM DVD-305</emphasis> /dev/dsk/c1t2d0 - <emphasis role="bold">/dev/rdsk/c1t2d0</emphasis> +disk 4 8/16/5.<emphasis role="bold">2</emphasis>.<emphasis role="bold">0</emphasis> sdisk CLAIMED DEVICE <emphasis role="bold">PIONEER DVD-ROM DVD-305</emphasis> + /dev/dsk/c1t2d0 <emphasis role="bold">/dev/rdsk/c1t2d0</emphasis> target 4 8/16/5.7 tgt CLAIMED DEVICE ctl <emphasis role="bold">1</emphasis> 8/16/5.7.0 sctl CLAIMED DEVICE Initiator - /dev/rscsi/c1t7d0 /dev/rscsi/c1t7l0 /dev/scsi/c1t7l0 + /dev/rscsi/c1t7d0 /dev/rscsi/c1t7l0 /dev/scsi/c1t7l0 ... </screen>
--- a/DOCS/xml/fr/usage.xml Mon Apr 12 08:03:39 2010 +0000 +++ b/DOCS/xml/fr/usage.xml Mon Apr 12 10:56:17 2010 +0000 @@ -45,7 +45,7 @@ </synopsis> </para> - <para> +<para> Lecture de plusieurs fichiers: <synopsis> <command>mplayer</command><!--
--- a/DOCS/xml/fr/video.xml Mon Apr 12 08:03:39 2010 +0000 +++ b/DOCS/xml/fr/video.xml Mon Apr 12 10:56:17 2010 +0000 @@ -150,15 +150,15 @@ (...) Number of image formats: 7 id: 0x32595559 (YUY2) - guid: 59555932-0000-0010-8000-00aa00389b71 - bits per pixel: 16 - number of planes: 1 - type: YUV (packed) + guid: 59555932-0000-0010-8000-00aa00389b71 + bits per pixel: 16 + number of planes: 1 + type: YUV (packed) id: 0x32315659 (YV12) - guid: 59563132-0000-0010-8000-00aa00389b71 - bits per pixel: 12 - number of planes: 3 - type: YUV (planar) + guid: 59563132-0000-0010-8000-00aa00389b71 + bits per pixel: 12 + number of planes: 3 + type: YUV (planar) (...etc...)<!-- --></screen> Cela doit supporter les formats de pixels YUY2 packed et YV12 planar pour @@ -2614,7 +2614,7 @@ 10, alors vous taperez la commande suivante <screen> mplayer -vo zr -zrdev /dev/video0 -zrcrop 352x288+352+0 -zrxdoff 0 -zrbw \ - -zrcrop 352x288+0+0 -zrdev /dev/video1 -zrquality 10 + -zrcrop 352x288+0+0 -zrdev /dev/video1 -zrquality 10 <replaceable>film.avi</replaceable> </screen> </para> @@ -2915,20 +2915,20 @@ <programlisting> Section "Device" - Identifier "GeForce" - VendorName "ASUS" - BoardName "nVidia GeForce2/MX 400" - pilote "nvidia" - #Option "NvAGP" "1" - Option "NoLogo" - Option "CursorShadow" "on" - - Option "TwinView" - Option "TwinViewOrientation" "Clone" - Option "MetaModes" "1024x768,640x480" - Option "ConnectedMonitor" "CRT, TV" - Option "TVStandard" "PAL-B" - Option "TVOutFormat" "Composite" + Identifier "GeForce" + VendorName "ASUS" + BoardName "nVidia GeForce2/MX 400" + pilote "nvidia" + #Option "NvAGP" "1" + Option "NoLogo" + Option "CursorShadow" "on" + + Option "TwinView" + Option "TwinViewOrientation" "Clone" + Option "MetaModes" "1024x768,640x480" + Option "ConnectedMonitor" "CRT, TV" + Option "TVStandard" "PAL-B" + Option "TVOutFormat" "Composite" EndSection </programlisting>
--- a/DOCS/xml/hu/encoding-guide.xml Mon Apr 12 08:03:39 2010 +0000 +++ b/DOCS/xml/hu/encoding-guide.xml Mon Apr 12 10:56:17 2010 +0000 @@ -1300,7 +1300,7 @@ Mindezt észben tartva, itt az elsÅ‘ példánk: <screen> mencoder <replaceable>capture.avi</replaceable> -mc 0 -oac lavc -ovc lavc -lavcopts \ - vcodec=mpeg2video:vbitrate=6000:ilme:ildct:acodec=mp2:abitrate=224 + vcodec=mpeg2video:vbitrate=6000:ilme:ildct:acodec=mp2:abitrate=224 </screen> Figyelj az <option>ilme</option> és az <option>ildct</option> kapcsolókra. </para> @@ -1560,7 +1560,7 @@ Például: <screen> mplayer <replaceable>forras_fajl.vob</replaceable> -ao pcm:file=<replaceable>cel_hang.wav</replaceable> \ - -vc dummy -aid 1 -vo null + -vc dummy -aid 1 -vo null </screen> ki fogja szedni a második audió sávot a <replaceable>source_file.vob</replaceable> fájlból a <replaceable>destination_sound.wav</replaceable> fájlba. @@ -1600,7 +1600,7 @@ Például: <screen> mencoder -oac copy -ovc copy -o <replaceable>kimenet_film.avi</replaceable> \ - -audiofile <replaceable>bemenet_audio.mp2</replaceable> <replaceable>bemenet_video.avi</replaceable></screen> + -audiofile <replaceable>bemenet_audio.mp2</replaceable> <replaceable>bemenet_video.avi</replaceable></screen> Ez a <replaceable>bemenet_video.avi</replaceable> videó fájlból és a <replaceable>bemenet_audio.mp2</replaceable> audió fájlból elkészÃti a <replaceable>kimenet_film.avi</replaceable> fájlt. @@ -1616,7 +1616,7 @@ Például: <screen> mencoder -oac copy -ovc copy -o <replaceable>kimenet_film.asf</replaceable> -audiofile <replaceable>bemenet_audio.mp2</replaceable> \ - <replaceable>bemenet_video.avi</replaceable> -of lavf -lavfopts format=asf</screen> + <replaceable>bemenet_video.avi</replaceable> -of lavf -lavfopts format=asf</screen> Ez ugyan azt csinálja, mint az elÅ‘bbi példa, de a kimeneti konténer ASF lesz. Kérlek figyelj, hogy ez a támogatás még nagyon kÃsérleti (de minden @@ -2170,7 +2170,7 @@ <emphasis role="bold">kell megadnod</emphasis>. <screen> mencoder dvd://1 -oac copy -vf tfields=2 -ovc lavc \ - -fps 60000/1001 -ofps 60000/1001<!-- + -fps 60000/1001 -ofps 60000/1001<!-- --></screen> </para></listitem> <listitem><para> @@ -2217,7 +2217,7 @@ videók elkódolásához. <screen> mencoder dvd://1 -oac copy -vf pullup,softskip - -ovc lavc -ofps 24000/1001<!-- + -ovc lavc -ofps 24000/1001<!-- --></screen> </para></listitem> <listitem><para> @@ -3079,7 +3079,7 @@ Használat: <screen> mencoder <replaceable>input.avi</replaceable> -o <replaceable>output.avi</replaceable> -oac copy -ovc lavc \ - -lavcopts inter_matrix=...:intra_matrix=... + -lavcopts inter_matrix=...:intra_matrix=... </screen> </para>
--- a/DOCS/xml/hu/mencoder.xml Mon Apr 12 08:03:39 2010 +0000 +++ b/DOCS/xml/hu/mencoder.xml Mon Apr 12 10:56:17 2010 +0000 @@ -259,8 +259,8 @@ a Macromedia Flash plugin-nel: <screen> mencoder <replaceable>bemenet.avi</replaceable> -o <replaceable>kimenet.flv</replaceable> -of lavf \ - -oac mp3lame -lameopts abr:br=56 -srate 22050 -ovc lavc \ - -lavcopts vcodec=flv:vbitrate=500:mbd=2:mv0:trell:v4mv:cbp:last_pred=3 + -oac mp3lame -lameopts abr:br=56 -srate 22050 -ovc lavc \ + -lavcopts vcodec=flv:vbitrate=500:mbd=2:mv0:trell:v4mv:cbp:last_pred=3 </screen> </para> </example> @@ -342,7 +342,7 @@ <screen> mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 -oac copy -o /dev/null mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell:vpass=2 \ - -oac copy -o <replaceable>kimenet.avi</replaceable> + -oac copy -o <replaceable>kimenet.avi</replaceable> </screen> </para> </example> @@ -356,9 +356,9 @@ deszinkronizációhoz vezethet. <screen> mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 \ - -oac mp3lame -lameopts vbr=3 -o /dev/null + -oac mp3lame -lameopts vbr=3 -o /dev/null mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell:vpass=2 \ - -oac mp3lame -lameopts vbr=3 -o <replaceable>kimenet.avi</replaceable> + -oac mp3lame -lameopts vbr=3 -o <replaceable>kimenet.avi</replaceable> </screen> </para> </example> @@ -438,15 +438,15 @@ Példa: <screen> mencoder <replaceable>bemenet.avi</replaceable> -of mpeg -ovc lavc -lavcopts vcodec=mpeg1video \ - -oac copy <replaceable>egyéb_kapcsolók</replaceable> -o <replaceable>kimenet.mpg</replaceable> + -oac copy <replaceable>egyéb_kapcsolók</replaceable> -o <replaceable>kimenet.mpg</replaceable> </screen> Egy MPEG-1-es fájl létrehozása, mely alkalmas minimális multimédia támogatással rendelkezÅ‘ rendszereken, például alapértelmezett Windows telepÃtéseken történÅ‘ lejátszásra is: <screen> mencoder <replaceable>bemenet.avi</replaceable> -of mpeg -mpegopts format=mpeg1:tsaf:muxrate=2000 \ - -o <replaceable>kimenet.mpg</replaceable> -oac lavc -lavcopts acodec=mp2:abitrate=224 -ovc lavc \ - -lavcopts vcodec=mpeg1video:vbitrate=1152:keyint=15:mbd=2:aspect=4/3 + -o <replaceable>kimenet.mpg</replaceable> -oac lavc -lavcopts acodec=mp2:abitrate=224 -ovc lavc \ + -lavcopts vcodec=mpeg1video:vbitrate=1152:keyint=15:mbd=2:aspect=4/3 </screen> Ugyan ez a <systemitem class="library">libavformat</systemitem> MPEG muxer-ének használatával: <screen> @@ -497,7 +497,7 @@ Használat: <screen> mencoder <replaceable>bemenet.mpg</replaceable> -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell \ - -vf scale=640:480 -o <replaceable>kimenet.avi</replaceable> + -vf scale=640:480 -o <replaceable>kimenet.avi</replaceable> </screen> </para> </sect1> @@ -548,7 +548,7 @@ Példa: <screen> mencoder <replaceable>bemenet.nsv</replaceable> -oac copy -fafmttag 0x706D \ - -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell -o <replaceable>kimenet.avi</replaceable> + -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell -o <replaceable>kimenet.avi</replaceable> </screen> </para> </sect1> @@ -590,7 +590,7 @@ JPEG fájlból: <screen> mencoder mf://*.jpg -mf w=800:h=600:fps=25:type=jpg -ovc lavc \ - -lavcopts vcodec=mpeg4:mbd=2:trell -oac copy -o <replaceable>kimenet.avi</replaceable> + -lavcopts vcodec=mpeg4:mbd=2:trell -oac copy -o <replaceable>kimenet.avi</replaceable> </screen> </para> </informalexample> @@ -600,7 +600,7 @@ Egy MPEG-4 fájl létrehozása néhány JPEG fájlból az aktuális könyvtárban: <screen> mencoder mf://<replaceable>frame001.jpg,frame002.jpg</replaceable> -mf w=800:h=600:fps=25:type=jpg \ - -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell -oac copy -o <replaceable>kimenet.avi</replaceable> + -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell -oac copy -o <replaceable>kimenet.avi</replaceable> </screen> </para> </informalexample> @@ -611,7 +611,7 @@ lévÅ‘ lista.txt tartalmazza a forrásként felhasználandó fájlokat, soronként egyet): <screen> mencoder mf://<replaceable>@lista.txt</replaceable> -mf w=800:h=600:fps=25:type=jpg \ - -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell -oac copy -o <replaceable>kimenet.avi</replaceable> + -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell -oac copy -o <replaceable>kimenet.avi</replaceable> </screen> </para> </informalexample> @@ -715,9 +715,9 @@ <screen> rm <replaceable>subtitles.idx</replaceable> <replaceable>subtitles.sub</replaceable> mencoder dvd://1 -oac copy -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 \ - -vobsubout <replaceable>subtitles</replaceable> -vobsuboutindex 0 -sid 2 + -vobsubout <replaceable>subtitles</replaceable> -vobsuboutindex 0 -sid 2 mencoder dvd://1 -oac copy -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell:vpass=2 \ - -vobsubout <replaceable>subtitles</replaceable> -vobsuboutindex 1 -sid 5<!-- + -vobsubout <replaceable>subtitles</replaceable> -vobsuboutindex 1 -sid 5<!-- --></screen> </example> @@ -726,7 +726,7 @@ <screen> rm <replaceable>subtitles.idx</replaceable> <replaceable>subtitles.sub</replaceable> mencoder <replaceable>movie.mpg</replaceable> -ifo <replaceable>movie.ifo</replaceable> -vobsubout <replaceable>subtitles</replaceable> -vobsuboutindex 0 \ - -vobsuboutid fr -sid 1 -nosound -ovc copy + -vobsuboutid fr -sid 1 -nosound -ovc copy </screen> </example> </sect1> @@ -772,7 +772,7 @@ <para> Használat <screen>mencoder <replaceable>sample-svcd.mpg</replaceable> -vf crop=714:548:0:14 -oac copy -ovc lavc \ - -lavcopts vcodec=mpeg4:mbd=2:trell:autoaspect -o <replaceable>kimenet.avi</replaceable></screen> + -lavcopts vcodec=mpeg4:mbd=2:trell:autoaspect -o <replaceable>kimenet.avi</replaceable></screen> </para> </sect1>
--- a/DOCS/xml/hu/video.xml Mon Apr 12 08:03:39 2010 +0000 +++ b/DOCS/xml/hu/video.xml Mon Apr 12 10:56:17 2010 +0000 @@ -2272,7 +2272,7 @@ <screen> mplayer -vo zr -zrdev /dev/video0 -zrcrop 352x288+352+0 -zrxdoff 0 -zrbw \ -zrcrop 352x288+0+0 -zrdev /dev/video1 -zrquality 10 \ - <replaceable>movie.avi</replaceable> + <replaceable>movie.avi</replaceable> </screen> </para>
--- a/DOCS/xml/it/usage.xml Mon Apr 12 08:03:39 2010 +0000 +++ b/DOCS/xml/it/usage.xml Mon Apr 12 10:56:17 2010 +0000 @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<!-- synced with r25146 --> +<!-- synced with r25146 --> <chapter id="usage"> <title>Utilizzo</title>
--- a/DOCS/xml/it/video.xml Mon Apr 12 08:03:39 2010 +0000 +++ b/DOCS/xml/it/video.xml Mon Apr 12 10:56:17 2010 +0000 @@ -2334,7 +2334,7 @@ <screen> mplayer -vo zr -zrdev /dev/video0 -zrcrop 352x288+352+0 -zrxdoff 0 -zrbw \ -zrcrop 352x288+0+0 -zrdev /dev/video1 -zrquality 10 \ - <replaceable>film.avi</replaceable> + <replaceable>film.avi</replaceable> </screen> </para>
--- a/DOCS/xml/ldp.dsl Mon Apr 12 08:03:39 2010 +0000 +++ b/DOCS/xml/ldp.dsl Mon Apr 12 10:56:17 2010 +0000 @@ -348,9 +348,9 @@ (define (shade-verbatim-attr-element element) (list (list "BORDER" - (cond - ((equal? element (normalize "SCREEN")) "1") - (else "0"))) + (cond + ((equal? element (normalize "SCREEN")) "1") + (else "0"))) (list "BGCOLOR" (car (cdr (shade-verbatim-element-colors element)))) (list "WIDTH" ($table-width$))))
--- a/DOCS/xml/pl/bugreports.xml Mon Apr 12 08:03:39 2010 +0000 +++ b/DOCS/xml/pl/bugreports.xml Mon Apr 12 10:56:17 2010 +0000 @@ -485,7 +485,7 @@ </screen> A następnie uruchomić następujące polecenie: <screen> -gdb mplayer --core=core -batch --command=<replaceable>plik_z_poleceniami</replaceable> > mplayer.bug +gdb mplayer --core=core -batch --command=<replaceable>plik_z_poleceniami</replaceable> > mplayer.bug </screen> </para> </sect3>
--- a/DOCS/xml/pl/faq.xml Mon Apr 12 08:03:39 2010 +0000 +++ b/DOCS/xml/pl/faq.xml Mon Apr 12 10:56:17 2010 +0000 @@ -409,7 +409,7 @@ <listitem><para> <menuchoice><guimenu>Start</guimenu> <guisubmenu>Settings</guisubmenu> <guisubmenu>Configuration</guisubmenu> - <guimenuitem>Base Configuration</guimenuitem></menuchoice> + <guimenuitem>Base Configuration</guimenuitem></menuchoice> </para></listitem> <listitem><para> Ustaw <systemitem>Use Applications position hints</systemitem>
--- a/DOCS/xml/pl/ports.xml Mon Apr 12 08:03:39 2010 +0000 +++ b/DOCS/xml/pl/ports.xml Mon Apr 12 10:56:17 2010 +0000 @@ -175,20 +175,20 @@ <para><emphasis role="bold">Caveat:</emphasis></para> <itemizedlist> - <listitem><para><emphasis role="bold">mediaLib</emphasis> jest - <emphasis role="bold">aktualnie wyłączone</emphasis> w domyślnej - konfiguracji <application>MPlayera</application>, z powodu błędów. - Użytkownicy SPARC-ów, którzy budują MPlayera z obsługą mediaLib - informowali o delikatnym, zielonymi miganiu wideo kodowane i dekodowanego - przez libavcodec. Możesz włączyć mediaLib, jeżeli chcesz używając: - <screen> - $ ./configure --enable-mlib - </screen> - Robisz to na własne ryzyko. Użytkownicy x86 powinni - <emphasis role="bold">nigdy</emphasis> nie używać mediaLib, - ponieważ w efekcie otrzymają kiepską wydajność MPlayera. - </para></listitem> - </itemizedlist> +<listitem><para><emphasis role="bold">mediaLib</emphasis> jest +<emphasis role="bold">aktualnie wyłączone</emphasis> w domyślnej +konfiguracji <application>MPlayera</application>, z powodu błędów. +Użytkownicy SPARC-ów, którzy budują MPlayera z obsługą mediaLib +informowali o delikatnym, zielonymi miganiu wideo kodowane i dekodowanego +przez libavcodec. Możesz włączyć mediaLib, jeżeli chcesz używając: +<screen> +$ ./configure --enable-mlib +</screen> +Robisz to na własne ryzyko. Użytkownicy x86 powinni +<emphasis role="bold">nigdy</emphasis> nie używać mediaLib, +ponieważ w efekcie otrzymają kiepską wydajność MPlayera. +</para></listitem> +</itemizedlist> <para> Aby zbudować pakiet, będziesz potrzebował GNU <application>make</application> @@ -224,9 +224,9 @@ <para>Rozwiązania najczęstszych problemów:</para> <itemizedlist> - <listitem><para> - Błąd jaki wyświetli <filename>configure</filename> na Solarisie x86, - używającym GCC bez GNU assemblera: +<listitem><para> +Błąd jaki wyświetli <filename>configure</filename> na Solarisie x86, +używającym GCC bez GNU assemblera: <screen> % configure ... @@ -252,32 +252,31 @@ </listitem> <listitem><para><application>MPlayer</application> może się wysypać - podczas dekodowania i kodowania wideo używających win32codecs: - <screen> - ... - Trying to force audio codec driver family acm... - Opening audio decoder: [acm] Win32/ACM decoders - sysi86(SI86DSCR): Invalid argument - Couldn't install fs segment, expect segfault - +podczas dekodowania i kodowania wideo używających win32codecs: +<screen> +... +Trying to force audio codec driver family acm... +Opening audio decoder: [acm] Win32/ACM decoders +sysi86(SI86DSCR): Invalid argument +Couldn't install fs segment, expect segfault - MPlayer interrupted by signal 11 in module: init_audio_codec - ... - </screen> - Dzieje się tak z powodu zmian w sysi86() w Solaris 10 i wydaniach - pre-Solaris Nevada b31. Zostało to naprawione w Solaris Nevada b32; - jednak Sun nie przeniósł jeszcze poprawki do Solarisa 10. Projekt - MPlayer poinformował o tym problemie Sun i łatka jest aktualnie - wprowadzana do Solarisa 10. Więcej informacji o tym błędzie może - zostać znaleziona na stronie: - <ulink - url="http://bugs.opensolaris.org/bugdatabase/view_bug.do?bug_id=6308413"/>. - </para> - </listitem> +MPlayer interrupted by signal 11 in module: init_audio_codec +... +</screen> +Dzieje się tak z powodu zmian w sysi86() w Solaris 10 i wydaniach +pre-Solaris Nevada b31. Zostało to naprawione w Solaris Nevada b32; +jednak Sun nie przeniósł jeszcze poprawki do Solarisa 10. Projekt +MPlayer poinformował o tym problemie Sun i łatka jest aktualnie +wprowadzana do Solarisa 10. Więcej informacji o tym błędzie może +zostać znaleziona na stronie: +<ulink + url="http://bugs.opensolaris.org/bugdatabase/view_bug.do?bug_id=6308413"/>. +</para> +</listitem> <listitem><para> - Ze względu na błędy występujące w Solarisie 8, możesz nie być w stanie odtwarzać - płyt DVD o pojemności większej niż 4 GB: +Ze względu na błędy występujące w Solarisie 8, możesz nie być w stanie odtwarzać +płyt DVD o pojemności większej niż 4 GB: </para> <itemizedlist> @@ -469,33 +468,33 @@ 4Front Technologies udostępnia swoje sterowniki OSS za darmo do niekomercyjnego zastosowania; jednakże, nie ma aktualnie sterowników wyjścia audio dla AIX 5.2 lub 5.3. Oznacza to, że <emphasis role="bold">AIX 5.2 i 5.3 nie potrafią aktualnie używać - wyjścia audio MPlayera.</emphasis> +wyjścia audio MPlayera.</emphasis> </para> <para>Rozwiązania częstych problemów:</para> <itemizedlist> - <listitem> - <para> - Jeżeli otrzymujesz od <filename>configure</filename> taki komunikat błędu: - <screen> - $ ./configure - ... - Checking for iconv program ... no - No working iconv program found, use - --charset=US-ASCII to continue anyway. - Messages in the GTK-2 interface will be broken then. - </screen> - To dzieje się tak dlatego, że AIX używa nie standardowych - zestawów nazw znaków; dlatego też, konwersja wyjścia MPlayera - do innego zestawu znaków (kodowania) nie jest aktualnie obsługiwana. - Rozwiązaniem jest użycie: - <screen> - $ ./configure --charset=noconv - </screen> - </para> - </listitem> - </itemizedlist> +<listitem> +<para> +Jeżeli otrzymujesz od <filename>configure</filename> taki komunikat błędu: +<screen> +$ ./configure +... +Checking for iconv program ... no +No working iconv program found, use +--charset=US-ASCII to continue anyway. +Messages in the GTK-2 interface will be broken then. +</screen> +To dzieje się tak dlatego, że AIX używa nie standardowych +zestawów nazw znaków; dlatego też, konwersja wyjścia MPlayera +do innego zestawu znaków (kodowania) nie jest aktualnie obsługiwana. +Rozwiązaniem jest użycie: +<screen> +$ ./configure --charset=noconv +</screen> +</para> +</listitem> +</itemizedlist> </sect2> @@ -625,15 +624,15 @@ <note> <para>Na Windowsie automatyczne wykrywanie typu procesora - wyłącza rozszerzenie SSE z powodu okazjonalnych i ciężkich - do wyśledzenia błędów powodujących zakończenie aplikacji. Jeżeli - nadal chesz mieć obsługę SSE pod Windowsem, będziesz musiał - skompilować program bez wykrywania typu CPU w trakcie działania. + wyłącza rozszerzenie SSE z powodu okazjonalnych i ciężkich + do wyśledzenia błędów powodujących zakończenie aplikacji. Jeżeli + nadal chesz mieć obsługę SSE pod Windowsem, będziesz musiał + skompilować program bez wykrywania typu CPU w trakcie działania. </para> <para>Jeżeli masz Pentium 4 i program wysypuje Ci się podczas używania - kodeków RealPlayer'a, prawdopodobnie będziesz musiał wyłączyć - obsługę hyperthreading'u. + kodeków RealPlayer'a, prawdopodobnie będziesz musiał wyłączyć + obsługę hyperthreading'u. </para> </note> @@ -697,51 +696,51 @@ </para> <para> - Niestety, to podstawowe środowisko ni epozwoli ci na skorzystanie ze - wszystkich fajnych możliwości <application>MPlayera</application>. - Przykładowo, żeby uzyskać wkompilowaną obsługę OSD, będziesz - potrzebował bibliotek <systemitem class="library">fontconfig</systemitem> - i <systemitem class="library">freetype</systemitem> - zainstalowanych na swojej maszynie. - W przeciwieństwie do innych Uniksów, takich jak większość odmian - Linuksa i BSD, OS X nie ma systemu pakietów dostarczanego razem - z systemem. - </para> +Niestety, to podstawowe środowisko ni epozwoli ci na skorzystanie ze +wszystkich fajnych możliwości <application>MPlayera</application>. +Przykładowo, żeby uzyskać wkompilowaną obsługę OSD, będziesz +potrzebował bibliotek <systemitem class="library">fontconfig</systemitem> +i <systemitem class="library">freetype</systemitem> +zainstalowanych na swojej maszynie. +W przeciwieństwie do innych Uniksów, takich jak większość odmian +Linuksa i BSD, OS X nie ma systemu pakietów dostarczanego razem +z systemem. +</para> <para> - Można wybierać spośród co najmniej dwóch systemów pakietów: - <ulink url="http://fink.sourceforge.net/">Fink</ulink> i - <ulink url="http://darwinports.opendarwin.org/">DarwinPorts</ulink>.\ - Oba dostarczają takie same usługi (np. dużo pakietów do wyboru, - rozwiązywanie zależności, możliwość łatwego dodania/aktualizacji/usunięcia - pakietów itp.). - Fink oferuje zarówno binarne pakiety, jak i możliwość zbudowania wszystkiego - ze źródeł. Natomiast DarwinPorts pozwala tylko na budowanie ze źródeł. - Autorzy tego przewodnika wybrali DarwinPorts z powodu tej prostej przyczyny, - że jego podstawowa wersja była lżejsza. - Podane przykłady będą oparte na DarwinPorts. - </para> +Można wybierać spośród co najmniej dwóch systemów pakietów: +<ulink url="http://fink.sourceforge.net/">Fink</ulink> i +<ulink url="http://darwinports.opendarwin.org/">DarwinPorts</ulink>.\ +Oba dostarczają takie same usługi (np. dużo pakietów do wyboru, +rozwiązywanie zależności, możliwość łatwego dodania/aktualizacji/usunięcia +pakietów itp.). +Fink oferuje zarówno binarne pakiety, jak i możliwość zbudowania wszystkiego +ze źródeł. Natomiast DarwinPorts pozwala tylko na budowanie ze źródeł. +Autorzy tego przewodnika wybrali DarwinPorts z powodu tej prostej przyczyny, +że jego podstawowa wersja była lżejsza. +Podane przykłady będą oparte na DarwinPorts. +</para> <para> - Przykładowo, żeby skomilować <application>MPlayera</application> z obsługą - OSD: - <screen>sudo port install pkgconfig</screen> - Zainstaluje to <application>pkg-config</application>, który jest systemem - do zarządzania flagami kompilacji/dowiązań bibliotek. - <application>MPlayerowy</application> skrypt - <systemitem>configure</systemitem>używa go do prawidłowego - wykrywania bibliotek. - Następnie możesz zainstalować <application>fontconfig</application> - w podobny sposób: - <screen>sudo port install fontconfig</screen> - Następnie możesz uruchomić <application>MPlayerowy</application> skrypt - <systemitem>configure</systemitem> (zapisz zmienne systemowe - <systemitem>PKG_CONFIG_PATH</systemitem> - i <systemitem>PATH</systemitem>, żeby - <systemitem>configure</systemitem> znalazł biblioteki zainstalowane - przez DarwinPorts): - <screen>PKG_CONFIG_PATH=/opt/local/lib/pkgconfig/ PATH=$PATH:/opt/local/bin/ ./configure</screen> - </para> +Przykładowo, żeby skomilować <application>MPlayera</application> z obsługą +OSD: +<screen>sudo port install pkgconfig</screen> +Zainstaluje to <application>pkg-config</application>, który jest systemem +do zarządzania flagami kompilacji/dowiązań bibliotek. +<application>MPlayerowy</application> skrypt +<systemitem>configure</systemitem>używa go do prawidłowego +wykrywania bibliotek. +Następnie możesz zainstalować <application>fontconfig</application> +w podobny sposób: +<screen>sudo port install fontconfig</screen> +Następnie możesz uruchomić <application>MPlayerowy</application> skrypt +<systemitem>configure</systemitem> (zapisz zmienne systemowe +<systemitem>PKG_CONFIG_PATH</systemitem> +i <systemitem>PATH</systemitem>, żeby +<systemitem>configure</systemitem> znalazł biblioteki zainstalowane +przez DarwinPorts): +<screen>PKG_CONFIG_PATH=/opt/local/lib/pkgconfig/ PATH=$PATH:/opt/local/bin/ ./configure</screen> +</para> <sect2 id="osx_gui"> <title>MPlayer OS X GUI</title> @@ -775,8 +774,8 @@ <para> Aby pobrać moduł z repozytorium SVN wykonaj polecenia: <screen> - svn checkout svn://svn.mplayerhq.hu/mplayerosx/trunk/ mplayerosx - svn checkout svn://svn.mplayerhq.hu/mplayer/trunk/ main +svn checkout svn://svn.mplayerhq.hu/mplayerosx/trunk/ mplayerosx +svn checkout svn://svn.mplayerhq.hu/mplayer/trunk/ main </screen> </para> <para>
--- a/DOCS/xml/pl/skin.xml Mon Apr 12 08:03:39 2010 +0000 +++ b/DOCS/xml/pl/skin.xml Mon Apr 12 10:56:17 2010 +0000 @@ -1118,55 +1118,55 @@ </sect1> <sect1 id="skin-quality"> - <title>Tworzenie dobrych skórek</title> + <title>Tworzenie dobrych skórek</title> - <para> - WyglÄ…da na to, że przeczytaÅ‚eÅ› o tworzeniu skórek - dla GUI <application>MPlayera</application>, daÅ‚eÅ› z siebie - wszystko używajÄ…c <application>Gimpa</application> - i chciaÅ‚byÅ› umieÅ›cić u nas swojÄ… skórkÄ™? - Zapoznaj siÄ™ z kilkoma wytycznymi, żeby uniknąć najczÄ™stszych pomyÅ‚ek - i stworzyć skórkÄ™ wysokiej jakoÅ›ci. - </para> + <para> + WyglÄ…da na to, że przeczytaÅ‚eÅ› o tworzeniu skórek + dla GUI <application>MPlayera</application>, daÅ‚eÅ› z siebie + wszystko używajÄ…c <application>Gimpa</application> + i chciaÅ‚byÅ› umieÅ›cić u nas swojÄ… skórkÄ™? + Zapoznaj siÄ™ z kilkoma wytycznymi, żeby uniknąć najczÄ™stszych pomyÅ‚ek + i stworzyć skórkÄ™ wysokiej jakoÅ›ci. + </para> - <para> - Chcemy aby skórki, które dodajemy do naszego repozytorium, - speÅ‚niaÅ‚y okreÅ›lone standardy jakoÅ›ci. Istnieje również kilka rzeczy, - które możesz zrobić, żeby uÅ‚atwić sobie życie. - </para> + <para> + Chcemy aby skórki, które dodajemy do naszego repozytorium, + speÅ‚niaÅ‚y okreÅ›lone standardy jakoÅ›ci. Istnieje również kilka rzeczy, + które możesz zrobić, żeby uÅ‚atwić sobie życie. + </para> - <para> - Jako wzorzec możesz wziąć skórkÄ™ <systemitem>Blue</systemitem>, - od wersji 1.5 speÅ‚nia one wszystkie wymienione niżej kryteria. - </para> + <para> + Jako wzorzec możesz wziąć skórkÄ™ <systemitem>Blue</systemitem>, + od wersji 1.5 speÅ‚nia one wszystkie wymienione niżej kryteria. + </para> - <itemizedlist> - <listitem><para>Do każdej skórki powinien być doÅ‚Ä…czony plik - <filename>README</filename> zawierajÄ…cy informacje - o tobie, czyli autorze, prawach autorskich i licencji i wszystkie - inne informacje, które zechcesz dodać. Jeżeli chcesz prowadzić - listÄ™ zmian, ten plik jest na to dobrym miejscem.</para></listitem> + <itemizedlist> + <listitem><para>Do każdej skórki powinien być doÅ‚Ä…czony plik + <filename>README</filename> zawierajÄ…cy informacje + o tobie, czyli autorze, prawach autorskich i licencji i wszystkie + inne informacje, które zechcesz dodać. Jeżeli chcesz prowadzić + listÄ™ zmian, ten plik jest na to dobrym miejscem.</para></listitem> - <listitem><para>Należy dodać plik <filename>VERSION</filename> - zawierajÄ…cy tylko i wyÅ‚Ä…cznie wersjÄ™ skórki zapisanÄ… w jednej linii (np. 1.0) - </para></listitem> + <listitem><para>Należy dodać plik <filename>VERSION</filename> + zawierajÄ…cy tylko i wyÅ‚Ä…cznie wersjÄ™ skórki zapisanÄ… w jednej linii (np. 1.0) + </para></listitem> - <listitem><para>Poziome i pionowe kontrolki (suwaki do zmiany gÅ‚oÅ›noÅ›ci - albo pozycji) powinny mieć gaÅ‚ki prawidÅ‚owo wycentrowane na Å›rodku - suwaka. Powinno siÄ™ dać przesunąć gaÅ‚kÄ™ na oba koÅ„ce suwaka, ale nie - poza jego obszar.</para></listitem> + <listitem><para>Poziome i pionowe kontrolki (suwaki do zmiany gÅ‚oÅ›noÅ›ci + albo pozycji) powinny mieć gaÅ‚ki prawidÅ‚owo wycentrowane na Å›rodku + suwaka. Powinno siÄ™ dać przesunąć gaÅ‚kÄ™ na oba koÅ„ce suwaka, ale nie + poza jego obszar.</para></listitem> - <listitem><para>Elementy skórki powinny mieć prawidÅ‚owo zadeklarowane - rozmiary w pliku skórki. W przeciwnym wypadku możliwe bÄ™dzie - klikniÄ™cie poza obszarem np. przycisku i jego naciÅ›niÄ™cia - lub klikniÄ™cie wewnÄ…trz obszaru przycisku i nie naciÅ›niÄ™cie go. - </para></listitem> + <listitem><para>Elementy skórki powinny mieć prawidÅ‚owo zadeklarowane + rozmiary w pliku skórki. W przeciwnym wypadku możliwe bÄ™dzie + klikniÄ™cie poza obszarem np. przycisku i jego naciÅ›niÄ™cia + lub klikniÄ™cie wewnÄ…trz obszaru przycisku i nie naciÅ›niÄ™cie go. + </para></listitem> - <listitem><para>Plik <filename>skin</filename> powinien być - Å‚adnie sformatowany i nie powinien zawierać tabulacji. Åadnie - sformatowany, czyli taki w którym numery sÄ… Å‚adnie ustawione - w kolumnach.</para></listitem> - </itemizedlist> + <listitem><para>Plik <filename>skin</filename> powinien być + Å‚adnie sformatowany i nie powinien zawierać tabulacji. Åadnie + sformatowany, czyli taki w którym numery sÄ… Å‚adnie ustawione + w kolumnach.</para></listitem> + </itemizedlist> </sect1>
--- a/DOCS/xml/ru/usage.xml Mon Apr 12 08:03:39 2010 +0000 +++ b/DOCS/xml/ru/usage.xml Mon Apr 12 10:56:17 2010 +0000 @@ -193,7 +193,7 @@ <term><option>-subdelay <replaceable>sec</replaceable></option></term> <listitem><para> Задерживает Ñубтитры на <option><replaceable>sec</replaceable></option> - Ñекунд. Ðто значение может быть отрицательным. + Ñекунд. Ðто значение может быть отрицательным. </para></listitem> </varlistentry> <varlistentry>
--- a/DOCS/xml/xsl/ldp-html-common.xsl Mon Apr 12 08:03:39 2010 +0000 +++ b/DOCS/xml/xsl/ldp-html-common.xsl Mon Apr 12 10:56:17 2010 +0000 @@ -2,8 +2,7 @@ <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version='1.0' xmlns="http://www.w3.org/TR/xhtml1/transitional" - exclude-result-prefixes="#default" - > + exclude-result-prefixes="#default"> <!-- $Id -->
--- a/drivers/3dfx.h Mon Apr 12 08:03:39 2010 +0000 +++ b/drivers/3dfx.h Mon Apr 12 10:56:17 2010 +0000 @@ -29,10 +29,10 @@ #define VOODOO_YUV_PLANE_OFFSET ((unsigned long int)0x0C00000) #define VOODOO_BLT_FORMAT_YUYV (8<<16) -#define VOODOO_BLT_FORMAT_UYVY (9<<16) +#define VOODOO_BLT_FORMAT_UYVY (9<<16) #define VOODOO_BLT_FORMAT_16 (3<<16) -#define VOODOO_BLT_FORMAT_24 (4<<16) -#define VOODOO_BLT_FORMAT_32 (5<<16) +#define VOODOO_BLT_FORMAT_24 (4<<16) +#define VOODOO_BLT_FORMAT_32 (5<<16) #define VOODOO_YUV_STRIDE (1024>>2) @@ -164,95 +164,95 @@ */ #ifndef PCI_DEVICE_ID_3DFX_VOODOO5 -#define PCI_DEVICE_ID_3DFX_VOODOO5 0x0009 +#define PCI_DEVICE_ID_3DFX_VOODOO5 0x0009 #endif /* membase0 register offsets */ -#define STATUS 0x00 -#define PCIINIT0 0x04 -#define SIPMONITOR 0x08 -#define LFBMEMORYCONFIG 0x0c -#define MISCINIT0 0x10 -#define MISCINIT1 0x14 -#define DRAMINIT0 0x18 -#define DRAMINIT1 0x1c -#define AGPINIT 0x20 -#define TMUGBEINIT 0x24 -#define VGAINIT0 0x28 -#define VGAINIT1 0x2c -#define DRAMCOMMAND 0x30 -#define DRAMDATA 0x34 -/* reserved 0x38 */ -/* reserved 0x3c */ -#define PLLCTRL0 0x40 -#define PLLCTRL1 0x44 -#define PLLCTRL2 0x48 -#define DACMODE 0x4c -#define DACADDR 0x50 -#define DACDATA 0x54 -#define RGBMAXDELTA 0x58 -#define VIDPROCCFG 0x5c -#define HWCURPATADDR 0x60 -#define HWCURLOC 0x64 -#define HWCURC0 0x68 -#define HWCURC1 0x6c -#define VIDINFORMAT 0x70 -#define VIDINSTATUS 0x74 -#define VIDSERPARPORT 0x78 -#define VIDINXDELTA 0x7c -#define VIDININITERR 0x80 -#define VIDINYDELTA 0x84 -#define VIDPIXBUFTHOLD 0x88 -#define VIDCHRMIN 0x8c -#define VIDCHRMAX 0x90 -#define VIDCURLIN 0x94 -#define VIDSCREENSIZE 0x98 -#define VIDOVRSTARTCRD 0x9c -#define VIDOVRENDCRD 0xa0 -#define VIDOVRDUDX 0xa4 -#define VIDOVRDUDXOFF 0xa8 -#define VIDOVRDVDY 0xac +#define STATUS 0x00 +#define PCIINIT0 0x04 +#define SIPMONITOR 0x08 +#define LFBMEMORYCONFIG 0x0c +#define MISCINIT0 0x10 +#define MISCINIT1 0x14 +#define DRAMINIT0 0x18 +#define DRAMINIT1 0x1c +#define AGPINIT 0x20 +#define TMUGBEINIT 0x24 +#define VGAINIT0 0x28 +#define VGAINIT1 0x2c +#define DRAMCOMMAND 0x30 +#define DRAMDATA 0x34 +/* reserved 0x38 */ +/* reserved 0x3c */ +#define PLLCTRL0 0x40 +#define PLLCTRL1 0x44 +#define PLLCTRL2 0x48 +#define DACMODE 0x4c +#define DACADDR 0x50 +#define DACDATA 0x54 +#define RGBMAXDELTA 0x58 +#define VIDPROCCFG 0x5c +#define HWCURPATADDR 0x60 +#define HWCURLOC 0x64 +#define HWCURC0 0x68 +#define HWCURC1 0x6c +#define VIDINFORMAT 0x70 +#define VIDINSTATUS 0x74 +#define VIDSERPARPORT 0x78 +#define VIDINXDELTA 0x7c +#define VIDININITERR 0x80 +#define VIDINYDELTA 0x84 +#define VIDPIXBUFTHOLD 0x88 +#define VIDCHRMIN 0x8c +#define VIDCHRMAX 0x90 +#define VIDCURLIN 0x94 +#define VIDSCREENSIZE 0x98 +#define VIDOVRSTARTCRD 0x9c +#define VIDOVRENDCRD 0xa0 +#define VIDOVRDUDX 0xa4 +#define VIDOVRDUDXOFF 0xa8 +#define VIDOVRDVDY 0xac /* ... */ -#define VIDOVRDVDYOFF 0xe0 -#define VIDDESKSTART 0xe4 -#define VIDDESKSTRIDE 0xe8 -#define VIDINADDR0 0xec -#define VIDINADDR1 0xf0 -#define VIDINADDR2 0xf4 -#define VIDINSTRIDE 0xf8 -#define VIDCUROVRSTART 0xfc +#define VIDOVRDVDYOFF 0xe0 +#define VIDDESKSTART 0xe4 +#define VIDDESKSTRIDE 0xe8 +#define VIDINADDR0 0xec +#define VIDINADDR1 0xf0 +#define VIDINADDR2 0xf4 +#define VIDINSTRIDE 0xf8 +#define VIDCUROVRSTART 0xfc -#define INTCTRL (0x00100000 + 0x04) -#define CLIP0MIN (0x00100000 + 0x08) -#define CLIP0MAX (0x00100000 + 0x0c) -#define DSTBASE (0x00100000 + 0x10) -#define DSTFORMAT (0x00100000 + 0x14) -#define SRCCOLORKEYMIN (0x00100000 + 0x18) -#define SRCCOLORKEYMAX (0x00100000 + 0x1c) -#define DSTCOLORKEYMIN (0x00100000 + 0x20) -#define DSTCOLORKEYMAX (0x00100000 + 0x24) -#define ROP123 (0x00100000 + 0x30) -#define SRCBASE (0x00100000 + 0x34) -#define COMMANDEXTRA_2D (0x00100000 + 0x38) -#define CLIP1MIN (0x00100000 + 0x4c) -#define CLIP1MAX (0x00100000 + 0x50) -#define SRCFORMAT (0x00100000 + 0x54) -#define SRCSIZE (0x00100000 + 0x58) -#define SRCXY (0x00100000 + 0x5c) -#define COLORBACK (0x00100000 + 0x60) -#define COLORFORE (0x00100000 + 0x64) -#define DSTSIZE (0x00100000 + 0x68) -#define DSTXY (0x00100000 + 0x6c) -#define COMMAND_2D (0x00100000 + 0x70) -#define LAUNCH_2D (0x00100000 + 0x80) +#define INTCTRL (0x00100000 + 0x04) +#define CLIP0MIN (0x00100000 + 0x08) +#define CLIP0MAX (0x00100000 + 0x0c) +#define DSTBASE (0x00100000 + 0x10) +#define DSTFORMAT (0x00100000 + 0x14) +#define SRCCOLORKEYMIN (0x00100000 + 0x18) +#define SRCCOLORKEYMAX (0x00100000 + 0x1c) +#define DSTCOLORKEYMIN (0x00100000 + 0x20) +#define DSTCOLORKEYMAX (0x00100000 + 0x24) +#define ROP123 (0x00100000 + 0x30) +#define SRCBASE (0x00100000 + 0x34) +#define COMMANDEXTRA_2D (0x00100000 + 0x38) +#define CLIP1MIN (0x00100000 + 0x4c) +#define CLIP1MAX (0x00100000 + 0x50) +#define SRCFORMAT (0x00100000 + 0x54) +#define SRCSIZE (0x00100000 + 0x58) +#define SRCXY (0x00100000 + 0x5c) +#define COLORBACK (0x00100000 + 0x60) +#define COLORFORE (0x00100000 + 0x64) +#define DSTSIZE (0x00100000 + 0x68) +#define DSTXY (0x00100000 + 0x6c) +#define COMMAND_2D (0x00100000 + 0x70) +#define LAUNCH_2D (0x00100000 + 0x80) -#define COMMAND_3D (0x00200000 + 0x120) +#define COMMAND_3D (0x00200000 + 0x120) -#define SWAPBUFCMD (0x00200000 + 0x128) -#define SWAPPENDING (0x00200000 + 0x24C) -#define LEFTOVBUF (0x00200000 + 0x250) -#define RIGHTOVBUF (0x00200000 + 0x254) -#define FBISWAPBUFHIST (0x00200000 + 0x258) +#define SWAPBUFCMD (0x00200000 + 0x128) +#define SWAPPENDING (0x00200000 + 0x24C) +#define LEFTOVBUF (0x00200000 + 0x250) +#define RIGHTOVBUF (0x00200000 + 0x254) +#define FBISWAPBUFHIST (0x00200000 + 0x258) /* register bitfields (not all, only as needed) */ @@ -268,44 +268,44 @@ #define AUTOINC_DSTY BIT(11) -#define COMMAND_2D_S2S_BITBLT 0x01 // screen to screen -#define COMMAND_2D_S2S_STRECH_BLT 0x02 // BLT + Strech +#define COMMAND_2D_S2S_BITBLT 0x01 // screen to screen +#define COMMAND_2D_S2S_STRECH_BLT 0x02 // BLT + Strech #define COMMAND_2D_H2S_BITBLT 0x03 // host to screen -#define COMMAND_2D_FILLRECT 0x05 +#define COMMAND_2D_FILLRECT 0x05 -#define COMMAND_2D_DO_IMMED BIT(8) // Do it immediatly +#define COMMAND_2D_DO_IMMED BIT(8) // Do it immediatly -#define COMMAND_3D_NOP 0x00 -#define STATUS_RETRACE BIT(6) -#define STATUS_BUSY BIT(9) -#define MISCINIT1_CLUT_INV BIT(0) -#define MISCINIT1_2DBLOCK_DIS BIT(15) -#define DRAMINIT0_SGRAM_NUM BIT(26) -#define DRAMINIT0_SGRAM_TYPE BIT(27) -#define DRAMINIT1_MEM_SDRAM BIT(30) -#define VGAINIT0_VGA_DISABLE BIT(0) -#define VGAINIT0_EXT_TIMING BIT(1) -#define VGAINIT0_8BIT_DAC BIT(2) -#define VGAINIT0_EXT_ENABLE BIT(6) -#define VGAINIT0_WAKEUP_3C3 BIT(8) -#define VGAINIT0_LEGACY_DISABLE BIT(9) -#define VGAINIT0_ALT_READBACK BIT(10) -#define VGAINIT0_FAST_BLINK BIT(11) -#define VGAINIT0_EXTSHIFTOUT BIT(12) -#define VGAINIT0_DECODE_3C6 BIT(13) -#define VGAINIT0_SGRAM_HBLANK_DISABLE BIT(22) -#define VGAINIT1_MASK 0x1fffff -#define VIDCFG_VIDPROC_ENABLE BIT(0) -#define VIDCFG_CURS_X11 BIT(1) -#define VIDCFG_HALF_MODE BIT(4) -#define VIDCFG_DESK_ENABLE BIT(7) -#define VIDCFG_CLUT_BYPASS BIT(10) -#define VIDCFG_2X BIT(26) -#define VIDCFG_HWCURSOR_ENABLE BIT(27) -#define VIDCFG_PIXFMT_SHIFT 18 -#define DACMODE_2X BIT(0) +#define COMMAND_3D_NOP 0x00 +#define STATUS_RETRACE BIT(6) +#define STATUS_BUSY BIT(9) +#define MISCINIT1_CLUT_INV BIT(0) +#define MISCINIT1_2DBLOCK_DIS BIT(15) +#define DRAMINIT0_SGRAM_NUM BIT(26) +#define DRAMINIT0_SGRAM_TYPE BIT(27) +#define DRAMINIT1_MEM_SDRAM BIT(30) +#define VGAINIT0_VGA_DISABLE BIT(0) +#define VGAINIT0_EXT_TIMING BIT(1) +#define VGAINIT0_8BIT_DAC BIT(2) +#define VGAINIT0_EXT_ENABLE BIT(6) +#define VGAINIT0_WAKEUP_3C3 BIT(8) +#define VGAINIT0_LEGACY_DISABLE BIT(9) +#define VGAINIT0_ALT_READBACK BIT(10) +#define VGAINIT0_FAST_BLINK BIT(11) +#define VGAINIT0_EXTSHIFTOUT BIT(12) +#define VGAINIT0_DECODE_3C6 BIT(13) +#define VGAINIT0_SGRAM_HBLANK_DISABLE BIT(22) +#define VGAINIT1_MASK 0x1fffff +#define VIDCFG_VIDPROC_ENABLE BIT(0) +#define VIDCFG_CURS_X11 BIT(1) +#define VIDCFG_HALF_MODE BIT(4) +#define VIDCFG_DESK_ENABLE BIT(7) +#define VIDCFG_CLUT_BYPASS BIT(10) +#define VIDCFG_2X BIT(26) +#define VIDCFG_HWCURSOR_ENABLE BIT(27) +#define VIDCFG_PIXFMT_SHIFT 18 +#define DACMODE_2X BIT(0) /* AGP registers */ #define AGPREQSIZE (0x0080000 + 0x00) @@ -332,35 +332,35 @@ #define YUVSTRIDE (0x0080000 + 0x104) /* VGA rubbish, need to change this for multihead support */ -#define MISC_W 0x3c2 -#define MISC_R 0x3cc -#define SEQ_I 0x3c4 -#define SEQ_D 0x3c5 -#define CRT_I 0x3d4 -#define CRT_D 0x3d5 -#define ATT_IW 0x3c0 +#define MISC_W 0x3c2 +#define MISC_R 0x3cc +#define SEQ_I 0x3c4 +#define SEQ_D 0x3c5 +#define CRT_I 0x3d4 +#define CRT_D 0x3d5 +#define ATT_IW 0x3c0 #define RAMDAC_R 0x3c7 #define RAMDAC_W 0x3c8 #define RAMDAC_D 0x3c9 -#define IS1_R 0x3da -#define GRA_I 0x3ce -#define GRA_D 0x3cf +#define IS1_R 0x3da +#define GRA_I 0x3ce +#define GRA_D 0x3cf #ifndef FB_ACCEL_3DFX_BANSHEE #define FB_ACCEL_3DFX_BANSHEE 31 #endif -#define TDFXF_HSYNC_ACT_HIGH 0x01 -#define TDFXF_HSYNC_ACT_LOW 0x02 -#define TDFXF_VSYNC_ACT_HIGH 0x04 -#define TDFXF_VSYNC_ACT_LOW 0x08 -#define TDFXF_LINE_DOUBLE 0x10 -#define TDFXF_VIDEO_ENABLE 0x20 +#define TDFXF_HSYNC_ACT_HIGH 0x01 +#define TDFXF_HSYNC_ACT_LOW 0x02 +#define TDFXF_VSYNC_ACT_HIGH 0x04 +#define TDFXF_VSYNC_ACT_LOW 0x08 +#define TDFXF_LINE_DOUBLE 0x10 +#define TDFXF_VIDEO_ENABLE 0x20 -#define TDFXF_HSYNC_MASK 0x03 -#define TDFXF_VSYNC_MASK 0x0c +#define TDFXF_HSYNC_MASK 0x03 +#define TDFXF_VSYNC_MASK 0x0c -#define XYREG(x,y) (((((unsigned long)y) & 0x1FFF) << 16) | (((unsigned long)x) & 0x1FFF)) +#define XYREG(x,y) (((((unsigned long)y) & 0x1FFF) << 16) | (((unsigned long)x) & 0x1FFF)) //#define TDFXFB_DEBUG #ifdef TDFXFB_DEBUG
--- a/drivers/README.Ati Mon Apr 12 08:03:39 2010 +0000 +++ b/drivers/README.Ati Mon Apr 12 10:56:17 2010 +0000 @@ -1,5 +1,5 @@ - framebuffer driver for ATI Radeon chipset video boards - ====================================================== + framebuffer driver for ATI Radeon chipset video boards + ====================================================== These files are replacement for linux-2.4.x-ac.y drivers. To use this driver you should have at least linux-2.4.5-ac.1 @@ -21,7 +21,7 @@ Radeon video overlay - ==================== + ==================== It was designed for MPlayer and currently can be used only by MPlayer. It's RGB-YUV BES for Radeon cards (althrough there is experimental @@ -93,7 +93,7 @@ ~~~~~~~~~~~~~~~~~~~~~~~~~~ mtrr=1/0 Configures MTRR (if available), default = 1. swap_fourcc=1/0 Performs byte swapping of passed fourcc. - (It's required for compatibility with -vo mga.) + (It's required for compatibility with -vo mga.) To know more about driver parameters execute: modinfo radeon_vid
--- a/drivers/README.Matrox Mon Apr 12 08:03:39 2010 +0000 +++ b/drivers/README.Matrox Mon Apr 12 10:56:17 2010 +0000 @@ -7,12 +7,12 @@ mga_vid - MGA G200/G400 YUV Overlay kernel module - Author: - Aaron Holtzman <aholtzma@ess.engr.uvic.ca>, Oct 1999 + Author: + Aaron Holtzman <aholtzma@ess.engr.uvic.ca>, Oct 1999 - Contributions by: - Fredrik Vraalsen <vraalsen@cs.uiuc.edu> - Alan Cox <alan@lxorguk.ukuu.org.uk> + Contributions by: + Fredrik Vraalsen <vraalsen@cs.uiuc.edu> + Alan Cox <alan@lxorguk.ukuu.org.uk> WARNING ----- WARNING @@ -24,23 +24,23 @@ What does this code do? - mga_vid is a kernel module that utilitizes the Matrox G200/G400/G550 - video scaler/overlay unit to perform YUV->RGB colorspace conversion - and arbitrary video scaling. + mga_vid is a kernel module that utilitizes the Matrox G200/G400/G550 + video scaler/overlay unit to perform YUV->RGB colorspace conversion + and arbitrary video scaling. - mga_vid is also a monster hack. + mga_vid is also a monster hack. How does mga_vid work? - This kernel module sets up the BES (backend scaler) with appropriate - values based on parameters supplied via ioctl. It also maps a chunk of - video memory into userspace via mmap. This memory is stolen from X - (which may decide to write to it later). The application can then write - image data directly to the framebuffer (if it knows the right padding, - etc). + This kernel module sets up the BES (backend scaler) with appropriate + values based on parameters supplied via ioctl. It also maps a chunk of + video memory into userspace via mmap. This memory is stolen from X + (which may decide to write to it later). The application can then write + image data directly to the framebuffer (if it knows the right padding, + etc). How do I know if mga_vid works on my system? - There is a test application called mga_vid_test. This test code should - draw some nice 256x256 images for you if all is working well. + There is a test application called mga_vid_test. This test code should + draw some nice 256x256 images for you if all is working well.
--- a/drivers/generic_math.h Mon Apr 12 08:03:39 2010 +0000 +++ b/drivers/generic_math.h Mon Apr 12 10:56:17 2010 +0000 @@ -233,7 +233,7 @@ { 3.141600e+00, -7.346410e-06, -1.000000e-00 } }; -# define M_PI 3.14159265358979323846 /* pi */ +#define M_PI 3.14159265358979323846 /* pi */ static double inline gen_sin(double x) {
--- a/drivers/hacking.ati Mon Apr 12 08:03:39 2010 +0000 +++ b/drivers/hacking.ati Mon Apr 12 10:56:17 2010 +0000 @@ -1,6 +1,6 @@ ATI chips hacking ================= - Dedicated to ATI's hackers. + Dedicated to ATI's hackers. Preface ~~~~~~~ @@ -11,20 +11,20 @@ What are units on modern ATI chips: DAC - (Digital to Analog Convertor) controls CRTC, LCD, DFP monitor's output - Consists from: - PLL - (Programable line length) registers - CRTC - CRT controller - LCD/DFP scaler - surface control + Consists from: + PLL - (Programable line length) registers + CRTC - CRT controller + LCD/DFP scaler + surface control DAC2 - controls CRTC, LCD, DFP monitor's output on second head TVDAC - controls Composite Video and Super Video output ports - Consists from: - TV_PLL - TV scaler & sync unit - TV format convertor (PAL/NTSC) + Consists from: + TV_PLL + TV scaler & sync unit + TV format convertor (PAL/NTSC) TVCAP - controls Video-In port MPP - Miscellaneous peripheral port. (includes macrovision's filter - copy - protection mechanism) + protection mechanism) OV - Video overlay (YUV BES) (include subpictures, gamma correction and adaptive deinterlacing) CAP0 - Video capturing @@ -61,100 +61,100 @@ 3. Mach32 4. Mach64. - It's first chip which has support from side of open - source drivers. Set of mach64 chips is: - mach64GX (ATI888GX00) - mach64CX (ATI888CX00) - mach64CT (ATI264CT) - mach64ET (ATI264ET) - mach64VTA3 (ATI264VT) - mach64VTA4 (ATI264VT) - mach64VTB (ATI264VTB) - mach64VT4 (ATI264VT4) + It's first chip which has support from side of open + source drivers. Set of mach64 chips is: + mach64GX (ATI888GX00) + mach64CX (ATI888CX00) + mach64CT (ATI264CT) + mach64ET (ATI264ET) + mach64VTA3 (ATI264VT) + mach64VTA4 (ATI264VT) + mach64VTB (ATI264VTB) + mach64VT4 (ATI264VT4) 5. 3D rage chips. - It seems that these chips have fully compatible by GPU with Mach64 - which is extended by 3D possibilities. Set of 3D rage chips is: - 3D RAGE (GT) - 3D RAGE II+ (GTB) - 3D RAGE IIC (PCI) - 3D RAGE IIC (AGP) - 3D RAGE LT - 3D RAGE LT-G - 3D RAGE PRO (BGA, AGP) - 3D RAGE PRO (BGA, AGP, 1x only) - 3D RAGE PRO (BGA, PCI) - 3D RAGE PRO (PQFP, PCI) - 3D RAGE PRO (PQFP, PCI, limited 3D) - 3D RAGE (XL) - 3D RAGE LT PRO (AGP) - 3D RAGE LT PRO (PCI) - 3D RAGE Mobility (PCI) - 3D RAGE Mobility (AGP) + It seems that these chips have fully compatible by GPU with Mach64 + which is extended by 3D possibilities. Set of 3D rage chips is: + 3D RAGE (GT) + 3D RAGE II+ (GTB) + 3D RAGE IIC (PCI) + 3D RAGE IIC (AGP) + 3D RAGE LT + 3D RAGE LT-G + 3D RAGE PRO (BGA, AGP) + 3D RAGE PRO (BGA, AGP, 1x only) + 3D RAGE PRO (BGA, PCI) + 3D RAGE PRO (PQFP, PCI) + 3D RAGE PRO (PQFP, PCI, limited 3D) + 3D RAGE (XL) + 3D RAGE LT PRO (AGP) + 3D RAGE LT PRO (PCI) + 3D RAGE Mobility (PCI) + 3D RAGE Mobility (AGP) 6. Rage128 chips. - These chips have perfectly new GPU which supports memory mapped IO - space for accelerating port access (It's main cause of incompatibility - with mach64). Set of Rage128 chips is: - Rage128 GL RE - Rage128 GL RF - Rage128 GL RG - Rage128 GL RH - Rage128 GL RI - Rage128 VR RK - Rage128 VR RL - Rage128 VR RM - Rage128 VR RN - Rage128 VR RO - Rage128 Mobility M3 LE - Rage128 Mobility M3 LF + These chips have perfectly new GPU which supports memory mapped IO + space for accelerating port access (It's main cause of incompatibility + with mach64). Set of Rage128 chips is: + Rage128 GL RE + Rage128 GL RF + Rage128 GL RG + Rage128 GL RH + Rage128 GL RI + Rage128 VR RK + Rage128 VR RL + Rage128 VR RM + Rage128 VR RN + Rage128 VR RO + Rage128 Mobility M3 LE + Rage128 Mobility M3 LF 7. Rage128Pro chips. - These chips are successors of Rage128 ones. - Rage128Pro GL PA - Rage128Pro GL PB - Rage128Pro GL PC - Rage128Pro GL PD - Rage128Pro GL PE - Rage128Pro GL PF - Rage128Pro VR PG - Rage128Pro VR PH - Rage128Pro VR PI - Rage128Pro VR PJ - Rage128Pro VR PK - Rage128Pro VR PL - Rage128Pro VR PM - Rage128Pro VR PN - Rage128Pro VR PO - Rage128Pro VR PP - Rage128Pro VR PQ - Rage128Pro VR PR - Rage128Pro VR TR - Rage128Pro VR PS - Rage128Pro VR PT - Rage128Pro VR PU - Rage128Pro VR PV - Rage128Pro VR PW - Rage128Pro VR PX - Rage128Pro Ultra U1 - Rage128Pro Ultra U2 - Rage128Pro Ultra U3 + These chips are successors of Rage128 ones. + Rage128Pro GL PA + Rage128Pro GL PB + Rage128Pro GL PC + Rage128Pro GL PD + Rage128Pro GL PE + Rage128Pro GL PF + Rage128Pro VR PG + Rage128Pro VR PH + Rage128Pro VR PI + Rage128Pro VR PJ + Rage128Pro VR PK + Rage128Pro VR PL + Rage128Pro VR PM + Rage128Pro VR PN + Rage128Pro VR PO + Rage128Pro VR PP + Rage128Pro VR PQ + Rage128Pro VR PR + Rage128Pro VR TR + Rage128Pro VR PS + Rage128Pro VR PT + Rage128Pro VR PU + Rage128Pro VR PV + Rage128Pro VR PW + Rage128Pro VR PX + Rage128Pro Ultra U1 + Rage128Pro Ultra U2 + Rage128Pro Ultra U3 8. Radeon chips. - Indeed they could be named Rage256 Pro. (With minor changes is fully - compatible with Rage128 chips). - Radeon QD - Radeon QE - Radeon QF - Radeon QG - Radeon VE QY - Radeon VE QZ - Radeon M6 LY - Radeon M6 LZ - Radeon M7 LW + Indeed they could be named Rage256 Pro. (With minor changes is fully + compatible with Rage128 chips). + Radeon QD + Radeon QE + Radeon QF + Radeon QG + Radeon VE QY + Radeon VE QZ + Radeon M6 LY + Radeon M6 LZ + Radeon M7 LW 9. Radeon2 chips. - Indeed they could be named Rage512 Pro. - Radeon2 8500 QL - Radeon2 7500 QW + Indeed they could be named Rage512 Pro. + Radeon2 8500 QL + Radeon2 7500 QW 10. Radeon3 and newest are cooming soon, but I hope that they will be fully compatible with Radeon1 chips. @@ -185,31 +185,31 @@ Sample for Mach64 compatible chips: *********************************** -#define SPARSE_IO_BASE 0x03fcu -#define SPARSE_IO_SELECT 0xfc00u +#define SPARSE_IO_BASE 0x03fcu +#define SPARSE_IO_SELECT 0xfc00u -#define BLOCK_IO_BASE 0xff00u -#define BLOCK_IO_SELECT 0x00fcu +#define BLOCK_IO_BASE 0xff00u +#define BLOCK_IO_SELECT 0x00fcu -#define MM_IO_SELECT 0x03fcu -#define BLOCK_SELECT 0x0400u -#define DWORD_SELECT (BLOCK_SELECT | MM_IO_SELECT) +#define MM_IO_SELECT 0x03fcu +#define BLOCK_SELECT 0x0400u +#define DWORD_SELECT (BLOCK_SELECT | MM_IO_SELECT) -#define IO_BYTE_SELECT 0x0003u +#define IO_BYTE_SELECT 0x0003u -#define SPARSE_IO_PORT (SPARSE_IO_BASE | IO_BYTE_SELECT) -#define BLOCK_IO_PORT (BLOCK_IO_BASE | IO_BYTE_SELECT) +#define SPARSE_IO_PORT (SPARSE_IO_BASE | IO_BYTE_SELECT) +#define BLOCK_IO_PORT (BLOCK_IO_BASE | IO_BYTE_SELECT) -#define IOPortTag(_SparseIOSelect, _BlockIOSelect) \ - (SetBits(_SparseIOSelect, SPARSE_IO_SELECT) | \ - SetBits(_BlockIOSelect, BLOCK_SELECT | MM_IO_SELECT)) -#define SparseIOTag(_IOSelect) IOPortTag(_IOSelect, 0) -#define BlockIOTag(_IOSelect) IOPortTag(0, _IOSelect) +#define IOPortTag(_SparseIOSelect, _BlockIOSelect) \ + (SetBits(_SparseIOSelect, SPARSE_IO_SELECT) | \ + SetBits(_BlockIOSelect, BLOCK_SELECT | MM_IO_SELECT)) +#define SparseIOTag(_IOSelect) IOPortTag(_IOSelect, 0) +#define BlockIOTag(_IOSelect) IOPortTag(0, _IOSelect) ... -#define OVERLAY_Y_X_START BlockIOTag(0x100u) -#define OVERLAY_Y_X_END BlockIOTag(0x101u) +#define OVERLAY_Y_X_START BlockIOTag(0x100u) +#define OVERLAY_Y_X_END BlockIOTag(0x101u) ... @@ -231,8 +231,8 @@ ... -#define INREG(addr) readl((rage_mmio_base)+addr) -#define OUTREG(addr,val) writel(val, (rage_mmio_base)+addr) +#define INREG(addr) readl((rage_mmio_base)+addr) +#define OUTREG(addr,val) writel(val, (rage_mmio_base)+addr) ... @@ -263,7 +263,7 @@ You will be able to find out there a lots of useful hacking utilities (at location gatos-ati/gatos): gfxdump - Program for dumping graphics chips registers on Linux and Windows 9X. - (it's more useful for Win9x to hack their values). + (it's more useful for Win9x to hack their values). xatitv - For working with tv-in (currently is under hard development) atitvout- For working with tv-out and lot of other stuff. @@ -271,11 +271,11 @@ optimized for movie playback. Please compare: radeon_vid - configures video overlay only once and provides DGA to it. - (doesn't require to be MMX optimized) + (doesn't require to be MMX optimized) gatos and X11 - configures video overlay at every slice of frame, then performs unoptimized copying of source stuff to video memory - often with using CopyMungedData (it's C-analog of YV12_to_YUY2) - since there are lacks in yv12 support. + often with using CopyMungedData (it's C-analog of YV12_to_YUY2) + since there are lacks in yv12 support. (is not MMX optimized that's gladly accepted, but probably will be never optimized due portability).
--- a/drivers/mga_vid.c Mon Apr 12 08:03:39 2010 +0000 +++ b/drivers/mga_vid.c Mon Apr 12 10:56:17 2010 +0000 @@ -131,130 +131,130 @@ static unsigned long simple_strtoul(const char *cp,char **endp,unsigned int base) { - unsigned long result = 0,value; + unsigned long result = 0,value; - if (!base) { - base = 10; - if (*cp == '0') { - base = 8; - cp++; - if ((*cp == 'x') && isxdigit(cp[1])) { - cp++; - base = 16; - } - } + if (!base) { + base = 10; + if (*cp == '0') { + base = 8; + cp++; + if ((*cp == 'x') && isxdigit(cp[1])) { + cp++; + base = 16; + } } - while (isxdigit(*cp) && (value = isdigit(*cp) ? *cp-'0' : (islower(*cp) - ? toupper(*cp) : *cp)-'A'+10) < base) { - result = result*base + value; - cp++; - } - if (endp) - *endp = (char *)cp; - return result; + } + while (isxdigit(*cp) && (value = isdigit(*cp) ? *cp-'0' : (islower(*cp) + ? toupper(*cp) : *cp)-'A'+10) < base) { + result = result*base + value; + cp++; + } + if (endp) + *endp = (char *)cp; + return result; } static long simple_strtol(const char *cp,char **endp,unsigned int base) { - if(*cp=='-') - return -simple_strtoul(cp+1,endp,base); - return simple_strtoul(cp,endp,base); + if(*cp=='-') + return -simple_strtoul(cp+1,endp,base); + return simple_strtoul(cp,endp,base); } #endif typedef struct bes_registers_s { - //BES Control - uint32_t besctl; - //BES Global control - uint32_t besglobctl; - //Luma control (brightness and contrast) - uint32_t beslumactl; - //Line pitch - uint32_t bespitch; + //BES Control + uint32_t besctl; + //BES Global control + uint32_t besglobctl; + //Luma control (brightness and contrast) + uint32_t beslumactl; + //Line pitch + uint32_t bespitch; - //Buffer A-1 Chroma 3 plane org - uint32_t besa1c3org; - //Buffer A-1 Chroma org - uint32_t besa1corg; - //Buffer A-1 Luma org - uint32_t besa1org; + //Buffer A-1 Chroma 3 plane org + uint32_t besa1c3org; + //Buffer A-1 Chroma org + uint32_t besa1corg; + //Buffer A-1 Luma org + uint32_t besa1org; - //Buffer A-2 Chroma 3 plane org - uint32_t besa2c3org; - //Buffer A-2 Chroma org - uint32_t besa2corg; - //Buffer A-2 Luma org - uint32_t besa2org; + //Buffer A-2 Chroma 3 plane org + uint32_t besa2c3org; + //Buffer A-2 Chroma org + uint32_t besa2corg; + //Buffer A-2 Luma org + uint32_t besa2org; - //Buffer B-1 Chroma 3 plane org - uint32_t besb1c3org; - //Buffer B-1 Chroma org - uint32_t besb1corg; - //Buffer B-1 Luma org - uint32_t besb1org; + //Buffer B-1 Chroma 3 plane org + uint32_t besb1c3org; + //Buffer B-1 Chroma org + uint32_t besb1corg; + //Buffer B-1 Luma org + uint32_t besb1org; - //Buffer B-2 Chroma 3 plane org - uint32_t besb2c3org; - //Buffer B-2 Chroma org - uint32_t besb2corg; - //Buffer B-2 Luma org - uint32_t besb2org; + //Buffer B-2 Chroma 3 plane org + uint32_t besb2c3org; + //Buffer B-2 Chroma org + uint32_t besb2corg; + //Buffer B-2 Luma org + uint32_t besb2org; - //BES Horizontal coord - uint32_t beshcoord; - //BES Horizontal inverse scaling [5.14] - uint32_t beshiscal; - //BES Horizontal source start [10.14] (for scaling) - uint32_t beshsrcst; - //BES Horizontal source ending [10.14] (for scaling) - uint32_t beshsrcend; - //BES Horizontal source last - uint32_t beshsrclst; + //BES Horizontal coord + uint32_t beshcoord; + //BES Horizontal inverse scaling [5.14] + uint32_t beshiscal; + //BES Horizontal source start [10.14] (for scaling) + uint32_t beshsrcst; + //BES Horizontal source ending [10.14] (for scaling) + uint32_t beshsrcend; + //BES Horizontal source last + uint32_t beshsrclst; - //BES Vertical coord - uint32_t besvcoord; - //BES Vertical inverse scaling [5.14] - uint32_t besviscal; - //BES Field 1 vertical source last position - uint32_t besv1srclst; - //BES Field 1 weight start - uint32_t besv1wght; - //BES Field 2 vertical source last position - uint32_t besv2srclst; - //BES Field 2 weight start - uint32_t besv2wght; + //BES Vertical coord + uint32_t besvcoord; + //BES Vertical inverse scaling [5.14] + uint32_t besviscal; + //BES Field 1 vertical source last position + uint32_t besv1srclst; + //BES Field 1 weight start + uint32_t besv1wght; + //BES Field 2 vertical source last position + uint32_t besv2srclst; + //BES Field 2 weight start + uint32_t besv2wght; - //configurable stuff - int blackie; + //configurable stuff + int blackie; } bes_registers_t; #ifdef CRTC2 typedef struct crtc2_registers_s { - uint32_t c2ctl; - uint32_t c2datactl; - uint32_t c2misc; - uint32_t c2hparam; - uint32_t c2hsync; - uint32_t c2offset; - uint32_t c2pl2startadd0; - uint32_t c2pl2startadd1; - uint32_t c2pl3startadd0; - uint32_t c2pl3startadd1; - uint32_t c2preload; - uint32_t c2spicstartadd0; - uint32_t c2spicstartadd1; - uint32_t c2startadd0; - uint32_t c2startadd1; - uint32_t c2subpiclut; - uint32_t c2vcount; - uint32_t c2vparam; - uint32_t c2vsync; + uint32_t c2ctl; + uint32_t c2datactl; + uint32_t c2misc; + uint32_t c2hparam; + uint32_t c2hsync; + uint32_t c2offset; + uint32_t c2pl2startadd0; + uint32_t c2pl2startadd1; + uint32_t c2pl3startadd0; + uint32_t c2pl3startadd1; + uint32_t c2preload; + uint32_t c2spicstartadd0; + uint32_t c2spicstartadd1; + uint32_t c2startadd0; + uint32_t c2startadd1; + uint32_t c2subpiclut; + uint32_t c2vcount; + uint32_t c2vparam; + uint32_t c2vsync; } crtc2_registers_t; #endif @@ -348,10 +348,10 @@ #define BESVCOORD 0x3d2c #define BESSTATUS 0x3dc4 -#define CRTCX 0x1fd4 -#define CRTCD 0x1fd5 -#define IEN 0x1e1c -#define ICLEAR 0x1e18 +#define CRTCX 0x1fd4 +#define CRTCD 0x1fd5 +#define IEN 0x1e1c +#define ICLEAR 0x1e18 #define STATUS 0x1e14 @@ -365,42 +365,42 @@ // local devfs handle for /dev/mga_vidX #ifdef CONFIG_DEVFS_FS - devfs_handle_t dev_handle; + devfs_handle_t dev_handle; #endif - uint8_t *param_buff; // buffer for read() - uint32_t param_buff_size; - uint32_t param_buff_len; - bes_registers_t regs; + uint8_t *param_buff; // buffer for read() + uint32_t param_buff_size; + uint32_t param_buff_len; + bes_registers_t regs; #ifdef CRTC2 - crtc2_registers_t cregs; + crtc2_registers_t cregs; #endif - uint32_t vid_in_use; - uint32_t is_g400; - uint32_t vid_src_ready; - uint32_t vid_overlay_on; + uint32_t vid_in_use; + uint32_t is_g400; + uint32_t vid_src_ready; + uint32_t vid_overlay_on; - uint8_t *mmio_base; - uint32_t mem_base; - int src_base; // YUV buffer position in video memory - uint32_t ram_size; // how much megabytes videoram we have - uint32_t top_reserved; // reserved space for console font (matroxfb + fastfont) + uint8_t *mmio_base; + uint32_t mem_base; + int src_base; // YUV buffer position in video memory + uint32_t ram_size; // how much megabytes videoram we have + uint32_t top_reserved; // reserved space for console font (matroxfb + fastfont) - int brightness; // initial brightness - int contrast; // initial contrast + int brightness; // initial brightness + int contrast; // initial contrast - struct pci_dev *pci_dev; + struct pci_dev *pci_dev; - mga_vid_config_t config; - int configured; // set to 1 when the card is configured over ioctl + mga_vid_config_t config; + int configured; // set to 1 when the card is configured over ioctl - int colkey_saved; - int colkey_on; - unsigned char colkey_color[4]; - unsigned char colkey_mask[4]; + int colkey_saved; + int colkey_on; + unsigned char colkey_color[4]; + unsigned char colkey_mask[4]; - int irq; // = -1 - int next_frame; + int irq; // = -1 + int next_frame; } mga_card_t; #define MGA_MAX_CARDS 16 @@ -428,48 +428,48 @@ { switch(frame) { case 0: - card->cregs.c2pl2startadd0=card->regs.besa1corg; - card->cregs.c2pl3startadd0=card->regs.besa1c3org; - card->cregs.c2startadd0=card->regs.besa1org; - break; + card->cregs.c2pl2startadd0=card->regs.besa1corg; + card->cregs.c2pl3startadd0=card->regs.besa1c3org; + card->cregs.c2startadd0=card->regs.besa1org; + break; case 1: - card->cregs.c2pl2startadd0=card->regs.besa2corg; - card->cregs.c2pl3startadd0=card->regs.besa2c3org; - card->cregs.c2startadd0=card->regs.besa2org; - break; + card->cregs.c2pl2startadd0=card->regs.besa2corg; + card->cregs.c2pl3startadd0=card->regs.besa2c3org; + card->cregs.c2startadd0=card->regs.besa2org; + break; case 2: - card->cregs.c2pl2startadd0=card->regs.besb1corg; - card->cregs.c2pl3startadd0=card->regs.besb1c3org; - card->cregs.c2startadd0=card->regs.besb1org; - break; + card->cregs.c2pl2startadd0=card->regs.besb1corg; + card->cregs.c2pl3startadd0=card->regs.besb1c3org; + card->cregs.c2startadd0=card->regs.besb1org; + break; case 3: - card->cregs.c2pl2startadd0=card->regs.besb2corg; - card->cregs.c2pl3startadd0=card->regs.besb2c3org; - card->cregs.c2startadd0=card->regs.besb2org; - break; + card->cregs.c2pl2startadd0=card->regs.besb2corg; + card->cregs.c2pl3startadd0=card->regs.besb2c3org; + card->cregs.c2startadd0=card->regs.besb2org; + break; } - writel(card->cregs.c2startadd0, card->mmio_base + C2STARTADD0); - writel(card->cregs.c2pl2startadd0, card->mmio_base + C2PL2STARTADD0); - writel(card->cregs.c2pl3startadd0, card->mmio_base + C2PL3STARTADD0); + writel(card->cregs.c2startadd0, card->mmio_base + C2STARTADD0); + writel(card->cregs.c2pl2startadd0, card->mmio_base + C2PL2STARTADD0); + writel(card->cregs.c2pl3startadd0, card->mmio_base + C2PL3STARTADD0); } #endif static void mga_vid_frame_sel(mga_card_t * card, int frame) { if ( card->irq != -1 ) { - card->next_frame=frame; + card->next_frame=frame; } else { - //we don't need the vcount protection as we're only hitting - //one register (and it doesn't seem to be double buffered) - card->regs.besctl = (card->regs.besctl & ~0x07000000) + (frame << 25); - writel( card->regs.besctl, card->mmio_base + BESCTL ); + //we don't need the vcount protection as we're only hitting + //one register (and it doesn't seem to be double buffered) + card->regs.besctl = (card->regs.besctl & ~0x07000000) + (frame << 25); + writel( card->regs.besctl, card->mmio_base + BESCTL ); -// writel( card->regs.besglobctl + ((readl(card->mmio_base + VCOUNT)+2)<<16), - writel( card->regs.besglobctl + (MGA_VSYNC_POS<<16), - card->mmio_base + BESGLOBCTL); +// writel( card->regs.besglobctl + ((readl(card->mmio_base + VCOUNT)+2)<<16), + writel( card->regs.besglobctl + (MGA_VSYNC_POS<<16), + card->mmio_base + BESGLOBCTL); #ifdef CRTC2 - crtc2_frame_sel(card, frame); + crtc2_frame_sel(card, frame); #endif } @@ -478,236 +478,235 @@ static void mga_vid_write_regs(mga_card_t * card, int restore) { - //Make sure internal registers don't get updated until we're done - writel( (readl(card->mmio_base + VCOUNT)-1)<<16, - card->mmio_base + BESGLOBCTL); + //Make sure internal registers don't get updated until we're done + writel( (readl(card->mmio_base + VCOUNT)-1)<<16, + card->mmio_base + BESGLOBCTL); - // color or coordinate keying + // color or coordinate keying - if(restore && card->colkey_saved){ - // restore it - card->colkey_saved=0; + if(restore && card->colkey_saved){ + // restore it + card->colkey_saved=0; #ifdef MP_DEBUG - printk("mga_vid: Restoring colorkey (ON: %d %02X:%02X:%02X)\n", - card->colkey_on,card->colkey_color[0],card->colkey_color[1],card->colkey_color[2]); + printk("mga_vid: Restoring colorkey (ON: %d %02X:%02X:%02X)\n", + card->colkey_on,card->colkey_color[0],card->colkey_color[1],card->colkey_color[2]); #endif - // Set color key registers: - writeb( XKEYOPMODE, card->mmio_base + PALWTADD); - writeb( card->colkey_on, card->mmio_base + X_DATAREG); + // Set color key registers: + writeb( XKEYOPMODE, card->mmio_base + PALWTADD); + writeb( card->colkey_on, card->mmio_base + X_DATAREG); - writeb( XCOLKEY0RED, card->mmio_base + PALWTADD); - writeb( card->colkey_color[0], card->mmio_base + X_DATAREG); - writeb( XCOLKEY0GREEN, card->mmio_base + PALWTADD); - writeb( card->colkey_color[1], card->mmio_base + X_DATAREG); - writeb( XCOLKEY0BLUE, card->mmio_base + PALWTADD); - writeb( card->colkey_color[2], card->mmio_base + X_DATAREG); - writeb( X_COLKEY, card->mmio_base + PALWTADD); - writeb( card->colkey_color[3], card->mmio_base + X_DATAREG); + writeb( XCOLKEY0RED, card->mmio_base + PALWTADD); + writeb( card->colkey_color[0], card->mmio_base + X_DATAREG); + writeb( XCOLKEY0GREEN, card->mmio_base + PALWTADD); + writeb( card->colkey_color[1], card->mmio_base + X_DATAREG); + writeb( XCOLKEY0BLUE, card->mmio_base + PALWTADD); + writeb( card->colkey_color[2], card->mmio_base + X_DATAREG); + writeb( X_COLKEY, card->mmio_base + PALWTADD); + writeb( card->colkey_color[3], card->mmio_base + X_DATAREG); - writeb( XCOLMSK0RED, card->mmio_base + PALWTADD); - writeb( card->colkey_mask[0], card->mmio_base + X_DATAREG); - writeb( XCOLMSK0GREEN, card->mmio_base + PALWTADD); - writeb( card->colkey_mask[1], card->mmio_base + X_DATAREG); - writeb( XCOLMSK0BLUE, card->mmio_base + PALWTADD); - writeb( card->colkey_mask[2], card->mmio_base + X_DATAREG); - writeb( XCOLMSK, card->mmio_base + PALWTADD); - writeb( card->colkey_mask[3], card->mmio_base + X_DATAREG); + writeb( XCOLMSK0RED, card->mmio_base + PALWTADD); + writeb( card->colkey_mask[0], card->mmio_base + X_DATAREG); + writeb( XCOLMSK0GREEN, card->mmio_base + PALWTADD); + writeb( card->colkey_mask[1], card->mmio_base + X_DATAREG); + writeb( XCOLMSK0BLUE, card->mmio_base + PALWTADD); + writeb( card->colkey_mask[2], card->mmio_base + X_DATAREG); + writeb( XCOLMSK, card->mmio_base + PALWTADD); + writeb( card->colkey_mask[3], card->mmio_base + X_DATAREG); - } else if(!card->colkey_saved){ - // save it - card->colkey_saved=1; - // Get color key registers: - writeb( XKEYOPMODE, card->mmio_base + PALWTADD); - card->colkey_on=(unsigned char)readb(card->mmio_base + X_DATAREG) & 1; + } else if(!card->colkey_saved){ + // save it + card->colkey_saved=1; + // Get color key registers: + writeb( XKEYOPMODE, card->mmio_base + PALWTADD); + card->colkey_on=(unsigned char)readb(card->mmio_base + X_DATAREG) & 1; - writeb( XCOLKEY0RED, card->mmio_base + PALWTADD); - card->colkey_color[0]=(unsigned char)readb(card->mmio_base + X_DATAREG); - writeb( XCOLKEY0GREEN, card->mmio_base + PALWTADD); - card->colkey_color[1]=(unsigned char)readb(card->mmio_base + X_DATAREG); - writeb( XCOLKEY0BLUE, card->mmio_base + PALWTADD); - card->colkey_color[2]=(unsigned char)readb(card->mmio_base + X_DATAREG); - writeb( X_COLKEY, card->mmio_base + PALWTADD); - card->colkey_color[3]=(unsigned char)readb(card->mmio_base + X_DATAREG); + writeb( XCOLKEY0RED, card->mmio_base + PALWTADD); + card->colkey_color[0]=(unsigned char)readb(card->mmio_base + X_DATAREG); + writeb( XCOLKEY0GREEN, card->mmio_base + PALWTADD); + card->colkey_color[1]=(unsigned char)readb(card->mmio_base + X_DATAREG); + writeb( XCOLKEY0BLUE, card->mmio_base + PALWTADD); + card->colkey_color[2]=(unsigned char)readb(card->mmio_base + X_DATAREG); + writeb( X_COLKEY, card->mmio_base + PALWTADD); + card->colkey_color[3]=(unsigned char)readb(card->mmio_base + X_DATAREG); - writeb( XCOLMSK0RED, card->mmio_base + PALWTADD); - card->colkey_mask[0]=(unsigned char)readb(card->mmio_base + X_DATAREG); - writeb( XCOLMSK0GREEN, card->mmio_base + PALWTADD); - card->colkey_mask[1]=(unsigned char)readb(card->mmio_base + X_DATAREG); - writeb( XCOLMSK0BLUE, card->mmio_base + PALWTADD); - card->colkey_mask[2]=(unsigned char)readb(card->mmio_base + X_DATAREG); - writeb( XCOLMSK, card->mmio_base + PALWTADD); - card->colkey_mask[3]=(unsigned char)readb(card->mmio_base + X_DATAREG); + writeb( XCOLMSK0RED, card->mmio_base + PALWTADD); + card->colkey_mask[0]=(unsigned char)readb(card->mmio_base + X_DATAREG); + writeb( XCOLMSK0GREEN, card->mmio_base + PALWTADD); + card->colkey_mask[1]=(unsigned char)readb(card->mmio_base + X_DATAREG); + writeb( XCOLMSK0BLUE, card->mmio_base + PALWTADD); + card->colkey_mask[2]=(unsigned char)readb(card->mmio_base + X_DATAREG); + writeb( XCOLMSK, card->mmio_base + PALWTADD); + card->colkey_mask[3]=(unsigned char)readb(card->mmio_base + X_DATAREG); #ifdef MP_DEBUG - printk("mga_vid: Saved colorkey (ON: %d %02X:%02X:%02X)\n", - card->colkey_on, card->colkey_color[0], card->colkey_color[1], card->colkey_color[2]); + printk("mga_vid: Saved colorkey (ON: %d %02X:%02X:%02X)\n", + card->colkey_on, card->colkey_color[0], card->colkey_color[1], card->colkey_color[2]); #endif - } + } -if(!restore){ - writeb( XKEYOPMODE, card->mmio_base + PALWTADD); - writeb( card->config.colkey_on, card->mmio_base + X_DATAREG); - if ( card->config.colkey_on ) - { - uint32_t r=0, g=0, b=0; + if(!restore){ + writeb( XKEYOPMODE, card->mmio_base + PALWTADD); + writeb( card->config.colkey_on, card->mmio_base + X_DATAREG); + if ( card->config.colkey_on ) + { + uint32_t r=0, g=0, b=0; - writeb( XMULCTRL, card->mmio_base + PALWTADD); - switch (readb (card->mmio_base + X_DATAREG)) - { - case BPP_8: - /* Need to look up the color index, just using color 0 for now. */ - break; + writeb( XMULCTRL, card->mmio_base + PALWTADD); + switch (readb (card->mmio_base + X_DATAREG)) + { + case BPP_8: + /* Need to look up the color index, just using color 0 for now. */ + break; - case BPP_15: - r = card->config.colkey_red >> 3; - g = card->config.colkey_green >> 3; - b = card->config.colkey_blue >> 3; - break; + case BPP_15: + r = card->config.colkey_red >> 3; + g = card->config.colkey_green >> 3; + b = card->config.colkey_blue >> 3; + break; - case BPP_16: - r = card->config.colkey_red >> 3; - g = card->config.colkey_green >> 2; - b = card->config.colkey_blue >> 3; - break; + case BPP_16: + r = card->config.colkey_red >> 3; + g = card->config.colkey_green >> 2; + b = card->config.colkey_blue >> 3; + break; - case BPP_24: - case BPP_32_DIR: - case BPP_32_PAL: - r = card->config.colkey_red; - g = card->config.colkey_green; - b = card->config.colkey_blue; - break; - } + case BPP_24: + case BPP_32_DIR: + case BPP_32_PAL: + r = card->config.colkey_red; + g = card->config.colkey_green; + b = card->config.colkey_blue; + break; + } - // Disable color keying on alpha channel - writeb( XCOLMSK, card->mmio_base + PALWTADD); - writeb( 0x00, card->mmio_base + X_DATAREG); - writeb( X_COLKEY, card->mmio_base + PALWTADD); - writeb( 0x00, card->mmio_base + X_DATAREG); + // Disable color keying on alpha channel + writeb( XCOLMSK, card->mmio_base + PALWTADD); + writeb( 0x00, card->mmio_base + X_DATAREG); + writeb( X_COLKEY, card->mmio_base + PALWTADD); + writeb( 0x00, card->mmio_base + X_DATAREG); - // Set up color key registers - writeb( XCOLKEY0RED, card->mmio_base + PALWTADD); - writeb( r, card->mmio_base + X_DATAREG); - writeb( XCOLKEY0GREEN, card->mmio_base + PALWTADD); - writeb( g, card->mmio_base + X_DATAREG); - writeb( XCOLKEY0BLUE, card->mmio_base + PALWTADD); - writeb( b, card->mmio_base + X_DATAREG); + // Set up color key registers + writeb( XCOLKEY0RED, card->mmio_base + PALWTADD); + writeb( r, card->mmio_base + X_DATAREG); + writeb( XCOLKEY0GREEN, card->mmio_base + PALWTADD); + writeb( g, card->mmio_base + X_DATAREG); + writeb( XCOLKEY0BLUE, card->mmio_base + PALWTADD); + writeb( b, card->mmio_base + X_DATAREG); - // Set up color key mask registers - writeb( XCOLMSK0RED, card->mmio_base + PALWTADD); - writeb( 0xff, card->mmio_base + X_DATAREG); - writeb( XCOLMSK0GREEN, card->mmio_base + PALWTADD); - writeb( 0xff, card->mmio_base + X_DATAREG); - writeb( XCOLMSK0BLUE, card->mmio_base + PALWTADD); - writeb( 0xff, card->mmio_base + X_DATAREG); - } + // Set up color key mask registers + writeb( XCOLMSK0RED, card->mmio_base + PALWTADD); + writeb( 0xff, card->mmio_base + X_DATAREG); + writeb( XCOLMSK0GREEN, card->mmio_base + PALWTADD); + writeb( 0xff, card->mmio_base + X_DATAREG); + writeb( XCOLMSK0BLUE, card->mmio_base + PALWTADD); + writeb( 0xff, card->mmio_base + X_DATAREG); + } + } -} - - // Backend Scaler - writel( card->regs.besctl, card->mmio_base + BESCTL); - if(card->is_g400) - writel( card->regs.beslumactl, card->mmio_base + BESLUMACTL); - writel( card->regs.bespitch, card->mmio_base + BESPITCH); + // Backend Scaler + writel( card->regs.besctl, card->mmio_base + BESCTL); + if(card->is_g400) + writel( card->regs.beslumactl, card->mmio_base + BESLUMACTL); + writel( card->regs.bespitch, card->mmio_base + BESPITCH); - writel( card->regs.besa1org, card->mmio_base + BESA1ORG); - writel( card->regs.besa1corg, card->mmio_base + BESA1CORG); - writel( card->regs.besa2org, card->mmio_base + BESA2ORG); - writel( card->regs.besa2corg, card->mmio_base + BESA2CORG); - writel( card->regs.besb1org, card->mmio_base + BESB1ORG); - writel( card->regs.besb1corg, card->mmio_base + BESB1CORG); - writel( card->regs.besb2org, card->mmio_base + BESB2ORG); - writel( card->regs.besb2corg, card->mmio_base + BESB2CORG); - if(card->is_g400) - { - writel( card->regs.besa1c3org, card->mmio_base + BESA1C3ORG); - writel( card->regs.besa2c3org, card->mmio_base + BESA2C3ORG); - writel( card->regs.besb1c3org, card->mmio_base + BESB1C3ORG); - writel( card->regs.besb2c3org, card->mmio_base + BESB2C3ORG); - } + writel( card->regs.besa1org, card->mmio_base + BESA1ORG); + writel( card->regs.besa1corg, card->mmio_base + BESA1CORG); + writel( card->regs.besa2org, card->mmio_base + BESA2ORG); + writel( card->regs.besa2corg, card->mmio_base + BESA2CORG); + writel( card->regs.besb1org, card->mmio_base + BESB1ORG); + writel( card->regs.besb1corg, card->mmio_base + BESB1CORG); + writel( card->regs.besb2org, card->mmio_base + BESB2ORG); + writel( card->regs.besb2corg, card->mmio_base + BESB2CORG); + if(card->is_g400) + { + writel( card->regs.besa1c3org, card->mmio_base + BESA1C3ORG); + writel( card->regs.besa2c3org, card->mmio_base + BESA2C3ORG); + writel( card->regs.besb1c3org, card->mmio_base + BESB1C3ORG); + writel( card->regs.besb2c3org, card->mmio_base + BESB2C3ORG); + } - writel( card->regs.beshcoord, card->mmio_base + BESHCOORD); - writel( card->regs.beshiscal, card->mmio_base + BESHISCAL); - writel( card->regs.beshsrcst, card->mmio_base + BESHSRCST); - writel( card->regs.beshsrcend, card->mmio_base + BESHSRCEND); - writel( card->regs.beshsrclst, card->mmio_base + BESHSRCLST); + writel( card->regs.beshcoord, card->mmio_base + BESHCOORD); + writel( card->regs.beshiscal, card->mmio_base + BESHISCAL); + writel( card->regs.beshsrcst, card->mmio_base + BESHSRCST); + writel( card->regs.beshsrcend, card->mmio_base + BESHSRCEND); + writel( card->regs.beshsrclst, card->mmio_base + BESHSRCLST); - writel( card->regs.besvcoord, card->mmio_base + BESVCOORD); - writel( card->regs.besviscal, card->mmio_base + BESVISCAL); + writel( card->regs.besvcoord, card->mmio_base + BESVCOORD); + writel( card->regs.besviscal, card->mmio_base + BESVISCAL); - writel( card->regs.besv1srclst, card->mmio_base + BESV1SRCLST); - writel( card->regs.besv1wght, card->mmio_base + BESV1WGHT); - writel( card->regs.besv2srclst, card->mmio_base + BESV2SRCLST); - writel( card->regs.besv2wght, card->mmio_base + BESV2WGHT); + writel( card->regs.besv1srclst, card->mmio_base + BESV1SRCLST); + writel( card->regs.besv1wght, card->mmio_base + BESV1WGHT); + writel( card->regs.besv2srclst, card->mmio_base + BESV2SRCLST); + writel( card->regs.besv2wght, card->mmio_base + BESV2WGHT); - //update the registers somewhere between 1 and 2 frames from now. - writel( card->regs.besglobctl + ((readl(card->mmio_base + VCOUNT)+2)<<16), - card->mmio_base + BESGLOBCTL); + //update the registers somewhere between 1 and 2 frames from now. + writel( card->regs.besglobctl + ((readl(card->mmio_base + VCOUNT)+2)<<16), + card->mmio_base + BESGLOBCTL); #if 0 - printk(KERN_DEBUG "mga_vid: wrote BES registers\n"); - printk(KERN_DEBUG "mga_vid: BESCTL = 0x%08x\n", - readl(card->mmio_base + BESCTL)); - printk(KERN_DEBUG "mga_vid: BESGLOBCTL = 0x%08x\n", - readl(card->mmio_base + BESGLOBCTL)); - printk(KERN_DEBUG "mga_vid: BESSTATUS= 0x%08x\n", - readl(card->mmio_base + BESSTATUS)); + printk(KERN_DEBUG "mga_vid: wrote BES registers\n"); + printk(KERN_DEBUG "mga_vid: BESCTL = 0x%08x\n", + readl(card->mmio_base + BESCTL)); + printk(KERN_DEBUG "mga_vid: BESGLOBCTL = 0x%08x\n", + readl(card->mmio_base + BESGLOBCTL)); + printk(KERN_DEBUG "mga_vid: BESSTATUS= 0x%08x\n", + readl(card->mmio_base + BESSTATUS)); #endif #ifdef CRTC2 -// printk("c2ctl:0x%08x c2datactl:0x%08x\n", readl(card->mmio_base + C2CTL), readl(card->mmio_base + C2DATACTL)); -// printk("c2misc:0x%08x\n", readl(card->mmio_base + C2MISC)); -// printk("c2ctl:0x%08x c2datactl:0x%08x\n", card->cregs.c2ctl, card->cregs.c2datactl); +// printk("c2ctl:0x%08x c2datactl:0x%08x\n", readl(card->mmio_base + C2CTL), readl(card->mmio_base + C2DATACTL)); +// printk("c2misc:0x%08x\n", readl(card->mmio_base + C2MISC)); +// printk("c2ctl:0x%08x c2datactl:0x%08x\n", card->cregs.c2ctl, card->cregs.c2datactl); -// writel(card->cregs.c2ctl, card->mmio_base + C2CTL); +// writel(card->cregs.c2ctl, card->mmio_base + C2CTL); - writel(((readl(card->mmio_base + C2CTL) & ~0x03e00000) + (card->cregs.c2ctl & 0x03e00000)), card->mmio_base + C2CTL); - writel(((readl(card->mmio_base + C2DATACTL) & ~0x000000ff) + (card->cregs.c2datactl & 0x000000ff)), card->mmio_base + C2DATACTL); - // ctrc2 - // disable CRTC2 acording to specs -// writel(card->cregs.c2ctl & 0xfffffff0, card->mmio_base + C2CTL); + writel(((readl(card->mmio_base + C2CTL) & ~0x03e00000) + (card->cregs.c2ctl & 0x03e00000)), card->mmio_base + C2CTL); + writel(((readl(card->mmio_base + C2DATACTL) & ~0x000000ff) + (card->cregs.c2datactl & 0x000000ff)), card->mmio_base + C2DATACTL); + // ctrc2 + // disable CRTC2 acording to specs +// writel(card->cregs.c2ctl & 0xfffffff0, card->mmio_base + C2CTL); // je to treba ??? -// writeb((readb(card->mmio_base + XMISCCTRL) & 0x19) | 0xa2, card->mmio_base + XMISCCTRL); // MAFC - mfcsel & vdoutsel -// writeb((readb(card->mmio_base + XMISCCTRL) & 0x19) | 0x92, card->mmio_base + XMISCCTRL); -// writeb((readb(card->mmio_base + XMISCCTRL) & ~0xe9) + 0xa2, card->mmio_base + XMISCCTRL); -// writel(card->cregs.c2datactl, card->mmio_base + C2DATACTL); -// writel(card->cregs.c2hparam, card->mmio_base + C2HPARAM); -// writel(card->cregs.c2hsync, card->mmio_base + C2HSYNC); -// writel(card->cregs.c2vparam, card->mmio_base + C2VPARAM); -// writel(card->cregs.c2vsync, card->mmio_base + C2VSYNC); - writel(card->cregs.c2misc, card->mmio_base + C2MISC); +// writeb((readb(card->mmio_base + XMISCCTRL) & 0x19) | 0xa2, card->mmio_base + XMISCCTRL); // MAFC - mfcsel & vdoutsel +// writeb((readb(card->mmio_base + XMISCCTRL) & 0x19) | 0x92, card->mmio_base + XMISCCTRL); +// writeb((readb(card->mmio_base + XMISCCTRL) & ~0xe9) + 0xa2, card->mmio_base + XMISCCTRL); +// writel(card->cregs.c2datactl, card->mmio_base + C2DATACTL); +// writel(card->cregs.c2hparam, card->mmio_base + C2HPARAM); +// writel(card->cregs.c2hsync, card->mmio_base + C2HSYNC); +// writel(card->cregs.c2vparam, card->mmio_base + C2VPARAM); +// writel(card->cregs.c2vsync, card->mmio_base + C2VSYNC); + writel(card->cregs.c2misc, card->mmio_base + C2MISC); #ifdef MP_DEBUG - printk("c2offset = %d\n",card->cregs.c2offset); + printk("c2offset = %d\n",card->cregs.c2offset); #endif - writel(card->cregs.c2offset, card->mmio_base + C2OFFSET); - writel(card->cregs.c2startadd0, card->mmio_base + C2STARTADD0); -// writel(card->cregs.c2startadd1, card->mmio_base + C2STARTADD1); - writel(card->cregs.c2pl2startadd0, card->mmio_base + C2PL2STARTADD0); -// writel(card->cregs.c2pl2startadd1, card->mmio_base + C2PL2STARTADD1); - writel(card->cregs.c2pl3startadd0, card->mmio_base + C2PL3STARTADD0); -// writel(card->cregs.c2pl3startadd1, card->mmio_base + C2PL3STARTADD1); - writel(card->cregs.c2spicstartadd0, card->mmio_base + C2SPICSTARTADD0); -// writel(card->cregs.c2spicstartadd1, card->mmio_base + C2SPICSTARTADD1); -// writel(card->cregs.c2subpiclut, card->mmio_base + C2SUBPICLUT); -// writel(card->cregs.c2preload, card->mmio_base + C2PRELOAD); - // finaly enable everything -// writel(card->cregs.c2ctl, card->mmio_base + C2CTL); -// printk("c2ctl:0x%08x c2datactl:0x%08x\n",readl(card->mmio_base + C2CTL),readl(card->mmio_base + C2DATACTL)); -// printk("c2misc:0x%08x\n", readl(card->mmio_base + C2MISC)); + writel(card->cregs.c2offset, card->mmio_base + C2OFFSET); + writel(card->cregs.c2startadd0, card->mmio_base + C2STARTADD0); +// writel(card->cregs.c2startadd1, card->mmio_base + C2STARTADD1); + writel(card->cregs.c2pl2startadd0, card->mmio_base + C2PL2STARTADD0); +// writel(card->cregs.c2pl2startadd1, card->mmio_base + C2PL2STARTADD1); + writel(card->cregs.c2pl3startadd0, card->mmio_base + C2PL3STARTADD0); +// writel(card->cregs.c2pl3startadd1, card->mmio_base + C2PL3STARTADD1); + writel(card->cregs.c2spicstartadd0, card->mmio_base + C2SPICSTARTADD0); +// writel(card->cregs.c2spicstartadd1, card->mmio_base + C2SPICSTARTADD1); +// writel(card->cregs.c2subpiclut, card->mmio_base + C2SUBPICLUT); +// writel(card->cregs.c2preload, card->mmio_base + C2PRELOAD); + // finaly enable everything +// writel(card->cregs.c2ctl, card->mmio_base + C2CTL); +// printk("c2ctl:0x%08x c2datactl:0x%08x\n",readl(card->mmio_base + C2CTL),readl(card->mmio_base + C2DATACTL)); +// printk("c2misc:0x%08x\n", readl(card->mmio_base + C2MISC)); #endif } static int mga_vid_set_config(mga_card_t * card) { - int x, y, sw, sh, dw, dh; - int besleft, bestop, ifactor, ofsleft, ofstop, baseadrofs, weight, weights; - mga_vid_config_t *config = &card->config; - int frame_size = card->config.frame_size; + int x, y, sw, sh, dw, dh; + int besleft, bestop, ifactor, ofsleft, ofstop, baseadrofs, weight, weights; + mga_vid_config_t *config = &card->config; + int frame_size = card->config.frame_size; #ifdef CRTC2 #define right_margin 0 @@ -717,615 +716,609 @@ #define vsync_len 4 #define upper_margin 39 - unsigned int hdispend = (config->src_width + 31) & ~31; - unsigned int hsyncstart = hdispend + (right_margin & ~7); - unsigned int hsyncend = hsyncstart + (hsync_len & ~7); - unsigned int htotal = hsyncend + (left_margin & ~7); - unsigned int vdispend = config->src_height; - unsigned int vsyncstart = vdispend + lower_margin; - unsigned int vsyncend = vsyncstart + vsync_len; - unsigned int vtotal = vsyncend + upper_margin; + unsigned int hdispend = (config->src_width + 31) & ~31; + unsigned int hsyncstart = hdispend + (right_margin & ~7); + unsigned int hsyncend = hsyncstart + (hsync_len & ~7); + unsigned int htotal = hsyncend + (left_margin & ~7); + unsigned int vdispend = config->src_height; + unsigned int vsyncstart = vdispend + lower_margin; + unsigned int vsyncend = vsyncstart + vsync_len; + unsigned int vtotal = vsyncend + upper_margin; #endif - x = config->x_org; - y = config->y_org; - sw = config->src_width; - sh = config->src_height; - dw = config->dest_width; - dh = config->dest_height; + x = config->x_org; + y = config->y_org; + sw = config->src_width; + sh = config->src_height; + dw = config->dest_width; + dh = config->dest_height; #ifdef MP_DEBUG - printk(KERN_DEBUG "mga_vid: Setting up a %dx%d+%d+%d video window (src %dx%d) format %X\n", - dw, dh, x, y, sw, sh, config->format); + printk(KERN_DEBUG "mga_vid: Setting up a %dx%d+%d+%d video window (src %dx%d) format %X\n", + dw, dh, x, y, sw, sh, config->format); #endif - if(sw<4 || sh<4 || dw<4 || dh<4){ - printk(KERN_ERR "mga_vid: Invalid src/dest dimenstions\n"); - return -1; - } + if(sw<4 || sh<4 || dw<4 || dh<4){ + printk(KERN_ERR "mga_vid: Invalid src/dest dimenstions\n"); + return -1; + } - //FIXME check that window is valid and inside desktop + //FIXME check that window is valid and inside desktop - //Setup the BES registers for a three plane 4:2:0 video source + //Setup the BES registers for a three plane 4:2:0 video source - card->regs.besglobctl = 0; + card->regs.besglobctl = 0; -switch(config->format){ + switch(config->format){ case MGA_VID_FORMAT_YV12: case MGA_VID_FORMAT_I420: case MGA_VID_FORMAT_IYUV: - card->regs.besctl = 1 // BES enabled - + (0<<6) // even start polarity - + (1<<10) // x filtering enabled - + (1<<11) // y filtering enabled - + (1<<16) // chroma upsampling - + (1<<17) // 4:2:0 mode - + (1<<18); // dither enabled + card->regs.besctl = 1 // BES enabled + + (0<<6) // even start polarity + + (1<<10) // x filtering enabled + + (1<<11) // y filtering enabled + + (1<<16) // chroma upsampling + + (1<<17) // 4:2:0 mode + + (1<<18); // dither enabled #if 0 - if(card->is_g400) - { - //zoom disabled, zoom filter disabled, 420 3 plane format, proc amp - //disabled, rgb mode disabled - card->regs.besglobctl = (1<<5); - } - else - { - //zoom disabled, zoom filter disabled, Cb samples in 0246, Cr - //in 1357, BES register update on besvcnt - card->regs.besglobctl = 0; - } + if(card->is_g400) + { + //zoom disabled, zoom filter disabled, 420 3 plane format, proc amp + //disabled, rgb mode disabled + card->regs.besglobctl = (1<<5); + } + else + { + //zoom disabled, zoom filter disabled, Cb samples in 0246, Cr + //in 1357, BES register update on besvcnt + card->regs.besglobctl = 0; + } #endif break; case MGA_VID_FORMAT_YUY2: - card->regs.besctl = 1 // BES enabled - + (0<<6) // even start polarity - + (1<<10) // x filtering enabled - + (1<<11) // y filtering enabled - + (1<<16) // chroma upsampling - + (0<<17) // 4:2:2 mode - + (1<<18); // dither enabled + card->regs.besctl = 1 // BES enabled + + (0<<6) // even start polarity + + (1<<10) // x filtering enabled + + (1<<11) // y filtering enabled + + (1<<16) // chroma upsampling + + (0<<17) // 4:2:2 mode + + (1<<18); // dither enabled - card->regs.besglobctl = 0; // YUY2 format selected + card->regs.besglobctl = 0; // YUY2 format selected break; case MGA_VID_FORMAT_UYVY: - card->regs.besctl = 1 // BES enabled - + (0<<6) // even start polarity - + (1<<10) // x filtering enabled - + (1<<11) // y filtering enabled - + (1<<16) // chroma upsampling - + (0<<17) // 4:2:2 mode - + (1<<18); // dither enabled + card->regs.besctl = 1 // BES enabled + + (0<<6) // even start polarity + + (1<<10) // x filtering enabled + + (1<<11) // y filtering enabled + + (1<<16) // chroma upsampling + + (0<<17) // 4:2:2 mode + + (1<<18); // dither enabled - card->regs.besglobctl = 1<<6; // UYVY format selected + card->regs.besglobctl = 1<<6; // UYVY format selected break; default: - printk(KERN_ERR "mga_vid: Unsupported pixel format: 0x%X\n",config->format); - return -1; + printk(KERN_ERR "mga_vid: Unsupported pixel format: 0x%X\n",config->format); + return -1; } - // setting black&white mode - card->regs.besctl|=(card->regs.blackie<<20); + // setting black&white mode + card->regs.besctl|=(card->regs.blackie<<20); - //Enable contrast and brightness control - card->regs.besglobctl |= (1<<5) + (1<<7); + //Enable contrast and brightness control + card->regs.besglobctl |= (1<<5) + (1<<7); - // brightness (-128..127) && contrast (0..255) - card->regs.beslumactl = (card->brightness << 16) | ((card->contrast+0x80)&0xFFFF); + // brightness (-128..127) && contrast (0..255) + card->regs.beslumactl = (card->brightness << 16) | ((card->contrast+0x80)&0xFFFF); - //Setup destination window boundaries - besleft = x > 0 ? x : 0; - bestop = y > 0 ? y : 0; - card->regs.beshcoord = (besleft<<16) + (x + dw-1); - card->regs.besvcoord = (bestop<<16) + (y + dh-1); + //Setup destination window boundaries + besleft = x > 0 ? x : 0; + bestop = y > 0 ? y : 0; + card->regs.beshcoord = (besleft<<16) + (x + dw-1); + card->regs.besvcoord = (bestop<<16) + (y + dh-1); - //Setup source dimensions - card->regs.beshsrclst = (sw - 1) << 16; - card->regs.bespitch = (sw + 31) & ~31 ; + //Setup source dimensions + card->regs.beshsrclst = (sw - 1) << 16; + card->regs.bespitch = (sw + 31) & ~31 ; - //Setup horizontal scaling - ifactor = ((sw-1)<<14)/(dw-1); - ofsleft = besleft - x; + //Setup horizontal scaling + ifactor = ((sw-1)<<14)/(dw-1); + ofsleft = besleft - x; - card->regs.beshiscal = ifactor<<2; - card->regs.beshsrcst = (ofsleft*ifactor)<<2; - card->regs.beshsrcend = card->regs.beshsrcst + (((dw - ofsleft - 1) * ifactor) << 2); + card->regs.beshiscal = ifactor<<2; + card->regs.beshsrcst = (ofsleft*ifactor)<<2; + card->regs.beshsrcend = card->regs.beshsrcst + (((dw - ofsleft - 1) * ifactor) << 2); - //Setup vertical scaling - ifactor = ((sh-1)<<14)/(dh-1); - ofstop = bestop - y; + //Setup vertical scaling + ifactor = ((sh-1)<<14)/(dh-1); + ofstop = bestop - y; - card->regs.besviscal = ifactor<<2; + card->regs.besviscal = ifactor<<2; - baseadrofs = ( (ofstop * card->regs.besviscal) >>16) * card->regs.bespitch; - //frame_size = ((sw + 31) & ~31) * sh + (((sw + 31) & ~31) * sh) / 2; - card->regs.besa1org = (uint32_t) card->src_base + baseadrofs; - card->regs.besa2org = (uint32_t) card->src_base + baseadrofs + 1*frame_size; - card->regs.besb1org = (uint32_t) card->src_base + baseadrofs + 2*frame_size; - card->regs.besb2org = (uint32_t) card->src_base + baseadrofs + 3*frame_size; + baseadrofs = ( (ofstop * card->regs.besviscal) >>16) * card->regs.bespitch; + //frame_size = ((sw + 31) & ~31) * sh + (((sw + 31) & ~31) * sh) / 2; + card->regs.besa1org = (uint32_t) card->src_base + baseadrofs; + card->regs.besa2org = (uint32_t) card->src_base + baseadrofs + 1*frame_size; + card->regs.besb1org = (uint32_t) card->src_base + baseadrofs + 2*frame_size; + card->regs.besb2org = (uint32_t) card->src_base + baseadrofs + 3*frame_size; -if(config->format==MGA_VID_FORMAT_YV12 - ||config->format==MGA_VID_FORMAT_IYUV - ||config->format==MGA_VID_FORMAT_I420 - ){ + if(config->format==MGA_VID_FORMAT_YV12 + ||config->format==MGA_VID_FORMAT_IYUV + ||config->format==MGA_VID_FORMAT_I420 + ){ // planar YUV frames: - if (card->is_g400) - baseadrofs = ( ( (ofstop * card->regs.besviscal ) / 4 ) >> 16 ) * card->regs.bespitch; - else - baseadrofs = ( ( ( ofstop * card->regs.besviscal ) / 2 ) >> 16 ) * card->regs.bespitch; + if (card->is_g400) + baseadrofs = ( ( (ofstop * card->regs.besviscal ) / 4 ) >> 16 ) * card->regs.bespitch; + else + baseadrofs = ( ( ( ofstop * card->regs.besviscal ) / 2 ) >> 16 ) * card->regs.bespitch; - if(config->format==MGA_VID_FORMAT_YV12 || !card->is_g400){ - card->regs.besa1corg = (uint32_t) card->src_base + baseadrofs + card->regs.bespitch * sh ; - card->regs.besa2corg = (uint32_t) card->src_base + baseadrofs + 1*frame_size + card->regs.bespitch * sh; - card->regs.besb1corg = (uint32_t) card->src_base + baseadrofs + 2*frame_size + card->regs.bespitch * sh; - card->regs.besb2corg = (uint32_t) card->src_base + baseadrofs + 3*frame_size + card->regs.bespitch * sh; - card->regs.besa1c3org = card->regs.besa1corg + ( (card->regs.bespitch * sh) / 4); - card->regs.besa2c3org = card->regs.besa2corg + ( (card->regs.bespitch * sh) / 4); - card->regs.besb1c3org = card->regs.besb1corg + ( (card->regs.bespitch * sh) / 4); - card->regs.besb2c3org = card->regs.besb2corg + ( (card->regs.bespitch * sh) / 4); - } else { - card->regs.besa1c3org = (uint32_t) card->src_base + baseadrofs + card->regs.bespitch * sh ; - card->regs.besa2c3org = (uint32_t) card->src_base + baseadrofs + 1*frame_size + card->regs.bespitch * sh; - card->regs.besb1c3org = (uint32_t) card->src_base + baseadrofs + 2*frame_size + card->regs.bespitch * sh; - card->regs.besb2c3org = (uint32_t) card->src_base + baseadrofs + 3*frame_size + card->regs.bespitch * sh; - card->regs.besa1corg = card->regs.besa1c3org + ((card->regs.bespitch * sh) / 4); - card->regs.besa2corg = card->regs.besa2c3org + ((card->regs.bespitch * sh) / 4); - card->regs.besb1corg = card->regs.besb1c3org + ((card->regs.bespitch * sh) / 4); - card->regs.besb2corg = card->regs.besb2c3org + ((card->regs.bespitch * sh) / 4); + if(config->format==MGA_VID_FORMAT_YV12 || !card->is_g400){ + card->regs.besa1corg = (uint32_t) card->src_base + baseadrofs + card->regs.bespitch * sh ; + card->regs.besa2corg = (uint32_t) card->src_base + baseadrofs + 1*frame_size + card->regs.bespitch * sh; + card->regs.besb1corg = (uint32_t) card->src_base + baseadrofs + 2*frame_size + card->regs.bespitch * sh; + card->regs.besb2corg = (uint32_t) card->src_base + baseadrofs + 3*frame_size + card->regs.bespitch * sh; + card->regs.besa1c3org = card->regs.besa1corg + ( (card->regs.bespitch * sh) / 4); + card->regs.besa2c3org = card->regs.besa2corg + ( (card->regs.bespitch * sh) / 4); + card->regs.besb1c3org = card->regs.besb1corg + ( (card->regs.bespitch * sh) / 4); + card->regs.besb2c3org = card->regs.besb2corg + ( (card->regs.bespitch * sh) / 4); + } else { + card->regs.besa1c3org = (uint32_t) card->src_base + baseadrofs + card->regs.bespitch * sh ; + card->regs.besa2c3org = (uint32_t) card->src_base + baseadrofs + 1*frame_size + card->regs.bespitch * sh; + card->regs.besb1c3org = (uint32_t) card->src_base + baseadrofs + 2*frame_size + card->regs.bespitch * sh; + card->regs.besb2c3org = (uint32_t) card->src_base + baseadrofs + 3*frame_size + card->regs.bespitch * sh; + card->regs.besa1corg = card->regs.besa1c3org + ((card->regs.bespitch * sh) / 4); + card->regs.besa2corg = card->regs.besa2c3org + ((card->regs.bespitch * sh) / 4); + card->regs.besb1corg = card->regs.besb1c3org + ((card->regs.bespitch * sh) / 4); + card->regs.besb2corg = card->regs.besb2c3org + ((card->regs.bespitch * sh) / 4); + } } -} - - weight = ofstop * (card->regs.besviscal >> 2); - weights = weight < 0 ? 1 : 0; - card->regs.besv2wght = card->regs.besv1wght = (weights << 16) + ((weight & 0x3FFF) << 2); - card->regs.besv2srclst = card->regs.besv1srclst = sh - 1 - (((ofstop * card->regs.besviscal) >> 16) & 0x03FF); + weight = ofstop * (card->regs.besviscal >> 2); + weights = weight < 0 ? 1 : 0; + card->regs.besv2wght = card->regs.besv1wght = (weights << 16) + ((weight & 0x3FFF) << 2); + card->regs.besv2srclst = card->regs.besv1srclst = sh - 1 - (((ofstop * card->regs.besviscal) >> 16) & 0x03FF); #ifdef CRTC2 - // pridat hlavni registry - tj. casovani ... + // pridat hlavni registry - tj. casovani ... -switch(config->format){ + switch(config->format){ case MGA_VID_FORMAT_YV12: case MGA_VID_FORMAT_I420: case MGA_VID_FORMAT_IYUV: - card->cregs.c2ctl = 1 // CRTC2 enabled - + (1<<1) // external clock - + (0<<2) // external clock - + (1<<3) // pixel clock enable - not needed ??? - + (0<<4) // high prioryty req - + (1<<5) // high prioryty req - + (0<<6) // high prioryty req - + (1<<8) // high prioryty req max - + (0<<9) // high prioryty req max - + (0<<10) // high prioryty req max - + (0<<20) // CRTC1 to DAC - + (1<<21) // 420 mode - + (1<<22) // 420 mode - + (1<<23) // 420 mode - + (0<<24) // single chroma line for 420 mode - need to be corrected - + (0<<25) /*/ interlace mode - need to be corrected*/ - + (0<<26) // field legth polariry - + (0<<27) // field identification polariry - + (1<<28) // VIDRST detection mode - + (0<<29) // VIDRST detection mode - + (1<<30) // Horizontal counter preload - + (1<<31) // Vertical counter preload - ; - card->cregs.c2datactl = 1 // disable dither - propably not needed, we are already in YUV mode - + (1<<1) // Y filter enable - + (1<<2) // CbCr filter enable - + (0<<3) // subpicture enable (disabled) - + (0<<4) // NTSC enable (disabled - PAL) - + (0<<5) // C2 static subpicture enable (disabled) - + (0<<6) // C2 subpicture offset division (disabled) - + (0<<7) // 422 subformat selection ! -/* + (0<<8) // 15 bpp high alpha - + (0<<9) // 15 bpp high alpha - + (0<<10) // 15 bpp high alpha - + (0<<11) // 15 bpp high alpha - + (0<<12) // 15 bpp high alpha - + (0<<13) // 15 bpp high alpha - + (0<<14) // 15 bpp high alpha - + (0<<15) // 15 bpp high alpha - + (0<<16) // 15 bpp low alpha - + (0<<17) // 15 bpp low alpha - + (0<<18) // 15 bpp low alpha - + (0<<19) // 15 bpp low alpha - + (0<<20) // 15 bpp low alpha - + (0<<21) // 15 bpp low alpha - + (0<<22) // 15 bpp low alpha - + (0<<23) // 15 bpp low alpha - + (0<<24) // static subpicture key - + (0<<25) // static subpicture key - + (0<<26) // static subpicture key - + (0<<27) // static subpicture key - + (0<<28) // static subpicture key -*/ ; + card->cregs.c2ctl = 1 // CRTC2 enabled + + (1<<1) // external clock + + (0<<2) // external clock + + (1<<3) // pixel clock enable - not needed ??? + + (0<<4) // high prioryty req + + (1<<5) // high prioryty req + + (0<<6) // high prioryty req + + (1<<8) // high prioryty req max + + (0<<9) // high prioryty req max + + (0<<10) // high prioryty req max + + (0<<20) // CRTC1 to DAC + + (1<<21) // 420 mode + + (1<<22) // 420 mode + + (1<<23) // 420 mode + + (0<<24) // single chroma line for 420 mode - need to be corrected + + (0<<25) /*/ interlace mode - need to be corrected*/ + + (0<<26) // field legth polariry + + (0<<27) // field identification polariry + + (1<<28) // VIDRST detection mode + + (0<<29) // VIDRST detection mode + + (1<<30) // Horizontal counter preload + + (1<<31) // Vertical counter preload + ; + card->cregs.c2datactl = 1 // disable dither - propably not needed, we are already in YUV mode + + (1<<1) // Y filter enable + + (1<<2) // CbCr filter enable + + (0<<3) // subpicture enable (disabled) + + (0<<4) // NTSC enable (disabled - PAL) + + (0<<5) // C2 static subpicture enable (disabled) + + (0<<6) // C2 subpicture offset division (disabled) + + (0<<7) // 422 subformat selection ! +/* + (0<<8) // 15 bpp high alpha + + (0<<9) // 15 bpp high alpha + + (0<<10) // 15 bpp high alpha + + (0<<11) // 15 bpp high alpha + + (0<<12) // 15 bpp high alpha + + (0<<13) // 15 bpp high alpha + + (0<<14) // 15 bpp high alpha + + (0<<15) // 15 bpp high alpha + + (0<<16) // 15 bpp low alpha + + (0<<17) // 15 bpp low alpha + + (0<<18) // 15 bpp low alpha + + (0<<19) // 15 bpp low alpha + + (0<<20) // 15 bpp low alpha + + (0<<21) // 15 bpp low alpha + + (0<<22) // 15 bpp low alpha + + (0<<23) // 15 bpp low alpha + + (0<<24) // static subpicture key + + (0<<25) // static subpicture key + + (0<<26) // static subpicture key + + (0<<27) // static subpicture key + + (0<<28) // static subpicture key +*/ ; break; case MGA_VID_FORMAT_YUY2: - card->cregs.c2ctl = 1 // CRTC2 enabled - + (1<<1) // external clock - + (0<<2) // external clock - + (1<<3) // pixel clock enable - not needed ??? - + (0<<4) // high prioryty req - acc to spec - + (1<<5) // high prioryty req - + (0<<6) // high prioryty req - // 7 reserved - + (1<<8) // high prioryty req max - + (0<<9) // high prioryty req max - + (0<<10) // high prioryty req max - // 11-19 reserved - + (0<<20) // CRTC1 to DAC - + (1<<21) // 422 mode - + (0<<22) // 422 mode - + (1<<23) // 422 mode - + (0<<24) // single chroma line for 420 mode - need to be corrected - + (0<<25) /*/ interlace mode - need to be corrected*/ - + (0<<26) // field legth polariry - + (0<<27) // field identification polariry - + (1<<28) // VIDRST detection mode - + (0<<29) // VIDRST detection mode - + (1<<30) // Horizontal counter preload - + (1<<31) // Vertical counter preload - ; - card->cregs.c2datactl = 1 // disable dither - propably not needed, we are already in YUV mode - + (1<<1) // Y filter enable - + (1<<2) // CbCr filter enable - + (0<<3) // subpicture enable (disabled) - + (0<<4) // NTSC enable (disabled - PAL) - + (0<<5) // C2 static subpicture enable (disabled) - + (0<<6) // C2 subpicture offset division (disabled) - + (0<<7) // 422 subformat selection ! -/* + (0<<8) // 15 bpp high alpha - + (0<<9) // 15 bpp high alpha - + (0<<10) // 15 bpp high alpha - + (0<<11) // 15 bpp high alpha - + (0<<12) // 15 bpp high alpha - + (0<<13) // 15 bpp high alpha - + (0<<14) // 15 bpp high alpha - + (0<<15) // 15 bpp high alpha - + (0<<16) // 15 bpp low alpha - + (0<<17) // 15 bpp low alpha - + (0<<18) // 15 bpp low alpha - + (0<<19) // 15 bpp low alpha - + (0<<20) // 15 bpp low alpha - + (0<<21) // 15 bpp low alpha - + (0<<22) // 15 bpp low alpha - + (0<<23) // 15 bpp low alpha - + (0<<24) // static subpicture key - + (0<<25) // static subpicture key - + (0<<26) // static subpicture key - + (0<<27) // static subpicture key - + (0<<28) // static subpicture key -*/ ; + card->cregs.c2ctl = 1 // CRTC2 enabled + + (1<<1) // external clock + + (0<<2) // external clock + + (1<<3) // pixel clock enable - not needed ??? + + (0<<4) // high prioryty req - acc to spec + + (1<<5) // high prioryty req + + (0<<6) // high prioryty req + // 7 reserved + + (1<<8) // high prioryty req max + + (0<<9) // high prioryty req max + + (0<<10) // high prioryty req max + // 11-19 reserved + + (0<<20) // CRTC1 to DAC + + (1<<21) // 422 mode + + (0<<22) // 422 mode + + (1<<23) // 422 mode + + (0<<24) // single chroma line for 420 mode - need to be corrected + + (0<<25) /*/ interlace mode - need to be corrected*/ + + (0<<26) // field legth polariry + + (0<<27) // field identification polariry + + (1<<28) // VIDRST detection mode + + (0<<29) // VIDRST detection mode + + (1<<30) // Horizontal counter preload + + (1<<31) // Vertical counter preload + ; + card->cregs.c2datactl = 1 // disable dither - propably not needed, we are already in YUV mode + + (1<<1) // Y filter enable + + (1<<2) // CbCr filter enable + + (0<<3) // subpicture enable (disabled) + + (0<<4) // NTSC enable (disabled - PAL) + + (0<<5) // C2 static subpicture enable (disabled) + + (0<<6) // C2 subpicture offset division (disabled) + + (0<<7) // 422 subformat selection ! +/* + (0<<8) // 15 bpp high alpha + + (0<<9) // 15 bpp high alpha + + (0<<10) // 15 bpp high alpha + + (0<<11) // 15 bpp high alpha + + (0<<12) // 15 bpp high alpha + + (0<<13) // 15 bpp high alpha + + (0<<14) // 15 bpp high alpha + + (0<<15) // 15 bpp high alpha + + (0<<16) // 15 bpp low alpha + + (0<<17) // 15 bpp low alpha + + (0<<18) // 15 bpp low alpha + + (0<<19) // 15 bpp low alpha + + (0<<20) // 15 bpp low alpha + + (0<<21) // 15 bpp low alpha + + (0<<22) // 15 bpp low alpha + + (0<<23) // 15 bpp low alpha + + (0<<24) // static subpicture key + + (0<<25) // static subpicture key + + (0<<26) // static subpicture key + + (0<<27) // static subpicture key + + (0<<28) // static subpicture key +*/ ; break; case MGA_VID_FORMAT_UYVY: - card->cregs.c2ctl = 1 // CRTC2 enabled - + (1<<1) // external clock - + (0<<2) // external clock - + (1<<3) // pixel clock enable - not needed ??? - + (0<<4) // high prioryty req - + (1<<5) // high prioryty req - + (0<<6) // high prioryty req - + (1<<8) // high prioryty req max - + (0<<9) // high prioryty req max - + (0<<10) // high prioryty req max - + (0<<20) // CRTC1 to DAC - + (1<<21) // 422 mode - + (0<<22) // 422 mode - + (1<<23) // 422 mode - + (1<<24) // single chroma line for 420 mode - need to be corrected - + (1<<25) /*/ interlace mode - need to be corrected*/ - + (0<<26) // field legth polariry - + (0<<27) // field identification polariry - + (1<<28) // VIDRST detection mode - + (0<<29) // VIDRST detection mode - + (1<<30) // Horizontal counter preload - + (1<<31) // Vertical counter preload - ; - card->cregs.c2datactl = 0 // enable dither - propably not needed, we are already in YUV mode - + (1<<1) // Y filter enable - + (1<<2) // CbCr filter enable - + (0<<3) // subpicture enable (disabled) - + (0<<4) // NTSC enable (disabled - PAL) - + (0<<5) // C2 static subpicture enable (disabled) - + (0<<6) // C2 subpicture offset division (disabled) - + (1<<7) // 422 subformat selection ! -/* + (0<<8) // 15 bpp high alpha - + (0<<9) // 15 bpp high alpha - + (0<<10) // 15 bpp high alpha - + (0<<11) // 15 bpp high alpha - + (0<<12) // 15 bpp high alpha - + (0<<13) // 15 bpp high alpha - + (0<<14) // 15 bpp high alpha - + (0<<15) // 15 bpp high alpha - + (0<<16) // 15 bpp low alpha - + (0<<17) // 15 bpp low alpha - + (0<<18) // 15 bpp low alpha - + (0<<19) // 15 bpp low alpha - + (0<<20) // 15 bpp low alpha - + (0<<21) // 15 bpp low alpha - + (0<<22) // 15 bpp low alpha - + (0<<23) // 15 bpp low alpha - + (0<<24) // static subpicture key - + (0<<25) // static subpicture key - + (0<<26) // static subpicture key - + (0<<27) // static subpicture key - + (0<<28) // static subpicture key -*/ ; + card->cregs.c2ctl = 1 // CRTC2 enabled + + (1<<1) // external clock + + (0<<2) // external clock + + (1<<3) // pixel clock enable - not needed ??? + + (0<<4) // high prioryty req + + (1<<5) // high prioryty req + + (0<<6) // high prioryty req + + (1<<8) // high prioryty req max + + (0<<9) // high prioryty req max + + (0<<10) // high prioryty req max + + (0<<20) // CRTC1 to DAC + + (1<<21) // 422 mode + + (0<<22) // 422 mode + + (1<<23) // 422 mode + + (1<<24) // single chroma line for 420 mode - need to be corrected + + (1<<25) /*/ interlace mode - need to be corrected*/ + + (0<<26) // field legth polariry + + (0<<27) // field identification polariry + + (1<<28) // VIDRST detection mode + + (0<<29) // VIDRST detection mode + + (1<<30) // Horizontal counter preload + + (1<<31) // Vertical counter preload + ; + card->cregs.c2datactl = 0 // enable dither - propably not needed, we are already in YUV mode + + (1<<1) // Y filter enable + + (1<<2) // CbCr filter enable + + (0<<3) // subpicture enable (disabled) + + (0<<4) // NTSC enable (disabled - PAL) + + (0<<5) // C2 static subpicture enable (disabled) + + (0<<6) // C2 subpicture offset division (disabled) + + (1<<7) // 422 subformat selection ! +/* + (0<<8) // 15 bpp high alpha + + (0<<9) // 15 bpp high alpha + + (0<<10) // 15 bpp high alpha + + (0<<11) // 15 bpp high alpha + + (0<<12) // 15 bpp high alpha + + (0<<13) // 15 bpp high alpha + + (0<<14) // 15 bpp high alpha + + (0<<15) // 15 bpp high alpha + + (0<<16) // 15 bpp low alpha + + (0<<17) // 15 bpp low alpha + + (0<<18) // 15 bpp low alpha + + (0<<19) // 15 bpp low alpha + + (0<<20) // 15 bpp low alpha + + (0<<21) // 15 bpp low alpha + + (0<<22) // 15 bpp low alpha + + (0<<23) // 15 bpp low alpha + + (0<<24) // static subpicture key + + (0<<25) // static subpicture key + + (0<<26) // static subpicture key + + (0<<27) // static subpicture key + + (0<<28) // static subpicture key +*/ ; break; default: - printk(KERN_ERR "mga_vid: Unsupported pixel format: 0x%X\n",config->format); - return -1; + printk(KERN_ERR "mga_vid: Unsupported pixel format: 0x%X\n",config->format); + return -1; } - card->cregs.c2hparam = ( (hdispend - 8) << 16) | (htotal - 8); - card->cregs.c2hsync = ( (hsyncend - 8) << 16) | (hsyncstart - 8); + card->cregs.c2hparam = ( (hdispend - 8) << 16) | (htotal - 8); + card->cregs.c2hsync = ( (hsyncend - 8) << 16) | (hsyncstart - 8); - card->cregs.c2misc=0 // CRTCV2 656 togg f0 - +(0<<1) // CRTCV2 656 togg f0 - +(0<<2) // CRTCV2 656 togg f0 - +(0<<4) // CRTCV2 656 togg f1 - +(0<<5) // CRTCV2 656 togg f1 - +(0<<6) // CRTCV2 656 togg f1 - +(0<<8) // Hsync active high - +(0<<9) // Vsync active high - // 16-27 c2vlinecomp - nevim co tam dat - ; - card->cregs.c2offset=(card->regs.bespitch << 1); + card->cregs.c2misc = 0 // CRTCV2 656 togg f0 + + (0<<1) // CRTCV2 656 togg f0 + + (0<<2) // CRTCV2 656 togg f0 + + (0<<4) // CRTCV2 656 togg f1 + + (0<<5) // CRTCV2 656 togg f1 + + (0<<6) // CRTCV2 656 togg f1 + + (0<<8) // Hsync active high + + (0<<9) // Vsync active high + // 16-27 c2vlinecomp - nevim co tam dat + ; + card->cregs.c2offset=(card->regs.bespitch << 1); - card->cregs.c2pl2startadd0=card->regs.besa1corg; -// card->cregs.c2pl2startadd1=card->regs.besa2corg; - card->cregs.c2pl3startadd0=card->regs.besa1c3org; -// card->cregs.c2pl3startadd1=card->regs.besa2c3org; + card->cregs.c2pl2startadd0=card->regs.besa1corg; +// card->cregs.c2pl2startadd1=card->regs.besa2corg; + card->cregs.c2pl3startadd0=card->regs.besa1c3org; +// card->cregs.c2pl3startadd1=card->regs.besa2c3org; - card->cregs.c2preload=(vsyncstart << 16) | (hsyncstart); // from + card->cregs.c2preload=(vsyncstart << 16) | (hsyncstart); // from - card->cregs.c2spicstartadd0=0; // not used -// card->cregs.c2spicstartadd1=0; // not used + card->cregs.c2spicstartadd0=0; // not used +// card->cregs.c2spicstartadd1=0; // not used - card->cregs.c2startadd0=card->regs.besa1org; -// card->cregs.c2startadd1=card->regs.besa2org; + card->cregs.c2startadd0=card->regs.besa1org; +// card->cregs.c2startadd1=card->regs.besa2org; - card->cregs.c2subpiclut=0; //not used + card->cregs.c2subpiclut=0; //not used - card->cregs.c2vparam = ( (vdispend - 1) << 16) | (vtotal - 1); - card->cregs.c2vsync = ( (vsyncend - 1) << 16) | (vsyncstart - 1); + card->cregs.c2vparam = ( (vdispend - 1) << 16) | (vtotal - 1); + card->cregs.c2vsync = ( (vsyncend - 1) << 16) | (vsyncstart - 1); #endif - mga_vid_write_regs(card, 0); - return 0; + mga_vid_write_regs(card, 0); + return 0; } #ifdef MGA_ALLOW_IRQ static void enable_irq(mga_card_t * card){ - long int cc; + long int cc; - cc = readl(card->mmio_base + IEN); -// printk(KERN_ALERT "*** !!! IRQREG = %d\n", (int)(cc&0xff)); - - writeb(0x11, card->mmio_base + CRTCX); + cc = readl(card->mmio_base + IEN); +// printk(KERN_ALERT "*** !!! IRQREG = %d\n", (int)(cc&0xff)); - writeb(0x20, card->mmio_base + CRTCD); /* clear 0, enable off */ - writeb(0x00, card->mmio_base + CRTCD); /* enable on */ - writeb(0x10, card->mmio_base + CRTCD); /* clear = 1 */ + writeb(0x11, card->mmio_base + CRTCX); - writel(card->regs.besglobctl , card->mmio_base + BESGLOBCTL); + writeb(0x20, card->mmio_base + CRTCD); /* clear 0, enable off */ + writeb(0x00, card->mmio_base + CRTCD); /* enable on */ + writeb(0x10, card->mmio_base + CRTCD); /* clear = 1 */ + writel(card->regs.besglobctl , card->mmio_base + BESGLOBCTL); } static void disable_irq(mga_card_t * card){ - - writeb(0x11, card->mmio_base + CRTCX); - writeb(0x20, card->mmio_base + CRTCD); /* clear 0, enable off */ - + writeb(0x11, card->mmio_base + CRTCX); + writeb(0x20, card->mmio_base + CRTCD); /* clear 0, enable off */ } static void mga_handle_irq(int irq, void *dev_id, struct pt_regs *pregs) { -// static int frame=0; -// static int counter=0; - long int cc; - mga_card_t * card = dev_id; +// static int frame=0; +// static int counter=0; + long int cc; + mga_card_t * card = dev_id; -// printk(KERN_DEBUG "vcount = %d\n",readl(mga_mmio_base + VCOUNT)); +// printk(KERN_DEBUG "vcount = %d\n",readl(mga_mmio_base + VCOUNT)); - //printk("mga_interrupt #%d\n", irq); + //printk("mga_interrupt #%d\n", irq); - // check whether the interrupt is really for us (irq sharing) - if ( irq != -1 ) { - cc = readl(card->mmio_base + STATUS); - if ( ! (cc & 0x10) ) return; /* vsyncpen */ -// debug_irqcnt++; - } + // check whether the interrupt is really for us (irq sharing) + if ( irq != -1 ) { + cc = readl(card->mmio_base + STATUS); + if ( ! (cc & 0x10) ) return; /* vsyncpen */ +// debug_irqcnt++; + } -// if ( debug_irqignore ) { -// debug_irqignore = 0; +// if ( debug_irqignore ) { +// debug_irqignore = 0; -// frame=(frame+1)&1; - card->regs.besctl = (card->regs.besctl & ~0x07000000) + (card->next_frame << 25); - writel( card->regs.besctl, card->mmio_base + BESCTL ); +// frame=(frame+1)&1; + card->regs.besctl = (card->regs.besctl & ~0x07000000) + (card->next_frame << 25); + writel( card->regs.besctl, card->mmio_base + BESCTL ); #ifdef CRTC2 // sem pridat vyber obrazku !!!! // i han echt kei ahnig was das obe heisse söll - crtc2_frame_sel(card->next_frame); + crtc2_frame_sel(card->next_frame); #endif #if 0 - ++counter; - if(!(counter&63)){ - printk("mga irq counter = %d\n",counter); - } + ++counter; + if(!(counter&63)){ + printk("mga irq counter = %d\n",counter); + } #endif -// } else { -// debug_irqignore = 1; -// } +// } else { +// debug_irqignore = 1; +// } - if ( irq != -1 ) { - writeb( 0x11, card->mmio_base + CRTCX); - writeb( 0, card->mmio_base + CRTCD ); - writeb( 0x10, card->mmio_base + CRTCD ); - } + if ( irq != -1 ) { + writeb( 0x11, card->mmio_base + CRTCX); + writeb( 0, card->mmio_base + CRTCD ); + writeb( 0x10, card->mmio_base + CRTCD ); + } -// writel( card->regs.besglobctl, card->mmio_base + BESGLOBCTL); - +// writel( card->regs.besglobctl, card->mmio_base + BESGLOBCTL); - return; - + return; } #endif static int mga_vid_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg) { - int frame, result; - uint32_t tmp; - mga_card_t * card = (mga_card_t *) file->private_data; + int frame, result; + uint32_t tmp; + mga_card_t * card = (mga_card_t *) file->private_data; - switch(cmd) - { - case MGA_VID_GET_VERSION: - tmp = MGA_VID_VERSION; - if (copy_to_user((uint32_t *) arg, &tmp, sizeof(uint32_t))) { - printk(KERN_ERR "mga_vid: failed copy %p to userspace %p\n", &tmp, (uint32_t *) arg); - return -EFAULT; - } - break; + switch(cmd) + { + case MGA_VID_GET_VERSION: + tmp = MGA_VID_VERSION; + if (copy_to_user((uint32_t *) arg, &tmp, sizeof(uint32_t))) { + printk(KERN_ERR "mga_vid: failed copy %p to userspace %p\n", &tmp, (uint32_t *) arg); + return -EFAULT; + } + break; - case MGA_VID_CONFIG: - //FIXME remove -// printk(KERN_DEBUG "mga_vid: vcount = %d\n",readl(card->mmio_base + VCOUNT)); + case MGA_VID_CONFIG: + //FIXME remove +// printk(KERN_DEBUG "mga_vid: vcount = %d\n",readl(card->mmio_base + VCOUNT)); #ifdef MP_DEBUG - printk(KERN_DEBUG "mga_vid: mmio_base = %p\n",card->mmio_base); - printk(KERN_DEBUG "mga_vid: mem_base = %08x\n",card->mem_base); - //FIXME remove + printk(KERN_DEBUG "mga_vid: mmio_base = %p\n",card->mmio_base); + printk(KERN_DEBUG "mga_vid: mem_base = %08x\n",card->mem_base); + //FIXME remove - printk(KERN_DEBUG "mga_vid: Received configuration\n"); + printk(KERN_DEBUG "mga_vid: Received configuration\n"); #endif - if(copy_from_user(&card->config,(mga_vid_config_t*) arg,sizeof(mga_vid_config_t))) - { - printk(KERN_ERR "mga_vid: failed copy from userspace\n"); - return -EFAULT; - } - if(card->config.version != MGA_VID_VERSION){ - printk(KERN_ERR "mga_vid: incompatible version! driver: %X requested: %X\n",MGA_VID_VERSION,card->config.version); - return -EFAULT; - } + if(copy_from_user(&card->config,(mga_vid_config_t*) arg,sizeof(mga_vid_config_t))) + { + printk(KERN_ERR "mga_vid: failed copy from userspace\n"); + return -EFAULT; + } + if(card->config.version != MGA_VID_VERSION){ + printk(KERN_ERR "mga_vid: incompatible version! driver: %X requested: %X\n",MGA_VID_VERSION,card->config.version); + return -EFAULT; + } - if(card->config.frame_size==0 || card->config.frame_size>1024*768*2){ - printk(KERN_ERR "mga_vid: illegal frame_size: %d\n",card->config.frame_size); - return -EFAULT; - } + if(card->config.frame_size==0 || card->config.frame_size>1024*768*2){ + printk(KERN_ERR "mga_vid: illegal frame_size: %d\n",card->config.frame_size); + return -EFAULT; + } - if(card->config.num_frames<1 || card->config.num_frames>4){ - printk(KERN_ERR "mga_vid: illegal num_frames: %d\n",card->config.num_frames); - return -EFAULT; - } + if(card->config.num_frames<1 || card->config.num_frames>4){ + printk(KERN_ERR "mga_vid: illegal num_frames: %d\n",card->config.num_frames); + return -EFAULT; + } - card->src_base = (card->ram_size * 0x100000 - card->config.num_frames * card->config.frame_size - card->top_reserved); - if(card->src_base<0){ - printk(KERN_ERR "mga_vid: not enough memory for frames!\n"); - return -EFAULT; - } - card->src_base &= (~0xFFFF); // 64k boundary + card->src_base = (card->ram_size * 0x100000 - card->config.num_frames * card->config.frame_size - card->top_reserved); + if(card->src_base<0){ + printk(KERN_ERR "mga_vid: not enough memory for frames!\n"); + return -EFAULT; + } + card->src_base &= (~0xFFFF); // 64k boundary #ifdef MP_DEBUG - printk(KERN_DEBUG "mga YUV buffer base: 0x%X\n", card->src_base); + printk(KERN_DEBUG "mga YUV buffer base: 0x%X\n", card->src_base); #endif - if (card->is_g400) - card->config.card_type = MGA_G400; - else - card->config.card_type = MGA_G200; + if (card->is_g400) + card->config.card_type = MGA_G400; + else + card->config.card_type = MGA_G200; - card->config.ram_size = card->ram_size; + card->config.ram_size = card->ram_size; - if (copy_to_user((mga_vid_config_t *) arg, &card->config, sizeof(mga_vid_config_t))) - { - printk(KERN_ERR "mga_vid: failed copy to userspace\n"); - return -EFAULT; - } + if (copy_to_user((mga_vid_config_t *) arg, &card->config, sizeof(mga_vid_config_t))) + { + printk(KERN_ERR "mga_vid: failed copy to userspace\n"); + return -EFAULT; + } - result = mga_vid_set_config(card); - if(!result) card->configured=1; - return result; - break; + result = mga_vid_set_config(card); + if(!result) card->configured=1; + return result; + break; - case MGA_VID_ON: + case MGA_VID_ON: #ifdef MP_DEBUG - printk(KERN_DEBUG "mga_vid: Video ON\n"); + printk(KERN_DEBUG "mga_vid: Video ON\n"); #endif - card->vid_src_ready = 1; - if(card->vid_overlay_on) - { - card->regs.besctl |= 1; - mga_vid_write_regs(card, 0); - } + card->vid_src_ready = 1; + if(card->vid_overlay_on) + { + card->regs.besctl |= 1; + mga_vid_write_regs(card, 0); + } #ifdef MGA_ALLOW_IRQ - if ( card->irq != -1 ) enable_irq(card); + if ( card->irq != -1 ) enable_irq(card); #endif - card->next_frame=0; - break; + card->next_frame=0; + break; - case MGA_VID_OFF: + case MGA_VID_OFF: #ifdef MP_DEBUG - printk(KERN_DEBUG "mga_vid: Video OFF (ioctl)\n"); + printk(KERN_DEBUG "mga_vid: Video OFF (ioctl)\n"); #endif - card->vid_src_ready = 0; + card->vid_src_ready = 0; #ifdef MGA_ALLOW_IRQ - if ( card->irq != -1 ) disable_irq(card); + if ( card->irq != -1 ) disable_irq(card); #endif - card->regs.besctl &= ~1; - card->regs.besglobctl &= ~(1<<6); // UYVY format selected - mga_vid_write_regs(card, 0); - break; + card->regs.besctl &= ~1; + card->regs.besglobctl &= ~(1<<6); // UYVY format selected + mga_vid_write_regs(card, 0); + break; - case MGA_VID_FSEL: - if(copy_from_user(&frame,(int *) arg,sizeof(int))) - { - printk(KERN_ERR "mga_vid: FSEL failed copy from userspace\n"); - return -EFAULT; - } + case MGA_VID_FSEL: + if(copy_from_user(&frame,(int *) arg,sizeof(int))) + { + printk(KERN_ERR "mga_vid: FSEL failed copy from userspace\n"); + return -EFAULT; + } - mga_vid_frame_sel(card, frame); - break; + mga_vid_frame_sel(card, frame); + break; - case MGA_VID_GET_LUMA: - //tmp = card->regs.beslumactl; - //tmp = (tmp&0xFFFF0000) | (((tmp&0xFFFF) - 0x80)&0xFFFF); - tmp = (card->brightness << 16) | (card->contrast&0xFFFF); + case MGA_VID_GET_LUMA: + //tmp = card->regs.beslumactl; + //tmp = (tmp&0xFFFF0000) | (((tmp&0xFFFF) - 0x80)&0xFFFF); + tmp = (card->brightness << 16) | (card->contrast&0xFFFF); - if (copy_to_user((uint32_t *) arg, &tmp, sizeof(uint32_t))) - { - printk(KERN_ERR "mga_vid: failed copy %p to userspace %p\n", - &tmp, (uint32_t *) arg); - return -EFAULT; - } - break; + if (copy_to_user((uint32_t *) arg, &tmp, sizeof(uint32_t))) + { + printk(KERN_ERR "mga_vid: failed copy %p to userspace %p\n", + &tmp, (uint32_t *) arg); + return -EFAULT; + } + break; - case MGA_VID_SET_LUMA: - tmp = arg; - card->brightness=tmp>>16; card->contrast=tmp&0xFFFF; - //card->regs.beslumactl = (tmp&0xFFFF0000) | ((tmp + 0x80)&0xFFFF); - card->regs.beslumactl = (card->brightness << 16) | ((card->contrast+0x80)&0xFFFF); - mga_vid_write_regs(card, 0); - break; + case MGA_VID_SET_LUMA: + tmp = arg; + card->brightness=tmp>>16; card->contrast=tmp&0xFFFF; + //card->regs.beslumactl = (tmp&0xFFFF0000) | ((tmp + 0x80)&0xFFFF); + card->regs.beslumactl = (card->brightness << 16) | ((card->contrast+0x80)&0xFFFF); + mga_vid_write_regs(card, 0); + break; - default: - printk(KERN_ERR "mga_vid: Invalid ioctl\n"); - return -EINVAL; - } + default: + printk(KERN_ERR "mga_vid: Invalid ioctl\n"); + return -EINVAL; + } - return 0; + return 0; } static void cards_init(mga_card_t * card, struct pci_dev * dev, int card_number, int is_g400); @@ -1333,67 +1326,67 @@ // returns the number of found cards static int mga_vid_find_card(void) { - struct pci_dev *dev = NULL; - char *mga_dev_name; - mga_card_t * card; + struct pci_dev *dev = NULL; + char *mga_dev_name; + mga_card_t * card; - while((dev = pci_find_device(PCI_VENDOR_ID_MATROX, PCI_ANY_ID, dev))) - { - mga_dev_name = ""; - mga_cards_num++; - if(mga_cards_num == MGA_MAX_CARDS) - { - printk(KERN_WARNING "mga_vid: Trying to initialize more than %d cards\n",MGA_MAX_CARDS); - mga_cards_num--; - break; - } + while((dev = pci_find_device(PCI_VENDOR_ID_MATROX, PCI_ANY_ID, dev))) + { + mga_dev_name = ""; + mga_cards_num++; + if(mga_cards_num == MGA_MAX_CARDS) + { + printk(KERN_WARNING "mga_vid: Trying to initialize more than %d cards\n",MGA_MAX_CARDS); + mga_cards_num--; + break; + } - card = kmalloc(sizeof(mga_card_t), GFP_KERNEL); - if(!card) - { - printk(KERN_ERR "mga_vid: memory allocation failed\n"); - mga_cards_num--; - break; - } + card = kmalloc(sizeof(mga_card_t), GFP_KERNEL); + if(!card) + { + printk(KERN_ERR "mga_vid: memory allocation failed\n"); + mga_cards_num--; + break; + } - mga_cards[mga_cards_num - 1] = card; + mga_cards[mga_cards_num - 1] = card; - switch(dev->device) { - case PCI_DEVICE_ID_MATROX_G550: - mga_dev_name = "MGA G550"; - printk(KERN_INFO "mga_vid: Found %s at %s [%s]\n", mga_dev_name, dev->slot_name, dev->name); - cards_init(card, dev, mga_cards_num - 1, 1); - break; - case PCI_DEVICE_ID_MATROX_G400: - mga_dev_name = "MGA G400/G450"; - printk(KERN_INFO "mga_vid: Found %s at %s [%s]\n", mga_dev_name, dev->slot_name, dev->name); - cards_init(card, dev, mga_cards_num - 1, 1); - break; - case PCI_DEVICE_ID_MATROX_G200_AGP: - mga_dev_name = "MGA G200 AGP"; - printk(KERN_INFO "mga_vid: Found %s at %s [%s]\n", mga_dev_name, dev->slot_name, dev->name); - cards_init(card, dev, mga_cards_num - 1, 0); - break; - case PCI_DEVICE_ID_MATROX_G200_PCI: - mga_dev_name = "MGA G200"; - printk(KERN_INFO "mga_vid: Found %s at %s [%s]\n", mga_dev_name, dev->slot_name, dev->name); - cards_init(card, dev, mga_cards_num - 1, 0); - break; - default: - mga_cards_num--; - printk(KERN_INFO "mga_vid: ignoring matrox device (%d) at %s [%s]\n", dev->device, dev->slot_name, dev->name); - break; - } - } + switch(dev->device) { + case PCI_DEVICE_ID_MATROX_G550: + mga_dev_name = "MGA G550"; + printk(KERN_INFO "mga_vid: Found %s at %s [%s]\n", mga_dev_name, dev->slot_name, dev->name); + cards_init(card, dev, mga_cards_num - 1, 1); + break; + case PCI_DEVICE_ID_MATROX_G400: + mga_dev_name = "MGA G400/G450"; + printk(KERN_INFO "mga_vid: Found %s at %s [%s]\n", mga_dev_name, dev->slot_name, dev->name); + cards_init(card, dev, mga_cards_num - 1, 1); + break; + case PCI_DEVICE_ID_MATROX_G200_AGP: + mga_dev_name = "MGA G200 AGP"; + printk(KERN_INFO "mga_vid: Found %s at %s [%s]\n", mga_dev_name, dev->slot_name, dev->name); + cards_init(card, dev, mga_cards_num - 1, 0); + break; + case PCI_DEVICE_ID_MATROX_G200_PCI: + mga_dev_name = "MGA G200"; + printk(KERN_INFO "mga_vid: Found %s at %s [%s]\n", mga_dev_name, dev->slot_name, dev->name); + cards_init(card, dev, mga_cards_num - 1, 0); + break; + default: + mga_cards_num--; + printk(KERN_INFO "mga_vid: ignoring matrox device (%d) at %s [%s]\n", dev->device, dev->slot_name, dev->name); + break; + } + } - if(!mga_cards_num) - { - printk(KERN_ERR "mga_vid: No supported cards found\n"); - } else { - printk(KERN_INFO "mga_vid: %d supported cards found\n", mga_cards_num); - } + if(!mga_cards_num) + { + printk(KERN_ERR "mga_vid: No supported cards found\n"); + } else { + printk(KERN_INFO "mga_vid: %d supported cards found\n", mga_cards_num); + } - return mga_cards_num; + return mga_cards_num; } static void mga_param_buff_fill( mga_card_t * card ) @@ -1417,287 +1410,284 @@ static ssize_t mga_vid_read(struct file *file, char *buf, size_t count, loff_t *ppos) { - uint32_t size; - mga_card_t * card = (mga_card_t *) file->private_data; + uint32_t size; + mga_card_t * card = (mga_card_t *) file->private_data; - if(!card->param_buff) return -ESPIPE; - if(!(*ppos)) mga_param_buff_fill(card); - if(*ppos >= card->param_buff_len) return 0; - size = min(count,card->param_buff_len-(uint32_t)(*ppos)); - memcpy(buf,card->param_buff,size); - *ppos += size; - return size; + if(!card->param_buff) return -ESPIPE; + if(!(*ppos)) mga_param_buff_fill(card); + if(*ppos >= card->param_buff_len) return 0; + size = min(count,card->param_buff_len-(uint32_t)(*ppos)); + memcpy(buf,card->param_buff,size); + *ppos += size; + return size; } static ssize_t mga_vid_write(struct file *file, const char *buf, size_t count, loff_t *ppos) { - mga_card_t * card = (mga_card_t *) file->private_data; + mga_card_t * card = (mga_card_t *) file->private_data; - if(memcmp(buf,PARAM_BRIGHTNESS,min(count,strlen(PARAM_BRIGHTNESS))) == 0) - { - short brightness; - brightness=simple_strtol(&buf[strlen(PARAM_BRIGHTNESS)],NULL,10); - if (brightness>127 || brightness<-128) { brightness=0;} -// printk(KERN_DEBUG "mga_vid: brightness modified ( %d ) \n",brightness); - card->brightness=brightness; - } else - if(memcmp(buf,PARAM_CONTRAST,min(count,strlen(PARAM_CONTRAST))) == 0) - { - short contrast; - contrast=simple_strtol(&buf[strlen(PARAM_CONTRAST)],NULL,10); - if (contrast>127 || contrast<-128) { contrast=0;} -// printk(KERN_DEBUG "mga_vid: contrast modified ( %d ) \n",contrast); - card->contrast=contrast; - } else + if(memcmp(buf,PARAM_BRIGHTNESS,min(count,strlen(PARAM_BRIGHTNESS))) == 0) + { + short brightness; + brightness=simple_strtol(&buf[strlen(PARAM_BRIGHTNESS)],NULL,10); + if (brightness>127 || brightness<-128) { brightness=0;} +// printk(KERN_DEBUG "mga_vid: brightness modified ( %d ) \n",brightness); + card->brightness=brightness; + } else + if(memcmp(buf,PARAM_CONTRAST,min(count,strlen(PARAM_CONTRAST))) == 0) + { + short contrast; + contrast=simple_strtol(&buf[strlen(PARAM_CONTRAST)],NULL,10); + if (contrast>127 || contrast<-128) { contrast=0;} +// printk(KERN_DEBUG "mga_vid: contrast modified ( %d ) \n",contrast); + card->contrast=contrast; + } else - if(memcmp(buf,PARAM_BLACKIE,min(count,strlen(PARAM_BLACKIE))) == 0) - { - short blackie; - blackie=simple_strtol(&buf[strlen(PARAM_BLACKIE)],NULL,10); -// printk(KERN_DEBUG "mga_vid: shadow mode: ( %d ) \n",blackie); - card->regs.blackie=(blackie>0)?1:0; - } else count = -EIO; - // TODO: reset settings - return count; + if(memcmp(buf,PARAM_BLACKIE,min(count,strlen(PARAM_BLACKIE))) == 0) + { + short blackie; + blackie=simple_strtol(&buf[strlen(PARAM_BLACKIE)],NULL,10); +// printk(KERN_DEBUG "mga_vid: shadow mode: ( %d ) \n",blackie); + card->regs.blackie=(blackie>0)?1:0; + } else count = -EIO; + // TODO: reset settings + return count; } static int mga_vid_mmap(struct file *file, struct vm_area_struct *vma) { - mga_card_t * card = (mga_card_t *) file->private_data; + mga_card_t * card = (mga_card_t *) file->private_data; #ifdef MP_DEBUG - printk(KERN_DEBUG "mga_vid: mapping video memory into userspace\n"); + printk(KERN_DEBUG "mga_vid: mapping video memory into userspace\n"); #endif - if(!card->configured) - { - printk(KERN_ERR "mga_vid: card is not configured, cannot mmap\n"); - return -EAGAIN; - } + if(!card->configured) + { + printk(KERN_ERR "mga_vid: card is not configured, cannot mmap\n"); + return -EAGAIN; + } - if(remap_page_range(vma->vm_start, card->mem_base + card->src_base, - vma->vm_end - vma->vm_start, vma->vm_page_prot)) - { - printk(KERN_ERR "mga_vid: error mapping video memory\n"); - return -EAGAIN; - } + if(remap_page_range(vma->vm_start, card->mem_base + card->src_base, + vma->vm_end - vma->vm_start, vma->vm_page_prot)) + { + printk(KERN_ERR "mga_vid: error mapping video memory\n"); + return -EAGAIN; + } - return 0; + return 0; } static int mga_vid_release(struct inode *inode, struct file *file) { - mga_card_t * card; + mga_card_t * card; - //Close the window just in case + //Close the window just in case #ifdef MP_DEBUG - printk(KERN_DEBUG "mga_vid: Video OFF (release)\n"); + printk(KERN_DEBUG "mga_vid: Video OFF (release)\n"); #endif - card = (mga_card_t *) file->private_data; + card = (mga_card_t *) file->private_data; - card->vid_src_ready = 0; - card->regs.besctl &= ~1; - card->regs.besglobctl &= ~(1<<6); // UYVY format selected -// card->config.colkey_on=0; //!!! - mga_vid_write_regs(card, 1); - card->vid_in_use = 0; + card->vid_src_ready = 0; + card->regs.besctl &= ~1; + card->regs.besglobctl &= ~(1<<6); // UYVY format selected +// card->config.colkey_on=0; //!!! + mga_vid_write_regs(card, 1); + card->vid_in_use = 0; - MOD_DEC_USE_COUNT; - return 0; + MOD_DEC_USE_COUNT; + return 0; } static long long mga_vid_lseek(struct file *file, long long offset, int origin) { - return -ESPIPE; + return -ESPIPE; } static int mga_vid_open(struct inode *inode, struct file *file) { - mga_card_t * card; + mga_card_t * card; - int minor = MINOR(inode->i_rdev); + int minor = MINOR(inode->i_rdev); - if(!file->private_data) - { - // we are not using devfs, use the minor - // number to specify the card we are using + if(!file->private_data) + { + // we are not using devfs, use the minor + // number to specify the card we are using - // we don't have that many cards - if(minor >= mga_cards_num) - return -ENXIO; + // we don't have that many cards + if(minor >= mga_cards_num) + return -ENXIO; - file->private_data = mga_cards[minor]; + file->private_data = mga_cards[minor]; #ifdef MP_DEBUG - printk(KERN_DEBUG "mga_vid: Not using devfs\n"); + printk(KERN_DEBUG "mga_vid: Not using devfs\n"); #endif - } + } #ifdef MP_DEBUG - else { - printk(KERN_DEBUG "mga_vid: Using devfs\n"); - } + else { + printk(KERN_DEBUG "mga_vid: Using devfs\n"); + } #endif - card = (mga_card_t *) file->private_data; + card = (mga_card_t *) file->private_data; - if(card->vid_in_use == 1) - return -EBUSY; + if(card->vid_in_use == 1) + return -EBUSY; - card->vid_in_use = 1; - MOD_INC_USE_COUNT; - return 0; + card->vid_in_use = 1; + MOD_INC_USE_COUNT; + return 0; } #if LINUX_VERSION_CODE >= 0x020400 static struct file_operations mga_vid_fops = { - llseek: mga_vid_lseek, - read: mga_vid_read, - write: mga_vid_write, - ioctl: mga_vid_ioctl, - mmap: mga_vid_mmap, - open: mga_vid_open, - release: mga_vid_release + llseek: mga_vid_lseek, + read: mga_vid_read, + write: mga_vid_write, + ioctl: mga_vid_ioctl, + mmap: mga_vid_mmap, + open: mga_vid_open, + release: mga_vid_release }; #else static struct file_operations mga_vid_fops = { - mga_vid_lseek, - mga_vid_read, - mga_vid_write, - NULL, - NULL, - mga_vid_ioctl, - mga_vid_mmap, - mga_vid_open, - NULL, - mga_vid_release + mga_vid_lseek, + mga_vid_read, + mga_vid_write, + NULL, + NULL, + mga_vid_ioctl, + mga_vid_mmap, + mga_vid_open, + NULL, + mga_vid_release }; #endif static void cards_init(mga_card_t * card, struct pci_dev * dev, int card_number, int is_g400) { - unsigned int card_option; + unsigned int card_option; // temp buffer for device filename creation used only by devfs #ifdef CONFIG_DEVFS_FS - char buffer[16]; + char buffer[16]; #endif - memset(card,0,sizeof(mga_card_t)); - card->irq = -1; + memset(card,0,sizeof(mga_card_t)); + card->irq = -1; - card->pci_dev = dev; - card->irq = dev->irq; - card->is_g400 = is_g400; + card->pci_dev = dev; + card->irq = dev->irq; + card->is_g400 = is_g400; - card->param_buff = kmalloc(PARAM_BUFF_SIZE,GFP_KERNEL); - if(card->param_buff) card->param_buff_size = PARAM_BUFF_SIZE; + card->param_buff = kmalloc(PARAM_BUFF_SIZE,GFP_KERNEL); + if(card->param_buff) card->param_buff_size = PARAM_BUFF_SIZE; - card->brightness = mga_brightness[card_number]; - card->contrast = mga_contrast[card_number]; - card->top_reserved = mga_top_reserved[card_number]; + card->brightness = mga_brightness[card_number]; + card->contrast = mga_contrast[card_number]; + card->top_reserved = mga_top_reserved[card_number]; #if LINUX_VERSION_CODE >= 0x020300 - card->mmio_base = ioremap_nocache(dev->resource[1].start,0x4000); - card->mem_base = dev->resource[0].start; + card->mmio_base = ioremap_nocache(dev->resource[1].start,0x4000); + card->mem_base = dev->resource[0].start; #else - card->mmio_base = ioremap_nocache(dev->base_address[1] & PCI_BASE_ADDRESS_MEM_MASK,0x4000); - card->mem_base = dev->base_address[0] & PCI_BASE_ADDRESS_MEM_MASK; + card->mmio_base = ioremap_nocache(dev->base_address[1] & PCI_BASE_ADDRESS_MEM_MASK,0x4000); + card->mem_base = dev->base_address[0] & PCI_BASE_ADDRESS_MEM_MASK; #endif - printk(KERN_INFO "mga_vid: MMIO at 0x%p IRQ: %d framebuffer: 0x%08X\n", card->mmio_base, card->irq, card->mem_base); + printk(KERN_INFO "mga_vid: MMIO at 0x%p IRQ: %d framebuffer: 0x%08X\n", card->mmio_base, card->irq, card->mem_base); - pci_read_config_dword(dev, 0x40, &card_option); - printk(KERN_INFO "mga_vid: OPTION word: 0x%08X mem: 0x%02X %s\n", card_option, - (card_option>>10)&0x17, ((card_option>>14)&1)?"SGRAM":"SDRAM"); + pci_read_config_dword(dev, 0x40, &card_option); + printk(KERN_INFO "mga_vid: OPTION word: 0x%08X mem: 0x%02X %s\n", card_option, + (card_option>>10)&0x17, ((card_option>>14)&1)?"SGRAM":"SDRAM"); - if (mga_ram_size[card_number]) { - printk(KERN_INFO "mga_vid: RAMSIZE forced to %d MB\n", mga_ram_size[card_number]); - card->ram_size=mga_ram_size[card_number]; - } else { + if (mga_ram_size[card_number]) { + printk(KERN_INFO "mga_vid: RAMSIZE forced to %d MB\n", mga_ram_size[card_number]); + card->ram_size=mga_ram_size[card_number]; + } else { #ifdef MGA_MEMORY_SIZE - card->ram_size = MGA_MEMORY_SIZE; - printk(KERN_INFO "mga_vid: hard-coded RAMSIZE is %d MB\n", (unsigned int) card->ram_size); - + card->ram_size = MGA_MEMORY_SIZE; + printk(KERN_INFO "mga_vid: hard-coded RAMSIZE is %d MB\n", (unsigned int) card->ram_size); #else - - if (card->is_g400){ - switch((card_option>>10)&0x17){ - // SDRAM: - case 0x00: - case 0x04: card->ram_size = 16; break; - case 0x03: - case 0x05: card->ram_size = 32; break; - // SGRAM: - case 0x10: - case 0x14: card->ram_size = 32; break; - case 0x11: - case 0x12: card->ram_size = 16; break; - default: - card->ram_size = 16; - printk(KERN_INFO "mga_vid: Couldn't detect RAMSIZE, assuming 16MB!"); - } - /* Check for buggy 16MB cards reporting 32 MB */ - if(card->ram_size != 16 && - (dev->subsystem_device == PCI_SUBSYSTEM_ID_MATROX_G400_16MB_SDRAM || - dev->subsystem_device == PCI_SUBSYSTEM_ID_MATROX_G400_16MB_SGRAM || - dev->subsystem_device == PCI_SUBSYSTEM_ID_MATROX_G400_DH_16MB)) - { - printk(KERN_INFO "mga_vid: Detected 16MB card reporting %d MB RAMSIZE, overriding\n", card->ram_size); - card->ram_size = 16; - } - }else{ - switch((card_option>>10)&0x17){ -// case 0x10: -// case 0x13: card->ram_size = 8; break; - default: card->ram_size = 8; - } - } + if (card->is_g400){ + switch((card_option>>10)&0x17){ + // SDRAM: + case 0x00: + case 0x04: card->ram_size = 16; break; + case 0x03: + case 0x05: card->ram_size = 32; break; + // SGRAM: + case 0x10: + case 0x14: card->ram_size = 32; break; + case 0x11: + case 0x12: card->ram_size = 16; break; + default: + card->ram_size = 16; + printk(KERN_INFO "mga_vid: Couldn't detect RAMSIZE, assuming 16MB!"); + } + /* Check for buggy 16MB cards reporting 32 MB */ + if(card->ram_size != 16 && + (dev->subsystem_device == PCI_SUBSYSTEM_ID_MATROX_G400_16MB_SDRAM || + dev->subsystem_device == PCI_SUBSYSTEM_ID_MATROX_G400_16MB_SGRAM || + dev->subsystem_device == PCI_SUBSYSTEM_ID_MATROX_G400_DH_16MB)) + { + printk(KERN_INFO "mga_vid: Detected 16MB card reporting %d MB RAMSIZE, overriding\n", card->ram_size); + card->ram_size = 16; + } + }else{ + switch((card_option>>10)&0x17){ +// case 0x10: +// case 0x13: card->ram_size = 8; break; + default: card->ram_size = 8; + } + } #if 0 -// printk("List resources -----------\n"); - for(temp=0;temp<DEVICE_COUNT_RESOURCE;temp++){ - struct resource *res=&dev->resource[temp]; - if(res->flags){ - int size=(1+res->end-res->start)>>20; - printk(KERN_DEBUG "res %d: start: 0x%X end: 0x%X (%d MB) flags=0x%X\n",temp,res->start,res->end,size,res->flags); - if(res->flags&(IORESOURCE_MEM|IORESOURCE_PREFETCH)){ - if(size>card->ram_size && size<=64) card->ram_size=size; - } - } - } +// printk("List resources -----------\n"); + for(temp=0;temp<DEVICE_COUNT_RESOURCE;temp++){ + struct resource *res=&dev->resource[temp]; + if(res->flags){ + int size=(1+res->end-res->start)>>20; + printk(KERN_DEBUG "res %d: start: 0x%X end: 0x%X (%d MB) flags=0x%X\n",temp,res->start,res->end,size,res->flags); + if(res->flags&(IORESOURCE_MEM|IORESOURCE_PREFETCH)){ + if(size>card->ram_size && size<=64) card->ram_size=size; + } + } + } #endif - printk(KERN_INFO "mga_vid: detected RAMSIZE is %d MB\n", (unsigned int) card->ram_size); + printk(KERN_INFO "mga_vid: detected RAMSIZE is %d MB\n", (unsigned int) card->ram_size); #endif - } + } #ifdef MGA_ALLOW_IRQ - if ( card->irq != -1 ) { - int tmp = request_irq(card->irq, mga_handle_irq, SA_INTERRUPT | SA_SHIRQ, "Syncfb Time Base", card); - if ( tmp ) { - printk(KERN_INFO "syncfb (mga): cannot register irq %d (Err: %d)\n", card->irq, tmp); - card->irq=-1; - } else { - printk(KERN_DEBUG "syncfb (mga): registered irq %d\n", card->irq); - } - } else { - printk(KERN_INFO "syncfb (mga): No valid irq was found\n"); - card->irq=-1; - } + if ( card->irq != -1 ) { + int tmp = request_irq(card->irq, mga_handle_irq, SA_INTERRUPT | SA_SHIRQ, "Syncfb Time Base", card); + if ( tmp ) { + printk(KERN_INFO "syncfb (mga): cannot register irq %d (Err: %d)\n", card->irq, tmp); + card->irq=-1; + } else { + printk(KERN_DEBUG "syncfb (mga): registered irq %d\n", card->irq); + } + } else { + printk(KERN_INFO "syncfb (mga): No valid irq was found\n"); + card->irq=-1; + } #else - printk(KERN_INFO "syncfb (mga): IRQ disabled in mga_vid.c\n"); - card->irq=-1; + printk(KERN_INFO "syncfb (mga): IRQ disabled in mga_vid.c\n"); + card->irq=-1; #endif - // register devfs, let the kernel give us major and minor numbers + // register devfs, let the kernel give us major and minor numbers #ifdef CONFIG_DEVFS_FS - snprintf(buffer, 16, "mga_vid%d", card_number); - card->dev_handle = devfs_register(NULL, buffer, DEVFS_FL_AUTO_DEVNUM, - 0, 0, - S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IFCHR, - &mga_vid_fops, card); + snprintf(buffer, 16, "mga_vid%d", card_number); + card->dev_handle = devfs_register(NULL, buffer, DEVFS_FL_AUTO_DEVNUM, + 0, 0, + S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IFCHR, + &mga_vid_fops, card); #endif - } /* @@ -1706,83 +1696,83 @@ static int mga_vid_initialize(void) { - int i; + int i; -// printk(KERN_INFO "Matrox MGA G200/G400 YUV Video interface v0.01 (c) Aaron Holtzman \n"); - printk(KERN_INFO "Matrox MGA G200/G400/G450/G550 YUV Video interface v2.01 (c) Aaron Holtzman & A'rpi\n"); +// printk(KERN_INFO "Matrox MGA G200/G400 YUV Video interface v0.01 (c) Aaron Holtzman \n"); + printk(KERN_INFO "Matrox MGA G200/G400/G450/G550 YUV Video interface v2.01 (c) Aaron Holtzman & A'rpi\n"); - for(i = 0; i < MGA_MAX_CARDS; i++) - { - if (mga_ram_size[i]) { - if (mga_ram_size[i]<4 || mga_ram_size[i]>64) { - printk(KERN_ERR "mga_vid: invalid RAMSIZE: %d MB\n", mga_ram_size[i]); - return -EINVAL; - } - } - } + for(i = 0; i < MGA_MAX_CARDS; i++) + { + if (mga_ram_size[i]) { + if (mga_ram_size[i]<4 || mga_ram_size[i]>64) { + printk(KERN_ERR "mga_vid: invalid RAMSIZE: %d MB\n", mga_ram_size[i]); + return -EINVAL; + } + } + } - if(register_chrdev(major, "mga_vid", &mga_vid_fops)) - { - printk(KERN_ERR "mga_vid: unable to get major: %d\n", major); - return -EIO; - } + if(register_chrdev(major, "mga_vid", &mga_vid_fops)) + { + printk(KERN_ERR "mga_vid: unable to get major: %d\n", major); + return -EIO; + } - if (!mga_vid_find_card()) - { - printk(KERN_ERR "mga_vid: no supported devices found\n"); - unregister_chrdev(major, "mga_vid"); - return -EINVAL; - } + if (!mga_vid_find_card()) + { + printk(KERN_ERR "mga_vid: no supported devices found\n"); + unregister_chrdev(major, "mga_vid"); + return -EINVAL; + } #ifdef CONFIG_DEVFS_FS - else { - // we assume that this always succeedes - dev_handle = devfs_register(NULL, "mga_vid", DEVFS_FL_AUTO_DEVNUM, - 0,0, - S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IFCHR, - &mga_vid_fops, mga_cards[0]); - } + else { + // we assume that this always succeedes + dev_handle = devfs_register(NULL, "mga_vid", DEVFS_FL_AUTO_DEVNUM, + 0,0, + S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IFCHR, + &mga_vid_fops, mga_cards[0]); + } #endif - return 0; + return 0; } int init_module(void) { - return mga_vid_initialize(); + return mga_vid_initialize(); } void cleanup_module(void) { - int i; - mga_card_t * card; + int i; + mga_card_t * card; - for (i = 0; i < MGA_MAX_CARDS; i++) - { - card = mga_cards[i]; - if(card) - { + for (i = 0; i < MGA_MAX_CARDS; i++) + { + card = mga_cards[i]; + if(card) + { #ifdef MGA_ALLOW_IRQ - if (card->irq != -1) - free_irq(card->irq, &(card->irq)); + if (card->irq != -1) + free_irq(card->irq, &(card->irq)); #endif - if(card->mmio_base) - iounmap(card->mmio_base); - if(card->param_buff) - kfree(card->param_buff); + if(card->mmio_base) + iounmap(card->mmio_base); + if(card->param_buff) + kfree(card->param_buff); #ifdef CONFIG_DEVFS_FS - if(card->dev_handle) devfs_unregister(card->dev_handle); + if(card->dev_handle) devfs_unregister(card->dev_handle); #endif - kfree(card); - mga_cards[i]=NULL; - } - } + kfree(card); + mga_cards[i]=NULL; + } + } - //FIXME turn off BES - printk(KERN_INFO "mga_vid: Cleaning up module\n"); + //FIXME turn off BES + printk(KERN_INFO "mga_vid: Cleaning up module\n"); #ifdef CONFIG_DEVFS_FS - if(dev_handle) devfs_unregister(dev_handle); + if(dev_handle) devfs_unregister(dev_handle); #endif - unregister_chrdev(major, "mga_vid"); + unregister_chrdev(major, "mga_vid"); }
--- a/drivers/mga_vid_test.c Mon Apr 12 08:03:39 2010 +0000 +++ b/drivers/mga_vid_test.c Mon Apr 12 10:56:17 2010 +0000 @@ -44,192 +44,192 @@ void write_frame_g200(uint8_t *y,uint8_t *cr, uint8_t *cb) { - uint8_t *dest; - uint32_t bespitch,h,w; + uint8_t *dest; + uint32_t bespitch,h,w; - dest = mga_vid_base; - bespitch = (config.src_width + 31) & ~31; + dest = mga_vid_base; + bespitch = (config.src_width + 31) & ~31; - for(h=0; h < config.src_height; h++) - { - memcpy(dest, y, config.src_width); - y += config.src_width; - dest += bespitch; - } + for(h=0; h < config.src_height; h++) + { + memcpy(dest, y, config.src_width); + y += config.src_width; + dest += bespitch; + } - for(h=0; h < config.src_height/2; h++) - { - for(w=0; w < config.src_width/2; w++) - { - *dest++ = *cb++; - *dest++ = *cr++; - } - dest += bespitch - config.src_width; - } + for(h=0; h < config.src_height/2; h++) + { + for(w=0; w < config.src_width/2; w++) + { + *dest++ = *cb++; + *dest++ = *cr++; + } + dest += bespitch - config.src_width; + } } void write_frame_g400(uint8_t *y,uint8_t *cr, uint8_t *cb) { - uint8_t *dest; - uint32_t bespitch,h; + uint8_t *dest; + uint32_t bespitch,h; - dest = mga_vid_base; - bespitch = (config.src_width + 31) & ~31; + dest = mga_vid_base; + bespitch = (config.src_width + 31) & ~31; - for(h=0; h < config.src_height; h++) - { - memcpy(dest, y, config.src_width); - y += config.src_width; - dest += bespitch; - } + for(h=0; h < config.src_height; h++) + { + memcpy(dest, y, config.src_width); + y += config.src_width; + dest += bespitch; + } - for(h=0; h < config.src_height/2; h++) - { - memcpy(dest, cb, config.src_width/2); - cb += config.src_width/2; - dest += bespitch/2; - } + for(h=0; h < config.src_height/2; h++) + { + memcpy(dest, cb, config.src_width/2); + cb += config.src_width/2; + dest += bespitch/2; + } - for(h=0; h < config.src_height/2; h++) - { - memcpy(dest, cr, config.src_width/2); - cr += config.src_width/2; - dest += bespitch/2; - } + for(h=0; h < config.src_height/2; h++) + { + memcpy(dest, cr, config.src_width/2); + cr += config.src_width/2; + dest += bespitch/2; + } } void write_frame(uint8_t *y,uint8_t *cr, uint8_t *cb) { - if(is_g400) - write_frame_g400(y,cr,cb); - else - write_frame_g200(y,cr,cb); + if(is_g400) + write_frame_g400(y,cr,cb); + else + write_frame_g200(y,cr,cb); } void draw_cool_pattern(void) { - int i,x,y; + int i,x,y; - i = 0; - for (y=0; y<config.src_height; y++) { - for (x=0; x<config.src_width; x++) { - y_image[i++] = x*x/2 + y*y/2 - 128; - } - } + i = 0; + for (y=0; y<config.src_height; y++) { + for (x=0; x<config.src_width; x++) { + y_image[i++] = x*x/2 + y*y/2 - 128; + } + } - i = 0; - for (y=0; y<config.src_height/2; y++) - for (x=0; x<config.src_width/2; x++) - { - cr_image[i++] = x - 128; - } + i = 0; + for (y=0; y<config.src_height/2; y++) + for (x=0; x<config.src_width/2; x++) + { + cr_image[i++] = x - 128; + } - i = 0; - for (y=0; y<config.src_height/2; y++) - for (x=0; x<config.src_width/2; x++) - { - cb_image[i++] = y - 128; - } + i = 0; + for (y=0; y<config.src_height/2; y++) + for (x=0; x<config.src_width/2; x++) + { + cb_image[i++] = y - 128; + } } void draw_color_blend(void) { - int i,x,y; + int i,x,y; - i = 0; - for (y=0; y<config.src_height; y++) { - for (x=0; x<config.src_width; x++) { - y_image[i++] = 0; - } - } + i = 0; + for (y=0; y<config.src_height; y++) { + for (x=0; x<config.src_width; x++) { + y_image[i++] = 0; + } + } - i = 0; - for (y=0; y<config.src_height/2; y++) - for (x=0; x<config.src_width/2; x++) - { - cr_image[i++] = x - 128; - } + i = 0; + for (y=0; y<config.src_height/2; y++) + for (x=0; x<config.src_width/2; x++) + { + cr_image[i++] = x - 128; + } - i = 0; - for (y=0; y<config.src_height/2; y++) - for (x=0; x<config.src_width/2; x++) - { - cb_image[i++] = y - 128; - } + i = 0; + for (y=0; y<config.src_height/2; y++) + for (x=0; x<config.src_width/2; x++) + { + cb_image[i++] = y - 128; + } } int main(void) { - int f; + int f; - f = open("/dev/mga_vid",O_RDWR); + f = open("/dev/mga_vid",O_RDWR); - if(f == -1) - { - fprintf(stderr,"Couldn't open driver\n"); - exit(1); - } + if(f == -1) + { + fprintf(stderr,"Couldn't open driver\n"); + exit(1); + } - config.version = MGA_VID_VERSION; - config.src_width = SRC_IMAGE_WIDTH; - config.src_height= SRC_IMAGE_HEIGHT; - config.dest_width = SRC_IMAGE_WIDTH; - config.dest_height = SRC_IMAGE_HEIGHT; - config.x_org= 10; - config.y_org= 10; - config.colkey_on = 0; - config.format = MGA_VID_FORMAT_YV12; - config.frame_size=SRC_IMAGE_WIDTH*SRC_IMAGE_HEIGHT*2; - config.num_frames=1; + config.version = MGA_VID_VERSION; + config.src_width = SRC_IMAGE_WIDTH; + config.src_height= SRC_IMAGE_HEIGHT; + config.dest_width = SRC_IMAGE_WIDTH; + config.dest_height = SRC_IMAGE_HEIGHT; + config.x_org= 10; + config.y_org= 10; + config.colkey_on = 0; + config.format = MGA_VID_FORMAT_YV12; + config.frame_size=SRC_IMAGE_WIDTH*SRC_IMAGE_HEIGHT*2; + config.num_frames=1; - if (ioctl(f,MGA_VID_CONFIG,&config)) - { - perror("Error in config ioctl"); - } + if (ioctl(f,MGA_VID_CONFIG,&config)) + { + perror("Error in config ioctl"); + } - if (config.card_type == MGA_G200) - { - printf("Testing MGA G200 Backend Scaler with %d MB of RAM\n", config.ram_size); - is_g400 = 0; - } - else - { - printf("Testing MGA G400 Backend Scaler with %d MB of RAM\n", config.ram_size); - is_g400 = 1; - } + if (config.card_type == MGA_G200) + { + printf("Testing MGA G200 Backend Scaler with %d MB of RAM\n", config.ram_size); + is_g400 = 0; + } + else + { + printf("Testing MGA G400 Backend Scaler with %d MB of RAM\n", config.ram_size); + is_g400 = 1; + } - ioctl(f,MGA_VID_ON,0); - mga_vid_base = (uint8_t*)mmap(0,256 * 4096,PROT_WRITE,MAP_SHARED,f,0); - printf("mga_vid_base = %8p\n",mga_vid_base); + ioctl(f,MGA_VID_ON,0); + mga_vid_base = (uint8_t*)mmap(0,256 * 4096,PROT_WRITE,MAP_SHARED,f,0); + printf("mga_vid_base = %8p\n",mga_vid_base); - //memset(y_image,80,256 * 128); - //memset(cr_image,80,256/2 * 20); - //memset(cb_image,80,256/2 * 20); - write_frame(y_image,cr_image,cb_image); - printf("(1) There should be a green square, offset by 10 pixels from\n" - " the upper left corner displayed\n"); - sleep(3); + //memset(y_image,80,256 * 128); + //memset(cr_image,80,256/2 * 20); + //memset(cb_image,80,256/2 * 20); + write_frame(y_image,cr_image,cb_image); + printf("(1) There should be a green square, offset by 10 pixels from\n" + " the upper left corner displayed\n"); + sleep(3); - draw_cool_pattern(); - write_frame(y_image,cr_image,cb_image); - printf("(2) There should be a cool mosaic like pattern now.\n"); - sleep(3); + draw_cool_pattern(); + write_frame(y_image,cr_image,cb_image); + printf("(2) There should be a cool mosaic like pattern now.\n"); + sleep(3); - draw_color_blend(); - write_frame(y_image,cr_image,cb_image); - printf("(3) There should be a color blend with black, red, purple, blue\n" - " corners (starting top left going CW)\n"); - sleep(3); + draw_color_blend(); + write_frame(y_image,cr_image,cb_image); + printf("(3) There should be a color blend with black, red, purple, blue\n" + " corners (starting top left going CW)\n"); + sleep(3); - ioctl(f,MGA_VID_OFF,0); + ioctl(f,MGA_VID_OFF,0); - close(f); - return 0; + close(f); + return 0; }
--- a/drivers/radeon.h Mon Apr 12 08:03:39 2010 +0000 +++ b/drivers/radeon.h Mon Apr 12 10:56:17 2010 +0000 @@ -20,645 +20,645 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ -#ifndef MPLAYER_RADEON_H -#define MPLAYER_RADEON_H +#ifndef MPLAYER_RADEON_H +#define MPLAYER_RADEON_H /* radeon PCI ids */ -#define PCI_DEVICE_ID_RADEON_QD 0x5144 -#define PCI_DEVICE_ID_RADEON_QE 0x5145 -#define PCI_DEVICE_ID_RADEON_QF 0x5146 -#define PCI_DEVICE_ID_RADEON_QG 0x5147 -#define PCI_DEVICE_ID_RADEON_QY 0x5159 -#define PCI_DEVICE_ID_RADEON_QZ 0x515A -#define PCI_DEVICE_ID_RADEON_LY 0x4C59 -#define PCI_DEVICE_ID_RADEON_LZ 0x4C5A -#define PCI_DEVICE_ID_RADEON_LW 0x4C57 -#define PCI_DEVICE_ID_R200_QL 0x514C -#define PCI_DEVICE_ID_RV200_QW 0x5157 -#define PCI_DEVICE_ID_R200_BB 0x4242 +#define PCI_DEVICE_ID_RADEON_QD 0x5144 +#define PCI_DEVICE_ID_RADEON_QE 0x5145 +#define PCI_DEVICE_ID_RADEON_QF 0x5146 +#define PCI_DEVICE_ID_RADEON_QG 0x5147 +#define PCI_DEVICE_ID_RADEON_QY 0x5159 +#define PCI_DEVICE_ID_RADEON_QZ 0x515A +#define PCI_DEVICE_ID_RADEON_LY 0x4C59 +#define PCI_DEVICE_ID_RADEON_LZ 0x4C5A +#define PCI_DEVICE_ID_RADEON_LW 0x4C57 +#define PCI_DEVICE_ID_R200_QL 0x514C +#define PCI_DEVICE_ID_RV200_QW 0x5157 +#define PCI_DEVICE_ID_R200_BB 0x4242 -#define RADEON_REGSIZE 0x4000 +#define RADEON_REGSIZE 0x4000 -#define MM_INDEX 0x0000 -/* MM_INDEX bit constants */ -# define MM_APER 0x80000000 -#define MM_DATA 0x0004 -#define BUS_CNTL 0x0030 -/* BUS_CNTL bit constants */ -# define BUS_DBL_RESYNC 0x00000001 -# define BUS_MSTR_RESET 0x00000002 -# define BUS_FLUSH_BUF 0x00000004 -# define BUS_STOP_REQ_DIS 0x00000008 -# define BUS_ROTATION_DIS 0x00000010 -# define BUS_MASTER_DIS 0x00000040 -# define BUS_ROM_WRT_EN 0x00000080 -# define BUS_DIS_ROM 0x00001000 -# define BUS_PCI_READ_RETRY_EN 0x00002000 -# define BUS_AGP_AD_STEPPING_EN 0x00004000 -# define BUS_PCI_WRT_RETRY_EN 0x00008000 -# define BUS_MSTR_RD_MULT 0x00100000 -# define BUS_MSTR_RD_LINE 0x00200000 -# define BUS_SUSPEND 0x00400000 -# define LAT_16X 0x00800000 -# define BUS_RD_DISCARD_EN 0x01000000 -# define BUS_RD_ABORT_EN 0x02000000 -# define BUS_MSTR_WS 0x04000000 -# define BUS_PARKING_DIS 0x08000000 -# define BUS_MSTR_DISCONNECT_EN 0x10000000 -# define BUS_WRT_BURST 0x20000000 -# define BUS_READ_BURST 0x40000000 -# define BUS_RDY_READ_DLY 0x80000000 -#define HI_STAT 0x004C -#define BUS_CNTL1 0x0034 -# define BUS_WAIT_ON_LOCK_EN (1 << 4) -#define I2C_CNTL_0 0x0090 -# define I2C_DONE (1<<0) -# define I2C_NACK (1<<1) -# define I2C_HALT (1<<2) -# define I2C_SOFT_RST (1<<5) -# define I2C_DRIVE_EN (1<<6) -# define I2C_DRIVE_SEL (1<<7) -# define I2C_START (1<<8) -# define I2C_STOP (1<<9) -# define I2C_RECEIVE (1<<10) -# define I2C_ABORT (1<<11) -# define I2C_GO (1<<12) -# define I2C_SEL (1<<16) -# define I2C_EN (1<<17) -#define I2C_CNTL_1 0x0094 -#define I2C_DATA 0x0098 -#define CONFIG_CNTL 0x00E0 +#define MM_INDEX 0x0000 +/* MM_INDEX bit constants */ +# define MM_APER 0x80000000 +#define MM_DATA 0x0004 +#define BUS_CNTL 0x0030 +/* BUS_CNTL bit constants */ +# define BUS_DBL_RESYNC 0x00000001 +# define BUS_MSTR_RESET 0x00000002 +# define BUS_FLUSH_BUF 0x00000004 +# define BUS_STOP_REQ_DIS 0x00000008 +# define BUS_ROTATION_DIS 0x00000010 +# define BUS_MASTER_DIS 0x00000040 +# define BUS_ROM_WRT_EN 0x00000080 +# define BUS_DIS_ROM 0x00001000 +# define BUS_PCI_READ_RETRY_EN 0x00002000 +# define BUS_AGP_AD_STEPPING_EN 0x00004000 +# define BUS_PCI_WRT_RETRY_EN 0x00008000 +# define BUS_MSTR_RD_MULT 0x00100000 +# define BUS_MSTR_RD_LINE 0x00200000 +# define BUS_SUSPEND 0x00400000 +# define LAT_16X 0x00800000 +# define BUS_RD_DISCARD_EN 0x01000000 +# define BUS_RD_ABORT_EN 0x02000000 +# define BUS_MSTR_WS 0x04000000 +# define BUS_PARKING_DIS 0x08000000 +# define BUS_MSTR_DISCONNECT_EN 0x10000000 +# define BUS_WRT_BURST 0x20000000 +# define BUS_READ_BURST 0x40000000 +# define BUS_RDY_READ_DLY 0x80000000 +#define HI_STAT 0x004C +#define BUS_CNTL1 0x0034 +# define BUS_WAIT_ON_LOCK_EN (1 << 4) +#define I2C_CNTL_0 0x0090 +# define I2C_DONE (1<<0) +# define I2C_NACK (1<<1) +# define I2C_HALT (1<<2) +# define I2C_SOFT_RST (1<<5) +# define I2C_DRIVE_EN (1<<6) +# define I2C_DRIVE_SEL (1<<7) +# define I2C_START (1<<8) +# define I2C_STOP (1<<9) +# define I2C_RECEIVE (1<<10) +# define I2C_ABORT (1<<11) +# define I2C_GO (1<<12) +# define I2C_SEL (1<<16) +# define I2C_EN (1<<17) +#define I2C_CNTL_1 0x0094 +#define I2C_DATA 0x0098 +#define CONFIG_CNTL 0x00E0 /* CONFIG_CNTL bit constants */ -# define CFG_VGA_RAM_EN 0x00000100 -#define CONFIG_MEMSIZE 0x00F8 -#define CONFIG_APER_0_BASE 0x0100 -#define CONFIG_APER_1_BASE 0x0104 -#define CONFIG_APER_SIZE 0x0108 -#define CONFIG_REG_1_BASE 0x010C -#define CONFIG_REG_APER_SIZE 0x0110 -#define PAD_AGPINPUT_DELAY 0x0164 -#define PAD_CTLR_STRENGTH 0x0168 -#define PAD_CTLR_UPDATE 0x016C -#define AGP_CNTL 0x0174 -# define AGP_APER_SIZE_256MB (0x00 << 0) -# define AGP_APER_SIZE_128MB (0x20 << 0) -# define AGP_APER_SIZE_64MB (0x30 << 0) -# define AGP_APER_SIZE_32MB (0x38 << 0) -# define AGP_APER_SIZE_16MB (0x3c << 0) -# define AGP_APER_SIZE_8MB (0x3e << 0) -# define AGP_APER_SIZE_4MB (0x3f << 0) -# define AGP_APER_SIZE_MASK (0x3f << 0) -#define AMCGPIO_A_REG 0x01a0 -#define AMCGPIO_EN_REG 0x01a8 -#define AMCGPIO_MASK 0x0194 -#define AMCGPIO_Y_REG 0x01a4 -#define BM_STATUS 0x0160 -#define MPP_TB_CONFIG 0x01c0 /* ? */ -#define MPP_GP_CONFIG 0x01c8 /* ? */ -#define VENDOR_ID 0x0F00 -#define DEVICE_ID 0x0F02 -#define COMMAND 0x0F04 -#define STATUS 0x0F06 -#define REVISION_ID 0x0F08 -#define REGPROG_INF 0x0F09 -#define SUB_CLASS 0x0F0A -#define CACHE_LINE 0x0F0C -#define LATENCY 0x0F0D -#define HEADER 0x0F0E -#define BIST 0x0F0F -#define REG_MEM_BASE 0x0F10 -#define REG_IO_BASE 0x0F14 -#define REG_REG_BASE 0x0F18 -#define ADAPTER_ID 0x0F2C -#define BIOS_ROM 0x0F30 -#define CAPABILITIES_PTR 0x0F34 -#define INTERRUPT_LINE 0x0F3C -#define INTERRUPT_PIN 0x0F3D -#define MIN_GRANT 0x0F3E -#define MAX_LATENCY 0x0F3F -#define ADAPTER_ID_W 0x0F4C -#define PMI_CAP_ID 0x0F50 -#define PMI_NXT_CAP_PTR 0x0F51 -#define PMI_PMC_REG 0x0F52 -#define PM_STATUS 0x0F54 -#define PMI_DATA 0x0F57 -#define AGP_CAP_ID 0x0F58 -#define AGP_STATUS 0x0F5C -# define AGP_1X_MODE 0x01 -# define AGP_2X_MODE 0x02 -# define AGP_4X_MODE 0x04 -# define AGP_MODE_MASK 0x07 -#define AGP_COMMAND 0x0F60 +# define CFG_VGA_RAM_EN 0x00000100 +#define CONFIG_MEMSIZE 0x00F8 +#define CONFIG_APER_0_BASE 0x0100 +#define CONFIG_APER_1_BASE 0x0104 +#define CONFIG_APER_SIZE 0x0108 +#define CONFIG_REG_1_BASE 0x010C +#define CONFIG_REG_APER_SIZE 0x0110 +#define PAD_AGPINPUT_DELAY 0x0164 +#define PAD_CTLR_STRENGTH 0x0168 +#define PAD_CTLR_UPDATE 0x016C +#define AGP_CNTL 0x0174 +# define AGP_APER_SIZE_256MB (0x00 << 0) +# define AGP_APER_SIZE_128MB (0x20 << 0) +# define AGP_APER_SIZE_64MB (0x30 << 0) +# define AGP_APER_SIZE_32MB (0x38 << 0) +# define AGP_APER_SIZE_16MB (0x3c << 0) +# define AGP_APER_SIZE_8MB (0x3e << 0) +# define AGP_APER_SIZE_4MB (0x3f << 0) +# define AGP_APER_SIZE_MASK (0x3f << 0) +#define AMCGPIO_A_REG 0x01a0 +#define AMCGPIO_EN_REG 0x01a8 +#define AMCGPIO_MASK 0x0194 +#define AMCGPIO_Y_REG 0x01a4 +#define BM_STATUS 0x0160 +#define MPP_TB_CONFIG 0x01c0 /* ? */ +#define MPP_GP_CONFIG 0x01c8 /* ? */ +#define VENDOR_ID 0x0F00 +#define DEVICE_ID 0x0F02 +#define COMMAND 0x0F04 +#define STATUS 0x0F06 +#define REVISION_ID 0x0F08 +#define REGPROG_INF 0x0F09 +#define SUB_CLASS 0x0F0A +#define CACHE_LINE 0x0F0C +#define LATENCY 0x0F0D +#define HEADER 0x0F0E +#define BIST 0x0F0F +#define REG_MEM_BASE 0x0F10 +#define REG_IO_BASE 0x0F14 +#define REG_REG_BASE 0x0F18 +#define ADAPTER_ID 0x0F2C +#define BIOS_ROM 0x0F30 +#define CAPABILITIES_PTR 0x0F34 +#define INTERRUPT_LINE 0x0F3C +#define INTERRUPT_PIN 0x0F3D +#define MIN_GRANT 0x0F3E +#define MAX_LATENCY 0x0F3F +#define ADAPTER_ID_W 0x0F4C +#define PMI_CAP_ID 0x0F50 +#define PMI_NXT_CAP_PTR 0x0F51 +#define PMI_PMC_REG 0x0F52 +#define PM_STATUS 0x0F54 +#define PMI_DATA 0x0F57 +#define AGP_CAP_ID 0x0F58 +#define AGP_STATUS 0x0F5C +# define AGP_1X_MODE 0x01 +# define AGP_2X_MODE 0x02 +# define AGP_4X_MODE 0x04 +# define AGP_MODE_MASK 0x07 +#define AGP_COMMAND 0x0F60 /* Video muxer unit */ -#define VIDEOMUX_CNTL 0x0190 -#define VIPPAD_MASK 0x0198 -#define VIPPAD1_A 0x01AC -#define VIPPAD1_EN 0x01B0 -#define VIPPAD1_Y 0x01B4 +#define VIDEOMUX_CNTL 0x0190 +#define VIPPAD_MASK 0x0198 +#define VIPPAD1_A 0x01AC +#define VIPPAD1_EN 0x01B0 +#define VIPPAD1_Y 0x01B4 -#define AIC_CTRL 0x01D0 -#define AIC_STAT 0x01D4 -#define AIC_PT_BASE 0x01D8 -#define AIC_LO_ADDR 0x01DC -#define AIC_HI_ADDR 0x01E0 -#define AIC_TLB_ADDR 0x01E4 -#define AIC_TLB_DATA 0x01E8 -#define DAC_CNTL 0x0058 -/* DAC_CNTL bit constants */ -# define DAC_8BIT_EN 0x00000100 -# define DAC_4BPP_PIX_ORDER 0x00000200 -# define DAC_CRC_EN 0x00080000 -# define DAC_MASK_ALL (0xff << 24) -# define DAC_VGA_ADR_EN (1 << 13) -# define DAC_RANGE_CNTL (3 << 0) -# define DAC_BLANKING (1 << 2) -#define DAC_CNTL2 0x007c +#define AIC_CTRL 0x01D0 +#define AIC_STAT 0x01D4 +#define AIC_PT_BASE 0x01D8 +#define AIC_LO_ADDR 0x01DC +#define AIC_HI_ADDR 0x01E0 +#define AIC_TLB_ADDR 0x01E4 +#define AIC_TLB_DATA 0x01E8 +#define DAC_CNTL 0x0058 +/* DAC_CNTL bit constants */ +# define DAC_8BIT_EN 0x00000100 +# define DAC_4BPP_PIX_ORDER 0x00000200 +# define DAC_CRC_EN 0x00080000 +# define DAC_MASK_ALL (0xff << 24) +# define DAC_VGA_ADR_EN (1 << 13) +# define DAC_RANGE_CNTL (3 << 0) +# define DAC_BLANKING (1 << 2) +#define DAC_CNTL2 0x007c /* DAC_CNTL2 bit constants */ -# define DAC2_DAC_CLK_SEL (1 << 0) -# define DAC2_DAC2_CLK_SEL (1 << 1) -# define DAC2_PALETTE_ACC_CTL (1 << 5) -#define TV_DAC_CNTL 0x088c +# define DAC2_DAC_CLK_SEL (1 << 0) +# define DAC2_DAC2_CLK_SEL (1 << 1) +# define DAC2_PALETTE_ACC_CTL (1 << 5) +#define TV_DAC_CNTL 0x088c /* TV_DAC_CNTL bit constants */ -# define TV_DAC_STD_MASK 0x0300 -# define TV_DAC_RDACPD (1 << 24) -# define TV_DAC_GDACPD (1 << 25) -# define TV_DAC_BDACPD (1 << 26) -#define CRTC_GEN_CNTL 0x0050 +# define TV_DAC_STD_MASK 0x0300 +# define TV_DAC_RDACPD (1 << 24) +# define TV_DAC_GDACPD (1 << 25) +# define TV_DAC_BDACPD (1 << 26) +#define CRTC_GEN_CNTL 0x0050 /* CRTC_GEN_CNTL bit constants */ -# define CRTC_DBL_SCAN_EN 0x00000001 -# define CRTC_INTERLACE_EN (1 << 1) -# define CRTC_CSYNC_EN (1 << 4) -# define CRTC_CUR_EN 0x00010000 -# define CRTC_CUR_MODE_MASK (7 << 17) -# define CRTC_ICON_EN (1 << 20) -# define CRTC_EXT_DISP_EN (1 << 24) -# define CRTC_EN (1 << 25) -# define CRTC_DISP_REQ_EN_B (1 << 26) -#define CRTC2_GEN_CNTL 0x03f8 -/* CRTC2_GEN_CNTL bit constants */ -# define CRTC2_DBL_SCAN_EN (1 << 0) -# define CRTC2_INTERLACE_EN (1 << 1) -# define CRTC2_SYNC_TRISTAT (1 << 4) -# define CRTC2_HSYNC_TRISTAT (1 << 5) -# define CRTC2_VSYNC_TRISTAT (1 << 6) -# define CRTC2_CRT2_ON (1 << 7) -# define CRTC2_ICON_EN (1 << 15) -# define CRTC2_CUR_EN (1 << 16) -# define CRTC2_CUR_MODE_MASK (7 << 20) -# define CRTC2_DISP_DIS (1 << 23) -# define CRTC2_EN (1 << 25) -# define CRTC2_DISP_REQ_EN_B (1 << 26) -# define CRTC2_HSYNC_DIS (1 << 28) -# define CRTC2_VSYNC_DIS (1 << 29) -#define MEM_CNTL 0x0140 -/* MEM_CNTL bit constants */ -# define MEM_CTLR_STATUS_IDLE 0x00000000 -# define MEM_CTLR_STATUS_BUSY 0x00100000 -# define MEM_SEQNCR_STATUS_IDLE 0x00000000 -# define MEM_SEQNCR_STATUS_BUSY 0x00200000 -# define MEM_ARBITER_STATUS_IDLE 0x00000000 -# define MEM_ARBITER_STATUS_BUSY 0x00400000 -# define MEM_REQ_UNLOCK 0x00000000 -# define MEM_REQ_LOCK 0x00800000 -#define EXT_MEM_CNTL 0x0144 -#define MC_AGP_LOCATION 0x014C -#define MEM_IO_CNTL_A0 0x0178 -#define MEM_INIT_LATENCY_TIMER 0x0154 -#define MEM_SDRAM_MODE_REG 0x0158 -#define AGP_BASE 0x0170 -#define MEM_IO_CNTL_A1 0x017C -#define MEM_IO_CNTL_B0 0x0180 -#define MEM_IO_CNTL_B1 0x0184 -#define MC_DEBUG 0x0188 -#define MC_STATUS 0x0150 -#define MEM_IO_OE_CNTL 0x018C -#define MC_FB_LOCATION 0x0148 -#define HOST_PATH_CNTL 0x0130 -#define MEM_VGA_WP_SEL 0x0038 -#define MEM_VGA_RP_SEL 0x003C -#define HDP_DEBUG 0x0138 -#define SW_SEMAPHORE 0x013C -#define SURFACE_CNTL 0x0B00 -/* SURFACE_CNTL bit constants */ -# define SURF_TRANSLATION_DIS (1 << 8) -# define NONSURF_AP0_SWP_16BPP (1 << 20) -# define NONSURF_AP0_SWP_32BPP (2 << 20) -#define SURFACE0_LOWER_BOUND 0x0B04 -#define SURFACE1_LOWER_BOUND 0x0B14 -#define SURFACE2_LOWER_BOUND 0x0B24 -#define SURFACE3_LOWER_BOUND 0x0B34 -#define SURFACE4_LOWER_BOUND 0x0B44 -#define SURFACE5_LOWER_BOUND 0x0B54 -#define SURFACE6_LOWER_BOUND 0x0B64 -#define SURFACE7_LOWER_BOUND 0x0B74 -#define SURFACE0_UPPER_BOUND 0x0B08 -#define SURFACE1_UPPER_BOUND 0x0B18 -#define SURFACE2_UPPER_BOUND 0x0B28 -#define SURFACE3_UPPER_BOUND 0x0B38 -#define SURFACE4_UPPER_BOUND 0x0B48 -#define SURFACE5_UPPER_BOUND 0x0B58 -#define SURFACE6_UPPER_BOUND 0x0B68 -#define SURFACE7_UPPER_BOUND 0x0B78 -#define SURFACE0_INFO 0x0B0C -#define SURFACE1_INFO 0x0B1C -#define SURFACE2_INFO 0x0B2C -#define SURFACE3_INFO 0x0B3C -#define SURFACE4_INFO 0x0B4C -#define SURFACE5_INFO 0x0B5C -#define SURFACE6_INFO 0x0B6C -#define SURFACE7_INFO 0x0B7C -#define SURFACE_ACCESS_FLAGS 0x0BF8 -#define SURFACE_ACCESS_CLR 0x0BFC -#define GEN_INT_CNTL 0x0040 -#define GEN_INT_STATUS 0x0044 -# define VSYNC_INT_AK (1 << 2) -# define VSYNC_INT (1 << 2) -#define CRTC_EXT_CNTL 0x0054 +# define CRTC_DBL_SCAN_EN 0x00000001 +# define CRTC_INTERLACE_EN (1 << 1) +# define CRTC_CSYNC_EN (1 << 4) +# define CRTC_CUR_EN 0x00010000 +# define CRTC_CUR_MODE_MASK (7 << 17) +# define CRTC_ICON_EN (1 << 20) +# define CRTC_EXT_DISP_EN (1 << 24) +# define CRTC_EN (1 << 25) +# define CRTC_DISP_REQ_EN_B (1 << 26) +#define CRTC2_GEN_CNTL 0x03f8 +/* CRTC2_GEN_CNTL bit constants */ +# define CRTC2_DBL_SCAN_EN (1 << 0) +# define CRTC2_INTERLACE_EN (1 << 1) +# define CRTC2_SYNC_TRISTAT (1 << 4) +# define CRTC2_HSYNC_TRISTAT (1 << 5) +# define CRTC2_VSYNC_TRISTAT (1 << 6) +# define CRTC2_CRT2_ON (1 << 7) +# define CRTC2_ICON_EN (1 << 15) +# define CRTC2_CUR_EN (1 << 16) +# define CRTC2_CUR_MODE_MASK (7 << 20) +# define CRTC2_DISP_DIS (1 << 23) +# define CRTC2_EN (1 << 25) +# define CRTC2_DISP_REQ_EN_B (1 << 26) +# define CRTC2_HSYNC_DIS (1 << 28) +# define CRTC2_VSYNC_DIS (1 << 29) +#define MEM_CNTL 0x0140 +/* MEM_CNTL bit constants */ +# define MEM_CTLR_STATUS_IDLE 0x00000000 +# define MEM_CTLR_STATUS_BUSY 0x00100000 +# define MEM_SEQNCR_STATUS_IDLE 0x00000000 +# define MEM_SEQNCR_STATUS_BUSY 0x00200000 +# define MEM_ARBITER_STATUS_IDLE 0x00000000 +# define MEM_ARBITER_STATUS_BUSY 0x00400000 +# define MEM_REQ_UNLOCK 0x00000000 +# define MEM_REQ_LOCK 0x00800000 +#define EXT_MEM_CNTL 0x0144 +#define MC_AGP_LOCATION 0x014C +#define MEM_IO_CNTL_A0 0x0178 +#define MEM_INIT_LATENCY_TIMER 0x0154 +#define MEM_SDRAM_MODE_REG 0x0158 +#define AGP_BASE 0x0170 +#define MEM_IO_CNTL_A1 0x017C +#define MEM_IO_CNTL_B0 0x0180 +#define MEM_IO_CNTL_B1 0x0184 +#define MC_DEBUG 0x0188 +#define MC_STATUS 0x0150 +#define MEM_IO_OE_CNTL 0x018C +#define MC_FB_LOCATION 0x0148 +#define HOST_PATH_CNTL 0x0130 +#define MEM_VGA_WP_SEL 0x0038 +#define MEM_VGA_RP_SEL 0x003C +#define HDP_DEBUG 0x0138 +#define SW_SEMAPHORE 0x013C +#define SURFACE_CNTL 0x0B00 +/* SURFACE_CNTL bit constants */ +# define SURF_TRANSLATION_DIS (1 << 8) +# define NONSURF_AP0_SWP_16BPP (1 << 20) +# define NONSURF_AP0_SWP_32BPP (2 << 20) +#define SURFACE0_LOWER_BOUND 0x0B04 +#define SURFACE1_LOWER_BOUND 0x0B14 +#define SURFACE2_LOWER_BOUND 0x0B24 +#define SURFACE3_LOWER_BOUND 0x0B34 +#define SURFACE4_LOWER_BOUND 0x0B44 +#define SURFACE5_LOWER_BOUND 0x0B54 +#define SURFACE6_LOWER_BOUND 0x0B64 +#define SURFACE7_LOWER_BOUND 0x0B74 +#define SURFACE0_UPPER_BOUND 0x0B08 +#define SURFACE1_UPPER_BOUND 0x0B18 +#define SURFACE2_UPPER_BOUND 0x0B28 +#define SURFACE3_UPPER_BOUND 0x0B38 +#define SURFACE4_UPPER_BOUND 0x0B48 +#define SURFACE5_UPPER_BOUND 0x0B58 +#define SURFACE6_UPPER_BOUND 0x0B68 +#define SURFACE7_UPPER_BOUND 0x0B78 +#define SURFACE0_INFO 0x0B0C +#define SURFACE1_INFO 0x0B1C +#define SURFACE2_INFO 0x0B2C +#define SURFACE3_INFO 0x0B3C +#define SURFACE4_INFO 0x0B4C +#define SURFACE5_INFO 0x0B5C +#define SURFACE6_INFO 0x0B6C +#define SURFACE7_INFO 0x0B7C +#define SURFACE_ACCESS_FLAGS 0x0BF8 +#define SURFACE_ACCESS_CLR 0x0BFC +#define GEN_INT_CNTL 0x0040 +#define GEN_INT_STATUS 0x0044 +# define VSYNC_INT_AK (1 << 2) +# define VSYNC_INT (1 << 2) +#define CRTC_EXT_CNTL 0x0054 /* CRTC_EXT_CNTL bit constants */ -# define CRTC_VGA_XOVERSCAN (1 << 0) -# define VGA_ATI_LINEAR 0x00000008 -# define VGA_128KAP_PAGING 0x00000010 -# define XCRT_CNT_EN (1 << 6) -# define CRTC_HSYNC_DIS (1 << 8) -# define CRTC_VSYNC_DIS (1 << 9) -# define CRTC_DISPLAY_DIS (1 << 10) -# define CRTC_SYNC_TRISTAT (1 << 11) -# define CRTC_CRT_ON (1 << 15) -#define CRTC_EXT_CNTL_DPMS_BYTE 0x0055 -# define CRTC_HSYNC_DIS_BYTE (1 << 0) -# define CRTC_VSYNC_DIS_BYTE (1 << 1) -# define CRTC_DISPLAY_DIS_BYTE (1 << 2) -#define RB3D_CNTL 0x1C3C -#define WAIT_UNTIL 0x1720 -#define ISYNC_CNTL 0x1724 -#define RBBM_GUICNTL 0x172C -#define RBBM_STATUS 0x0E40 -# define RBBM_FIFOCNT_MASK 0x007f -# define RBBM_ACTIVE (1 << 31) -#define RBBM_STATUS_alt_1 0x1740 -#define RBBM_CNTL 0x00EC -#define RBBM_CNTL_alt_1 0x0E44 -#define RBBM_SOFT_RESET 0x00F0 +# define CRTC_VGA_XOVERSCAN (1 << 0) +# define VGA_ATI_LINEAR 0x00000008 +# define VGA_128KAP_PAGING 0x00000010 +# define XCRT_CNT_EN (1 << 6) +# define CRTC_HSYNC_DIS (1 << 8) +# define CRTC_VSYNC_DIS (1 << 9) +# define CRTC_DISPLAY_DIS (1 << 10) +# define CRTC_SYNC_TRISTAT (1 << 11) +# define CRTC_CRT_ON (1 << 15) +#define CRTC_EXT_CNTL_DPMS_BYTE 0x0055 +# define CRTC_HSYNC_DIS_BYTE (1 << 0) +# define CRTC_VSYNC_DIS_BYTE (1 << 1) +# define CRTC_DISPLAY_DIS_BYTE (1 << 2) +#define RB3D_CNTL 0x1C3C +#define WAIT_UNTIL 0x1720 +#define ISYNC_CNTL 0x1724 +#define RBBM_GUICNTL 0x172C +#define RBBM_STATUS 0x0E40 +# define RBBM_FIFOCNT_MASK 0x007f +# define RBBM_ACTIVE (1 << 31) +#define RBBM_STATUS_alt_1 0x1740 +#define RBBM_CNTL 0x00EC +#define RBBM_CNTL_alt_1 0x0E44 +#define RBBM_SOFT_RESET 0x00F0 /* RBBM_SOFT_RESET bit constants */ -# define SOFT_RESET_CP (1 << 0) -# define SOFT_RESET_HI (1 << 1) -# define SOFT_RESET_SE (1 << 2) -# define SOFT_RESET_RE (1 << 3) -# define SOFT_RESET_PP (1 << 4) -# define SOFT_RESET_E2 (1 << 5) -# define SOFT_RESET_RB (1 << 6) -# define SOFT_RESET_HDP (1 << 7) -#define RBBM_SOFT_RESET_alt_1 0x0E48 -#define NQWAIT_UNTIL 0x0E50 -#define RBBM_DEBUG 0x0E6C -#define RBBM_CMDFIFO_ADDR 0x0E70 -#define RBBM_CMDFIFO_DATAL 0x0E74 -#define RBBM_CMDFIFO_DATAH 0x0E78 -#define RBBM_CMDFIFO_STAT 0x0E7C -#define CRTC_STATUS 0x005C +# define SOFT_RESET_CP (1 << 0) +# define SOFT_RESET_HI (1 << 1) +# define SOFT_RESET_SE (1 << 2) +# define SOFT_RESET_RE (1 << 3) +# define SOFT_RESET_PP (1 << 4) +# define SOFT_RESET_E2 (1 << 5) +# define SOFT_RESET_RB (1 << 6) +# define SOFT_RESET_HDP (1 << 7) +#define RBBM_SOFT_RESET_alt_1 0x0E48 +#define NQWAIT_UNTIL 0x0E50 +#define RBBM_DEBUG 0x0E6C +#define RBBM_CMDFIFO_ADDR 0x0E70 +#define RBBM_CMDFIFO_DATAL 0x0E74 +#define RBBM_CMDFIFO_DATAH 0x0E78 +#define RBBM_CMDFIFO_STAT 0x0E7C +#define CRTC_STATUS 0x005C /* CRTC_STATUS bit constants */ -# define CRTC_VBLANK 0x00000001 -# define CRTC_VBLANK_SAVE ( 1 << 1) -#define GPIO_VGA_DDC 0x0060 -#define GPIO_DVI_DDC 0x0064 -#define GPIO_MONID 0x0068 -#define PALETTE_INDEX 0x00B0 -#define PALETTE_DATA 0x00B4 -#define PALETTE_30_DATA 0x00B8 -#define CRTC_H_TOTAL_DISP 0x0200 -# define CRTC_H_TOTAL (0x03ff << 0) -# define CRTC_H_TOTAL_SHIFT 0 -# define CRTC_H_DISP (0x01ff << 16) -# define CRTC_H_DISP_SHIFT 16 -#define CRTC2_H_TOTAL_DISP 0x0300 -# define CRTC2_H_TOTAL (0x03ff << 0) -# define CRTC2_H_TOTAL_SHIFT 0 -# define CRTC2_H_DISP (0x01ff << 16) -# define CRTC2_H_DISP_SHIFT 16 -#define CRTC_H_SYNC_STRT_WID 0x0204 -# define CRTC_H_SYNC_STRT_PIX (0x07 << 0) -# define CRTC_H_SYNC_STRT_CHAR (0x3ff << 3) -# define CRTC_H_SYNC_STRT_CHAR_SHIFT 3 -# define CRTC_H_SYNC_WID (0x3f << 16) -# define CRTC_H_SYNC_WID_SHIFT 16 -# define CRTC_H_SYNC_POL (1 << 23) -#define CRTC2_H_SYNC_STRT_WID 0x0304 -# define CRTC2_H_SYNC_STRT_PIX (0x07 << 0) -# define CRTC2_H_SYNC_STRT_CHAR (0x3ff << 3) -# define CRTC2_H_SYNC_STRT_CHAR_SHIFT 3 -# define CRTC2_H_SYNC_WID (0x3f << 16) -# define CRTC2_H_SYNC_WID_SHIFT 16 -# define CRTC2_H_SYNC_POL (1 << 23) -#define CRTC_V_TOTAL_DISP 0x0208 -# define CRTC_V_TOTAL (0x07ff << 0) -# define CRTC_V_TOTAL_SHIFT 0 -# define CRTC_V_DISP (0x07ff << 16) -# define CRTC_V_DISP_SHIFT 16 -#define CRTC2_V_TOTAL_DISP 0x0308 -# define CRTC2_V_TOTAL (0x07ff << 0) -# define CRTC2_V_TOTAL_SHIFT 0 -# define CRTC2_V_DISP (0x07ff << 16) -# define CRTC2_V_DISP_SHIFT 16 -#define CRTC_V_SYNC_STRT_WID 0x020C -# define CRTC_V_SYNC_STRT (0x7ff << 0) -# define CRTC_V_SYNC_STRT_SHIFT 0 -# define CRTC_V_SYNC_WID (0x1f << 16) -# define CRTC_V_SYNC_WID_SHIFT 16 -# define CRTC_V_SYNC_POL (1 << 23) -#define CRTC2_V_SYNC_STRT_WID 0x030C -# define CRTC2_V_SYNC_STRT (0x7ff << 0) -# define CRTC2_V_SYNC_STRT_SHIFT 0 -# define CRTC2_V_SYNC_WID (0x1f << 16) -# define CRTC2_V_SYNC_WID_SHIFT 16 -# define CRTC2_V_SYNC_POL (1 << 23) -#define CRTC_VLINE_CRNT_VLINE 0x0210 -# define CRTC_CRNT_VLINE_MASK (0x7ff << 16) -#define CRTC2_VLINE_CRNT_VLINE 0x0310 -#define CRTC_CRNT_FRAME 0x0214 -#define CRTC2_CRNT_FRAME 0x0314 -#define CRTC_GUI_TRIG_VLINE 0x0218 -#define CRTC2_GUI_TRIG_VLINE 0x0318 -#define CRTC_DEBUG 0x021C -#define CRTC2_DEBUG 0x031C -#define CRTC_OFFSET_RIGHT 0x0220 -#define CRTC_OFFSET 0x0224 -#define CRTC2_OFFSET 0x0324 -#define CRTC_OFFSET_CNTL 0x0228 -# define CRTC_TILE_EN (1 << 15) -#define CRTC2_OFFSET_CNTL 0x0328 -# define CRTC2_TILE_EN (1 << 15) -#define CRTC_PITCH 0x022C -#define CRTC2_PITCH 0x032C -#define TMDS_CRC 0x02a0 -#define OVR_CLR 0x0230 -#define OVR_WID_LEFT_RIGHT 0x0234 -#define OVR_WID_TOP_BOTTOM 0x0238 -#define DISPLAY_BASE_ADDR 0x023C -#define SNAPSHOT_VH_COUNTS 0x0240 -#define SNAPSHOT_F_COUNT 0x0244 -#define N_VIF_COUNT 0x0248 -#define SNAPSHOT_VIF_COUNT 0x024C -#define FP_CRTC_H_TOTAL_DISP 0x0250 -#define FP_CRTC2_H_TOTAL_DISP 0x0350 -#define FP_CRTC_V_TOTAL_DISP 0x0254 -#define FP_CRTC2_V_TOTAL_DISP 0x0354 -# define FP_CRTC_H_TOTAL_MASK 0x000003ff -# define FP_CRTC_H_DISP_MASK 0x01ff0000 -# define FP_CRTC_V_TOTAL_MASK 0x00000fff -# define FP_CRTC_V_DISP_MASK 0x0fff0000 -# define FP_H_SYNC_STRT_CHAR_MASK 0x00001ff8 -# define FP_H_SYNC_WID_MASK 0x003f0000 -# define FP_V_SYNC_STRT_MASK 0x00000fff -# define FP_V_SYNC_WID_MASK 0x001f0000 -# define FP_CRTC_H_TOTAL_SHIFT 0x00000000 -# define FP_CRTC_H_DISP_SHIFT 0x00000010 -# define FP_CRTC_V_TOTAL_SHIFT 0x00000000 -# define FP_CRTC_V_DISP_SHIFT 0x00000010 -# define FP_H_SYNC_STRT_CHAR_SHIFT 0x00000003 -# define FP_H_SYNC_WID_SHIFT 0x00000010 -# define FP_V_SYNC_STRT_SHIFT 0x00000000 -# define FP_V_SYNC_WID_SHIFT 0x00000010 -#define CRT_CRTC_H_SYNC_STRT_WID 0x0258 -#define CRT_CRTC_V_SYNC_STRT_WID 0x025C -#define CUR_OFFSET 0x0260 -#define CUR_HORZ_VERT_POSN 0x0264 -#define CUR_HORZ_VERT_OFF 0x0268 +# define CRTC_VBLANK 0x00000001 +# define CRTC_VBLANK_SAVE ( 1 << 1) +#define GPIO_VGA_DDC 0x0060 +#define GPIO_DVI_DDC 0x0064 +#define GPIO_MONID 0x0068 +#define PALETTE_INDEX 0x00B0 +#define PALETTE_DATA 0x00B4 +#define PALETTE_30_DATA 0x00B8 +#define CRTC_H_TOTAL_DISP 0x0200 +# define CRTC_H_TOTAL (0x03ff << 0) +# define CRTC_H_TOTAL_SHIFT 0 +# define CRTC_H_DISP (0x01ff << 16) +# define CRTC_H_DISP_SHIFT 16 +#define CRTC2_H_TOTAL_DISP 0x0300 +# define CRTC2_H_TOTAL (0x03ff << 0) +# define CRTC2_H_TOTAL_SHIFT 0 +# define CRTC2_H_DISP (0x01ff << 16) +# define CRTC2_H_DISP_SHIFT 16 +#define CRTC_H_SYNC_STRT_WID 0x0204 +# define CRTC_H_SYNC_STRT_PIX (0x07 << 0) +# define CRTC_H_SYNC_STRT_CHAR (0x3ff << 3) +# define CRTC_H_SYNC_STRT_CHAR_SHIFT 3 +# define CRTC_H_SYNC_WID (0x3f << 16) +# define CRTC_H_SYNC_WID_SHIFT 16 +# define CRTC_H_SYNC_POL (1 << 23) +#define CRTC2_H_SYNC_STRT_WID 0x0304 +# define CRTC2_H_SYNC_STRT_PIX (0x07 << 0) +# define CRTC2_H_SYNC_STRT_CHAR (0x3ff << 3) +# define CRTC2_H_SYNC_STRT_CHAR_SHIFT 3 +# define CRTC2_H_SYNC_WID (0x3f << 16) +# define CRTC2_H_SYNC_WID_SHIFT 16 +# define CRTC2_H_SYNC_POL (1 << 23) +#define CRTC_V_TOTAL_DISP 0x0208 +# define CRTC_V_TOTAL (0x07ff << 0) +# define CRTC_V_TOTAL_SHIFT 0 +# define CRTC_V_DISP (0x07ff << 16) +# define CRTC_V_DISP_SHIFT 16 +#define CRTC2_V_TOTAL_DISP 0x0308 +# define CRTC2_V_TOTAL (0x07ff << 0) +# define CRTC2_V_TOTAL_SHIFT 0 +# define CRTC2_V_DISP (0x07ff << 16) +# define CRTC2_V_DISP_SHIFT 16 +#define CRTC_V_SYNC_STRT_WID 0x020C +# define CRTC_V_SYNC_STRT (0x7ff << 0) +# define CRTC_V_SYNC_STRT_SHIFT 0 +# define CRTC_V_SYNC_WID (0x1f << 16) +# define CRTC_V_SYNC_WID_SHIFT 16 +# define CRTC_V_SYNC_POL (1 << 23) +#define CRTC2_V_SYNC_STRT_WID 0x030C +# define CRTC2_V_SYNC_STRT (0x7ff << 0) +# define CRTC2_V_SYNC_STRT_SHIFT 0 +# define CRTC2_V_SYNC_WID (0x1f << 16) +# define CRTC2_V_SYNC_WID_SHIFT 16 +# define CRTC2_V_SYNC_POL (1 << 23) +#define CRTC_VLINE_CRNT_VLINE 0x0210 +# define CRTC_CRNT_VLINE_MASK (0x7ff << 16) +#define CRTC2_VLINE_CRNT_VLINE 0x0310 +#define CRTC_CRNT_FRAME 0x0214 +#define CRTC2_CRNT_FRAME 0x0314 +#define CRTC_GUI_TRIG_VLINE 0x0218 +#define CRTC2_GUI_TRIG_VLINE 0x0318 +#define CRTC_DEBUG 0x021C +#define CRTC2_DEBUG 0x031C +#define CRTC_OFFSET_RIGHT 0x0220 +#define CRTC_OFFSET 0x0224 +#define CRTC2_OFFSET 0x0324 +#define CRTC_OFFSET_CNTL 0x0228 +# define CRTC_TILE_EN (1 << 15) +#define CRTC2_OFFSET_CNTL 0x0328 +# define CRTC2_TILE_EN (1 << 15) +#define CRTC_PITCH 0x022C +#define CRTC2_PITCH 0x032C +#define TMDS_CRC 0x02a0 +#define OVR_CLR 0x0230 +#define OVR_WID_LEFT_RIGHT 0x0234 +#define OVR_WID_TOP_BOTTOM 0x0238 +#define DISPLAY_BASE_ADDR 0x023C +#define SNAPSHOT_VH_COUNTS 0x0240 +#define SNAPSHOT_F_COUNT 0x0244 +#define N_VIF_COUNT 0x0248 +#define SNAPSHOT_VIF_COUNT 0x024C +#define FP_CRTC_H_TOTAL_DISP 0x0250 +#define FP_CRTC2_H_TOTAL_DISP 0x0350 +#define FP_CRTC_V_TOTAL_DISP 0x0254 +#define FP_CRTC2_V_TOTAL_DISP 0x0354 +# define FP_CRTC_H_TOTAL_MASK 0x000003ff +# define FP_CRTC_H_DISP_MASK 0x01ff0000 +# define FP_CRTC_V_TOTAL_MASK 0x00000fff +# define FP_CRTC_V_DISP_MASK 0x0fff0000 +# define FP_H_SYNC_STRT_CHAR_MASK 0x00001ff8 +# define FP_H_SYNC_WID_MASK 0x003f0000 +# define FP_V_SYNC_STRT_MASK 0x00000fff +# define FP_V_SYNC_WID_MASK 0x001f0000 +# define FP_CRTC_H_TOTAL_SHIFT 0x00000000 +# define FP_CRTC_H_DISP_SHIFT 0x00000010 +# define FP_CRTC_V_TOTAL_SHIFT 0x00000000 +# define FP_CRTC_V_DISP_SHIFT 0x00000010 +# define FP_H_SYNC_STRT_CHAR_SHIFT 0x00000003 +# define FP_H_SYNC_WID_SHIFT 0x00000010 +# define FP_V_SYNC_STRT_SHIFT 0x00000000 +# define FP_V_SYNC_WID_SHIFT 0x00000010 +#define CRT_CRTC_H_SYNC_STRT_WID 0x0258 +#define CRT_CRTC_V_SYNC_STRT_WID 0x025C +#define CUR_OFFSET 0x0260 +#define CUR_HORZ_VERT_POSN 0x0264 +#define CUR_HORZ_VERT_OFF 0x0268 /* CUR_OFFSET, CUR_HORZ_VERT_POSN, CUR_HORZ_VERT_OFF bit constants */ -# define CUR_LOCK 0x80000000 -#define CUR_CLR0 0x026C -#define CUR_CLR1 0x0270 -#define CUR2_OFFSET 0x0360 -#define CUR2_HORZ_VERT_POSN 0x0364 -#define CUR2_HORZ_VERT_OFF 0x0368 -# define CUR2_LOCK (1 << 31) -#define CUR2_CLR0 0x036c -#define CUR2_CLR1 0x0370 -#define FP_HORZ_VERT_ACTIVE 0x0278 -#define CRTC_MORE_CNTL 0x027C -#define DAC_EXT_CNTL 0x0280 -#define FP_GEN_CNTL 0x0284 +# define CUR_LOCK 0x80000000 +#define CUR_CLR0 0x026C +#define CUR_CLR1 0x0270 +#define CUR2_OFFSET 0x0360 +#define CUR2_HORZ_VERT_POSN 0x0364 +#define CUR2_HORZ_VERT_OFF 0x0368 +# define CUR2_LOCK (1 << 31) +#define CUR2_CLR0 0x036c +#define CUR2_CLR1 0x0370 +#define FP_HORZ_VERT_ACTIVE 0x0278 +#define CRTC_MORE_CNTL 0x027C +#define DAC_EXT_CNTL 0x0280 +#define FP_GEN_CNTL 0x0284 /* FP_GEN_CNTL bit constants */ -# define FP_FPON (1 << 0) -# define FP_TMDS_EN (1 << 2) -# define FP_EN_TMDS (1 << 7) -# define FP_DETECT_SENSE (1 << 8) -# define FP_SEL_CRTC2 (1 << 13) -# define FP_CRTC_DONT_SHADOW_HPAR (1 << 15) -# define FP_CRTC_DONT_SHADOW_VPAR (1 << 16) -# define FP_CRTC_DONT_SHADOW_HEND (1 << 17) -# define FP_CRTC_USE_SHADOW_VEND (1 << 18) -# define FP_RMX_HVSYNC_CONTROL_EN (1 << 20) -# define FP_DFP_SYNC_SEL (1 << 21) -# define FP_CRTC_LOCK_8DOT (1 << 22) -# define FP_CRT_SYNC_SEL (1 << 23) -# define FP_USE_SHADOW_EN (1 << 24) -# define FP_CRT_SYNC_ALT (1 << 26) -#define FP2_GEN_CNTL 0x0288 -/* FP2_GEN_CNTL bit constants */ -# define FP2_FPON (1 << 0) -# define FP2_TMDS_EN (1 << 2) -# define FP2_EN_TMDS (1 << 7) -# define FP2_DETECT_SENSE (1 << 8) -# define FP2_SEL_CRTC2 (1 << 13) -# define FP2_FP_POL (1 << 16) -# define FP2_LP_POL (1 << 17) -# define FP2_SCK_POL (1 << 18) -# define FP2_LCD_CNTL_MASK (7 << 19) -# define FP2_PAD_FLOP_EN (1 << 22) -# define FP2_CRC_EN (1 << 23) -# define FP2_CRC_READ_EN (1 << 24) -#define FP_HORZ_STRETCH 0x028C -#define FP_HORZ2_STRETCH 0x038C -# define HORZ_STRETCH_RATIO_MASK 0xffff -# define HORZ_STRETCH_RATIO_MAX 4096 -# define HORZ_PANEL_SIZE (0x1ff << 16) -# define HORZ_PANEL_SHIFT 16 -# define HORZ_STRETCH_PIXREP (0 << 25) -# define HORZ_STRETCH_BLEND (1 << 26) -# define HORZ_STRETCH_ENABLE (1 << 25) -# define HORZ_AUTO_RATIO (1 << 27) -# define HORZ_FP_LOOP_STRETCH (0x7 << 28) -# define HORZ_AUTO_RATIO_INC (1 << 31) -#define FP_VERT_STRETCH 0x0290 -#define FP_VERT2_STRETCH 0x0390 -# define VERT_PANEL_SIZE (0xfff << 12) -# define VERT_PANEL_SHIFT 12 -# define VERT_STRETCH_RATIO_MASK 0xfff -# define VERT_STRETCH_RATIO_SHIFT 0 -# define VERT_STRETCH_RATIO_MAX 4096 -# define VERT_STRETCH_ENABLE (1 << 25) -# define VERT_STRETCH_LINEREP (0 << 26) -# define VERT_STRETCH_BLEND (1 << 26) -# define VERT_AUTO_RATIO_EN (1 << 27) -# define VERT_STRETCH_RESERVED 0xf1000000 -#define FP_H_SYNC_STRT_WID 0x02C4 -#define FP_H2_SYNC_STRT_WID 0x03C4 -#define FP_V_SYNC_STRT_WID 0x02C8 -#define FP_V2_SYNC_STRT_WID 0x03C8 -#define LVDS_GEN_CNTL 0x02d0 -# define LVDS_ON (1 << 0) -# define LVDS_DISPLAY_DIS (1 << 1) -# define LVDS_PANEL_TYPE (1 << 2) -# define LVDS_PANEL_FORMAT (1 << 3) -# define LVDS_EN (1 << 7) -# define LVDS_DIGON (1 << 18) -# define LVDS_BLON (1 << 19) -# define LVDS_SEL_CRTC2 (1 << 23) -#define LVDS_PLL_CNTL 0x02d4 -# define HSYNC_DELAY_SHIFT 28 -# define HSYNC_DELAY_MASK (0xf << 28) -#define AUX_WINDOW_HORZ_CNTL 0x02D8 -#define AUX_WINDOW_VERT_CNTL 0x02DC -#define DDA_CONFIG 0x02e0 -#define DDA_ON_OFF 0x02e4 +# define FP_FPON (1 << 0) +# define FP_TMDS_EN (1 << 2) +# define FP_EN_TMDS (1 << 7) +# define FP_DETECT_SENSE (1 << 8) +# define FP_SEL_CRTC2 (1 << 13) +# define FP_CRTC_DONT_SHADOW_HPAR (1 << 15) +# define FP_CRTC_DONT_SHADOW_VPAR (1 << 16) +# define FP_CRTC_DONT_SHADOW_HEND (1 << 17) +# define FP_CRTC_USE_SHADOW_VEND (1 << 18) +# define FP_RMX_HVSYNC_CONTROL_EN (1 << 20) +# define FP_DFP_SYNC_SEL (1 << 21) +# define FP_CRTC_LOCK_8DOT (1 << 22) +# define FP_CRT_SYNC_SEL (1 << 23) +# define FP_USE_SHADOW_EN (1 << 24) +# define FP_CRT_SYNC_ALT (1 << 26) +#define FP2_GEN_CNTL 0x0288 +/* FP2_GEN_CNTL bit constants */ +# define FP2_FPON (1 << 0) +# define FP2_TMDS_EN (1 << 2) +# define FP2_EN_TMDS (1 << 7) +# define FP2_DETECT_SENSE (1 << 8) +# define FP2_SEL_CRTC2 (1 << 13) +# define FP2_FP_POL (1 << 16) +# define FP2_LP_POL (1 << 17) +# define FP2_SCK_POL (1 << 18) +# define FP2_LCD_CNTL_MASK (7 << 19) +# define FP2_PAD_FLOP_EN (1 << 22) +# define FP2_CRC_EN (1 << 23) +# define FP2_CRC_READ_EN (1 << 24) +#define FP_HORZ_STRETCH 0x028C +#define FP_HORZ2_STRETCH 0x038C +# define HORZ_STRETCH_RATIO_MASK 0xffff +# define HORZ_STRETCH_RATIO_MAX 4096 +# define HORZ_PANEL_SIZE (0x1ff << 16) +# define HORZ_PANEL_SHIFT 16 +# define HORZ_STRETCH_PIXREP (0 << 25) +# define HORZ_STRETCH_BLEND (1 << 26) +# define HORZ_STRETCH_ENABLE (1 << 25) +# define HORZ_AUTO_RATIO (1 << 27) +# define HORZ_FP_LOOP_STRETCH (0x7 << 28) +# define HORZ_AUTO_RATIO_INC (1 << 31) +#define FP_VERT_STRETCH 0x0290 +#define FP_VERT2_STRETCH 0x0390 +# define VERT_PANEL_SIZE (0xfff << 12) +# define VERT_PANEL_SHIFT 12 +# define VERT_STRETCH_RATIO_MASK 0xfff +# define VERT_STRETCH_RATIO_SHIFT 0 +# define VERT_STRETCH_RATIO_MAX 4096 +# define VERT_STRETCH_ENABLE (1 << 25) +# define VERT_STRETCH_LINEREP (0 << 26) +# define VERT_STRETCH_BLEND (1 << 26) +# define VERT_AUTO_RATIO_EN (1 << 27) +# define VERT_STRETCH_RESERVED 0xf1000000 +#define FP_H_SYNC_STRT_WID 0x02C4 +#define FP_H2_SYNC_STRT_WID 0x03C4 +#define FP_V_SYNC_STRT_WID 0x02C8 +#define FP_V2_SYNC_STRT_WID 0x03C8 +#define LVDS_GEN_CNTL 0x02d0 +# define LVDS_ON (1 << 0) +# define LVDS_DISPLAY_DIS (1 << 1) +# define LVDS_PANEL_TYPE (1 << 2) +# define LVDS_PANEL_FORMAT (1 << 3) +# define LVDS_EN (1 << 7) +# define LVDS_DIGON (1 << 18) +# define LVDS_BLON (1 << 19) +# define LVDS_SEL_CRTC2 (1 << 23) +#define LVDS_PLL_CNTL 0x02d4 +# define HSYNC_DELAY_SHIFT 28 +# define HSYNC_DELAY_MASK (0xf << 28) +#define AUX_WINDOW_HORZ_CNTL 0x02D8 +#define AUX_WINDOW_VERT_CNTL 0x02DC +#define DDA_CONFIG 0x02e0 +#define DDA_ON_OFF 0x02e4 -#define GRPH_BUFFER_CNTL 0x02F0 -#define VGA_BUFFER_CNTL 0x02F4 +#define GRPH_BUFFER_CNTL 0x02F0 +#define VGA_BUFFER_CNTL 0x02F4 /* first overlay unit (there is only one) */ -#define OV0_Y_X_START 0x0400 -#define OV0_Y_X_END 0x0404 -#define OV0_PIPELINE_CNTL 0x0408 -#define OV0_EXCLUSIVE_HORZ 0x0408 -# define EXCL_HORZ_START_MASK 0x000000ff -# define EXCL_HORZ_END_MASK 0x0000ff00 -# define EXCL_HORZ_BACK_PORCH_MASK 0x00ff0000 -# define EXCL_HORZ_EXCLUSIVE_EN 0x80000000 -#define OV0_EXCLUSIVE_VERT 0x040C -# define EXCL_VERT_START_MASK 0x000003ff -# define EXCL_VERT_END_MASK 0x03ff0000 -#define OV0_REG_LOAD_CNTL 0x0410 -# define REG_LD_CTL_LOCK 0x00000001L -# define REG_LD_CTL_VBLANK_DURING_LOCK 0x00000002L -# define REG_LD_CTL_STALL_GUI_UNTIL_FLIP 0x00000004L -# define REG_LD_CTL_LOCK_READBACK 0x00000008L -#define OV0_SCALE_CNTL 0x0420 -# define SCALER_PIX_EXPAND 0x00000001L -# define SCALER_Y2R_TEMP 0x00000002L +#define OV0_Y_X_START 0x0400 +#define OV0_Y_X_END 0x0404 +#define OV0_PIPELINE_CNTL 0x0408 +#define OV0_EXCLUSIVE_HORZ 0x0408 +# define EXCL_HORZ_START_MASK 0x000000ff +# define EXCL_HORZ_END_MASK 0x0000ff00 +# define EXCL_HORZ_BACK_PORCH_MASK 0x00ff0000 +# define EXCL_HORZ_EXCLUSIVE_EN 0x80000000 +#define OV0_EXCLUSIVE_VERT 0x040C +# define EXCL_VERT_START_MASK 0x000003ff +# define EXCL_VERT_END_MASK 0x03ff0000 +#define OV0_REG_LOAD_CNTL 0x0410 +# define REG_LD_CTL_LOCK 0x00000001L +# define REG_LD_CTL_VBLANK_DURING_LOCK 0x00000002L +# define REG_LD_CTL_STALL_GUI_UNTIL_FLIP 0x00000004L +# define REG_LD_CTL_LOCK_READBACK 0x00000008L +#define OV0_SCALE_CNTL 0x0420 +# define SCALER_PIX_EXPAND 0x00000001L +# define SCALER_Y2R_TEMP 0x00000002L #ifdef RAGE128 -# define SCALER_HORZ_PICK_NEAREST 0x00000003L -# define SCALER_VERT_PICK_NEAREST 0x00000004L +# define SCALER_HORZ_PICK_NEAREST 0x00000003L +# define SCALER_VERT_PICK_NEAREST 0x00000004L #else -# define SCALER_HORZ_PICK_NEAREST 0x00000004L -# define SCALER_VERT_PICK_NEAREST 0x00000008L +# define SCALER_HORZ_PICK_NEAREST 0x00000004L +# define SCALER_VERT_PICK_NEAREST 0x00000008L #endif -# define SCALER_SIGNED_UV 0x00000010L -# define SCALER_GAMMA_SEL_MASK 0x00000060L -# define SCALER_GAMMA_SEL_BRIGHT 0x00000000L -# define SCALER_GAMMA_SEL_G22 0x00000020L -# define SCALER_GAMMA_SEL_G18 0x00000040L -# define SCALER_GAMMA_SEL_G14 0x00000060L -# define SCALER_COMCORE_SHIFT_UP_ONE 0x00000080L -# define SCALER_SURFAC_FORMAT 0x00000f00L -# define SCALER_SOURCE_UNK0 0x00000000L /* 2 bpp ??? */ -# define SCALER_SOURCE_UNK1 0x00000100L /* 4 bpp ??? */ -# define SCALER_SOURCE_UNK2 0x00000200L /* 8 bpp ??? */ -# define SCALER_SOURCE_15BPP 0x00000300L -# define SCALER_SOURCE_16BPP 0x00000400L -# define SCALER_SOURCE_24BPP 0x00000500L -# define SCALER_SOURCE_32BPP 0x00000600L -# define SCALER_SOURCE_UNK3 0x00000700L /* 8BPP_RGB332 ??? */ -# define SCALER_SOURCE_UNK4 0x00000800L /* 8BPP_Y8 ??? */ -# define SCALER_SOURCE_YUV9 0x00000900L /* 8BPP_RGB8 */ -# define SCALER_SOURCE_YUV12 0x00000A00L -# define SCALER_SOURCE_VYUY422 0x00000B00L -# define SCALER_SOURCE_YVYU422 0x00000C00L -# define SCALER_SOURCE_UNK5 0x00000D00L /* ??? */ -# define SCALER_SOURCE_UNK6 0x00000E00L /* 32BPP_AYUV444 */ -# define SCALER_SOURCE_UNK7 0x00000F00L /* 16BPP_ARGB4444 */ -# define SCALER_ADAPTIVE_DEINT 0x00001000L -# define R200_SCALER_TEMPORAL_DEINT 0x00002000L -# define SCALER_UNKNOWN_FLAG1 0x00004000L /* ??? */ -# define SCALER_SMART_SWITCH 0x00008000L +# define SCALER_SIGNED_UV 0x00000010L +# define SCALER_GAMMA_SEL_MASK 0x00000060L +# define SCALER_GAMMA_SEL_BRIGHT 0x00000000L +# define SCALER_GAMMA_SEL_G22 0x00000020L +# define SCALER_GAMMA_SEL_G18 0x00000040L +# define SCALER_GAMMA_SEL_G14 0x00000060L +# define SCALER_COMCORE_SHIFT_UP_ONE 0x00000080L +# define SCALER_SURFAC_FORMAT 0x00000f00L +# define SCALER_SOURCE_UNK0 0x00000000L /* 2 bpp ??? */ +# define SCALER_SOURCE_UNK1 0x00000100L /* 4 bpp ??? */ +# define SCALER_SOURCE_UNK2 0x00000200L /* 8 bpp ??? */ +# define SCALER_SOURCE_15BPP 0x00000300L +# define SCALER_SOURCE_16BPP 0x00000400L +# define SCALER_SOURCE_24BPP 0x00000500L +# define SCALER_SOURCE_32BPP 0x00000600L +# define SCALER_SOURCE_UNK3 0x00000700L /* 8BPP_RGB332 ??? */ +# define SCALER_SOURCE_UNK4 0x00000800L /* 8BPP_Y8 ??? */ +# define SCALER_SOURCE_YUV9 0x00000900L /* 8BPP_RGB8 */ +# define SCALER_SOURCE_YUV12 0x00000A00L +# define SCALER_SOURCE_VYUY422 0x00000B00L +# define SCALER_SOURCE_YVYU422 0x00000C00L +# define SCALER_SOURCE_UNK5 0x00000D00L /* ??? */ +# define SCALER_SOURCE_UNK6 0x00000E00L /* 32BPP_AYUV444 */ +# define SCALER_SOURCE_UNK7 0x00000F00L /* 16BPP_ARGB4444 */ +# define SCALER_ADAPTIVE_DEINT 0x00001000L +# define R200_SCALER_TEMPORAL_DEINT 0x00002000L +# define SCALER_UNKNOWN_FLAG1 0x00004000L /* ??? */ +# define SCALER_SMART_SWITCH 0x00008000L #ifdef RAGE128 -# define SCALER_BURST_PER_PLANE 0x00ff0000L +# define SCALER_BURST_PER_PLANE 0x00ff0000L #else -# define SCALER_BURST_PER_PLANE 0x007f0000L +# define SCALER_BURST_PER_PLANE 0x007f0000L #endif -# define SCALER_DOUBLE_BUFFER 0x01000000L -# define SCALER_UNKNOWN_FLAG3 0x02000000L /* ??? */ -# define SCALER_UNKNOWN_FLAG4 0x04000000L /* ??? */ -# define SCALER_DIS_LIMIT 0x08000000L -# define SCALER_PRG_LOAD_START 0x10000000L -# define SCALER_INT_EMU 0x20000000L -# define SCALER_ENABLE 0x40000000L -# define SCALER_SOFT_RESET 0x80000000L -#define OV0_V_INC 0x0424 -#define OV0_P1_V_ACCUM_INIT 0x0428 -# define OV0_P1_MAX_LN_IN_PER_LN_OUT 0x00000003L -# define OV0_P1_V_ACCUM_INIT_MASK 0x01ff8000L -#define OV0_P23_V_ACCUM_INIT 0x042C -# define OV0_P23_MAX_LN_IN_PER_LN_OUT 0x00000003L -# define OV0_P23_V_ACCUM_INIT_MASK 0x01ff8000L -#define OV0_P1_BLANK_LINES_AT_TOP 0x0430 -# define P1_BLNK_LN_AT_TOP_M1_MASK 0x00000fffL -# define P1_ACTIVE_LINES_M1 0x0fff0000L -#define OV0_P23_BLANK_LINES_AT_TOP 0x0434 -# define P23_BLNK_LN_AT_TOP_M1_MASK 0x000007ffL -# define P23_ACTIVE_LINES_M1 0x07ff0000L +# define SCALER_DOUBLE_BUFFER 0x01000000L +# define SCALER_UNKNOWN_FLAG3 0x02000000L /* ??? */ +# define SCALER_UNKNOWN_FLAG4 0x04000000L /* ??? */ +# define SCALER_DIS_LIMIT 0x08000000L +# define SCALER_PRG_LOAD_START 0x10000000L +# define SCALER_INT_EMU 0x20000000L +# define SCALER_ENABLE 0x40000000L +# define SCALER_SOFT_RESET 0x80000000L +#define OV0_V_INC 0x0424 +#define OV0_P1_V_ACCUM_INIT 0x0428 +# define OV0_P1_MAX_LN_IN_PER_LN_OUT 0x00000003L +# define OV0_P1_V_ACCUM_INIT_MASK 0x01ff8000L +#define OV0_P23_V_ACCUM_INIT 0x042C +# define OV0_P23_MAX_LN_IN_PER_LN_OUT 0x00000003L +# define OV0_P23_V_ACCUM_INIT_MASK 0x01ff8000L +#define OV0_P1_BLANK_LINES_AT_TOP 0x0430 +# define P1_BLNK_LN_AT_TOP_M1_MASK 0x00000fffL +# define P1_ACTIVE_LINES_M1 0x0fff0000L +#define OV0_P23_BLANK_LINES_AT_TOP 0x0434 +# define P23_BLNK_LN_AT_TOP_M1_MASK 0x000007ffL +# define P23_ACTIVE_LINES_M1 0x07ff0000L #ifndef RAGE128 -#define OV0_BASE_ADDR 0x043C +#define OV0_BASE_ADDR 0x043C #endif -#define OV0_VID_BUF0_BASE_ADRS 0x0440 -# define VIF_BUF0_PITCH_SEL 0x00000001L -# define VIF_BUF0_TILE_ADRS 0x00000002L -# define VIF_BUF0_BASE_ADRS_MASK 0x03fffff0L -# define VIF_BUF0_1ST_LINE_LSBS_MASK 0x48000000L -#define OV0_VID_BUF1_BASE_ADRS 0x0444 -# define VIF_BUF1_PITCH_SEL 0x00000001L -# define VIF_BUF1_TILE_ADRS 0x00000002L -# define VIF_BUF1_BASE_ADRS_MASK 0x03fffff0L -# define VIF_BUF1_1ST_LINE_LSBS_MASK 0x48000000L -#define OV0_VID_BUF2_BASE_ADRS 0x0448 -# define VIF_BUF2_PITCH_SEL 0x00000001L -# define VIF_BUF2_TILE_ADRS 0x00000002L -# define VIF_BUF2_BASE_ADRS_MASK 0x03fffff0L -# define VIF_BUF2_1ST_LINE_LSBS_MASK 0x48000000L -#define OV0_VID_BUF3_BASE_ADRS 0x044C -# define VIF_BUF3_PITCH_SEL 0x00000001L -# define VIF_BUF3_TILE_ADRS 0x00000002L -# define VIF_BUF3_BASE_ADRS_MASK 0x03fffff0L -# define VIF_BUF3_1ST_LINE_LSBS_MASK 0x48000000L -#define OV0_VID_BUF4_BASE_ADRS 0x0450 -# define VIF_BUF4_PITCH_SEL 0x00000001L -# define VIF_BUF4_TILE_ADRS 0x00000002L -# define VIF_BUF4_BASE_ADRS_MASK 0x03fffff0L -# define VIF_BUF4_1ST_LINE_LSBS_MASK 0x48000000L -#define OV0_VID_BUF5_BASE_ADRS 0x0454 -# define VIF_BUF5_PITCH_SEL 0x00000001L -# define VIF_BUF5_TILE_ADRS 0x00000002L -# define VIF_BUF5_BASE_ADRS_MASK 0x03fffff0L -# define VIF_BUF5_1ST_LINE_LSBS_MASK 0x48000000L -#define OV0_VID_BUF_PITCH0_VALUE 0x0460 -#define OV0_VID_BUF_PITCH1_VALUE 0x0464 -#define OV0_AUTO_FLIP_CNTL 0x0470 -# define OV0_AUTO_FLIP_CNTL_SOFT_BUF_NUM 0x00000007 -# define OV0_AUTO_FLIP_CNTL_SOFT_REPEAT_FIELD 0x00000008 -# define OV0_AUTO_FLIP_CNTL_SOFT_BUF_ODD 0x00000010 -# define OV0_AUTO_FLIP_CNTL_IGNORE_REPEAT_FIELD 0x00000020 -# define OV0_AUTO_FLIP_CNTL_SOFT_EOF_TOGGLE 0x00000040 -# define OV0_AUTO_FLIP_CNTL_VID_PORT_SELECT 0x00000300 -# define OV0_AUTO_FLIP_CNTL_P1_FIRST_LINE_EVEN 0x00010000 -# define OV0_AUTO_FLIP_CNTL_SHIFT_EVEN_DOWN 0x00040000 -# define OV0_AUTO_FLIP_CNTL_SHIFT_ODD_DOWN 0x00080000 -# define OV0_AUTO_FLIP_CNTL_FIELD_POL_SOURCE 0x00800000 -#define OV0_DEINTERLACE_PATTERN 0x0474 -#define OV0_SUBMIT_HISTORY 0x0478 -#define OV0_H_INC 0x0480 -#define OV0_STEP_BY 0x0484 -#define OV0_P1_H_ACCUM_INIT 0x0488 -#define OV0_P23_H_ACCUM_INIT 0x048C -#define OV0_P1_X_START_END 0x0494 -#define OV0_P2_X_START_END 0x0498 -#define OV0_P3_X_START_END 0x049C -#define OV0_FILTER_CNTL 0x04A0 -# define FILTER_PROGRAMMABLE_COEF 0x00000000 -# define FILTER_HARDCODED_COEF 0x0000000F -# define FILTER_COEF_MASK 0x0000000F +#define OV0_VID_BUF0_BASE_ADRS 0x0440 +# define VIF_BUF0_PITCH_SEL 0x00000001L +# define VIF_BUF0_TILE_ADRS 0x00000002L +# define VIF_BUF0_BASE_ADRS_MASK 0x03fffff0L +# define VIF_BUF0_1ST_LINE_LSBS_MASK 0x48000000L +#define OV0_VID_BUF1_BASE_ADRS 0x0444 +# define VIF_BUF1_PITCH_SEL 0x00000001L +# define VIF_BUF1_TILE_ADRS 0x00000002L +# define VIF_BUF1_BASE_ADRS_MASK 0x03fffff0L +# define VIF_BUF1_1ST_LINE_LSBS_MASK 0x48000000L +#define OV0_VID_BUF2_BASE_ADRS 0x0448 +# define VIF_BUF2_PITCH_SEL 0x00000001L +# define VIF_BUF2_TILE_ADRS 0x00000002L +# define VIF_BUF2_BASE_ADRS_MASK 0x03fffff0L +# define VIF_BUF2_1ST_LINE_LSBS_MASK 0x48000000L +#define OV0_VID_BUF3_BASE_ADRS 0x044C +# define VIF_BUF3_PITCH_SEL 0x00000001L +# define VIF_BUF3_TILE_ADRS 0x00000002L +# define VIF_BUF3_BASE_ADRS_MASK 0x03fffff0L +# define VIF_BUF3_1ST_LINE_LSBS_MASK 0x48000000L +#define OV0_VID_BUF4_BASE_ADRS 0x0450 +# define VIF_BUF4_PITCH_SEL 0x00000001L +# define VIF_BUF4_TILE_ADRS 0x00000002L +# define VIF_BUF4_BASE_ADRS_MASK 0x03fffff0L +# define VIF_BUF4_1ST_LINE_LSBS_MASK 0x48000000L +#define OV0_VID_BUF5_BASE_ADRS 0x0454 +# define VIF_BUF5_PITCH_SEL 0x00000001L +# define VIF_BUF5_TILE_ADRS 0x00000002L +# define VIF_BUF5_BASE_ADRS_MASK 0x03fffff0L +# define VIF_BUF5_1ST_LINE_LSBS_MASK 0x48000000L +#define OV0_VID_BUF_PITCH0_VALUE 0x0460 +#define OV0_VID_BUF_PITCH1_VALUE 0x0464 +#define OV0_AUTO_FLIP_CNTL 0x0470 +# define OV0_AUTO_FLIP_CNTL_SOFT_BUF_NUM 0x00000007 +# define OV0_AUTO_FLIP_CNTL_SOFT_REPEAT_FIELD 0x00000008 +# define OV0_AUTO_FLIP_CNTL_SOFT_BUF_ODD 0x00000010 +# define OV0_AUTO_FLIP_CNTL_IGNORE_REPEAT_FIELD 0x00000020 +# define OV0_AUTO_FLIP_CNTL_SOFT_EOF_TOGGLE 0x00000040 +# define OV0_AUTO_FLIP_CNTL_VID_PORT_SELECT 0x00000300 +# define OV0_AUTO_FLIP_CNTL_P1_FIRST_LINE_EVEN 0x00010000 +# define OV0_AUTO_FLIP_CNTL_SHIFT_EVEN_DOWN 0x00040000 +# define OV0_AUTO_FLIP_CNTL_SHIFT_ODD_DOWN 0x00080000 +# define OV0_AUTO_FLIP_CNTL_FIELD_POL_SOURCE 0x00800000 +#define OV0_DEINTERLACE_PATTERN 0x0474 +#define OV0_SUBMIT_HISTORY 0x0478 +#define OV0_H_INC 0x0480 +#define OV0_STEP_BY 0x0484 +#define OV0_P1_H_ACCUM_INIT 0x0488 +#define OV0_P23_H_ACCUM_INIT 0x048C +#define OV0_P1_X_START_END 0x0494 +#define OV0_P2_X_START_END 0x0498 +#define OV0_P3_X_START_END 0x049C +#define OV0_FILTER_CNTL 0x04A0 +# define FILTER_PROGRAMMABLE_COEF 0x00000000 +# define FILTER_HARDCODED_COEF 0x0000000F +# define FILTER_COEF_MASK 0x0000000F /* other values allow us use hardcoded coefs for Y and programmable for UV that's nosense. */ /* @@ -666,1393 +666,1393 @@ It allows up to 64:1 upscaling and downscaling without performance or quality degradation. */ -#define OV0_FOUR_TAP_COEF_0 0x04B0 -#define OV0_FOUR_TAP_COEF_1 0x04B4 -#define OV0_FOUR_TAP_COEF_2 0x04B8 -#define OV0_FOUR_TAP_COEF_3 0x04BC -#define OV0_FOUR_TAP_COEF_4 0x04C0 +#define OV0_FOUR_TAP_COEF_0 0x04B0 +#define OV0_FOUR_TAP_COEF_1 0x04B4 +#define OV0_FOUR_TAP_COEF_2 0x04B8 +#define OV0_FOUR_TAP_COEF_3 0x04BC +#define OV0_FOUR_TAP_COEF_4 0x04C0 -#define OV0_FLAG_CNTL 0x04DC +#define OV0_FLAG_CNTL 0x04DC #ifdef RAGE128 -#define OV0_COLOUR_CNTL 0x04E0 -# define COLOUR_CNTL_BRIGHTNESS 0x0000007F -# define COLOUR_CNTL_SATURATION 0x001F1F00 +#define OV0_COLOUR_CNTL 0x04E0 +# define COLOUR_CNTL_BRIGHTNESS 0x0000007F +# define COLOUR_CNTL_SATURATION 0x001F1F00 #else /* NB: radeons have no COLOUR_CNTL register */ -#define OV0_SLICE_CNTL 0x04E0 -# define SLICE_CNTL_DISABLE 0x40000000 +#define OV0_SLICE_CNTL 0x04E0 +# define SLICE_CNTL_DISABLE 0x40000000 #endif /* Video and graphics keys allow alpha blending, color correction and many other video effects */ -#define OV0_VID_KEY_CLR 0x04E4 -#define OV0_VID_KEY_MSK 0x04E8 -#define OV0_GRAPHICS_KEY_CLR 0x04EC -#define OV0_GRAPHICS_KEY_MSK 0x04F0 -#define OV0_KEY_CNTL 0x04F4 -# define VIDEO_KEY_FN_MASK 0x00000007L -# define VIDEO_KEY_FN_FALSE 0x00000000L -# define VIDEO_KEY_FN_TRUE 0x00000001L -# define VIDEO_KEY_FN_EQ 0x00000004L -# define VIDEO_KEY_FN_NE 0x00000005L -# define GRAPHIC_KEY_FN_MASK 0x00000070L -# define GRAPHIC_KEY_FN_FALSE 0x00000000L -# define GRAPHIC_KEY_FN_TRUE 0x00000010L -# define GRAPHIC_KEY_FN_EQ 0x00000040L -# define GRAPHIC_KEY_FN_NE 0x00000050L -# define CMP_MIX_MASK 0x00000100L -# define CMP_MIX_OR 0x00000000L -# define CMP_MIX_AND 0x00000100L -#define OV0_TEST 0x04F8 -#define OV0_LIN_TRANS_A 0x0D20 -#define OV0_LIN_TRANS_B 0x0D24 -#define OV0_LIN_TRANS_C 0x0D28 -#define OV0_LIN_TRANS_D 0x0D2C -#define OV0_LIN_TRANS_E 0x0D30 -#define OV0_LIN_TRANS_F 0x0D34 -#define OV0_GAMMA_0_F 0x0D40 -#define OV0_GAMMA_10_1F 0x0D44 -#define OV0_GAMMA_20_3F 0x0D48 -#define OV0_GAMMA_40_7F 0x0D4C +#define OV0_VID_KEY_CLR 0x04E4 +#define OV0_VID_KEY_MSK 0x04E8 +#define OV0_GRAPHICS_KEY_CLR 0x04EC +#define OV0_GRAPHICS_KEY_MSK 0x04F0 +#define OV0_KEY_CNTL 0x04F4 +# define VIDEO_KEY_FN_MASK 0x00000007L +# define VIDEO_KEY_FN_FALSE 0x00000000L +# define VIDEO_KEY_FN_TRUE 0x00000001L +# define VIDEO_KEY_FN_EQ 0x00000004L +# define VIDEO_KEY_FN_NE 0x00000005L +# define GRAPHIC_KEY_FN_MASK 0x00000070L +# define GRAPHIC_KEY_FN_FALSE 0x00000000L +# define GRAPHIC_KEY_FN_TRUE 0x00000010L +# define GRAPHIC_KEY_FN_EQ 0x00000040L +# define GRAPHIC_KEY_FN_NE 0x00000050L +# define CMP_MIX_MASK 0x00000100L +# define CMP_MIX_OR 0x00000000L +# define CMP_MIX_AND 0x00000100L +#define OV0_TEST 0x04F8 +#define OV0_LIN_TRANS_A 0x0D20 +#define OV0_LIN_TRANS_B 0x0D24 +#define OV0_LIN_TRANS_C 0x0D28 +#define OV0_LIN_TRANS_D 0x0D2C +#define OV0_LIN_TRANS_E 0x0D30 +#define OV0_LIN_TRANS_F 0x0D34 +#define OV0_GAMMA_0_F 0x0D40 +#define OV0_GAMMA_10_1F 0x0D44 +#define OV0_GAMMA_20_3F 0x0D48 +#define OV0_GAMMA_40_7F 0x0D4C /* These registers exist on R200 only */ -#define OV0_GAMMA_80_BF 0x0E00 -#define OV0_GAMMA_C0_FF 0x0E04 -#define OV0_GAMMA_100_13F 0x0E08 -#define OV0_GAMMA_140_17F 0x0E0C -#define OV0_GAMMA_180_1BF 0x0E10 -#define OV0_GAMMA_1C0_1FF 0x0E14 -#define OV0_GAMMA_200_23F 0x0E18 -#define OV0_GAMMA_240_27F 0x0E1C -#define OV0_GAMMA_280_2BF 0x0E20 -#define OV0_GAMMA_2C0_2FF 0x0E24 -#define OV0_GAMMA_300_33F 0x0E28 -#define OV0_GAMMA_340_37F 0x0E2C +#define OV0_GAMMA_80_BF 0x0E00 +#define OV0_GAMMA_C0_FF 0x0E04 +#define OV0_GAMMA_100_13F 0x0E08 +#define OV0_GAMMA_140_17F 0x0E0C +#define OV0_GAMMA_180_1BF 0x0E10 +#define OV0_GAMMA_1C0_1FF 0x0E14 +#define OV0_GAMMA_200_23F 0x0E18 +#define OV0_GAMMA_240_27F 0x0E1C +#define OV0_GAMMA_280_2BF 0x0E20 +#define OV0_GAMMA_2C0_2FF 0x0E24 +#define OV0_GAMMA_300_33F 0x0E28 +#define OV0_GAMMA_340_37F 0x0E2C /* End of R200 specific definitions */ -#define OV0_GAMMA_380_3BF 0x0D50 -#define OV0_GAMMA_3C0_3FF 0x0D54 +#define OV0_GAMMA_380_3BF 0x0D50 +#define OV0_GAMMA_3C0_3FF 0x0D54 /* IDCT ENGINE: It's MPEG-2 hardware decoder which incorporates run-level decode, de-zigzag and IDCT into an IDCT engine to complement the motion compensation engine. */ -#define IDCT_RUNS 0x1F80 -#define IDCT_LEVELS 0x1F84 -#define IDCT_AUTH_CONTROL 0x1F88 -#define IDCT_AUTH 0x1F8C -#define IDCT_CONTROL 0x1FBC +#define IDCT_RUNS 0x1F80 +#define IDCT_LEVELS 0x1F84 +#define IDCT_AUTH_CONTROL 0x1F88 +#define IDCT_AUTH 0x1F8C +#define IDCT_CONTROL 0x1FBC -#define SE_MC_SRC2_CNTL 0x19D4 -#define SE_MC_SRC1_CNTL 0x19D8 -#define SE_MC_DST_CNTL 0x19DC -#define SE_MC_CNTL_START 0x19E0 +#define SE_MC_SRC2_CNTL 0x19D4 +#define SE_MC_SRC1_CNTL 0x19D8 +#define SE_MC_DST_CNTL 0x19DC +#define SE_MC_CNTL_START 0x19E0 #ifndef RAGE128 -#define SE_MC_BUF_BASE 0x19E4 -#define PP_MC_CONTEXT 0x19E8 -#define PP_MISC 0x1C14 +#define SE_MC_BUF_BASE 0x19E4 +#define PP_MC_CONTEXT 0x19E8 +#define PP_MISC 0x1C14 #endif /* SUBPICTURE UNIT: Decompressing, scaling and alpha blending the compressed bitmap on the fly. Provide optimal DVD subpicture qualtity. */ -#define SUBPIC_CNTL 0x0540 -#define SUBPIC_DEFCOLCON 0x0544 -#define SUBPIC_Y_X_START 0x054C -#define SUBPIC_Y_X_END 0x0550 -#define SUBPIC_V_INC 0x0554 -#define SUBPIC_H_INC 0x0558 -#define SUBPIC_BUF0_OFFSET 0x055C -#define SUBPIC_BUF1_OFFSET 0x0560 -#define SUBPIC_LC0_OFFSET 0x0564 -#define SUBPIC_LC1_OFFSET 0x0568 -#define SUBPIC_PITCH 0x056C -#define SUBPIC_BTN_HLI_COLCON 0x0570 -#define SUBPIC_BTN_HLI_Y_X_START 0x0574 -#define SUBPIC_BTN_HLI_Y_X_END 0x0578 -#define SUBPIC_PALETTE_INDEX 0x057C -#define SUBPIC_PALETTE_DATA 0x0580 -#define SUBPIC_H_ACCUM_INIT 0x0584 -#define SUBPIC_V_ACCUM_INIT 0x0588 +#define SUBPIC_CNTL 0x0540 +#define SUBPIC_DEFCOLCON 0x0544 +#define SUBPIC_Y_X_START 0x054C +#define SUBPIC_Y_X_END 0x0550 +#define SUBPIC_V_INC 0x0554 +#define SUBPIC_H_INC 0x0558 +#define SUBPIC_BUF0_OFFSET 0x055C +#define SUBPIC_BUF1_OFFSET 0x0560 +#define SUBPIC_LC0_OFFSET 0x0564 +#define SUBPIC_LC1_OFFSET 0x0568 +#define SUBPIC_PITCH 0x056C +#define SUBPIC_BTN_HLI_COLCON 0x0570 +#define SUBPIC_BTN_HLI_Y_X_START 0x0574 +#define SUBPIC_BTN_HLI_Y_X_END 0x0578 +#define SUBPIC_PALETTE_INDEX 0x057C +#define SUBPIC_PALETTE_DATA 0x0580 +#define SUBPIC_H_ACCUM_INIT 0x0584 +#define SUBPIC_V_ACCUM_INIT 0x0588 -#define CP_RB_BASE 0x0700 -#define CP_RB_CNTL 0x0704 -#define CP_RB_RPTR_ADDR 0x070C -#define CP_RB_RPTR 0x0710 -#define CP_RB_WPTR 0x0714 -#define CP_RB_WPTR_DELAY 0x0718 -#define CP_IB_BASE 0x0738 -#define CP_IB_BUFSZ 0x073C -#define CP_CSQ_CNTL 0x0740 -#define SCRATCH_UMSK 0x0770 -#define SCRATCH_ADDR 0x0774 -#define DMA_GUI_TABLE_ADDR 0x0780 -#define DMA_GUI_SRC_ADDR 0x0784 -#define DMA_GUI_DST_ADDR 0x0788 -#define DMA_GUI_COMMAND 0x078C -#define DMA_GUI_STATUS 0x0790 -#define DMA_GUI_ACT_DSCRPTR 0x0794 -#define DMA_VID_TABLE_ADDR 0x07A0 -#define DMA_VID_SRC_ADDR 0x07A4 -#define DMA_VID_DST_ADDR 0x07A8 -#define DMA_VID_COMMAND 0x07AC -#define DMA_VID_STATUS 0x07B0 -#define DMA_VID_ACT_DSCRPTR 0x07B4 -#define CP_ME_CNTL 0x07D0 -#define CP_ME_RAM_ADDR 0x07D4 -#define CP_ME_RAM_RADDR 0x07D8 -#define CP_ME_RAM_DATAH 0x07DC -#define CP_ME_RAM_DATAL 0x07E0 -#define CP_CSQ_ADDR 0x07F0 -#define CP_CSQ_DATA 0x07F4 -#define CP_CSQ_STAT 0x07F8 +#define CP_RB_BASE 0x0700 +#define CP_RB_CNTL 0x0704 +#define CP_RB_RPTR_ADDR 0x070C +#define CP_RB_RPTR 0x0710 +#define CP_RB_WPTR 0x0714 +#define CP_RB_WPTR_DELAY 0x0718 +#define CP_IB_BASE 0x0738 +#define CP_IB_BUFSZ 0x073C +#define CP_CSQ_CNTL 0x0740 +#define SCRATCH_UMSK 0x0770 +#define SCRATCH_ADDR 0x0774 +#define DMA_GUI_TABLE_ADDR 0x0780 +#define DMA_GUI_SRC_ADDR 0x0784 +#define DMA_GUI_DST_ADDR 0x0788 +#define DMA_GUI_COMMAND 0x078C +#define DMA_GUI_STATUS 0x0790 +#define DMA_GUI_ACT_DSCRPTR 0x0794 +#define DMA_VID_TABLE_ADDR 0x07A0 +#define DMA_VID_SRC_ADDR 0x07A4 +#define DMA_VID_DST_ADDR 0x07A8 +#define DMA_VID_COMMAND 0x07AC +#define DMA_VID_STATUS 0x07B0 +#define DMA_VID_ACT_DSCRPTR 0x07B4 +#define CP_ME_CNTL 0x07D0 +#define CP_ME_RAM_ADDR 0x07D4 +#define CP_ME_RAM_RADDR 0x07D8 +#define CP_ME_RAM_DATAH 0x07DC +#define CP_ME_RAM_DATAL 0x07E0 +#define CP_CSQ_ADDR 0x07F0 +#define CP_CSQ_DATA 0x07F4 +#define CP_CSQ_STAT 0x07F8 -#define DISP_MISC_CNTL 0x0D00 -# define SOFT_RESET_GRPH_PP (1 << 0) -#define DAC_MACRO_CNTL 0x0D04 -#define DISP_PWR_MAN 0x0D08 -#define DISP_TEST_DEBUG_CNTL 0x0D10 -#define DISP_HW_DEBUG 0x0D14 -#define DAC_CRC_SIG1 0x0D18 -#define DAC_CRC_SIG2 0x0D1C +#define DISP_MISC_CNTL 0x0D00 +# define SOFT_RESET_GRPH_PP (1 << 0) +#define DAC_MACRO_CNTL 0x0D04 +#define DISP_PWR_MAN 0x0D08 +#define DISP_TEST_DEBUG_CNTL 0x0D10 +#define DISP_HW_DEBUG 0x0D14 +#define DAC_CRC_SIG1 0x0D18 +#define DAC_CRC_SIG2 0x0D1C /* first capture unit */ -#define VID_BUFFER_CONTROL 0x0900 -#define CAP_INT_CNTL 0x0908 -#define CAP_INT_STATUS 0x090C -#define FCP_CNTL 0x0910 -#define CAP0_BUF0_OFFSET 0x0920 -#define CAP0_BUF1_OFFSET 0x0924 -#define CAP0_BUF0_EVEN_OFFSET 0x0928 -#define CAP0_BUF1_EVEN_OFFSET 0x092C -#define CAP0_BUF_PITCH 0x0930 -#define CAP0_V_WINDOW 0x0934 -#define CAP0_H_WINDOW 0x0938 -#define CAP0_VBI0_OFFSET 0x093C -#define CAP0_VBI1_OFFSET 0x0940 -#define CAP0_VBI_V_WINDOW 0x0944 -#define CAP0_VBI_H_WINDOW 0x0948 -#define CAP0_PORT_MODE_CNTL 0x094C -#define CAP0_TRIG_CNTL 0x0950 -#define CAP0_DEBUG 0x0954 -#define CAP0_CONFIG 0x0958 -# define CAP0_CONFIG_CONTINUOS 0x00000001 -# define CAP0_CONFIG_START_FIELD_EVEN 0x00000002 -# define CAP0_CONFIG_START_BUF_GET 0x00000004 -# define CAP0_CONFIG_START_BUF_SET 0x00000008 -# define CAP0_CONFIG_BUF_TYPE_ALT 0x00000010 -# define CAP0_CONFIG_BUF_TYPE_FRAME 0x00000020 -# define CAP0_CONFIG_ONESHOT_MODE_FRAME 0x00000040 -# define CAP0_CONFIG_BUF_MODE_DOUBLE 0x00000080 -# define CAP0_CONFIG_BUF_MODE_TRIPLE 0x00000100 -# define CAP0_CONFIG_MIRROR_EN 0x00000200 -# define CAP0_CONFIG_ONESHOT_MIRROR_EN 0x00000400 -# define CAP0_CONFIG_VIDEO_SIGNED_UV 0x00000800 -# define CAP0_CONFIG_ANC_DECODE_EN 0x00001000 -# define CAP0_CONFIG_VBI_EN 0x00002000 -# define CAP0_CONFIG_SOFT_PULL_DOWN_EN 0x00004000 -# define CAP0_CONFIG_VIP_EXTEND_FLAG_EN 0x00008000 -# define CAP0_CONFIG_FAKE_FIELD_EN 0x00010000 -# define CAP0_CONFIG_ODD_ONE_MORE_LINE 0x00020000 -# define CAP0_CONFIG_EVEN_ONE_MORE_LINE 0x00040000 -# define CAP0_CONFIG_HORZ_DIVIDE_2 0x00080000 -# define CAP0_CONFIG_HORZ_DIVIDE_4 0x00100000 -# define CAP0_CONFIG_VERT_DIVIDE_2 0x00200000 -# define CAP0_CONFIG_VERT_DIVIDE_4 0x00400000 -# define CAP0_CONFIG_FORMAT_BROOKTREE 0x00000000 -# define CAP0_CONFIG_FORMAT_CCIR656 0x00800000 -# define CAP0_CONFIG_FORMAT_ZV 0x01000000 -# define CAP0_CONFIG_FORMAT_VIP 0x01800000 -# define CAP0_CONFIG_FORMAT_TRANSPORT 0x02000000 -# define CAP0_CONFIG_HORZ_DECIMATOR 0x04000000 -# define CAP0_CONFIG_VIDEO_IN_YVYU422 0x00000000 -# define CAP0_CONFIG_VIDEO_IN_VYUY422 0x20000000 -# define CAP0_CONFIG_VBI_DIVIDE_2 0x40000000 -# define CAP0_CONFIG_VBI_DIVIDE_4 0x80000000 -#define CAP0_ANC_ODD_OFFSET 0x095C -#define CAP0_ANC_EVEN_OFFSET 0x0960 -#define CAP0_ANC_H_WINDOW 0x0964 -#define CAP0_VIDEO_SYNC_TEST 0x0968 -#define CAP0_ONESHOT_BUF_OFFSET 0x096C -#define CAP0_BUF_STATUS 0x0970 +#define VID_BUFFER_CONTROL 0x0900 +#define CAP_INT_CNTL 0x0908 +#define CAP_INT_STATUS 0x090C +#define FCP_CNTL 0x0910 +#define CAP0_BUF0_OFFSET 0x0920 +#define CAP0_BUF1_OFFSET 0x0924 +#define CAP0_BUF0_EVEN_OFFSET 0x0928 +#define CAP0_BUF1_EVEN_OFFSET 0x092C +#define CAP0_BUF_PITCH 0x0930 +#define CAP0_V_WINDOW 0x0934 +#define CAP0_H_WINDOW 0x0938 +#define CAP0_VBI0_OFFSET 0x093C +#define CAP0_VBI1_OFFSET 0x0940 +#define CAP0_VBI_V_WINDOW 0x0944 +#define CAP0_VBI_H_WINDOW 0x0948 +#define CAP0_PORT_MODE_CNTL 0x094C +#define CAP0_TRIG_CNTL 0x0950 +#define CAP0_DEBUG 0x0954 +#define CAP0_CONFIG 0x0958 +# define CAP0_CONFIG_CONTINUOS 0x00000001 +# define CAP0_CONFIG_START_FIELD_EVEN 0x00000002 +# define CAP0_CONFIG_START_BUF_GET 0x00000004 +# define CAP0_CONFIG_START_BUF_SET 0x00000008 +# define CAP0_CONFIG_BUF_TYPE_ALT 0x00000010 +# define CAP0_CONFIG_BUF_TYPE_FRAME 0x00000020 +# define CAP0_CONFIG_ONESHOT_MODE_FRAME 0x00000040 +# define CAP0_CONFIG_BUF_MODE_DOUBLE 0x00000080 +# define CAP0_CONFIG_BUF_MODE_TRIPLE 0x00000100 +# define CAP0_CONFIG_MIRROR_EN 0x00000200 +# define CAP0_CONFIG_ONESHOT_MIRROR_EN 0x00000400 +# define CAP0_CONFIG_VIDEO_SIGNED_UV 0x00000800 +# define CAP0_CONFIG_ANC_DECODE_EN 0x00001000 +# define CAP0_CONFIG_VBI_EN 0x00002000 +# define CAP0_CONFIG_SOFT_PULL_DOWN_EN 0x00004000 +# define CAP0_CONFIG_VIP_EXTEND_FLAG_EN 0x00008000 +# define CAP0_CONFIG_FAKE_FIELD_EN 0x00010000 +# define CAP0_CONFIG_ODD_ONE_MORE_LINE 0x00020000 +# define CAP0_CONFIG_EVEN_ONE_MORE_LINE 0x00040000 +# define CAP0_CONFIG_HORZ_DIVIDE_2 0x00080000 +# define CAP0_CONFIG_HORZ_DIVIDE_4 0x00100000 +# define CAP0_CONFIG_VERT_DIVIDE_2 0x00200000 +# define CAP0_CONFIG_VERT_DIVIDE_4 0x00400000 +# define CAP0_CONFIG_FORMAT_BROOKTREE 0x00000000 +# define CAP0_CONFIG_FORMAT_CCIR656 0x00800000 +# define CAP0_CONFIG_FORMAT_ZV 0x01000000 +# define CAP0_CONFIG_FORMAT_VIP 0x01800000 +# define CAP0_CONFIG_FORMAT_TRANSPORT 0x02000000 +# define CAP0_CONFIG_HORZ_DECIMATOR 0x04000000 +# define CAP0_CONFIG_VIDEO_IN_YVYU422 0x00000000 +# define CAP0_CONFIG_VIDEO_IN_VYUY422 0x20000000 +# define CAP0_CONFIG_VBI_DIVIDE_2 0x40000000 +# define CAP0_CONFIG_VBI_DIVIDE_4 0x80000000 +#define CAP0_ANC_ODD_OFFSET 0x095C +#define CAP0_ANC_EVEN_OFFSET 0x0960 +#define CAP0_ANC_H_WINDOW 0x0964 +#define CAP0_VIDEO_SYNC_TEST 0x0968 +#define CAP0_ONESHOT_BUF_OFFSET 0x096C +#define CAP0_BUF_STATUS 0x0970 #ifdef RAGE128 -#define CAP0_DWNSC_XRATIO 0x0978 -#define CAP0_XSHARPNESS 0x097C +#define CAP0_DWNSC_XRATIO 0x0978 +#define CAP0_XSHARPNESS 0x097C #else -/* #define CAP0_DWNSC_XRATIO 0x0978 */ -/* #define CAP0_XSHARPNESS 0x097C */ +/* #define CAP0_DWNSC_XRATIO 0x0978 */ +/* #define CAP0_XSHARPNESS 0x097C */ #endif -#define CAP0_VBI2_OFFSET 0x0980 -#define CAP0_VBI3_OFFSET 0x0984 -#define CAP0_ANC2_OFFSET 0x0988 -#define CAP0_ANC3_OFFSET 0x098C +#define CAP0_VBI2_OFFSET 0x0980 +#define CAP0_VBI3_OFFSET 0x0984 +#define CAP0_ANC2_OFFSET 0x0988 +#define CAP0_ANC3_OFFSET 0x098C /* second capture unit */ -#define CAP1_BUF0_OFFSET 0x0990 -#define CAP1_BUF1_OFFSET 0x0994 -#define CAP1_BUF0_EVEN_OFFSET 0x0998 -#define CAP1_BUF1_EVEN_OFFSET 0x099C +#define CAP1_BUF0_OFFSET 0x0990 +#define CAP1_BUF1_OFFSET 0x0994 +#define CAP1_BUF0_EVEN_OFFSET 0x0998 +#define CAP1_BUF1_EVEN_OFFSET 0x099C -#define CAP1_BUF_PITCH 0x09A0 -#define CAP1_V_WINDOW 0x09A4 -#define CAP1_H_WINDOW 0x09A8 -#define CAP1_VBI_ODD_OFFSET 0x09AC -#define CAP1_VBI_EVEN_OFFSET 0x09B0 -#define CAP1_VBI_V_WINDOW 0x09B4 -#define CAP1_VBI_H_WINDOW 0x09B8 -#define CAP1_PORT_MODE_CNTL 0x09BC -#define CAP1_TRIG_CNTL 0x09C0 -#define CAP1_DEBUG 0x09C4 -#define CAP1_CONFIG 0x09C8 -#define CAP1_ANC_ODD_OFFSET 0x09CC -#define CAP1_ANC_EVEN_OFFSET 0x09D0 -#define CAP1_ANC_H_WINDOW 0x09D4 -#define CAP1_VIDEO_SYNC_TEST 0x09D8 -#define CAP1_ONESHOT_BUF_OFFSET 0x09DC -#define CAP1_BUF_STATUS 0x09E0 -#define CAP1_DWNSC_XRATIO 0x09E8 -#define CAP1_XSHARPNESS 0x09EC +#define CAP1_BUF_PITCH 0x09A0 +#define CAP1_V_WINDOW 0x09A4 +#define CAP1_H_WINDOW 0x09A8 +#define CAP1_VBI_ODD_OFFSET 0x09AC +#define CAP1_VBI_EVEN_OFFSET 0x09B0 +#define CAP1_VBI_V_WINDOW 0x09B4 +#define CAP1_VBI_H_WINDOW 0x09B8 +#define CAP1_PORT_MODE_CNTL 0x09BC +#define CAP1_TRIG_CNTL 0x09C0 +#define CAP1_DEBUG 0x09C4 +#define CAP1_CONFIG 0x09C8 +#define CAP1_ANC_ODD_OFFSET 0x09CC +#define CAP1_ANC_EVEN_OFFSET 0x09D0 +#define CAP1_ANC_H_WINDOW 0x09D4 +#define CAP1_VIDEO_SYNC_TEST 0x09D8 +#define CAP1_ONESHOT_BUF_OFFSET 0x09DC +#define CAP1_BUF_STATUS 0x09E0 +#define CAP1_DWNSC_XRATIO 0x09E8 +#define CAP1_XSHARPNESS 0x09EC -#define DISP_MERGE_CNTL 0x0D60 -#define DISP_OUTPUT_CNTL 0x0D64 -# define DISP_DAC_SOURCE_MASK 0x03 -# define DISP_DAC_SOURCE_CRTC2 0x01 -#define DISP_LIN_TRANS_GRPH_A 0x0D80 -#define DISP_LIN_TRANS_GRPH_B 0x0D84 -#define DISP_LIN_TRANS_GRPH_C 0x0D88 -#define DISP_LIN_TRANS_GRPH_D 0x0D8C -#define DISP_LIN_TRANS_GRPH_E 0x0D90 -#define DISP_LIN_TRANS_GRPH_F 0x0D94 -#define DISP_LIN_TRANS_VID_A 0x0D98 -#define DISP_LIN_TRANS_VID_B 0x0D9C -#define DISP_LIN_TRANS_VID_C 0x0DA0 -#define DISP_LIN_TRANS_VID_D 0x0DA4 -#define DISP_LIN_TRANS_VID_E 0x0DA8 -#define DISP_LIN_TRANS_VID_F 0x0DAC -#define RMX_HORZ_FILTER_0TAP_COEF 0x0DB0 -#define RMX_HORZ_FILTER_1TAP_COEF 0x0DB4 -#define RMX_HORZ_FILTER_2TAP_COEF 0x0DB8 -#define RMX_HORZ_PHASE 0x0DBC -#define DAC_EMBEDDED_SYNC_CNTL 0x0DC0 -#define DAC_BROAD_PULSE 0x0DC4 -#define DAC_SKEW_CLKS 0x0DC8 -#define DAC_INCR 0x0DCC -#define DAC_NEG_SYNC_LEVEL 0x0DD0 -#define DAC_POS_SYNC_LEVEL 0x0DD4 -#define DAC_BLANK_LEVEL 0x0DD8 -#define CLOCK_CNTL_INDEX 0x0008 -/* CLOCK_CNTL_INDEX bit constants */ -# define PLL_WR_EN 0x00000080 -# define PLL_DIV_SEL (3 << 8) -# define PLL2_DIV_SEL_MASK ~(3 << 8) -#define CLOCK_CNTL_DATA 0x000C -#define CP_RB_CNTL 0x0704 -#define CP_RB_BASE 0x0700 -#define CP_RB_RPTR_ADDR 0x070C -#define CP_RB_RPTR 0x0710 -#define CP_RB_WPTR 0x0714 -#define CP_RB_WPTR_DELAY 0x0718 -#define CP_IB_BASE 0x0738 -#define CP_IB_BUFSZ 0x073C -#define SCRATCH_REG0 0x15E0 -#define GUI_SCRATCH_REG0 0x15E0 -#define SCRATCH_REG1 0x15E4 -#define GUI_SCRATCH_REG1 0x15E4 -#define SCRATCH_REG2 0x15E8 -#define GUI_SCRATCH_REG2 0x15E8 -#define SCRATCH_REG3 0x15EC -#define GUI_SCRATCH_REG3 0x15EC -#define SCRATCH_REG4 0x15F0 -#define GUI_SCRATCH_REG4 0x15F0 -#define SCRATCH_REG5 0x15F4 -#define GUI_SCRATCH_REG5 0x15F4 -#define SCRATCH_UMSK 0x0770 -#define SCRATCH_ADDR 0x0774 -#define DP_BRUSH_FRGD_CLR 0x147C -#define DP_BRUSH_BKGD_CLR 0x1478 -#define DST_LINE_START 0x1600 -#define DST_LINE_END 0x1604 -#define SRC_OFFSET 0x15AC -#define SRC_PITCH 0x15B0 -#define SRC_TILE 0x1704 -#define SRC_PITCH_OFFSET 0x1428 -#define SRC_X 0x1414 -#define SRC_Y 0x1418 -#define DST_WIDTH_X 0x1588 -#define DST_HEIGHT_WIDTH_8 0x158C -#define SRC_X_Y 0x1590 -#define SRC_Y_X 0x1434 -#define DST_Y_X 0x1438 -#define DST_WIDTH_HEIGHT 0x1598 -#define DST_HEIGHT_WIDTH 0x143c -#define SRC_CLUT_ADDRESS 0x1780 -#define SRC_CLUT_DATA 0x1784 -#define SRC_CLUT_DATA_RD 0x1788 -#define HOST_DATA0 0x17C0 -#define HOST_DATA1 0x17C4 -#define HOST_DATA2 0x17C8 -#define HOST_DATA3 0x17CC -#define HOST_DATA4 0x17D0 -#define HOST_DATA5 0x17D4 -#define HOST_DATA6 0x17D8 -#define HOST_DATA7 0x17DC -#define HOST_DATA_LAST 0x17E0 -#define DP_SRC_ENDIAN 0x15D4 -#define DP_SRC_FRGD_CLR 0x15D8 -#define DP_SRC_BKGD_CLR 0x15DC -#define DP_WRITE_MASK 0x16cc -#define SC_LEFT 0x1640 -#define SC_RIGHT 0x1644 -#define SC_TOP 0x1648 -#define SC_BOTTOM 0x164C -#define SRC_SC_RIGHT 0x1654 -#define SRC_SC_BOTTOM 0x165C -#define DP_CNTL 0x16C0 +#define DISP_MERGE_CNTL 0x0D60 +#define DISP_OUTPUT_CNTL 0x0D64 +# define DISP_DAC_SOURCE_MASK 0x03 +# define DISP_DAC_SOURCE_CRTC2 0x01 +#define DISP_LIN_TRANS_GRPH_A 0x0D80 +#define DISP_LIN_TRANS_GRPH_B 0x0D84 +#define DISP_LIN_TRANS_GRPH_C 0x0D88 +#define DISP_LIN_TRANS_GRPH_D 0x0D8C +#define DISP_LIN_TRANS_GRPH_E 0x0D90 +#define DISP_LIN_TRANS_GRPH_F 0x0D94 +#define DISP_LIN_TRANS_VID_A 0x0D98 +#define DISP_LIN_TRANS_VID_B 0x0D9C +#define DISP_LIN_TRANS_VID_C 0x0DA0 +#define DISP_LIN_TRANS_VID_D 0x0DA4 +#define DISP_LIN_TRANS_VID_E 0x0DA8 +#define DISP_LIN_TRANS_VID_F 0x0DAC +#define RMX_HORZ_FILTER_0TAP_COEF 0x0DB0 +#define RMX_HORZ_FILTER_1TAP_COEF 0x0DB4 +#define RMX_HORZ_FILTER_2TAP_COEF 0x0DB8 +#define RMX_HORZ_PHASE 0x0DBC +#define DAC_EMBEDDED_SYNC_CNTL 0x0DC0 +#define DAC_BROAD_PULSE 0x0DC4 +#define DAC_SKEW_CLKS 0x0DC8 +#define DAC_INCR 0x0DCC +#define DAC_NEG_SYNC_LEVEL 0x0DD0 +#define DAC_POS_SYNC_LEVEL 0x0DD4 +#define DAC_BLANK_LEVEL 0x0DD8 +#define CLOCK_CNTL_INDEX 0x0008 +/* CLOCK_CNTL_INDEX bit constants */ +# define PLL_WR_EN 0x00000080 +# define PLL_DIV_SEL (3 << 8) +# define PLL2_DIV_SEL_MASK ~(3 << 8) +#define CLOCK_CNTL_DATA 0x000C +#define CP_RB_CNTL 0x0704 +#define CP_RB_BASE 0x0700 +#define CP_RB_RPTR_ADDR 0x070C +#define CP_RB_RPTR 0x0710 +#define CP_RB_WPTR 0x0714 +#define CP_RB_WPTR_DELAY 0x0718 +#define CP_IB_BASE 0x0738 +#define CP_IB_BUFSZ 0x073C +#define SCRATCH_REG0 0x15E0 +#define GUI_SCRATCH_REG0 0x15E0 +#define SCRATCH_REG1 0x15E4 +#define GUI_SCRATCH_REG1 0x15E4 +#define SCRATCH_REG2 0x15E8 +#define GUI_SCRATCH_REG2 0x15E8 +#define SCRATCH_REG3 0x15EC +#define GUI_SCRATCH_REG3 0x15EC +#define SCRATCH_REG4 0x15F0 +#define GUI_SCRATCH_REG4 0x15F0 +#define SCRATCH_REG5 0x15F4 +#define GUI_SCRATCH_REG5 0x15F4 +#define SCRATCH_UMSK 0x0770 +#define SCRATCH_ADDR 0x0774 +#define DP_BRUSH_FRGD_CLR 0x147C +#define DP_BRUSH_BKGD_CLR 0x1478 +#define DST_LINE_START 0x1600 +#define DST_LINE_END 0x1604 +#define SRC_OFFSET 0x15AC +#define SRC_PITCH 0x15B0 +#define SRC_TILE 0x1704 +#define SRC_PITCH_OFFSET 0x1428 +#define SRC_X 0x1414 +#define SRC_Y 0x1418 +#define DST_WIDTH_X 0x1588 +#define DST_HEIGHT_WIDTH_8 0x158C +#define SRC_X_Y 0x1590 +#define SRC_Y_X 0x1434 +#define DST_Y_X 0x1438 +#define DST_WIDTH_HEIGHT 0x1598 +#define DST_HEIGHT_WIDTH 0x143c +#define SRC_CLUT_ADDRESS 0x1780 +#define SRC_CLUT_DATA 0x1784 +#define SRC_CLUT_DATA_RD 0x1788 +#define HOST_DATA0 0x17C0 +#define HOST_DATA1 0x17C4 +#define HOST_DATA2 0x17C8 +#define HOST_DATA3 0x17CC +#define HOST_DATA4 0x17D0 +#define HOST_DATA5 0x17D4 +#define HOST_DATA6 0x17D8 +#define HOST_DATA7 0x17DC +#define HOST_DATA_LAST 0x17E0 +#define DP_SRC_ENDIAN 0x15D4 +#define DP_SRC_FRGD_CLR 0x15D8 +#define DP_SRC_BKGD_CLR 0x15DC +#define DP_WRITE_MASK 0x16cc +#define SC_LEFT 0x1640 +#define SC_RIGHT 0x1644 +#define SC_TOP 0x1648 +#define SC_BOTTOM 0x164C +#define SRC_SC_RIGHT 0x1654 +#define SRC_SC_BOTTOM 0x165C +#define DP_CNTL 0x16C0 /* DP_CNTL bit constants */ -# define DST_X_RIGHT_TO_LEFT 0x00000000 -# define DST_X_LEFT_TO_RIGHT 0x00000001 -# define DST_Y_BOTTOM_TO_TOP 0x00000000 -# define DST_Y_TOP_TO_BOTTOM 0x00000002 -# define DST_X_MAJOR 0x00000000 -# define DST_Y_MAJOR 0x00000004 -# define DST_X_TILE 0x00000008 -# define DST_Y_TILE 0x00000010 -# define DST_LAST_PEL 0x00000020 -# define DST_TRAIL_X_RIGHT_TO_LEFT 0x00000000 -# define DST_TRAIL_X_LEFT_TO_RIGHT 0x00000040 -# define DST_TRAP_FILL_RIGHT_TO_LEFT 0x00000000 -# define DST_TRAP_FILL_LEFT_TO_RIGHT 0x00000080 -# define DST_BRES_SIGN 0x00000100 -# define DST_HOST_BIG_ENDIAN_EN 0x00000200 -# define DST_POLYLINE_NONLAST 0x00008000 -# define DST_RASTER_STALL 0x00010000 -# define DST_POLY_EDGE 0x00040000 -#define DP_CNTL_XDIR_YDIR_YMAJOR 0x16D0 -/* DP_CNTL_XDIR_YDIR_YMAJOR bit constants (short version of DP_CNTL) */ -# define DST_X_MAJOR_S 0x00000000 -# define DST_Y_MAJOR_S 0x00000001 -# define DST_Y_BOTTOM_TO_TOP_S 0x00000000 -# define DST_Y_TOP_TO_BOTTOM_S 0x00008000 -# define DST_X_RIGHT_TO_LEFT_S 0x00000000 -# define DST_X_LEFT_TO_RIGHT_S 0x80000000 -#define DP_DATATYPE 0x16C4 +# define DST_X_RIGHT_TO_LEFT 0x00000000 +# define DST_X_LEFT_TO_RIGHT 0x00000001 +# define DST_Y_BOTTOM_TO_TOP 0x00000000 +# define DST_Y_TOP_TO_BOTTOM 0x00000002 +# define DST_X_MAJOR 0x00000000 +# define DST_Y_MAJOR 0x00000004 +# define DST_X_TILE 0x00000008 +# define DST_Y_TILE 0x00000010 +# define DST_LAST_PEL 0x00000020 +# define DST_TRAIL_X_RIGHT_TO_LEFT 0x00000000 +# define DST_TRAIL_X_LEFT_TO_RIGHT 0x00000040 +# define DST_TRAP_FILL_RIGHT_TO_LEFT 0x00000000 +# define DST_TRAP_FILL_LEFT_TO_RIGHT 0x00000080 +# define DST_BRES_SIGN 0x00000100 +# define DST_HOST_BIG_ENDIAN_EN 0x00000200 +# define DST_POLYLINE_NONLAST 0x00008000 +# define DST_RASTER_STALL 0x00010000 +# define DST_POLY_EDGE 0x00040000 +#define DP_CNTL_XDIR_YDIR_YMAJOR 0x16D0 +/* DP_CNTL_XDIR_YDIR_YMAJOR bit constants (short version of DP_CNTL) */ +# define DST_X_MAJOR_S 0x00000000 +# define DST_Y_MAJOR_S 0x00000001 +# define DST_Y_BOTTOM_TO_TOP_S 0x00000000 +# define DST_Y_TOP_TO_BOTTOM_S 0x00008000 +# define DST_X_RIGHT_TO_LEFT_S 0x00000000 +# define DST_X_LEFT_TO_RIGHT_S 0x80000000 +#define DP_DATATYPE 0x16C4 /* DP_DATATYPE bit constants */ -# define DST_8BPP 0x00000002 -# define DST_15BPP 0x00000003 -# define DST_16BPP 0x00000004 -# define DST_24BPP 0x00000005 -# define DST_32BPP 0x00000006 -# define DST_8BPP_RGB332 0x00000007 -# define DST_8BPP_Y8 0x00000008 -# define DST_8BPP_RGB8 0x00000009 -# define DST_16BPP_VYUY422 0x0000000b -# define DST_16BPP_YVYU422 0x0000000c -# define DST_32BPP_AYUV444 0x0000000e -# define DST_16BPP_ARGB4444 0x0000000f -# define BRUSH_SOLIDCOLOR 0x00000d00 -# define SRC_MONO 0x00000000 -# define SRC_MONO_LBKGD 0x00010000 -# define SRC_DSTCOLOR 0x00030000 -# define BYTE_ORDER_MSB_TO_LSB 0x00000000 -# define BYTE_ORDER_LSB_TO_MSB 0x40000000 -# define DP_CONVERSION_TEMP 0x80000000 -# define HOST_BIG_ENDIAN_EN (1 << 29) -#define DP_MIX 0x16C8 -/* DP_MIX bit constants */ -# define DP_SRC_RECT 0x00000200 -# define DP_SRC_HOST 0x00000300 -# define DP_SRC_HOST_BYTEALIGN 0x00000400 -#define DP_WRITE_MSK 0x16CC -#define DP_XOP 0x17F8 -#define CLR_CMP_CLR_SRC 0x15C4 -#define CLR_CMP_CLR_DST 0x15C8 -#define CLR_CMP_CNTL 0x15C0 -/* CLR_CMP_CNTL bit constants */ -# define COMPARE_SRC_FALSE 0x00000000 -# define COMPARE_SRC_TRUE 0x00000001 -# define COMPARE_SRC_NOT_EQUAL 0x00000004 -# define COMPARE_SRC_EQUAL 0x00000005 -# define COMPARE_SRC_EQUAL_FLIP 0x00000007 -# define COMPARE_DST_FALSE 0x00000000 -# define COMPARE_DST_TRUE 0x00000100 -# define COMPARE_DST_NOT_EQUAL 0x00000400 -# define COMPARE_DST_EQUAL 0x00000500 -# define COMPARE_DESTINATION 0x00000000 -# define COMPARE_SOURCE 0x01000000 -# define COMPARE_SRC_AND_DST 0x02000000 -#define CLR_CMP_MSK 0x15CC -#define DSTCACHE_MODE 0x1710 -#define DSTCACHE_CTLSTAT 0x1714 -/* DSTCACHE_CTLSTAT bit constants */ -# define RB2D_DC_FLUSH (3 << 0) -# define RB2D_DC_FLUSH_ALL 0xf -# define RB2D_DC_BUSY (1 << 31) -#define DEFAULT_OFFSET 0x16e0 -#define DEFAULT_PITCH_OFFSET 0x16E0 -#define DEFAULT_SC_BOTTOM_RIGHT 0x16E8 +# define DST_8BPP 0x00000002 +# define DST_15BPP 0x00000003 +# define DST_16BPP 0x00000004 +# define DST_24BPP 0x00000005 +# define DST_32BPP 0x00000006 +# define DST_8BPP_RGB332 0x00000007 +# define DST_8BPP_Y8 0x00000008 +# define DST_8BPP_RGB8 0x00000009 +# define DST_16BPP_VYUY422 0x0000000b +# define DST_16BPP_YVYU422 0x0000000c +# define DST_32BPP_AYUV444 0x0000000e +# define DST_16BPP_ARGB4444 0x0000000f +# define BRUSH_SOLIDCOLOR 0x00000d00 +# define SRC_MONO 0x00000000 +# define SRC_MONO_LBKGD 0x00010000 +# define SRC_DSTCOLOR 0x00030000 +# define BYTE_ORDER_MSB_TO_LSB 0x00000000 +# define BYTE_ORDER_LSB_TO_MSB 0x40000000 +# define DP_CONVERSION_TEMP 0x80000000 +# define HOST_BIG_ENDIAN_EN (1 << 29) +#define DP_MIX 0x16C8 +/* DP_MIX bit constants */ +# define DP_SRC_RECT 0x00000200 +# define DP_SRC_HOST 0x00000300 +# define DP_SRC_HOST_BYTEALIGN 0x00000400 +#define DP_WRITE_MSK 0x16CC +#define DP_XOP 0x17F8 +#define CLR_CMP_CLR_SRC 0x15C4 +#define CLR_CMP_CLR_DST 0x15C8 +#define CLR_CMP_CNTL 0x15C0 +/* CLR_CMP_CNTL bit constants */ +# define COMPARE_SRC_FALSE 0x00000000 +# define COMPARE_SRC_TRUE 0x00000001 +# define COMPARE_SRC_NOT_EQUAL 0x00000004 +# define COMPARE_SRC_EQUAL 0x00000005 +# define COMPARE_SRC_EQUAL_FLIP 0x00000007 +# define COMPARE_DST_FALSE 0x00000000 +# define COMPARE_DST_TRUE 0x00000100 +# define COMPARE_DST_NOT_EQUAL 0x00000400 +# define COMPARE_DST_EQUAL 0x00000500 +# define COMPARE_DESTINATION 0x00000000 +# define COMPARE_SOURCE 0x01000000 +# define COMPARE_SRC_AND_DST 0x02000000 +#define CLR_CMP_MSK 0x15CC +#define DSTCACHE_MODE 0x1710 +#define DSTCACHE_CTLSTAT 0x1714 +/* DSTCACHE_CTLSTAT bit constants */ +# define RB2D_DC_FLUSH (3 << 0) +# define RB2D_DC_FLUSH_ALL 0xf +# define RB2D_DC_BUSY (1 << 31) +#define DEFAULT_OFFSET 0x16e0 +#define DEFAULT_PITCH_OFFSET 0x16E0 +#define DEFAULT_SC_BOTTOM_RIGHT 0x16E8 /* DEFAULT_SC_BOTTOM_RIGHT bit constants */ -# define DEFAULT_SC_RIGHT_MAX (0x1fff << 0) -# define DEFAULT_SC_BOTTOM_MAX (0x1fff << 16) -#define DP_GUI_MASTER_CNTL 0x146C +# define DEFAULT_SC_RIGHT_MAX (0x1fff << 0) +# define DEFAULT_SC_BOTTOM_MAX (0x1fff << 16) +#define DP_GUI_MASTER_CNTL 0x146C /* DP_GUI_MASTER_CNTL bit constants */ -# define GMC_SRC_PITCH_OFFSET_DEFAULT 0x00000000 -# define GMC_SRC_PITCH_OFFSET_LEAVE 0x00000001 -# define GMC_DST_PITCH_OFFSET_DEFAULT 0x00000000 -# define GMC_DST_PITCH_OFFSET_LEAVE 0x00000002 -# define GMC_SRC_CLIP_DEFAULT 0x00000000 -# define GMC_SRC_CLIP_LEAVE 0x00000004 -# define GMC_DST_CLIP_DEFAULT 0x00000000 -# define GMC_DST_CLIP_LEAVE 0x00000008 -# define GMC_BRUSH_8x8MONO 0x00000000 -# define GMC_BRUSH_8x8MONO_LBKGD 0x00000010 -# define GMC_BRUSH_8x1MONO 0x00000020 -# define GMC_BRUSH_8x1MONO_LBKGD 0x00000030 -# define GMC_BRUSH_1x8MONO 0x00000040 -# define GMC_BRUSH_1x8MONO_LBKGD 0x00000050 -# define GMC_BRUSH_32x1MONO 0x00000060 -# define GMC_BRUSH_32x1MONO_LBKGD 0x00000070 -# define GMC_BRUSH_32x32MONO 0x00000080 -# define GMC_BRUSH_32x32MONO_LBKGD 0x00000090 -# define GMC_BRUSH_8x8COLOR 0x000000a0 -# define GMC_BRUSH_8x1COLOR 0x000000b0 -# define GMC_BRUSH_1x8COLOR 0x000000c0 -# define GMC_BRUSH_SOLID_COLOR 0x000000d0 -# define GMC_DST_8BPP 0x00000200 -# define GMC_DST_15BPP 0x00000300 -# define GMC_DST_16BPP 0x00000400 -# define GMC_DST_24BPP 0x00000500 -# define GMC_DST_32BPP 0x00000600 -# define GMC_DST_8BPP_RGB332 0x00000700 -# define GMC_DST_8BPP_Y8 0x00000800 -# define GMC_DST_8BPP_RGB8 0x00000900 -# define GMC_DST_16BPP_VYUY422 0x00000b00 -# define GMC_DST_16BPP_YVYU422 0x00000c00 -# define GMC_DST_32BPP_AYUV444 0x00000e00 -# define GMC_DST_16BPP_ARGB4444 0x00000f00 -# define GMC_SRC_MONO 0x00000000 -# define GMC_SRC_MONO_LBKGD 0x00001000 -# define GMC_SRC_DSTCOLOR 0x00003000 -# define GMC_BYTE_ORDER_MSB_TO_LSB 0x00000000 -# define GMC_BYTE_ORDER_LSB_TO_MSB 0x00004000 -# define GMC_DP_CONVERSION_TEMP_9300 0x00008000 -# define GMC_DP_CONVERSION_TEMP_6500 0x00000000 -# define GMC_DP_SRC_RECT 0x02000000 -# define GMC_DP_SRC_HOST 0x03000000 -# define GMC_DP_SRC_HOST_BYTEALIGN 0x04000000 -# define GMC_3D_FCN_EN_CLR 0x00000000 -# define GMC_3D_FCN_EN_SET 0x08000000 -# define GMC_DST_CLR_CMP_FCN_LEAVE 0x00000000 -# define GMC_DST_CLR_CMP_FCN_CLEAR 0x10000000 -# define GMC_AUX_CLIP_LEAVE 0x00000000 -# define GMC_AUX_CLIP_CLEAR 0x20000000 -# define GMC_WRITE_MASK_LEAVE 0x00000000 -# define GMC_WRITE_MASK_SET 0x40000000 -# define GMC_CLR_CMP_CNTL_DIS (1 << 28) -# define GMC_SRC_DATATYPE_COLOR (3 << 12) -# define ROP3_S 0x00cc0000 -# define ROP3_SRCCOPY 0x00cc0000 -# define ROP3_P 0x00f00000 -# define ROP3_PATCOPY 0x00f00000 -# define DP_SRC_SOURCE_MASK (7 << 24) -# define GMC_BRUSH_NONE (15 << 4) -# define DP_SRC_SOURCE_MEMORY (2 << 24) -# define GMC_BRUSH_SOLIDCOLOR 0x000000d0 -#define SC_TOP_LEFT 0x16EC -#define SC_BOTTOM_RIGHT 0x16F0 -#define SRC_SC_BOTTOM_RIGHT 0x16F4 -#define RB2D_DSTCACHE_CTLSTAT 0x342C -#define RB2D_DSTCACHE_MODE 0x3428 +# define GMC_SRC_PITCH_OFFSET_DEFAULT 0x00000000 +# define GMC_SRC_PITCH_OFFSET_LEAVE 0x00000001 +# define GMC_DST_PITCH_OFFSET_DEFAULT 0x00000000 +# define GMC_DST_PITCH_OFFSET_LEAVE 0x00000002 +# define GMC_SRC_CLIP_DEFAULT 0x00000000 +# define GMC_SRC_CLIP_LEAVE 0x00000004 +# define GMC_DST_CLIP_DEFAULT 0x00000000 +# define GMC_DST_CLIP_LEAVE 0x00000008 +# define GMC_BRUSH_8x8MONO 0x00000000 +# define GMC_BRUSH_8x8MONO_LBKGD 0x00000010 +# define GMC_BRUSH_8x1MONO 0x00000020 +# define GMC_BRUSH_8x1MONO_LBKGD 0x00000030 +# define GMC_BRUSH_1x8MONO 0x00000040 +# define GMC_BRUSH_1x8MONO_LBKGD 0x00000050 +# define GMC_BRUSH_32x1MONO 0x00000060 +# define GMC_BRUSH_32x1MONO_LBKGD 0x00000070 +# define GMC_BRUSH_32x32MONO 0x00000080 +# define GMC_BRUSH_32x32MONO_LBKGD 0x00000090 +# define GMC_BRUSH_8x8COLOR 0x000000a0 +# define GMC_BRUSH_8x1COLOR 0x000000b0 +# define GMC_BRUSH_1x8COLOR 0x000000c0 +# define GMC_BRUSH_SOLID_COLOR 0x000000d0 +# define GMC_DST_8BPP 0x00000200 +# define GMC_DST_15BPP 0x00000300 +# define GMC_DST_16BPP 0x00000400 +# define GMC_DST_24BPP 0x00000500 +# define GMC_DST_32BPP 0x00000600 +# define GMC_DST_8BPP_RGB332 0x00000700 +# define GMC_DST_8BPP_Y8 0x00000800 +# define GMC_DST_8BPP_RGB8 0x00000900 +# define GMC_DST_16BPP_VYUY422 0x00000b00 +# define GMC_DST_16BPP_YVYU422 0x00000c00 +# define GMC_DST_32BPP_AYUV444 0x00000e00 +# define GMC_DST_16BPP_ARGB4444 0x00000f00 +# define GMC_SRC_MONO 0x00000000 +# define GMC_SRC_MONO_LBKGD 0x00001000 +# define GMC_SRC_DSTCOLOR 0x00003000 +# define GMC_BYTE_ORDER_MSB_TO_LSB 0x00000000 +# define GMC_BYTE_ORDER_LSB_TO_MSB 0x00004000 +# define GMC_DP_CONVERSION_TEMP_9300 0x00008000 +# define GMC_DP_CONVERSION_TEMP_6500 0x00000000 +# define GMC_DP_SRC_RECT 0x02000000 +# define GMC_DP_SRC_HOST 0x03000000 +# define GMC_DP_SRC_HOST_BYTEALIGN 0x04000000 +# define GMC_3D_FCN_EN_CLR 0x00000000 +# define GMC_3D_FCN_EN_SET 0x08000000 +# define GMC_DST_CLR_CMP_FCN_LEAVE 0x00000000 +# define GMC_DST_CLR_CMP_FCN_CLEAR 0x10000000 +# define GMC_AUX_CLIP_LEAVE 0x00000000 +# define GMC_AUX_CLIP_CLEAR 0x20000000 +# define GMC_WRITE_MASK_LEAVE 0x00000000 +# define GMC_WRITE_MASK_SET 0x40000000 +# define GMC_CLR_CMP_CNTL_DIS (1 << 28) +# define GMC_SRC_DATATYPE_COLOR (3 << 12) +# define ROP3_S 0x00cc0000 +# define ROP3_SRCCOPY 0x00cc0000 +# define ROP3_P 0x00f00000 +# define ROP3_PATCOPY 0x00f00000 +# define DP_SRC_SOURCE_MASK (7 << 24) +# define GMC_BRUSH_NONE (15 << 4) +# define DP_SRC_SOURCE_MEMORY (2 << 24) +# define GMC_BRUSH_SOLIDCOLOR 0x000000d0 +#define SC_TOP_LEFT 0x16EC +#define SC_BOTTOM_RIGHT 0x16F0 +#define SRC_SC_BOTTOM_RIGHT 0x16F4 +#define RB2D_DSTCACHE_CTLSTAT 0x342C +#define RB2D_DSTCACHE_MODE 0x3428 -#define BASE_CODE 0x0f0b -#define RADEON_BIOS_0_SCRATCH 0x0010 -#define RADEON_BIOS_1_SCRATCH 0x0014 -#define RADEON_BIOS_2_SCRATCH 0x0018 -#define RADEON_BIOS_3_SCRATCH 0x001c -#define RADEON_BIOS_4_SCRATCH 0x0020 -#define RADEON_BIOS_5_SCRATCH 0x0024 -#define RADEON_BIOS_6_SCRATCH 0x0028 -#define RADEON_BIOS_7_SCRATCH 0x002c +#define BASE_CODE 0x0f0b +#define RADEON_BIOS_0_SCRATCH 0x0010 +#define RADEON_BIOS_1_SCRATCH 0x0014 +#define RADEON_BIOS_2_SCRATCH 0x0018 +#define RADEON_BIOS_3_SCRATCH 0x001c +#define RADEON_BIOS_4_SCRATCH 0x0020 +#define RADEON_BIOS_5_SCRATCH 0x0024 +#define RADEON_BIOS_6_SCRATCH 0x0028 +#define RADEON_BIOS_7_SCRATCH 0x002c -#define CLK_PIN_CNTL 0x0001 -#define PPLL_CNTL 0x0002 -# define PPLL_RESET (1 << 0) -# define PPLL_SLEEP (1 << 1) -# define PPLL_ATOMIC_UPDATE_EN (1 << 16) -# define PPLL_VGA_ATOMIC_UPDATE_EN (1 << 17) -# define PPLL_ATOMIC_UPDATE_VSYNC (1 << 18) -#define PPLL_REF_DIV 0x0003 -# define PPLL_REF_DIV_MASK 0x03ff -# define PPLL_ATOMIC_UPDATE_R (1 << 15) /* same as _W */ -# define PPLL_ATOMIC_UPDATE_W (1 << 15) /* same as _R */ -#define PPLL_DIV_0 0x0004 -#define PPLL_DIV_1 0x0005 -#define PPLL_DIV_2 0x0006 -#define PPLL_DIV_3 0x0007 -#define VCLK_ECP_CNTL 0x0008 -#define HTOTAL_CNTL 0x0009 -#define HTOTAL2_CNTL 0x002e /* PLL */ -#define M_SPLL_REF_FB_DIV 0x000a -#define AGP_PLL_CNTL 0x000b -#define SPLL_CNTL 0x000c -#define SCLK_CNTL 0x000d -#define MPLL_CNTL 0x000e -#define MCLK_CNTL 0x0012 +#define CLK_PIN_CNTL 0x0001 +#define PPLL_CNTL 0x0002 +# define PPLL_RESET (1 << 0) +# define PPLL_SLEEP (1 << 1) +# define PPLL_ATOMIC_UPDATE_EN (1 << 16) +# define PPLL_VGA_ATOMIC_UPDATE_EN (1 << 17) +# define PPLL_ATOMIC_UPDATE_VSYNC (1 << 18) +#define PPLL_REF_DIV 0x0003 +# define PPLL_REF_DIV_MASK 0x03ff +# define PPLL_ATOMIC_UPDATE_R (1 << 15) /* same as _W */ +# define PPLL_ATOMIC_UPDATE_W (1 << 15) /* same as _R */ +#define PPLL_DIV_0 0x0004 +#define PPLL_DIV_1 0x0005 +#define PPLL_DIV_2 0x0006 +#define PPLL_DIV_3 0x0007 +#define VCLK_ECP_CNTL 0x0008 +#define HTOTAL_CNTL 0x0009 +#define HTOTAL2_CNTL 0x002e /* PLL */ +#define M_SPLL_REF_FB_DIV 0x000a +#define AGP_PLL_CNTL 0x000b +#define SPLL_CNTL 0x000c +#define SCLK_CNTL 0x000d +#define MPLL_CNTL 0x000e +#define MCLK_CNTL 0x0012 /* MCLK_CNTL bit constants */ -# define FORCEON_MCLKA (1 << 16) -# define FORCEON_MCLKB (1 << 17) -# define FORCEON_YCLKA (1 << 18) -# define FORCEON_YCLKB (1 << 19) -# define FORCEON_MC (1 << 20) -# define FORCEON_AIC (1 << 21) -#define PLL_TEST_CNTL 0x0013 -#define P2PLL_CNTL 0x002a /* P2PLL */ -# define P2PLL_RESET (1 << 0) -# define P2PLL_SLEEP (1 << 1) -# define P2PLL_ATOMIC_UPDATE_EN (1 << 16) -# define P2PLL_VGA_ATOMIC_UPDATE_EN (1 << 17) -# define P2PLL_ATOMIC_UPDATE_VSYNC (1 << 18) -#define P2PLL_DIV_0 0x002c -# define P2PLL_FB0_DIV_MASK 0x07ff -# define P2PLL_POST0_DIV_MASK 0x00070000 -#define P2PLL_REF_DIV 0x002B /* PLL */ -# define P2PLL_REF_DIV_MASK 0x03ff -# define P2PLL_ATOMIC_UPDATE_R (1 << 15) /* same as _W */ -# define P2PLL_ATOMIC_UPDATE_W (1 << 15) /* same as _R */ +# define FORCEON_MCLKA (1 << 16) +# define FORCEON_MCLKB (1 << 17) +# define FORCEON_YCLKA (1 << 18) +# define FORCEON_YCLKB (1 << 19) +# define FORCEON_MC (1 << 20) +# define FORCEON_AIC (1 << 21) +#define PLL_TEST_CNTL 0x0013 +#define P2PLL_CNTL 0x002a /* P2PLL */ +# define P2PLL_RESET (1 << 0) +# define P2PLL_SLEEP (1 << 1) +# define P2PLL_ATOMIC_UPDATE_EN (1 << 16) +# define P2PLL_VGA_ATOMIC_UPDATE_EN (1 << 17) +# define P2PLL_ATOMIC_UPDATE_VSYNC (1 << 18) +#define P2PLL_DIV_0 0x002c +# define P2PLL_FB0_DIV_MASK 0x07ff +# define P2PLL_POST0_DIV_MASK 0x00070000 +#define P2PLL_REF_DIV 0x002B /* PLL */ +# define P2PLL_REF_DIV_MASK 0x03ff +# define P2PLL_ATOMIC_UPDATE_R (1 << 15) /* same as _W */ +# define P2PLL_ATOMIC_UPDATE_W (1 << 15) /* same as _R */ /* masks */ -#define CONFIG_MEMSIZE_MASK 0x1f000000 -#define MEM_CFG_TYPE 0x40000000 -#define DST_OFFSET_MASK 0x003fffff -#define DST_PITCH_MASK 0x3fc00000 -#define DEFAULT_TILE_MASK 0xc0000000 -#define PPLL_DIV_SEL_MASK 0x00000300 -#define PPLL_FB3_DIV_MASK 0x000007ff -#define PPLL_POST3_DIV_MASK 0x00070000 +#define CONFIG_MEMSIZE_MASK 0x1f000000 +#define MEM_CFG_TYPE 0x40000000 +#define DST_OFFSET_MASK 0x003fffff +#define DST_PITCH_MASK 0x3fc00000 +#define DEFAULT_TILE_MASK 0xc0000000 +#define PPLL_DIV_SEL_MASK 0x00000300 +#define PPLL_FB3_DIV_MASK 0x000007ff +#define PPLL_POST3_DIV_MASK 0x00070000 -#define GUI_ACTIVE 0x80000000 +#define GUI_ACTIVE 0x80000000 -/* GEN_RESET_CNTL bit constants */ -#define SOFT_RESET_GUI 0x00000001 -#define SOFT_RESET_VCLK 0x00000100 -#define SOFT_RESET_PCLK 0x00000200 -#define SOFT_RESET_ECP 0x00000400 -#define SOFT_RESET_DISPENG_XCLK 0x00000800 +/* GEN_RESET_CNTL bit constants */ +#define SOFT_RESET_GUI 0x00000001 +#define SOFT_RESET_VCLK 0x00000100 +#define SOFT_RESET_PCLK 0x00000200 +#define SOFT_RESET_ECP 0x00000400 +#define SOFT_RESET_DISPENG_XCLK 0x00000800 -/* RAGE THEATER REGISTERS */ +/* RAGE THEATER REGISTERS */ -#define DMA_VIPH0_COMMAND 0x0A00 -#define DMA_VIPH1_COMMAND 0x0A04 -#define DMA_VIPH2_COMMAND 0x0A08 -#define DMA_VIPH3_COMMAND 0x0A0C -#define DMA_VIPH_STATUS 0x0A10 -#define DMA_VIPH_CHUNK_0 0x0A18 -#define DMA_VIPH_CHUNK_1_VAL 0x0A1C -#define DMA_VIP0_TABLE_ADDR 0x0A20 -#define DMA_VIPH0_ACTIVE 0x0A24 -#define DMA_VIP1_TABLE_ADDR 0x0A30 -#define DMA_VIPH1_ACTIVE 0x0A34 -#define DMA_VIP2_TABLE_ADDR 0x0A40 -#define DMA_VIPH2_ACTIVE 0x0A44 -#define DMA_VIP3_TABLE_ADDR 0x0A50 -#define DMA_VIPH3_ACTIVE 0x0A54 -#define DMA_VIPH_ABORT 0x0A88 +#define DMA_VIPH0_COMMAND 0x0A00 +#define DMA_VIPH1_COMMAND 0x0A04 +#define DMA_VIPH2_COMMAND 0x0A08 +#define DMA_VIPH3_COMMAND 0x0A0C +#define DMA_VIPH_STATUS 0x0A10 +#define DMA_VIPH_CHUNK_0 0x0A18 +#define DMA_VIPH_CHUNK_1_VAL 0x0A1C +#define DMA_VIP0_TABLE_ADDR 0x0A20 +#define DMA_VIPH0_ACTIVE 0x0A24 +#define DMA_VIP1_TABLE_ADDR 0x0A30 +#define DMA_VIPH1_ACTIVE 0x0A34 +#define DMA_VIP2_TABLE_ADDR 0x0A40 +#define DMA_VIPH2_ACTIVE 0x0A44 +#define DMA_VIP3_TABLE_ADDR 0x0A50 +#define DMA_VIPH3_ACTIVE 0x0A54 +#define DMA_VIPH_ABORT 0x0A88 -#define VIPH_CH0_DATA 0x0c00 -#define VIPH_CH1_DATA 0x0c04 -#define VIPH_CH2_DATA 0x0c08 -#define VIPH_CH3_DATA 0x0c0c -#define VIPH_CH0_ADDR 0x0c10 -#define VIPH_CH1_ADDR 0x0c14 -#define VIPH_CH2_ADDR 0x0c18 -#define VIPH_CH3_ADDR 0x0c1c -#define VIPH_CH0_SBCNT 0x0c20 -#define VIPH_CH1_SBCNT 0x0c24 -#define VIPH_CH2_SBCNT 0x0c28 -#define VIPH_CH3_SBCNT 0x0c2c -#define VIPH_CH0_ABCNT 0x0c30 -#define VIPH_CH1_ABCNT 0x0c34 -#define VIPH_CH2_ABCNT 0x0c38 -#define VIPH_CH3_ABCNT 0x0c3c -#define VIPH_CONTROL 0x0c40 -#define VIPH_DV_LAT 0x0c44 -#define VIPH_BM_CHUNK 0x0c48 -#define VIPH_DV_INT 0x0c4c -#define VIPH_TIMEOUT_STAT 0x0c50 +#define VIPH_CH0_DATA 0x0c00 +#define VIPH_CH1_DATA 0x0c04 +#define VIPH_CH2_DATA 0x0c08 +#define VIPH_CH3_DATA 0x0c0c +#define VIPH_CH0_ADDR 0x0c10 +#define VIPH_CH1_ADDR 0x0c14 +#define VIPH_CH2_ADDR 0x0c18 +#define VIPH_CH3_ADDR 0x0c1c +#define VIPH_CH0_SBCNT 0x0c20 +#define VIPH_CH1_SBCNT 0x0c24 +#define VIPH_CH2_SBCNT 0x0c28 +#define VIPH_CH3_SBCNT 0x0c2c +#define VIPH_CH0_ABCNT 0x0c30 +#define VIPH_CH1_ABCNT 0x0c34 +#define VIPH_CH2_ABCNT 0x0c38 +#define VIPH_CH3_ABCNT 0x0c3c +#define VIPH_CONTROL 0x0c40 +#define VIPH_DV_LAT 0x0c44 +#define VIPH_BM_CHUNK 0x0c48 +#define VIPH_DV_INT 0x0c4c +#define VIPH_TIMEOUT_STAT 0x0c50 -#define VIPH_REG_DATA 0x0084 -#define VIPH_REG_ADDR 0x0080 +#define VIPH_REG_DATA 0x0084 +#define VIPH_REG_ADDR 0x0080 -/* Address Space Rage Theatre Registers (VIP Access) */ -#define VIP_VIP_VENDOR_DEVICE_ID 0x0000 -#define VIP_VIP_SUB_VENDOR_DEVICE_ID 0x0004 -#define VIP_VIP_COMMAND_STATUS 0x0008 -#define VIP_VIP_REVISION_ID 0x000c -#define VIP_HW_DEBUG 0x0010 -#define VIP_SW_SCRATCH 0x0014 -#define VIP_I2C_CNTL_0 0x0020 -#define VIP_I2C_CNTL_1 0x0024 -#define VIP_I2C_DATA 0x0028 -#define VIP_INT_CNTL 0x002c -#define VIP_GPIO_INOUT 0x0030 -#define VIP_GPIO_CNTL 0x0034 -#define VIP_CLKOUT_GPIO_CNTL 0x0038 -#define VIP_RIPINTF_PORT_CNTL 0x003c -#define VIP_ADC_CNTL 0x0400 -#define VIP_ADC_DEBUG 0x0404 -#define VIP_STANDARD_SELECT 0x0408 -#define VIP_THERMO2BIN_STATUS 0x040c -#define VIP_COMB_CNTL0 0x0440 -#define VIP_COMB_CNTL1 0x0444 -#define VIP_COMB_CNTL2 0x0448 -#define VIP_COMB_LINE_LENGTH 0x044c -#define VIP_NOISE_CNTL0 0x0450 -#define VIP_HS_PLINE 0x0480 -#define VIP_HS_DTOINC 0x0484 -#define VIP_HS_PLLGAIN 0x0488 -#define VIP_HS_MINMAXWIDTH 0x048c -#define VIP_HS_GENLOCKDELAY 0x0490 -#define VIP_HS_WINDOW_LIMIT 0x0494 -#define VIP_HS_WINDOW_OC_SPEED 0x0498 -#define VIP_HS_PULSE_WIDTH 0x049c -#define VIP_HS_PLL_ERROR 0x04a0 -#define VIP_HS_PLL_FS_PATH 0x04a4 -#define VIP_SG_BLACK_GATE 0x04c0 -#define VIP_SG_SYNCTIP_GATE 0x04c4 -#define VIP_SG_UVGATE_GATE 0x04c8 -#define VIP_LP_AGC_CLAMP_CNTL0 0x0500 -#define VIP_LP_AGC_CLAMP_CNTL1 0x0504 -#define VIP_LP_BRIGHTNESS 0x0508 -#define VIP_LP_CONTRAST 0x050c -#define VIP_LP_SLICE_LIMIT 0x0510 -#define VIP_LP_WPA_CNTL0 0x0514 -#define VIP_LP_WPA_CNTL1 0x0518 -#define VIP_LP_BLACK_LEVEL 0x051c -#define VIP_LP_SLICE_LEVEL 0x0520 -#define VIP_LP_SYNCTIP_LEVEL 0x0524 -#define VIP_LP_VERT_LOCKOUT 0x0528 -#define VIP_VS_DETECTOR_CNTL 0x0540 -#define VIP_VS_BLANKING_CNTL 0x0544 -#define VIP_VS_FIELD_ID_CNTL 0x0548 -#define VIP_VS_COUNTER_CNTL 0x054c -#define VIP_VS_FRAME_TOTAL 0x0550 -#define VIP_VS_LINE_COUNT 0x0554 -#define VIP_CP_PLL_CNTL0 0x0580 -#define VIP_CP_PLL_CNTL1 0x0584 -#define VIP_CP_HUE_CNTL 0x0588 -#define VIP_CP_BURST_GAIN 0x058c -#define VIP_CP_AGC_CNTL 0x0590 -#define VIP_CP_ACTIVE_GAIN 0x0594 -#define VIP_CP_PLL_STATUS0 0x0598 -#define VIP_CP_PLL_STATUS1 0x059c -#define VIP_CP_PLL_STATUS2 0x05a0 -#define VIP_CP_PLL_STATUS3 0x05a4 -#define VIP_CP_PLL_STATUS4 0x05a8 -#define VIP_CP_PLL_STATUS5 0x05ac -#define VIP_CP_PLL_STATUS6 0x05b0 -#define VIP_CP_PLL_STATUS7 0x05b4 -#define VIP_CP_DEBUG_FORCE 0x05b8 -#define VIP_CP_VERT_LOCKOUT 0x05bc -#define VIP_H_ACTIVE_WINDOW 0x05c0 -#define VIP_V_ACTIVE_WINDOW 0x05c4 -#define VIP_H_VBI_WINDOW 0x05c8 -#define VIP_V_VBI_WINDOW 0x05cc -#define VIP_VBI_CONTROL 0x05d0 -#define VIP_DECODER_DEBUG_CNTL 0x05d4 -#define VIP_SINGLE_STEP_DATA 0x05d8 -#define VIP_MASTER_CNTL 0x0040 -#define VIP_RGB_CNTL 0x0048 -#define VIP_CLKOUT_CNTL 0x004c -#define VIP_SYNC_CNTL 0x0050 -#define VIP_I2C_CNTL 0x0054 -#define VIP_HTOTAL 0x0080 -#define VIP_HDISP 0x0084 -#define VIP_HSIZE 0x0088 -#define VIP_HSTART 0x008c -#define VIP_HCOUNT 0x0090 -#define VIP_VTOTAL 0x0094 -#define VIP_VDISP 0x0098 -#define VIP_VCOUNT 0x009c -#define VIP_VFTOTAL 0x00a0 -#define VIP_DFCOUNT 0x00a4 -#define VIP_DFRESTART 0x00a8 -#define VIP_DHRESTART 0x00ac -#define VIP_DVRESTART 0x00b0 -#define VIP_SYNC_SIZE 0x00b4 -#define VIP_TV_PLL_FINE_CNTL 0x00b8 -#define VIP_CRT_PLL_FINE_CNTL 0x00bc -#define VIP_TV_PLL_CNTL 0x00c0 -#define VIP_CRT_PLL_CNTL 0x00c4 -#define VIP_PLL_CNTL0 0x00c8 -#define VIP_PLL_TEST_CNTL 0x00cc -#define VIP_CLOCK_SEL_CNTL 0x00d0 -#define VIP_VIN_PLL_CNTL 0x00d4 -#define VIP_VIN_PLL_FINE_CNTL 0x00d8 -#define VIP_AUD_PLL_CNTL 0x00e0 -#define VIP_AUD_PLL_FINE_CNTL 0x00e4 -#define VIP_AUD_CLK_DIVIDERS 0x00e8 -#define VIP_AUD_DTO_INCREMENTS 0x00ec -#define VIP_L54_PLL_CNTL 0x00f0 -#define VIP_L54_PLL_FINE_CNTL 0x00f4 -#define VIP_L54_DTO_INCREMENTS 0x00f8 -#define VIP_PLL_CNTL1 0x00fc -#define VIP_FRAME_LOCK_CNTL 0x0100 -#define VIP_SYNC_LOCK_CNTL 0x0104 -#define VIP_TVO_SYNC_PAT_ACCUM 0x0108 -#define VIP_TVO_SYNC_THRESHOLD 0x010c -#define VIP_TVO_SYNC_PAT_EXPECT 0x0110 -#define VIP_DELAY_ONE_MAP_A 0x0114 -#define VIP_DELAY_ONE_MAP_B 0x0118 -#define VIP_DELAY_ZERO_MAP_A 0x011c -#define VIP_DELAY_ZERO_MAP_B 0x0120 -#define VIP_TVO_DATA_DELAY_A 0x0140 -#define VIP_TVO_DATA_DELAY_B 0x0144 -#define VIP_HOST_READ_DATA 0x0180 -#define VIP_HOST_WRITE_DATA 0x0184 -#define VIP_HOST_RD_WT_CNTL 0x0188 -#define VIP_VSCALER_CNTL1 0x01c0 -#define VIP_TIMING_CNTL 0x01c4 -#define VIP_VSCALER_CNTL2 0x01c8 -#define VIP_Y_FALL_CNTL 0x01cc -#define VIP_Y_RISE_CNTL 0x01d0 -#define VIP_Y_SAW_TOOTH_CNTL 0x01d4 -#define VIP_UPSAMP_AND_GAIN_CNTL 0x01e0 -#define VIP_GAIN_LIMIT_SETTINGS 0x01e4 -#define VIP_LINEAR_GAIN_SETTINGS 0x01e8 -#define VIP_MODULATOR_CNTL1 0x0200 -#define VIP_MODULATOR_CNTL2 0x0204 -#define VIP_MV_MODE_CNTL 0x0208 -#define VIP_MV_STRIPE_CNTL 0x020c -#define VIP_MV_LEVEL_CNTL1 0x0210 -#define VIP_MV_LEVEL_CNTL2 0x0214 -#define VIP_PRE_DAC_MUX_CNTL 0x0240 -#define VIP_TV_DAC_CNTL 0x0280 -#define VIP_CRC_CNTL 0x02c0 -#define VIP_VIDEO_PORT_SIG 0x02c4 -#define VIP_VBI_CC_CNTL 0x02c8 -#define VIP_VBI_EDS_CNTL 0x02cc -#define VIP_VBI_20BIT_CNTL 0x02d0 -#define VIP_VBI_DTO_CNTL 0x02d4 -#define VIP_VBI_LEVEL_CNTL 0x02d8 -#define VIP_UV_ADR 0x0300 -#define VIP_MV_STATUS 0x0330 -#define VIP_UPSAMP_COEFF0_0 0x0340 -#define VIP_UPSAMP_COEFF0_1 0x0344 -#define VIP_UPSAMP_COEFF0_2 0x0348 -#define VIP_UPSAMP_COEFF1_0 0x034c -#define VIP_UPSAMP_COEFF1_1 0x0350 -#define VIP_UPSAMP_COEFF1_2 0x0354 -#define VIP_UPSAMP_COEFF2_0 0x0358 -#define VIP_UPSAMP_COEFF2_1 0x035c -#define VIP_UPSAMP_COEFF2_2 0x0360 -#define VIP_UPSAMP_COEFF3_0 0x0364 -#define VIP_UPSAMP_COEFF3_1 0x0368 -#define VIP_UPSAMP_COEFF3_2 0x036c -#define VIP_UPSAMP_COEFF4_0 0x0370 -#define VIP_UPSAMP_COEFF4_1 0x0374 -#define VIP_UPSAMP_COEFF4_2 0x0378 -#define VIP_TV_DTO_INCREMENTS 0x0390 -#define VIP_CRT_DTO_INCREMENTS 0x0394 -#define VIP_VSYNC_DIFF_CNTL 0x03a0 -#define VIP_VSYNC_DIFF_LIMITS 0x03a4 -#define VIP_VSYNC_DIFF_RD_DATA 0x03a8 -#define VIP_SCALER_IN_WINDOW 0x0618 -#define VIP_SCALER_OUT_WINDOW 0x061c -#define VIP_H_SCALER_CONTROL 0x0600 -#define VIP_V_SCALER_CONTROL 0x0604 -#define VIP_V_DEINTERLACE_CONTROL 0x0608 -#define VIP_VBI_SCALER_CONTROL 0x060c -#define VIP_DVS_PORT_CTRL 0x0610 -#define VIP_DVS_PORT_READBACK 0x0614 -#define VIP_FIFOA_CONFIG 0x0800 -#define VIP_FIFOB_CONFIG 0x0804 -#define VIP_FIFOC_CONFIG 0x0808 -#define VIP_SPDIF_PORT_CNTL 0x080c -#define VIP_SPDIF_CHANNEL_STAT 0x0810 -#define VIP_SPDIF_AC3_PREAMBLE 0x0814 -#define VIP_I2S_TRANSMIT_CNTL 0x0818 -#define VIP_I2S_RECEIVE_CNTL 0x081c -#define VIP_SPDIF_TX_CNT_REG 0x0820 -#define VIP_IIS_TX_CNT_REG 0x0824 +/* Address Space Rage Theatre Registers (VIP Access) */ +#define VIP_VIP_VENDOR_DEVICE_ID 0x0000 +#define VIP_VIP_SUB_VENDOR_DEVICE_ID 0x0004 +#define VIP_VIP_COMMAND_STATUS 0x0008 +#define VIP_VIP_REVISION_ID 0x000c +#define VIP_HW_DEBUG 0x0010 +#define VIP_SW_SCRATCH 0x0014 +#define VIP_I2C_CNTL_0 0x0020 +#define VIP_I2C_CNTL_1 0x0024 +#define VIP_I2C_DATA 0x0028 +#define VIP_INT_CNTL 0x002c +#define VIP_GPIO_INOUT 0x0030 +#define VIP_GPIO_CNTL 0x0034 +#define VIP_CLKOUT_GPIO_CNTL 0x0038 +#define VIP_RIPINTF_PORT_CNTL 0x003c +#define VIP_ADC_CNTL 0x0400 +#define VIP_ADC_DEBUG 0x0404 +#define VIP_STANDARD_SELECT 0x0408 +#define VIP_THERMO2BIN_STATUS 0x040c +#define VIP_COMB_CNTL0 0x0440 +#define VIP_COMB_CNTL1 0x0444 +#define VIP_COMB_CNTL2 0x0448 +#define VIP_COMB_LINE_LENGTH 0x044c +#define VIP_NOISE_CNTL0 0x0450 +#define VIP_HS_PLINE 0x0480 +#define VIP_HS_DTOINC 0x0484 +#define VIP_HS_PLLGAIN 0x0488 +#define VIP_HS_MINMAXWIDTH 0x048c +#define VIP_HS_GENLOCKDELAY 0x0490 +#define VIP_HS_WINDOW_LIMIT 0x0494 +#define VIP_HS_WINDOW_OC_SPEED 0x0498 +#define VIP_HS_PULSE_WIDTH 0x049c +#define VIP_HS_PLL_ERROR 0x04a0 +#define VIP_HS_PLL_FS_PATH 0x04a4 +#define VIP_SG_BLACK_GATE 0x04c0 +#define VIP_SG_SYNCTIP_GATE 0x04c4 +#define VIP_SG_UVGATE_GATE 0x04c8 +#define VIP_LP_AGC_CLAMP_CNTL0 0x0500 +#define VIP_LP_AGC_CLAMP_CNTL1 0x0504 +#define VIP_LP_BRIGHTNESS 0x0508 +#define VIP_LP_CONTRAST 0x050c +#define VIP_LP_SLICE_LIMIT 0x0510 +#define VIP_LP_WPA_CNTL0 0x0514 +#define VIP_LP_WPA_CNTL1 0x0518 +#define VIP_LP_BLACK_LEVEL 0x051c +#define VIP_LP_SLICE_LEVEL 0x0520 +#define VIP_LP_SYNCTIP_LEVEL 0x0524 +#define VIP_LP_VERT_LOCKOUT 0x0528 +#define VIP_VS_DETECTOR_CNTL 0x0540 +#define VIP_VS_BLANKING_CNTL 0x0544 +#define VIP_VS_FIELD_ID_CNTL 0x0548 +#define VIP_VS_COUNTER_CNTL 0x054c +#define VIP_VS_FRAME_TOTAL 0x0550 +#define VIP_VS_LINE_COUNT 0x0554 +#define VIP_CP_PLL_CNTL0 0x0580 +#define VIP_CP_PLL_CNTL1 0x0584 +#define VIP_CP_HUE_CNTL 0x0588 +#define VIP_CP_BURST_GAIN 0x058c +#define VIP_CP_AGC_CNTL 0x0590 +#define VIP_CP_ACTIVE_GAIN 0x0594 +#define VIP_CP_PLL_STATUS0 0x0598 +#define VIP_CP_PLL_STATUS1 0x059c +#define VIP_CP_PLL_STATUS2 0x05a0 +#define VIP_CP_PLL_STATUS3 0x05a4 +#define VIP_CP_PLL_STATUS4 0x05a8 +#define VIP_CP_PLL_STATUS5 0x05ac +#define VIP_CP_PLL_STATUS6 0x05b0 +#define VIP_CP_PLL_STATUS7 0x05b4 +#define VIP_CP_DEBUG_FORCE 0x05b8 +#define VIP_CP_VERT_LOCKOUT 0x05bc +#define VIP_H_ACTIVE_WINDOW 0x05c0 +#define VIP_V_ACTIVE_WINDOW 0x05c4 +#define VIP_H_VBI_WINDOW 0x05c8 +#define VIP_V_VBI_WINDOW 0x05cc +#define VIP_VBI_CONTROL 0x05d0 +#define VIP_DECODER_DEBUG_CNTL 0x05d4 +#define VIP_SINGLE_STEP_DATA 0x05d8 +#define VIP_MASTER_CNTL 0x0040 +#define VIP_RGB_CNTL 0x0048 +#define VIP_CLKOUT_CNTL 0x004c +#define VIP_SYNC_CNTL 0x0050 +#define VIP_I2C_CNTL 0x0054 +#define VIP_HTOTAL 0x0080 +#define VIP_HDISP 0x0084 +#define VIP_HSIZE 0x0088 +#define VIP_HSTART 0x008c +#define VIP_HCOUNT 0x0090 +#define VIP_VTOTAL 0x0094 +#define VIP_VDISP 0x0098 +#define VIP_VCOUNT 0x009c +#define VIP_VFTOTAL 0x00a0 +#define VIP_DFCOUNT 0x00a4 +#define VIP_DFRESTART 0x00a8 +#define VIP_DHRESTART 0x00ac +#define VIP_DVRESTART 0x00b0 +#define VIP_SYNC_SIZE 0x00b4 +#define VIP_TV_PLL_FINE_CNTL 0x00b8 +#define VIP_CRT_PLL_FINE_CNTL 0x00bc +#define VIP_TV_PLL_CNTL 0x00c0 +#define VIP_CRT_PLL_CNTL 0x00c4 +#define VIP_PLL_CNTL0 0x00c8 +#define VIP_PLL_TEST_CNTL 0x00cc +#define VIP_CLOCK_SEL_CNTL 0x00d0 +#define VIP_VIN_PLL_CNTL 0x00d4 +#define VIP_VIN_PLL_FINE_CNTL 0x00d8 +#define VIP_AUD_PLL_CNTL 0x00e0 +#define VIP_AUD_PLL_FINE_CNTL 0x00e4 +#define VIP_AUD_CLK_DIVIDERS 0x00e8 +#define VIP_AUD_DTO_INCREMENTS 0x00ec +#define VIP_L54_PLL_CNTL 0x00f0 +#define VIP_L54_PLL_FINE_CNTL 0x00f4 +#define VIP_L54_DTO_INCREMENTS 0x00f8 +#define VIP_PLL_CNTL1 0x00fc +#define VIP_FRAME_LOCK_CNTL 0x0100 +#define VIP_SYNC_LOCK_CNTL 0x0104 +#define VIP_TVO_SYNC_PAT_ACCUM 0x0108 +#define VIP_TVO_SYNC_THRESHOLD 0x010c +#define VIP_TVO_SYNC_PAT_EXPECT 0x0110 +#define VIP_DELAY_ONE_MAP_A 0x0114 +#define VIP_DELAY_ONE_MAP_B 0x0118 +#define VIP_DELAY_ZERO_MAP_A 0x011c +#define VIP_DELAY_ZERO_MAP_B 0x0120 +#define VIP_TVO_DATA_DELAY_A 0x0140 +#define VIP_TVO_DATA_DELAY_B 0x0144 +#define VIP_HOST_READ_DATA 0x0180 +#define VIP_HOST_WRITE_DATA 0x0184 +#define VIP_HOST_RD_WT_CNTL 0x0188 +#define VIP_VSCALER_CNTL1 0x01c0 +#define VIP_TIMING_CNTL 0x01c4 +#define VIP_VSCALER_CNTL2 0x01c8 +#define VIP_Y_FALL_CNTL 0x01cc +#define VIP_Y_RISE_CNTL 0x01d0 +#define VIP_Y_SAW_TOOTH_CNTL 0x01d4 +#define VIP_UPSAMP_AND_GAIN_CNTL 0x01e0 +#define VIP_GAIN_LIMIT_SETTINGS 0x01e4 +#define VIP_LINEAR_GAIN_SETTINGS 0x01e8 +#define VIP_MODULATOR_CNTL1 0x0200 +#define VIP_MODULATOR_CNTL2 0x0204 +#define VIP_MV_MODE_CNTL 0x0208 +#define VIP_MV_STRIPE_CNTL 0x020c +#define VIP_MV_LEVEL_CNTL1 0x0210 +#define VIP_MV_LEVEL_CNTL2 0x0214 +#define VIP_PRE_DAC_MUX_CNTL 0x0240 +#define VIP_TV_DAC_CNTL 0x0280 +#define VIP_CRC_CNTL 0x02c0 +#define VIP_VIDEO_PORT_SIG 0x02c4 +#define VIP_VBI_CC_CNTL 0x02c8 +#define VIP_VBI_EDS_CNTL 0x02cc +#define VIP_VBI_20BIT_CNTL 0x02d0 +#define VIP_VBI_DTO_CNTL 0x02d4 +#define VIP_VBI_LEVEL_CNTL 0x02d8 +#define VIP_UV_ADR 0x0300 +#define VIP_MV_STATUS 0x0330 +#define VIP_UPSAMP_COEFF0_0 0x0340 +#define VIP_UPSAMP_COEFF0_1 0x0344 +#define VIP_UPSAMP_COEFF0_2 0x0348 +#define VIP_UPSAMP_COEFF1_0 0x034c +#define VIP_UPSAMP_COEFF1_1 0x0350 +#define VIP_UPSAMP_COEFF1_2 0x0354 +#define VIP_UPSAMP_COEFF2_0 0x0358 +#define VIP_UPSAMP_COEFF2_1 0x035c +#define VIP_UPSAMP_COEFF2_2 0x0360 +#define VIP_UPSAMP_COEFF3_0 0x0364 +#define VIP_UPSAMP_COEFF3_1 0x0368 +#define VIP_UPSAMP_COEFF3_2 0x036c +#define VIP_UPSAMP_COEFF4_0 0x0370 +#define VIP_UPSAMP_COEFF4_1 0x0374 +#define VIP_UPSAMP_COEFF4_2 0x0378 +#define VIP_TV_DTO_INCREMENTS 0x0390 +#define VIP_CRT_DTO_INCREMENTS 0x0394 +#define VIP_VSYNC_DIFF_CNTL 0x03a0 +#define VIP_VSYNC_DIFF_LIMITS 0x03a4 +#define VIP_VSYNC_DIFF_RD_DATA 0x03a8 +#define VIP_SCALER_IN_WINDOW 0x0618 +#define VIP_SCALER_OUT_WINDOW 0x061c +#define VIP_H_SCALER_CONTROL 0x0600 +#define VIP_V_SCALER_CONTROL 0x0604 +#define VIP_V_DEINTERLACE_CONTROL 0x0608 +#define VIP_VBI_SCALER_CONTROL 0x060c +#define VIP_DVS_PORT_CTRL 0x0610 +#define VIP_DVS_PORT_READBACK 0x0614 +#define VIP_FIFOA_CONFIG 0x0800 +#define VIP_FIFOB_CONFIG 0x0804 +#define VIP_FIFOC_CONFIG 0x0808 +#define VIP_SPDIF_PORT_CNTL 0x080c +#define VIP_SPDIF_CHANNEL_STAT 0x0810 +#define VIP_SPDIF_AC3_PREAMBLE 0x0814 +#define VIP_I2S_TRANSMIT_CNTL 0x0818 +#define VIP_I2S_RECEIVE_CNTL 0x081c +#define VIP_SPDIF_TX_CNT_REG 0x0820 +#define VIP_IIS_TX_CNT_REG 0x0824 /* Status defines */ -#define VIP_BUSY 0 -#define VIP_IDLE 1 -#define VIP_RESET 2 +#define VIP_BUSY 0 +#define VIP_IDLE 1 +#define VIP_RESET 2 -#define VIPH_TIMEOUT_STAT__VIPH_REG_STAT 0x00000010 -#define VIPH_TIMEOUT_STAT__VIPH_REG_AK 0x00000010 -#define VIPH_TIMEOUT_STAT__VIPH_REGR_DIS 0x01000000 -#define TEST_DEBUG_CNTL__TEST_DEBUG_OUT_EN 0x00000001 +#define VIPH_TIMEOUT_STAT__VIPH_REG_STAT 0x00000010 +#define VIPH_TIMEOUT_STAT__VIPH_REG_AK 0x00000010 +#define VIPH_TIMEOUT_STAT__VIPH_REGR_DIS 0x01000000 +#define TEST_DEBUG_CNTL__TEST_DEBUG_OUT_EN 0x00000001 -#define RT_ATI_ID 0x4D541002 +#define RT_ATI_ID 0x4D541002 /* Register/Field values: */ -#define RT_COMP0 0x0 -#define RT_COMP1 0x1 -#define RT_COMP2 0x2 -#define RT_YF_COMP3 0x3 -#define RT_YR_COMP3 0x4 -#define RT_YCF_COMP4 0x5 -#define RT_YCR_COMP4 0x6 +#define RT_COMP0 0x0 +#define RT_COMP1 0x1 +#define RT_COMP2 0x2 +#define RT_YF_COMP3 0x3 +#define RT_YR_COMP3 0x4 +#define RT_YCF_COMP4 0x5 +#define RT_YCR_COMP4 0x6 /* Video standard defines */ -#define RT_NTSC 0x0 -#define RT_PAL 0x1 -#define RT_SECAM 0x2 -#define extNONE 0x0000 -#define extNTSC 0x0100 -#define extRsvd 0x0200 -#define extPAL 0x0300 -#define extPAL_M 0x0400 -#define extPAL_N 0x0500 -#define extSECAM 0x0600 -#define extPAL_NCOMB 0x0700 -#define extNTSC_J 0x0800 -#define extNTSC_443 0x0900 -#define extPAL_BGHI 0x0A00 -#define extPAL_60 0x0B00 +#define RT_NTSC 0x0 +#define RT_PAL 0x1 +#define RT_SECAM 0x2 +#define extNONE 0x0000 +#define extNTSC 0x0100 +#define extRsvd 0x0200 +#define extPAL 0x0300 +#define extPAL_M 0x0400 +#define extPAL_N 0x0500 +#define extSECAM 0x0600 +#define extPAL_NCOMB 0x0700 +#define extNTSC_J 0x0800 +#define extNTSC_443 0x0900 +#define extPAL_BGHI 0x0A00 +#define extPAL_60 0x0B00 /* these are used in MSP3430 */ -#define extPAL_DK1 0x0C00 -#define extPAL_AUTO 0x0D00 +#define extPAL_DK1 0x0C00 +#define extPAL_AUTO 0x0D00 -#define RT_FREF_2700 6 -#define RT_FREF_2950 5 +#define RT_FREF_2700 6 +#define RT_FREF_2950 5 -#define RT_COMPOSITE 0x0 -#define RT_SVIDEO 0x1 +#define RT_COMPOSITE 0x0 +#define RT_SVIDEO 0x1 -#define RT_NORM_SHARPNESS 0x03 -#define RT_HIGH_SHARPNESS 0x0F +#define RT_NORM_SHARPNESS 0x03 +#define RT_HIGH_SHARPNESS 0x0F -#define RT_HUE_PAL_DEF 0x00 +#define RT_HUE_PAL_DEF 0x00 -#define RT_DECINTERLACED 0x1 -#define RT_DECNONINTERLACED 0x0 +#define RT_DECINTERLACED 0x1 +#define RT_DECNONINTERLACED 0x0 -#define NTSC_LINES 525 -#define PAL_SECAM_LINES 625 +#define NTSC_LINES 525 +#define PAL_SECAM_LINES 625 -#define RT_ASYNC_ENABLE 0x0 -#define RT_ASYNC_DISABLE 0x1 -#define RT_ASYNC_RESET 0x1 +#define RT_ASYNC_ENABLE 0x0 +#define RT_ASYNC_DISABLE 0x1 +#define RT_ASYNC_RESET 0x1 -#define RT_VINRST_ACTIVE 0x0 -#define RT_VINRST_RESET 0x1 -#define RT_L54RST_RESET 0x1 +#define RT_VINRST_ACTIVE 0x0 +#define RT_VINRST_RESET 0x1 +#define RT_L54RST_RESET 0x1 -#define RT_REF_CLK 0x0 -#define RT_PLL_VIN_CLK 0x1 +#define RT_REF_CLK 0x0 +#define RT_PLL_VIN_CLK 0x1 -#define RT_VIN_ASYNC_RST 0x20 -#define RT_DVS_ASYNC_RST 0x80 +#define RT_VIN_ASYNC_RST 0x20 +#define RT_DVS_ASYNC_RST 0x80 -#define RT_ADC_ENABLE 0x0 -#define RT_ADC_DISABLE 0x1 +#define RT_ADC_ENABLE 0x0 +#define RT_ADC_DISABLE 0x1 -#define RT_DVSDIR_IN 0x0 -#define RT_DVSDIR_OUT 0x1 +#define RT_DVSDIR_IN 0x0 +#define RT_DVSDIR_OUT 0x1 -#define RT_DVSCLK_HIGH 0x0 -#define RT_DVSCLK_LOW 0x1 +#define RT_DVSCLK_HIGH 0x0 +#define RT_DVSCLK_LOW 0x1 -#define RT_DVSCLK_SEL_8FS 0x0 -#define RT_DVSCLK_SEL_27MHZ 0x1 +#define RT_DVSCLK_SEL_8FS 0x0 +#define RT_DVSCLK_SEL_27MHZ 0x1 -#define RT_DVS_CONTSTREAM 0x1 -#define RT_DVS_NONCONTSTREAM 0x0 +#define RT_DVS_CONTSTREAM 0x1 +#define RT_DVS_NONCONTSTREAM 0x0 -#define RT_DVSDAT_HIGH 0x0 -#define RT_DVSDAT_LOW 0x1 +#define RT_DVSDAT_HIGH 0x0 +#define RT_DVSDAT_LOW 0x1 -#define RT_ADC_CNTL_DEFAULT 0x03252338 +#define RT_ADC_CNTL_DEFAULT 0x03252338 /* COMB_CNTL0 FILTER SETTINGS FOR DIFFERENT STANDARDS: */ -#define RT_NTSCM_COMB_CNTL0_COMPOSITE 0x09438090 -#define RT_NTSCM_COMB_CNTL0_SVIDEO 0x48540000 +#define RT_NTSCM_COMB_CNTL0_COMPOSITE 0x09438090 +#define RT_NTSCM_COMB_CNTL0_SVIDEO 0x48540000 -#define RT_PAL_COMB_CNTL0_COMPOSITE 0x09438090 -#define RT_PAL_COMB_CNTL0_SVIDEO 0x40348090 +#define RT_PAL_COMB_CNTL0_COMPOSITE 0x09438090 +#define RT_PAL_COMB_CNTL0_SVIDEO 0x40348090 -#define RT_SECAM_COMB_CNTL0_COMPOSITE 0xD0108090 /* instead of orig 0xD0088090 - eric*/ -#define RT_SECAM_COMB_CNTL0_SVIDEO 0x50148090 +#define RT_SECAM_COMB_CNTL0_COMPOSITE 0xD0108090 /* instead of orig 0xD0088090 - eric*/ +#define RT_SECAM_COMB_CNTL0_SVIDEO 0x50148090 -#define RT_PALN_COMB_CNTL0_COMPOSITE 0x09438090 -#define RT_PALN_COMB_CNTL0_SVIDEO 0x40348090 +#define RT_PALN_COMB_CNTL0_COMPOSITE 0x09438090 +#define RT_PALN_COMB_CNTL0_SVIDEO 0x40348090 -#define RT_PALM_COMB_CNTL0_COMPOSITE 0x09438090 -#define RT_PALM_COMB_CNTL0_SVIDEO 0x40348090 +#define RT_PALM_COMB_CNTL0_COMPOSITE 0x09438090 +#define RT_PALM_COMB_CNTL0_SVIDEO 0x40348090 /* End of filter settings. */ /* COMB_CNTL1 FILTER SETTINGS FOR DIFFERENT STANDARDS: */ -#define RT_NTSCM_COMB_CNTL1_COMPOSITE 0x00000010 -#define RT_NTSCM_COMB_CNTL1_SVIDEO 0x00000081 +#define RT_NTSCM_COMB_CNTL1_COMPOSITE 0x00000010 +#define RT_NTSCM_COMB_CNTL1_SVIDEO 0x00000081 -#define RT_PAL_COMB_CNTL1_COMPOSITE 0x00000010 -#define RT_PAL_COMB_CNTL1_SVIDEO 0x000000A1 +#define RT_PAL_COMB_CNTL1_COMPOSITE 0x00000010 +#define RT_PAL_COMB_CNTL1_SVIDEO 0x000000A1 -#define RT_SECAM_COMB_CNTL1_COMPOSITE 0x00000091 -#define RT_SECAM_COMB_CNTL1_SVIDEO 0x00000081 +#define RT_SECAM_COMB_CNTL1_COMPOSITE 0x00000091 +#define RT_SECAM_COMB_CNTL1_SVIDEO 0x00000081 -#define RT_PALN_COMB_CNTL1_COMPOSITE 0x00000010 -#define RT_PALN_COMB_CNTL1_SVIDEO 0x000000A1 +#define RT_PALN_COMB_CNTL1_COMPOSITE 0x00000010 +#define RT_PALN_COMB_CNTL1_SVIDEO 0x000000A1 -#define RT_PALM_COMB_CNTL1_COMPOSITE 0x00000010 -#define RT_PALM_COMB_CNTL1_SVIDEO 0x000000A1 +#define RT_PALM_COMB_CNTL1_COMPOSITE 0x00000010 +#define RT_PALM_COMB_CNTL1_SVIDEO 0x000000A1 /* End of filter settings. */ /* COMB_CNTL2 FILTER SETTINGS FOR DIFFERENT STANDARDS: */ -#define RT_NTSCM_COMB_CNTL2_COMPOSITE 0x16161010 -#define RT_NTSCM_COMB_CNTL2_SVIDEO 0xFFFFFFFF +#define RT_NTSCM_COMB_CNTL2_COMPOSITE 0x16161010 +#define RT_NTSCM_COMB_CNTL2_SVIDEO 0xFFFFFFFF -#define RT_PAL_COMB_CNTL2_COMPOSITE 0x06080102 /* instead of 0x16161010 - Ivo */ -#define RT_PAL_COMB_CNTL2_SVIDEO 0x06080102 +#define RT_PAL_COMB_CNTL2_COMPOSITE 0x06080102 /* instead of 0x16161010 - Ivo */ +#define RT_PAL_COMB_CNTL2_SVIDEO 0x06080102 -#define RT_SECAM_COMB_CNTL2_COMPOSITE 0xffffffff /* instead of 0x06080102 - eric */ -#define RT_SECAM_COMB_CNTL2_SVIDEO 0x06080102 +#define RT_SECAM_COMB_CNTL2_COMPOSITE 0xffffffff /* instead of 0x06080102 - eric */ +#define RT_SECAM_COMB_CNTL2_SVIDEO 0x06080102 -#define RT_PALN_COMB_CNTL2_COMPOSITE 0x06080102 -#define RT_PALN_COMB_CNTL2_SVIDEO 0x06080102 +#define RT_PALN_COMB_CNTL2_COMPOSITE 0x06080102 +#define RT_PALN_COMB_CNTL2_SVIDEO 0x06080102 -#define RT_PALM_COMB_CNTL2_COMPOSITE 0x06080102 -#define RT_PALM_COMB_CNTL2_SVIDEO 0x06080102 +#define RT_PALM_COMB_CNTL2_COMPOSITE 0x06080102 +#define RT_PALM_COMB_CNTL2_SVIDEO 0x06080102 /* End of filter settings. */ -/* COMB_LINE_LENGTH FILTER SETTINGS FOR DIFFERENT STANDARDS: */ -#define RT_NTSCM_COMB_LENGTH_COMPOSITE 0x0718038A -#define RT_NTSCM_COMB_LENGTH_SVIDEO 0x0718038A +/* COMB_LINE_LENGTH FILTER SETTINGS FOR DIFFERENT STANDARDS: */ +#define RT_NTSCM_COMB_LENGTH_COMPOSITE 0x0718038A +#define RT_NTSCM_COMB_LENGTH_SVIDEO 0x0718038A -#define RT_PAL_COMB_LENGTH_COMPOSITE 0x08DA046B -#define RT_PAL_COMB_LENGTH_SVIDEO 0x08DA046B +#define RT_PAL_COMB_LENGTH_COMPOSITE 0x08DA046B +#define RT_PAL_COMB_LENGTH_SVIDEO 0x08DA046B -#define RT_SECAM_COMB_LENGTH_COMPOSITE 0x08DA046A -#define RT_SECAM_COMB_LENGTH_SVIDEO 0x08DA046A +#define RT_SECAM_COMB_LENGTH_COMPOSITE 0x08DA046A +#define RT_SECAM_COMB_LENGTH_SVIDEO 0x08DA046A -#define RT_PALN_COMB_LENGTH_COMPOSITE 0x07260391 -#define RT_PALN_COMB_LENGTH_SVIDEO 0x07260391 +#define RT_PALN_COMB_LENGTH_COMPOSITE 0x07260391 +#define RT_PALN_COMB_LENGTH_SVIDEO 0x07260391 -#define RT_PALM_COMB_LENGTH_COMPOSITE 0x07160389 -#define RT_PALM_COMB_LENGTH_SVIDEO 0x07160389 +#define RT_PALM_COMB_LENGTH_COMPOSITE 0x07160389 +#define RT_PALM_COMB_LENGTH_SVIDEO 0x07160389 /* End of filter settings. */ /* LP_AGC_CLAMP_CNTL0 */ -#define RT_NTSCM_SYNCTIP_REF0 0x00000037 -#define RT_NTSCM_SYNCTIP_REF1 0x00000029 -#define RT_NTSCM_CLAMP_REF 0x0000003B -#define RT_NTSCM_PEAKWHITE 0x000000FF -#define RT_NTSCM_VBI_PEAKWHITE 0x000000C2 +#define RT_NTSCM_SYNCTIP_REF0 0x00000037 +#define RT_NTSCM_SYNCTIP_REF1 0x00000029 +#define RT_NTSCM_CLAMP_REF 0x0000003B +#define RT_NTSCM_PEAKWHITE 0x000000FF +#define RT_NTSCM_VBI_PEAKWHITE 0x000000C2 -#define RT_NTSCM_WPA_THRESHOLD 0x00000406 -#define RT_NTSCM_WPA_TRIGGER_LO 0x000000B3 +#define RT_NTSCM_WPA_THRESHOLD 0x00000406 +#define RT_NTSCM_WPA_TRIGGER_LO 0x000000B3 -#define RT_NTSCM_WPA_TRIGGER_HIGH 0x0000021B +#define RT_NTSCM_WPA_TRIGGER_HIGH 0x0000021B -#define RT_NTSCM_LP_LOCKOUT_START 0x00000206 -#define RT_NTSCM_LP_LOCKOUT_END 0x00000021 -#define RT_NTSCM_CH_DTO_INC 0x00400000 -#define RT_NTSCM_CH_PLL_SGAIN 0x00000001 -#define RT_NTSCM_CH_PLL_FGAIN 0x00000002 +#define RT_NTSCM_LP_LOCKOUT_START 0x00000206 +#define RT_NTSCM_LP_LOCKOUT_END 0x00000021 +#define RT_NTSCM_CH_DTO_INC 0x00400000 +#define RT_NTSCM_CH_PLL_SGAIN 0x00000001 +#define RT_NTSCM_CH_PLL_FGAIN 0x00000002 -#define RT_NTSCM_CR_BURST_GAIN 0x0000007A -#define RT_NTSCM_CB_BURST_GAIN 0x000000AC +#define RT_NTSCM_CR_BURST_GAIN 0x0000007A +#define RT_NTSCM_CB_BURST_GAIN 0x000000AC -#define RT_NTSCM_CH_HEIGHT 0x000000CD -#define RT_NTSCM_CH_KILL_LEVEL 0x000000C0 -#define RT_NTSCM_CH_AGC_ERROR_LIM 0x00000002 -#define RT_NTSCM_CH_AGC_FILTER_EN 0x00000000 -#define RT_NTSCM_CH_AGC_LOOP_SPEED 0x00000000 +#define RT_NTSCM_CH_HEIGHT 0x000000CD +#define RT_NTSCM_CH_KILL_LEVEL 0x000000C0 +#define RT_NTSCM_CH_AGC_ERROR_LIM 0x00000002 +#define RT_NTSCM_CH_AGC_FILTER_EN 0x00000000 +#define RT_NTSCM_CH_AGC_LOOP_SPEED 0x00000000 -#define RT_NTSCM_CRDR_ACTIVE_GAIN 0x0000007A -#define RT_NTSCM_CBDB_ACTIVE_GAIN 0x000000AC +#define RT_NTSCM_CRDR_ACTIVE_GAIN 0x0000007A +#define RT_NTSCM_CBDB_ACTIVE_GAIN 0x000000AC -#define RT_NTSCM_VERT_LOCKOUT_START 0x00000207 -#define RT_NTSCM_VERT_LOCKOUT_END 0x0000000E +#define RT_NTSCM_VERT_LOCKOUT_START 0x00000207 +#define RT_NTSCM_VERT_LOCKOUT_END 0x0000000E -#define RT_NTSCJ_SYNCTIP_REF0 0x00000004 -#define RT_NTSCJ_SYNCTIP_REF1 0x00000012 -#define RT_NTSCJ_CLAMP_REF 0x0000003B -#define RT_NTSCJ_PEAKWHITE 0x000000CB -#define RT_NTSCJ_VBI_PEAKWHITE 0x000000C2 -#define RT_NTSCJ_WPA_THRESHOLD 0x000004B0 -#define RT_NTSCJ_WPA_TRIGGER_LO 0x000000B4 -#define RT_NTSCJ_WPA_TRIGGER_HIGH 0x0000021C -#define RT_NTSCJ_LP_LOCKOUT_START 0x00000206 -#define RT_NTSCJ_LP_LOCKOUT_END 0x00000021 +#define RT_NTSCJ_SYNCTIP_REF0 0x00000004 +#define RT_NTSCJ_SYNCTIP_REF1 0x00000012 +#define RT_NTSCJ_CLAMP_REF 0x0000003B +#define RT_NTSCJ_PEAKWHITE 0x000000CB +#define RT_NTSCJ_VBI_PEAKWHITE 0x000000C2 +#define RT_NTSCJ_WPA_THRESHOLD 0x000004B0 +#define RT_NTSCJ_WPA_TRIGGER_LO 0x000000B4 +#define RT_NTSCJ_WPA_TRIGGER_HIGH 0x0000021C +#define RT_NTSCJ_LP_LOCKOUT_START 0x00000206 +#define RT_NTSCJ_LP_LOCKOUT_END 0x00000021 -#define RT_NTSCJ_CR_BURST_GAIN 0x00000071 -#define RT_NTSCJ_CB_BURST_GAIN 0x0000009F -#define RT_NTSCJ_CH_HEIGHT 0x000000CD -#define RT_NTSCJ_CH_KILL_LEVEL 0x000000C0 -#define RT_NTSCJ_CH_AGC_ERROR_LIM 0x00000002 -#define RT_NTSCJ_CH_AGC_FILTER_EN 0x00000000 -#define RT_NTSCJ_CH_AGC_LOOP_SPEED 0x00000000 +#define RT_NTSCJ_CR_BURST_GAIN 0x00000071 +#define RT_NTSCJ_CB_BURST_GAIN 0x0000009F +#define RT_NTSCJ_CH_HEIGHT 0x000000CD +#define RT_NTSCJ_CH_KILL_LEVEL 0x000000C0 +#define RT_NTSCJ_CH_AGC_ERROR_LIM 0x00000002 +#define RT_NTSCJ_CH_AGC_FILTER_EN 0x00000000 +#define RT_NTSCJ_CH_AGC_LOOP_SPEED 0x00000000 -#define RT_NTSCJ_CRDR_ACTIVE_GAIN 0x00000071 -#define RT_NTSCJ_CBDB_ACTIVE_GAIN 0x0000009F -#define RT_NTSCJ_VERT_LOCKOUT_START 0x00000207 -#define RT_NTSCJ_VERT_LOCKOUT_END 0x0000000E +#define RT_NTSCJ_CRDR_ACTIVE_GAIN 0x00000071 +#define RT_NTSCJ_CBDB_ACTIVE_GAIN 0x0000009F +#define RT_NTSCJ_VERT_LOCKOUT_START 0x00000207 +#define RT_NTSCJ_VERT_LOCKOUT_END 0x0000000E -#define RT_PAL_SYNCTIP_REF0 0x37 /* instead of 0x00000004 - Ivo */ -#define RT_PAL_SYNCTIP_REF1 0x26 /* instead of 0x0000000F - Ivo */ -#define RT_PAL_CLAMP_REF 0x0000003B -#define RT_PAL_PEAKWHITE 0xFF /* instead of 0x000000C1 - Ivo */ -#define RT_PAL_VBI_PEAKWHITE 0xC6 /* instead of 0x000000C7 - Ivo */ -#define RT_PAL_WPA_THRESHOLD 0x59C /* instead of 0x000006A4 - Ivo */ +#define RT_PAL_SYNCTIP_REF0 0x37 /* instead of 0x00000004 - Ivo */ +#define RT_PAL_SYNCTIP_REF1 0x26 /* instead of 0x0000000F - Ivo */ +#define RT_PAL_CLAMP_REF 0x0000003B +#define RT_PAL_PEAKWHITE 0xFF /* instead of 0x000000C1 - Ivo */ +#define RT_PAL_VBI_PEAKWHITE 0xC6 /* instead of 0x000000C7 - Ivo */ +#define RT_PAL_WPA_THRESHOLD 0x59C /* instead of 0x000006A4 - Ivo */ -#define RT_PAL_WPA_TRIGGER_LO 0x00000096 -#define RT_PAL_WPA_TRIGGER_HIGH 0x000001C2 -#define RT_PAL_LP_LOCKOUT_START 0x00000263 -#define RT_PAL_LP_LOCKOUT_END 0x0000002C +#define RT_PAL_WPA_TRIGGER_LO 0x00000096 +#define RT_PAL_WPA_TRIGGER_HIGH 0x000001C2 +#define RT_PAL_LP_LOCKOUT_START 0x00000263 +#define RT_PAL_LP_LOCKOUT_END 0x0000002C -#define RT_PAL_CH_DTO_INC 0x00400000 -#define RT_PAL_CH_PLL_SGAIN 1 /* instead of 0x00000002 - Ivo */ -#define RT_PAL_CH_PLL_FGAIN 2 /* instead of 0x00000001 - Ivo */ -#define RT_PAL_CR_BURST_GAIN 0x0000007A -#define RT_PAL_CB_BURST_GAIN 0x000000AB -#define RT_PAL_CH_HEIGHT 0x0000009C -#define RT_PAL_CH_KILL_LEVEL 4 /* instead of 0x00000090 - Ivo */ -#define RT_PAL_CH_AGC_ERROR_LIM 1 /* instead of 0x00000002 - Ivo */ -#define RT_PAL_CH_AGC_FILTER_EN 1 /* instead of 0x00000000 - Ivo */ -#define RT_PAL_CH_AGC_LOOP_SPEED 0x00000000 +#define RT_PAL_CH_DTO_INC 0x00400000 +#define RT_PAL_CH_PLL_SGAIN 1 /* instead of 0x00000002 - Ivo */ +#define RT_PAL_CH_PLL_FGAIN 2 /* instead of 0x00000001 - Ivo */ +#define RT_PAL_CR_BURST_GAIN 0x0000007A +#define RT_PAL_CB_BURST_GAIN 0x000000AB +#define RT_PAL_CH_HEIGHT 0x0000009C +#define RT_PAL_CH_KILL_LEVEL 4 /* instead of 0x00000090 - Ivo */ +#define RT_PAL_CH_AGC_ERROR_LIM 1 /* instead of 0x00000002 - Ivo */ +#define RT_PAL_CH_AGC_FILTER_EN 1 /* instead of 0x00000000 - Ivo */ +#define RT_PAL_CH_AGC_LOOP_SPEED 0x00000000 -#define RT_PAL_CRDR_ACTIVE_GAIN 0x9E /* instead of 0x0000007A - Ivo */ -#define RT_PAL_CBDB_ACTIVE_GAIN 0xDF /* instead of 0x000000AB - Ivo */ -#define RT_PAL_VERT_LOCKOUT_START 0x00000269 -#define RT_PAL_VERT_LOCKOUT_END 0x00000012 +#define RT_PAL_CRDR_ACTIVE_GAIN 0x9E /* instead of 0x0000007A - Ivo */ +#define RT_PAL_CBDB_ACTIVE_GAIN 0xDF /* instead of 0x000000AB - Ivo */ +#define RT_PAL_VERT_LOCKOUT_START 0x00000269 +#define RT_PAL_VERT_LOCKOUT_END 0x00000012 -#define RT_SECAM_SYNCTIP_REF0 0x37 /* instead of 0x00000004 - Ivo */ -#define RT_SECAM_SYNCTIP_REF1 0x26 /* instead of 0x0000000F - Ivo */ -#define RT_SECAM_CLAMP_REF 0x0000003B -#define RT_SECAM_PEAKWHITE 0xFF /* instead of 0x000000C1 - Ivo */ -#define RT_SECAM_VBI_PEAKWHITE 0xC6 /* instead of 0x000000C7 - Ivo */ -#define RT_SECAM_WPA_THRESHOLD 0x57A /* instead of 0x6A4, instead of 0x0000059C is Ivo's value , -eric*/ +#define RT_SECAM_SYNCTIP_REF0 0x37 /* instead of 0x00000004 - Ivo */ +#define RT_SECAM_SYNCTIP_REF1 0x26 /* instead of 0x0000000F - Ivo */ +#define RT_SECAM_CLAMP_REF 0x0000003B +#define RT_SECAM_PEAKWHITE 0xFF /* instead of 0x000000C1 - Ivo */ +#define RT_SECAM_VBI_PEAKWHITE 0xC6 /* instead of 0x000000C7 - Ivo */ +#define RT_SECAM_WPA_THRESHOLD 0x57A /* instead of 0x6A4, instead of 0x0000059C is Ivo's value , -eric*/ -#define RT_SECAM_WPA_TRIGGER_LO 0x96 /* instead of 0x0000026B - eric */ -#define RT_SECAM_WPA_TRIGGER_HIGH 0x000001C2 -#define RT_SECAM_LP_LOCKOUT_START 0x263 /* instead of 0x0000026B - eric */ -#define RT_SECAM_LP_LOCKOUT_END 0x2b /* instead of 0x0000002C -eric */ +#define RT_SECAM_WPA_TRIGGER_LO 0x96 /* instead of 0x0000026B - eric */ +#define RT_SECAM_WPA_TRIGGER_HIGH 0x000001C2 +#define RT_SECAM_LP_LOCKOUT_START 0x263 /* instead of 0x0000026B - eric */ +#define RT_SECAM_LP_LOCKOUT_END 0x2b /* instead of 0x0000002C -eric */ -#define RT_SECAM_CH_DTO_INC 0x003E7A28 -#define RT_SECAM_CH_PLL_SGAIN 0x4 /* instead of 0x00000006 -Volodya */ -#define RT_SECAM_CH_PLL_FGAIN 0x7 /* instead of 0x00000006 -Volodya */ +#define RT_SECAM_CH_DTO_INC 0x003E7A28 +#define RT_SECAM_CH_PLL_SGAIN 0x4 /* instead of 0x00000006 -Volodya */ +#define RT_SECAM_CH_PLL_FGAIN 0x7 /* instead of 0x00000006 -Volodya */ -#define RT_SECAM_CR_BURST_GAIN 0x1FF /* instead of 0x00000200 -Volodya */ -#define RT_SECAM_CB_BURST_GAIN 0x1FF /* instead of 0x00000200 -Volodya */ -#define RT_SECAM_CH_HEIGHT 0x00000066 -#define RT_SECAM_CH_KILL_LEVEL 0x00000060 -#define RT_SECAM_CH_AGC_ERROR_LIM 0x00000003 -#define RT_SECAM_CH_AGC_FILTER_EN 0x00000000 -#define RT_SECAM_CH_AGC_LOOP_SPEED 0x00000000 +#define RT_SECAM_CR_BURST_GAIN 0x1FF /* instead of 0x00000200 -Volodya */ +#define RT_SECAM_CB_BURST_GAIN 0x1FF /* instead of 0x00000200 -Volodya */ +#define RT_SECAM_CH_HEIGHT 0x00000066 +#define RT_SECAM_CH_KILL_LEVEL 0x00000060 +#define RT_SECAM_CH_AGC_ERROR_LIM 0x00000003 +#define RT_SECAM_CH_AGC_FILTER_EN 0x00000000 +#define RT_SECAM_CH_AGC_LOOP_SPEED 0x00000000 -#define RT_SECAM_CRDR_ACTIVE_GAIN 0x11B /* instead of 0x00000200 - eric */ -#define RT_SECAM_CBDB_ACTIVE_GAIN 0x15A /* instead of 0x00000200 - eric */ -#define RT_SECAM_VERT_LOCKOUT_START 0x00000269 -#define RT_SECAM_VERT_LOCKOUT_END 0x00000012 +#define RT_SECAM_CRDR_ACTIVE_GAIN 0x11B /* instead of 0x00000200 - eric */ +#define RT_SECAM_CBDB_ACTIVE_GAIN 0x15A /* instead of 0x00000200 - eric */ +#define RT_SECAM_VERT_LOCKOUT_START 0x00000269 +#define RT_SECAM_VERT_LOCKOUT_END 0x00000012 -#define RT_PAL_VS_FIELD_BLANK_END 0x2A /* instead of 0x0000002C - Ivo*/ -#define RT_NTSCM_VS_FIELD_BLANK_END 0x0000000A +#define RT_PAL_VS_FIELD_BLANK_END 0x2A /* instead of 0x0000002C - Ivo*/ +#define RT_NTSCM_VS_FIELD_BLANK_END 0x0000000A -#define RT_NTSCM_FIELD_IDLOCATION 0x00000105 -#define RT_PAL_FIELD_IDLOCATION 0x00000137 +#define RT_NTSCM_FIELD_IDLOCATION 0x00000105 +#define RT_PAL_FIELD_IDLOCATION 0x00000137 -#define RT_NTSCM_H_ACTIVE_START 0x00000070 -#define RT_NTSCM_H_ACTIVE_END 0x00000363 +#define RT_NTSCM_H_ACTIVE_START 0x00000070 +#define RT_NTSCM_H_ACTIVE_END 0x00000363 -#define RT_PAL_H_ACTIVE_START 0x0000009A -#define RT_PAL_H_ACTIVE_END 0x00000439 +#define RT_PAL_H_ACTIVE_START 0x0000009A +#define RT_PAL_H_ACTIVE_END 0x00000439 -#define RT_NTSCM_V_ACTIVE_START ((22-4)*2+1) -#define RT_NTSCM_V_ACTIVE_END ((22+240-4)*2+1) +#define RT_NTSCM_V_ACTIVE_START ((22-4)*2+1) +#define RT_NTSCM_V_ACTIVE_END ((22+240-4)*2+1) -#define RT_PAL_V_ACTIVE_START 0x2E /* instead of 0x00000023 (Same as SECAM) - Ivo */ -#define RT_PAL_V_ACTIVE_END 0x269 /* instead of 0x00000262 - Ivo */ +#define RT_PAL_V_ACTIVE_START 0x2E /* instead of 0x00000023 (Same as SECAM) - Ivo */ +#define RT_PAL_V_ACTIVE_END 0x269 /* instead of 0x00000262 - Ivo */ /* VBI */ -#define RT_NTSCM_H_VBI_WIND_START 0x00000049 -#define RT_NTSCM_H_VBI_WIND_END 0x00000366 +#define RT_NTSCM_H_VBI_WIND_START 0x00000049 +#define RT_NTSCM_H_VBI_WIND_END 0x00000366 -#define RT_PAL_H_VBI_WIND_START 0x00000084 -#define RT_PAL_H_VBI_WIND_END 0x0000041F +#define RT_PAL_H_VBI_WIND_START 0x00000084 +#define RT_PAL_H_VBI_WIND_END 0x0000041F -#define RT_NTSCM_V_VBI_WIND_START fld_V_VBI_WIND_START_def -#define RT_NTSCM_V_VBI_WIND_END fld_V_VBI_WIND_END_def +#define RT_NTSCM_V_VBI_WIND_START fld_V_VBI_WIND_START_def +#define RT_NTSCM_V_VBI_WIND_END fld_V_VBI_WIND_END_def -#define RT_PAL_V_VBI_WIND_START 0x8 /* instead of 0x0000000B - Ivo */ -#define RT_PAL_V_VBI_WIND_END 0x2D /* instead of 0x00000022 - Ivo */ +#define RT_PAL_V_VBI_WIND_START 0x8 /* instead of 0x0000000B - Ivo */ +#define RT_PAL_V_VBI_WIND_END 0x2D /* instead of 0x00000022 - Ivo */ -#define RT_VBI_CAPTURE_EN 0x00000001 /* Enable */ -#define RT_VBI_CAPTURE_DIS 0x00000000 /* Disable */ -#define RT_RAW_CAPTURE 0x00000002 /* Use raw Video Capture. */ +#define RT_VBI_CAPTURE_EN 0x00000001 /* Enable */ +#define RT_VBI_CAPTURE_DIS 0x00000000 /* Disable */ +#define RT_RAW_CAPTURE 0x00000002 /* Use raw Video Capture. */ -#define RT_NTSCM_VSYNC_INT_TRIGGER 0x2AA -#define RT_PALSEM_VSYNC_INT_TRIGGER 0x353 +#define RT_NTSCM_VSYNC_INT_TRIGGER 0x2AA +#define RT_PALSEM_VSYNC_INT_TRIGGER 0x353 -#define RT_NTSCM_VSYNC_INT_HOLD 0x17 -#define RT_PALSEM_VSYNC_INT_HOLD 0x1C +#define RT_NTSCM_VSYNC_INT_HOLD 0x17 +#define RT_PALSEM_VSYNC_INT_HOLD 0x1C -#define RT_NTSCM_VS_FIELD_BLANK_START 0x206 -#define RT_PALSEM_VS_FIELD_BLANK_START 0x26D /* instead of 0x26C - Ivo */ +#define RT_NTSCM_VS_FIELD_BLANK_START 0x206 +#define RT_PALSEM_VS_FIELD_BLANK_START 0x26D /* instead of 0x26C - Ivo */ -#define RT_FIELD_FLIP_EN 0x4 -#define RT_V_FIELD_FLIP_INVERTED 0x2000 +#define RT_FIELD_FLIP_EN 0x4 +#define RT_V_FIELD_FLIP_INVERTED 0x2000 -#define RT_NTSCM_H_IN_START 0x70 -#define RT_PAL_H_IN_START 154 /* instead of 144 - Ivo */ -#define RT_SECAM_H_IN_START 0x91 /* instead of 0x9A, Ivo value is 154, instead of 144 - Volodya, - eric */ -#define RT_NTSC_H_ACTIVE_SIZE 744 -#define RT_PAL_H_ACTIVE_SIZE 928 /* instead of 927 - Ivo */ -#define RT_SECAM_H_ACTIVE_SIZE 932 /* instead of 928, instead of 927 - Ivo, - eric */ -#define RT_NTSCM_V_IN_START (0x23) -#define RT_PAL_V_IN_START 44 /* instead of (45-6) - Ivo */ -#define RT_SECAM_V_IN_START 0x2C /* instead of (45-6) - Volodya */ -#define RT_NTSCM_V_ACTIVE_SIZE 480 -#define RT_PAL_V_ACTIVE_SIZE 572 /* instead of 575 - Ivo */ -#define RT_SECAM_V_ACTIVE_SIZE 570 /* instead of 572, instead of 575 - Ivo, - eric */ +#define RT_NTSCM_H_IN_START 0x70 +#define RT_PAL_H_IN_START 154 /* instead of 144 - Ivo */ +#define RT_SECAM_H_IN_START 0x91 /* instead of 0x9A, Ivo value is 154, instead of 144 - Volodya, - eric */ +#define RT_NTSC_H_ACTIVE_SIZE 744 +#define RT_PAL_H_ACTIVE_SIZE 928 /* instead of 927 - Ivo */ +#define RT_SECAM_H_ACTIVE_SIZE 932 /* instead of 928, instead of 927 - Ivo, - eric */ +#define RT_NTSCM_V_IN_START (0x23) +#define RT_PAL_V_IN_START 44 /* instead of (45-6) - Ivo */ +#define RT_SECAM_V_IN_START 0x2C /* instead of (45-6) - Volodya */ +#define RT_NTSCM_V_ACTIVE_SIZE 480 +#define RT_PAL_V_ACTIVE_SIZE 572 /* instead of 575 - Ivo */ +#define RT_SECAM_V_ACTIVE_SIZE 570 /* instead of 572, instead of 575 - Ivo, - eric */ -#define RT_NTSCM_WIN_CLOSE_LIMIT 0x4D -#define RT_NTSCJ_WIN_CLOSE_LIMIT 0x4D -#define RT_NTSC443_WIN_CLOSE_LIMIT 0x5F -#define RT_PALM_WIN_CLOSE_LIMIT 0x4D -#define RT_PALN_WIN_CLOSE_LIMIT 0x5F -#define RT_SECAM_WIN_CLOSE_LIMIT 0xC7 /* instead of 0x5F - eric */ +#define RT_NTSCM_WIN_CLOSE_LIMIT 0x4D +#define RT_NTSCJ_WIN_CLOSE_LIMIT 0x4D +#define RT_NTSC443_WIN_CLOSE_LIMIT 0x5F +#define RT_PALM_WIN_CLOSE_LIMIT 0x4D +#define RT_PALN_WIN_CLOSE_LIMIT 0x5F +#define RT_SECAM_WIN_CLOSE_LIMIT 0xC7 /* instead of 0x5F - eric */ -#define RT_NTSCM_VS_FIELD_BLANK_START 0x206 +#define RT_NTSCM_VS_FIELD_BLANK_START 0x206 -#define RT_NTSCM_HS_PLL_SGAIN 0x5 -#define RT_NTSCM_HS_PLL_FGAIN 0x7 +#define RT_NTSCM_HS_PLL_SGAIN 0x5 +#define RT_NTSCM_HS_PLL_FGAIN 0x7 -#define RT_NTSCM_H_OUT_WIND_WIDTH 0x2F4 -#define RT_NTSCM_V_OUT_WIND_HEIGHT 0xF0 +#define RT_NTSCM_H_OUT_WIND_WIDTH 0x2F4 +#define RT_NTSCM_V_OUT_WIND_HEIGHT 0xF0 -#define TV 0x1 -#define LINEIN 0x2 -#define MUTE 0x3 +#define TV 0x1 +#define LINEIN 0x2 +#define MUTE 0x3 -#define DEC_COMPOSITE 0 -#define DEC_SVIDEO 1 -#define DEC_TUNER 2 +#define DEC_COMPOSITE 0 +#define DEC_SVIDEO 1 +#define DEC_TUNER 2 -#define DEC_NTSC 0 -#define DEC_PAL 1 -#define DEC_SECAM 2 -#define DEC_NTSC_J 8 +#define DEC_NTSC 0 +#define DEC_PAL 1 +#define DEC_SECAM 2 +#define DEC_NTSC_J 8 -#define DEC_SMOOTH 0 -#define DEC_SHARP 1 +#define DEC_SMOOTH 0 +#define DEC_SHARP 1 /* RT Register Field Defaults: */ -#define fld_tmpReg1_def 0x00000000 -#define fld_tmpReg2_def 0x00000001 -#define fld_tmpReg3_def 0x00000002 +#define fld_tmpReg1_def 0x00000000 +#define fld_tmpReg2_def 0x00000001 +#define fld_tmpReg3_def 0x00000002 -#define fld_LP_CONTRAST_def 0x0000006e -#define fld_LP_BRIGHTNESS_def 0x00003ff0 -#define fld_CP_HUE_CNTL_def 0x00000000 -#define fld_LUMA_FILTER_def 0x00000001 -#define fld_H_SCALE_RATIO_def 0x00010000 -#define fld_H_SHARPNESS_def 0x00000000 +#define fld_LP_CONTRAST_def 0x0000006e +#define fld_LP_BRIGHTNESS_def 0x00003ff0 +#define fld_CP_HUE_CNTL_def 0x00000000 +#define fld_LUMA_FILTER_def 0x00000001 +#define fld_H_SCALE_RATIO_def 0x00010000 +#define fld_H_SHARPNESS_def 0x00000000 -#define fld_V_SCALE_RATIO_def 0x00000800 -#define fld_V_DEINTERLACE_ON_def 0x00000001 -#define fld_V_BYPSS_def 0x00000000 -#define fld_V_DITHER_ON_def 0x00000001 -#define fld_EVENF_OFFSET_def 0x00000000 -#define fld_ODDF_OFFSET_def 0x00000000 +#define fld_V_SCALE_RATIO_def 0x00000800 +#define fld_V_DEINTERLACE_ON_def 0x00000001 +#define fld_V_BYPSS_def 0x00000000 +#define fld_V_DITHER_ON_def 0x00000001 +#define fld_EVENF_OFFSET_def 0x00000000 +#define fld_ODDF_OFFSET_def 0x00000000 -#define fld_INTERLACE_DETECTED_def 0x00000000 +#define fld_INTERLACE_DETECTED_def 0x00000000 -#define fld_VS_LINE_COUNT_def 0x00000000 -#define fld_VS_DETECTED_LINES_def 0x00000000 -#define fld_VS_ITU656_VB_def 0x00000000 +#define fld_VS_LINE_COUNT_def 0x00000000 +#define fld_VS_DETECTED_LINES_def 0x00000000 +#define fld_VS_ITU656_VB_def 0x00000000 -#define fld_VBI_CC_DATA_def 0x00000000 -#define fld_VBI_CC_WT_def 0x00000000 -#define fld_VBI_CC_WT_ACK_def 0x00000000 -#define fld_VBI_CC_HOLD_def 0x00000000 -#define fld_VBI_DECODE_EN_def 0x00000000 +#define fld_VBI_CC_DATA_def 0x00000000 +#define fld_VBI_CC_WT_def 0x00000000 +#define fld_VBI_CC_WT_ACK_def 0x00000000 +#define fld_VBI_CC_HOLD_def 0x00000000 +#define fld_VBI_DECODE_EN_def 0x00000000 -#define fld_VBI_CC_DTO_P_def 0x00001802 -#define fld_VBI_20BIT_DTO_P_def 0x0000155c +#define fld_VBI_CC_DTO_P_def 0x00001802 +#define fld_VBI_20BIT_DTO_P_def 0x0000155c -#define fld_VBI_CC_LEVEL_def 0x0000003f -#define fld_VBI_20BIT_LEVEL_def 0x00000059 -#define fld_VBI_CLK_RUNIN_GAIN_def 0x0000010f +#define fld_VBI_CC_LEVEL_def 0x0000003f +#define fld_VBI_20BIT_LEVEL_def 0x00000059 +#define fld_VBI_CLK_RUNIN_GAIN_def 0x0000010f -#define fld_H_VBI_WIND_START_def 0x00000041 -#define fld_H_VBI_WIND_END_def 0x00000366 +#define fld_H_VBI_WIND_START_def 0x00000041 +#define fld_H_VBI_WIND_END_def 0x00000366 -#define fld_V_VBI_WIND_START_def 0x0D -#define fld_V_VBI_WIND_END_def 0x24 +#define fld_V_VBI_WIND_START_def 0x0D +#define fld_V_VBI_WIND_END_def 0x24 -#define fld_VBI_20BIT_DATA0_def 0x00000000 -#define fld_VBI_20BIT_DATA1_def 0x00000000 -#define fld_VBI_20BIT_WT_def 0x00000000 -#define fld_VBI_20BIT_WT_ACK_def 0x00000000 -#define fld_VBI_20BIT_HOLD_def 0x00000000 +#define fld_VBI_20BIT_DATA0_def 0x00000000 +#define fld_VBI_20BIT_DATA1_def 0x00000000 +#define fld_VBI_20BIT_WT_def 0x00000000 +#define fld_VBI_20BIT_WT_ACK_def 0x00000000 +#define fld_VBI_20BIT_HOLD_def 0x00000000 -#define fld_VBI_CAPTURE_ENABLE_def 0x00000000 +#define fld_VBI_CAPTURE_ENABLE_def 0x00000000 -#define fld_VBI_EDS_DATA_def 0x00000000 -#define fld_VBI_EDS_WT_def 0x00000000 -#define fld_VBI_EDS_WT_ACK_def 0x00000000 -#define fld_VBI_EDS_HOLD_def 0x00000000 +#define fld_VBI_EDS_DATA_def 0x00000000 +#define fld_VBI_EDS_WT_def 0x00000000 +#define fld_VBI_EDS_WT_ACK_def 0x00000000 +#define fld_VBI_EDS_HOLD_def 0x00000000 -#define fld_VBI_SCALING_RATIO_def 0x00010000 -#define fld_VBI_ALIGNER_ENABLE_def 0x00000000 +#define fld_VBI_SCALING_RATIO_def 0x00010000 +#define fld_VBI_ALIGNER_ENABLE_def 0x00000000 -#define fld_H_ACTIVE_START_def 0x00000070 -#define fld_H_ACTIVE_END_def 0x000002f0 +#define fld_H_ACTIVE_START_def 0x00000070 +#define fld_H_ACTIVE_END_def 0x000002f0 -#define fld_V_ACTIVE_START_def ((22-4)*2+1) -#define fld_V_ACTIVE_END_def ((22+240-4)*2+2) +#define fld_V_ACTIVE_START_def ((22-4)*2+1) +#define fld_V_ACTIVE_END_def ((22+240-4)*2+2) -#define fld_CH_HEIGHT_def 0x000000CD -#define fld_CH_KILL_LEVEL_def 0x000000C0 -#define fld_CH_AGC_ERROR_LIM_def 0x00000002 -#define fld_CH_AGC_FILTER_EN_def 0x00000000 -#define fld_CH_AGC_LOOP_SPEED_def 0x00000000 +#define fld_CH_HEIGHT_def 0x000000CD +#define fld_CH_KILL_LEVEL_def 0x000000C0 +#define fld_CH_AGC_ERROR_LIM_def 0x00000002 +#define fld_CH_AGC_FILTER_EN_def 0x00000000 +#define fld_CH_AGC_LOOP_SPEED_def 0x00000000 -#define fld_HUE_ADJ_def 0x00000000 +#define fld_HUE_ADJ_def 0x00000000 -#define fld_STANDARD_SEL_def 0x00000000 -#define fld_STANDARD_YC_def 0x00000000 +#define fld_STANDARD_SEL_def 0x00000000 +#define fld_STANDARD_YC_def 0x00000000 -#define fld_ADC_PDWN_def 0x00000001 -#define fld_INPUT_SELECT_def 0x00000000 +#define fld_ADC_PDWN_def 0x00000001 +#define fld_INPUT_SELECT_def 0x00000000 -#define fld_ADC_PREFLO_def 0x00000003 -#define fld_H_SYNC_PULSE_WIDTH_def 0x00000000 -#define fld_HS_GENLOCKED_def 0x00000000 -#define fld_HS_SYNC_IN_WIN_def 0x00000000 +#define fld_ADC_PREFLO_def 0x00000003 +#define fld_H_SYNC_PULSE_WIDTH_def 0x00000000 +#define fld_HS_GENLOCKED_def 0x00000000 +#define fld_HS_SYNC_IN_WIN_def 0x00000000 -#define fld_VIN_ASYNC_RST_def 0x00000001 -#define fld_DVS_ASYNC_RST_def 0x00000001 +#define fld_VIN_ASYNC_RST_def 0x00000001 +#define fld_DVS_ASYNC_RST_def 0x00000001 /* Vendor IDs: */ -#define fld_VIP_VENDOR_ID_def 0x00001002 -#define fld_VIP_DEVICE_ID_def 0x00004d54 -#define fld_VIP_REVISION_ID_def 0x00000001 +#define fld_VIP_VENDOR_ID_def 0x00001002 +#define fld_VIP_DEVICE_ID_def 0x00004d54 +#define fld_VIP_REVISION_ID_def 0x00000001 /* AGC Delay Register */ -#define fld_BLACK_INT_START_def 0x00000031 -#define fld_BLACK_INT_LENGTH_def 0x0000000f +#define fld_BLACK_INT_START_def 0x00000031 +#define fld_BLACK_INT_LENGTH_def 0x0000000f -#define fld_UV_INT_START_def 0x0000003b -#define fld_U_INT_LENGTH_def 0x0000000f -#define fld_V_INT_LENGTH_def 0x0000000f -#define fld_CRDR_ACTIVE_GAIN_def 0x0000007a -#define fld_CBDB_ACTIVE_GAIN_def 0x000000ac +#define fld_UV_INT_START_def 0x0000003b +#define fld_U_INT_LENGTH_def 0x0000000f +#define fld_V_INT_LENGTH_def 0x0000000f +#define fld_CRDR_ACTIVE_GAIN_def 0x0000007a +#define fld_CBDB_ACTIVE_GAIN_def 0x000000ac -#define fld_DVS_DIRECTION_def 0x00000000 -#define fld_DVS_VBI_CARD8_SWAP_def 0x00000000 -#define fld_DVS_CLK_SELECT_def 0x00000000 -#define fld_CONTINUOUS_STREAM_def 0x00000000 -#define fld_DVSOUT_CLK_DRV_def 0x00000001 -#define fld_DVSOUT_DATA_DRV_def 0x00000001 +#define fld_DVS_DIRECTION_def 0x00000000 +#define fld_DVS_VBI_CARD8_SWAP_def 0x00000000 +#define fld_DVS_CLK_SELECT_def 0x00000000 +#define fld_CONTINUOUS_STREAM_def 0x00000000 +#define fld_DVSOUT_CLK_DRV_def 0x00000001 +#define fld_DVSOUT_DATA_DRV_def 0x00000001 -#define fld_COMB_CNTL0_def 0x09438090 -#define fld_COMB_CNTL1_def 0x00000010 +#define fld_COMB_CNTL0_def 0x09438090 +#define fld_COMB_CNTL1_def 0x00000010 -#define fld_COMB_CNTL2_def 0x16161010 -#define fld_COMB_LENGTH_def 0x0718038A +#define fld_COMB_CNTL2_def 0x16161010 +#define fld_COMB_LENGTH_def 0x0718038A -#define fld_SYNCTIP_REF0_def 0x00000037 -#define fld_SYNCTIP_REF1_def 0x00000029 -#define fld_CLAMP_REF_def 0x0000003B -#define fld_AGC_PEAKWHITE_def 0x000000FF -#define fld_VBI_PEAKWHITE_def 0x000000D2 +#define fld_SYNCTIP_REF0_def 0x00000037 +#define fld_SYNCTIP_REF1_def 0x00000029 +#define fld_CLAMP_REF_def 0x0000003B +#define fld_AGC_PEAKWHITE_def 0x000000FF +#define fld_VBI_PEAKWHITE_def 0x000000D2 -#define fld_WPA_THRESHOLD_def 0x000003B0 +#define fld_WPA_THRESHOLD_def 0x000003B0 -#define fld_WPA_TRIGGER_LO_def 0x000000B4 -#define fld_WPA_TRIGGER_HIGH_def 0x0000021C +#define fld_WPA_TRIGGER_LO_def 0x000000B4 +#define fld_WPA_TRIGGER_HIGH_def 0x0000021C -#define fld_LOCKOUT_START_def 0x00000206 -#define fld_LOCKOUT_END_def 0x00000021 +#define fld_LOCKOUT_START_def 0x00000206 +#define fld_LOCKOUT_END_def 0x00000021 -#define fld_CH_DTO_INC_def 0x00400000 -#define fld_PLL_SGAIN_def 0x00000001 -#define fld_PLL_FGAIN_def 0x00000002 +#define fld_CH_DTO_INC_def 0x00400000 +#define fld_PLL_SGAIN_def 0x00000001 +#define fld_PLL_FGAIN_def 0x00000002 -#define fld_CR_BURST_GAIN_def 0x0000007a -#define fld_CB_BURST_GAIN_def 0x000000ac +#define fld_CR_BURST_GAIN_def 0x0000007a +#define fld_CB_BURST_GAIN_def 0x000000ac -#define fld_VERT_LOCKOUT_START_def 0x00000207 -#define fld_VERT_LOCKOUT_END_def 0x0000000E +#define fld_VERT_LOCKOUT_START_def 0x00000207 +#define fld_VERT_LOCKOUT_END_def 0x0000000E -#define fld_H_IN_WIND_START_def 0x00000070 -#define fld_V_IN_WIND_START_def 0x00000027 +#define fld_H_IN_WIND_START_def 0x00000070 +#define fld_V_IN_WIND_START_def 0x00000027 -#define fld_H_OUT_WIND_WIDTH_def 0x000002f4 +#define fld_H_OUT_WIND_WIDTH_def 0x000002f4 -#define fld_V_OUT_WIND_WIDTH_def 0x000000f0 +#define fld_V_OUT_WIND_WIDTH_def 0x000000f0 -#define fld_HS_LINE_TOTAL_def 0x0000038E +#define fld_HS_LINE_TOTAL_def 0x0000038E -#define fld_MIN_PULSE_WIDTH_def 0x0000002F -#define fld_MAX_PULSE_WIDTH_def 0x00000046 +#define fld_MIN_PULSE_WIDTH_def 0x0000002F +#define fld_MAX_PULSE_WIDTH_def 0x00000046 -#define fld_WIN_CLOSE_LIMIT_def 0x0000004D -#define fld_WIN_OPEN_LIMIT_def 0x000001B7 +#define fld_WIN_CLOSE_LIMIT_def 0x0000004D +#define fld_WIN_OPEN_LIMIT_def 0x000001B7 -#define fld_VSYNC_INT_TRIGGER_def 0x000002AA +#define fld_VSYNC_INT_TRIGGER_def 0x000002AA -#define fld_VSYNC_INT_HOLD_def 0x0000001D +#define fld_VSYNC_INT_HOLD_def 0x0000001D -#define fld_VIN_M0_def 0x00000039 -#define fld_VIN_N0_def 0x0000014c -#define fld_MNFLIP_EN_def 0x00000000 -#define fld_VIN_P_def 0x00000006 -#define fld_REG_CLK_SEL_def 0x00000000 +#define fld_VIN_M0_def 0x00000039 +#define fld_VIN_N0_def 0x0000014c +#define fld_MNFLIP_EN_def 0x00000000 +#define fld_VIN_P_def 0x00000006 +#define fld_REG_CLK_SEL_def 0x00000000 -#define fld_VIN_M1_def 0x00000000 -#define fld_VIN_N1_def 0x00000000 -#define fld_VIN_DRIVER_SEL_def 0x00000000 -#define fld_VIN_MNFLIP_REQ_def 0x00000000 -#define fld_VIN_MNFLIP_DONE_def 0x00000000 -#define fld_TV_LOCK_TO_VIN_def 0x00000000 -#define fld_TV_P_FOR_WINCLK_def 0x00000004 +#define fld_VIN_M1_def 0x00000000 +#define fld_VIN_N1_def 0x00000000 +#define fld_VIN_DRIVER_SEL_def 0x00000000 +#define fld_VIN_MNFLIP_REQ_def 0x00000000 +#define fld_VIN_MNFLIP_DONE_def 0x00000000 +#define fld_TV_LOCK_TO_VIN_def 0x00000000 +#define fld_TV_P_FOR_WINCLK_def 0x00000004 -#define fld_VINRST_def 0x00000001 -#define fld_VIN_CLK_SEL_def 0x00000000 +#define fld_VINRST_def 0x00000001 +#define fld_VIN_CLK_SEL_def 0x00000000 -#define fld_VS_FIELD_BLANK_START_def 0x00000206 +#define fld_VS_FIELD_BLANK_START_def 0x00000206 -#define fld_VS_FIELD_BLANK_END_def 0x0000000A +#define fld_VS_FIELD_BLANK_END_def 0x0000000A -/*#define fld_VS_FIELD_IDLOCATION_def 0x00000105 */ -#define fld_VS_FIELD_IDLOCATION_def 0x00000001 -#define fld_VS_FRAME_TOTAL_def 0x00000217 +/*#define fld_VS_FIELD_IDLOCATION_def 0x00000105 */ +#define fld_VS_FIELD_IDLOCATION_def 0x00000001 +#define fld_VS_FRAME_TOTAL_def 0x00000217 -#define fld_SYNC_TIP_START_def 0x00000372 -#define fld_SYNC_TIP_LENGTH_def 0x0000000F +#define fld_SYNC_TIP_START_def 0x00000372 +#define fld_SYNC_TIP_LENGTH_def 0x0000000F -#define fld_GAIN_FORCE_DATA_def 0x00000000 -#define fld_GAIN_FORCE_EN_def 0x00000000 -#define fld_I_CLAMP_SEL_def 0x00000003 -#define fld_I_AGC_SEL_def 0x00000001 -#define fld_EXT_CLAMP_CAP_def 0x00000001 -#define fld_EXT_AGC_CAP_def 0x00000001 -#define fld_DECI_DITHER_EN_def 0x00000001 -#define fld_ADC_PREFHI_def 0x00000000 -#define fld_ADC_CH_GAIN_SEL_def 0x00000001 +#define fld_GAIN_FORCE_DATA_def 0x00000000 +#define fld_GAIN_FORCE_EN_def 0x00000000 +#define fld_I_CLAMP_SEL_def 0x00000003 +#define fld_I_AGC_SEL_def 0x00000001 +#define fld_EXT_CLAMP_CAP_def 0x00000001 +#define fld_EXT_AGC_CAP_def 0x00000001 +#define fld_DECI_DITHER_EN_def 0x00000001 +#define fld_ADC_PREFHI_def 0x00000000 +#define fld_ADC_CH_GAIN_SEL_def 0x00000001 -#define fld_HS_PLL_SGAIN_def 0x00000003 +#define fld_HS_PLL_SGAIN_def 0x00000003 -#define fld_NREn_def 0x00000000 -#define fld_NRGainCntl_def 0x00000000 -#define fld_NRBWTresh_def 0x00000000 -#define fld_NRGCTresh_def 0x00000000 -#define fld_NRCoefDespeclMode_def 0x00000000 +#define fld_NREn_def 0x00000000 +#define fld_NRGainCntl_def 0x00000000 +#define fld_NRBWTresh_def 0x00000000 +#define fld_NRGCTresh_def 0x00000000 +#define fld_NRCoefDespeclMode_def 0x00000000 -#define fld_GPIO_5_OE_def 0x00000000 -#define fld_GPIO_6_OE_def 0x00000000 +#define fld_GPIO_5_OE_def 0x00000000 +#define fld_GPIO_6_OE_def 0x00000000 -#define fld_GPIO_5_OUT_def 0x00000000 -#define fld_GPIO_6_OUT_def 0x00000000 +#define fld_GPIO_5_OUT_def 0x00000000 +#define fld_GPIO_6_OUT_def 0x00000000 -/* End of field default values. */ +/* End of field default values. */ #endif /* MPLAYER_RADEON_H */
--- a/help/help_create.sh Mon Apr 12 08:03:39 2010 +0000 +++ b/help/help_create.sh Mon Apr 12 10:56:17 2010 +0000 @@ -19,20 +19,20 @@ curr="" while read -r line; do - if echo "$line" | grep -q '^#define' ; then - curr=`printf "%s\n" "$line" | cut -d ' ' -f 2` - if grep -q "^#define $curr[ ]" "$TRANSLATION" ; then - curr="" - fi - else - if [ -z "$line" ]; then - curr="" - fi - fi + if echo "$line" | grep -q '^#define' ; then + curr=`printf "%s\n" "$line" | cut -d ' ' -f 2` + if grep -q "^#define $curr[ ]" "$TRANSLATION" ; then + curr="" + fi + else + if [ -z "$line" ]; then + curr="" + fi + fi - if [ -n "$curr" ]; then - printf "%s\n" "$line" - fi + if [ -n "$curr" ]; then + printf "%s\n" "$line" + fi done }
--- a/help/help_mp-bg.h Mon Apr 12 08:03:39 2010 +0000 +++ b/help/help_mp-bg.h Mon Apr 12 10:56:17 2010 +0000 @@ -458,14 +458,14 @@ #define MSGTR_TooManyAudioInBuffer "\nTвърде много аудио пакети в буфера: (%d в %d байта).\n" #define MSGTR_TooManyVideoInBuffer "\nТвърде много видео пакети в буфера: (%d в %d байта).\n" #define MSGTR_MaybeNI "Може би възпроизвеждате non-interleaved поток/файл или кодекът не Ñе е Ñправил?\n" \ - "За AVI файлове, опитайте да наложите non-interleaved режим ÑÑŠÑ Ð¾Ð¿Ñ†Ð¸Ñта -ni.\n" + "За AVI файлове, опитайте да наложите non-interleaved режим ÑÑŠÑ Ð¾Ð¿Ñ†Ð¸Ñта -ni.\n" #define MSGTR_SwitchToNi "\nЗле Ñтруктуриран AVI файл - превключване към -ni режим...\n" #define MSGTR_Detected_XXX_FileFormat "%s формат.\n" #define MSGTR_DetectedAudiofile "Ðудио файл.\n" #define MSGTR_NotSystemStream "Ðе е MPEG System Stream... (може би Transport Stream?)\n" #define MSGTR_InvalidMPEGES "Ðевалиден MPEG-ES поток??? Свържете Ñе Ñ Ð°Ð²Ñ‚Ð¾Ñ€Ð°, може да е бъг :(\n" #define MSGTR_FormatNotRecognized "============ За Ñъжаление, този формат не Ñе разпознава/поддържа =============\n"\ - "=== Ðко този файл е AVI, ASF или MPEG поток, Ð¼Ð¾Ð»Ñ ÑƒÐ²ÐµÐ´Ð¾Ð¼ÐµÑ‚Ðµ автора! ===\n" + "=== Ðко този файл е AVI, ASF или MPEG поток, Ð¼Ð¾Ð»Ñ ÑƒÐ²ÐµÐ´Ð¾Ð¼ÐµÑ‚Ðµ автора! ===\n" #define MSGTR_MissingVideoStream "Ðе е открит видео поток.\n" #define MSGTR_MissingAudioStream "Ðе е открит аудио поток -> нÑма звук.\n" #define MSGTR_MissingVideoStreamBug "ЛипÑва видео поток!? Свържете Ñе Ñ Ð°Ð²Ñ‚Ð¾Ñ€Ð°, може да е бъг :(\n"
--- a/help/help_mp-cs.h Mon Apr 12 08:03:39 2010 +0000 +++ b/help/help_mp-cs.h Mon Apr 12 10:56:17 2010 +0000 @@ -1395,7 +1395,7 @@ #define MSGTR_TooManyAudioInBuffer "\nPÅ™ÃliÅ¡ mnoho audio paketů ve vyrovnávacà pamÄ›ti: (%d v %d bajtech)\n" #define MSGTR_TooManyVideoInBuffer "\nPÅ™ÃliÅ¡ mnoho video paketů ve vyrovnávacà pamÄ›ti: (%d v %d bajtech)\n" #define MSGTR_MaybeNI "Možná pÅ™ehráváte neprokládaný proud/soubor nebo kodek selhal?\n"\ - "V AVI souborech zkuste vynutit neprokládaný režim pomocà volby -ni.\n" + "V AVI souborech zkuste vynutit neprokládaný režim pomocà volby -ni.\n" #define MSGTR_WorkAroundBlockAlignHeaderBug "AVI: ObcházÃm chybu CBR-MP3 nBlockAlign header!\n" #define MSGTR_SwitchToNi "\nDetekován Å¡patnÄ› prokládaný AVI soubor - pÅ™epÃnám do -ni režimu...\n" #define MSGTR_InvalidAudioStreamNosound "AVI: neplatný audio proud ID: %d - ignoruji (nebude zvuk)\n"
--- a/help/help_mp-dk.h Mon Apr 12 08:03:39 2010 +0000 +++ b/help/help_mp-dk.h Mon Apr 12 10:56:17 2010 +0000 @@ -239,7 +239,7 @@ #define MSGTR_TooManyAudioInBuffer "\nDEMUXER: For mange (%d i %d bytes) lydpakker i bufferen!\n" #define MSGTR_TooManyVideoInBuffer "\nDEMUXER: For mange (%d i %d bytes) videopakker i bufferen!\n" #define MSGTR_MaybeNI "Måske afspiller du en 'ikke-interleaved' stream/fil ellers der kan være en fejl i afspilleren\n"\ - "For AVI filer, prøv at påtvinge non-interleaved tilstand med -ni.\n" + "For AVI filer, prøv at påtvinge non-interleaved tilstand med -ni.\n" #define MSGTR_SwitchToNi "\nDefekt .AVI - skifter til ikke-interleaved (-ni)...\n" #define MSGTR_Detected_XXX_FileFormat "Filformat er %s\n" #define MSGTR_DetectedAudiofile "Filen er en lydfil!\n"
--- a/help/help_mp-el.h Mon Apr 12 08:03:39 2010 +0000 +++ b/help/help_mp-el.h Mon Apr 12 10:56:17 2010 +0000 @@ -237,14 +237,14 @@ #define MSGTR_TooManyAudioInBuffer "\nDEMUXER: Πολλαπλά (%d σε %d bytes) πακÎτα ήχου στον buffer!\n" #define MSGTR_TooManyVideoInBuffer "\nDEMUXER: Πολλαπλά (%d σε %d bytes) πακÎτα βίντεο στον buffer!\n" #define MSGTR_MaybeNI "(ίσως αναπαÏάγεται Îναν non-interleaved κανάλι/αÏχείο ή απÎτυχε το codec)\n" \ - "Για .AVI αÏχεία, ενεÏγοποιήστε τη μÎθοδο non-interleaved με την επιλογή -ni\n" + "Για .AVI αÏχεία, ενεÏγοποιήστε τη μÎθοδο non-interleaved με την επιλογή -ni\n" #define MSGTR_SwitchToNi "\n ΑναγνωÏίστηκε λάθος interleaved .AVI - εναλλαγή στη μÎθοδο -ni!\n" #define MSGTR_Detected_XXX_FileFormat "ΑναγνωÏίστηκε αÏχείο Ï„Ïπου %s!\n" #define MSGTR_DetectedAudiofile "ΑναγνωÏίστηκε αÏχείο ήχου!\n" #define MSGTR_NotSystemStream "Μη ΑναγνωÏίσιμο MPEG System Stream format... (μήπως είναι Transport Stream?)\n" #define MSGTR_InvalidMPEGES "Μη ΑναγνωÏίσιμο κανάλι MPEG-ES??? Επικοινώνησε με τον δημιουÏγό, μποÏεί να είναι Îνα bug :(\n" #define MSGTR_FormatNotRecognized "============= Λυπάμαι, αυτό το είδος αÏχείου δεν αναγνωÏίζεται/υποστηÏίζεται ===============\n"\ - "=== Αν το αÏχείο είναι Îνα AVI, ASF ή MPEG κανάλι, παÏακαλώ επικοινωνήστε με τον δημιουÏγό! ===\n" + "=== Αν το αÏχείο είναι Îνα AVI, ASF ή MPEG κανάλι, παÏακαλώ επικοινωνήστε με τον δημιουÏγό! ===\n" #define MSGTR_MissingVideoStream "Δεν βÏÎθηκε κανάλι βίντεο!\n" #define MSGTR_MissingAudioStream "Δεν βÏÎθηκε κανάλι ήχου... ->χωÏίς-ήχο\n" #define MSGTR_MissingVideoStreamBug "Λείπει το κανάλι βίντεο!? Επικοινώνησε με τον δημιουÏγό, μποÏεί να είναι Îνα bug :(\n"
--- a/help/help_mp-en.h Mon Apr 12 08:03:39 2010 +0000 +++ b/help/help_mp-en.h Mon Apr 12 10:56:17 2010 +0000 @@ -1400,7 +1400,7 @@ #define MSGTR_TooManyAudioInBuffer "\nToo many audio packets in the buffer: (%d in %d bytes).\n" #define MSGTR_TooManyVideoInBuffer "\nToo many video packets in the buffer: (%d in %d bytes).\n" #define MSGTR_MaybeNI "Maybe you are playing a non-interleaved stream/file or the codec failed?\n" \ - "For AVI files, try to force non-interleaved mode with the -ni option.\n" + "For AVI files, try to force non-interleaved mode with the -ni option.\n" #define MSGTR_WorkAroundBlockAlignHeaderBug "AVI: Working around CBR-MP3 nBlockAlign header bug!\n" #define MSGTR_SwitchToNi "\nBadly interleaved AVI file detected - switching to -ni mode...\n" #define MSGTR_InvalidAudioStreamNosound "AVI: invalid audio stream ID: %d - ignoring (nosound)\n" @@ -1411,7 +1411,7 @@ #define MSGTR_NotSystemStream "Not MPEG System Stream format... (maybe Transport Stream?)\n" #define MSGTR_InvalidMPEGES "Invalid MPEG-ES stream??? Contact the author, it may be a bug :(\n" #define MSGTR_FormatNotRecognized "============ Sorry, this file format is not recognized/supported =============\n"\ - "=== If this file is an AVI, ASF or MPEG stream, please contact the author! ===\n" + "=== If this file is an AVI, ASF or MPEG stream, please contact the author! ===\n" #define MSGTR_SettingProcessPriority "Setting process priority: %s\n" #define MSGTR_FilefmtFourccSizeFpsFtime "[V] filefmt:%d fourcc:0x%X size:%dx%d fps:%5.3f ftime:=%6.4f\n" #define MSGTR_CannotInitializeMuxer "Cannot initialize muxer."
--- a/help/help_mp-es.h Mon Apr 12 08:03:39 2010 +0000 +++ b/help/help_mp-es.h Mon Apr 12 10:56:17 2010 +0000 @@ -1406,7 +1406,7 @@ #define MSGTR_TooManyAudioInBuffer "\nDEMUXER: Demasiados (%d en %d bytes) paquetes de audio en el buffer!\n" #define MSGTR_TooManyVideoInBuffer "\nDEMUXER: Demasiados (%d en %d bytes) paquetes de video en el buffer!\n" #define MSGTR_MaybeNI "¿Estás reproduciendo un stream o archivo 'non-interleaved' o falló el codec?\n " \ - "Para archivos .AVI, intente forzar el modo 'non-interleaved' con la opción -ni.\n" + "Para archivos .AVI, intente forzar el modo 'non-interleaved' con la opción -ni.\n" #define MSGTR_WorkAroundBlockAlignHeaderBug "AVI: Rodeo CBR-MP3 nBlockAlign" #define MSGTR_SwitchToNi "\nDetectado .AVI mal interleaveado - cambiando al modo -ni!\n" #define MSGTR_InvalidAudioStreamNosound "AVI: flujo de audio inválido ID: %d - ignorado (sin sonido)\n"
--- a/help/help_mp-hu.h Mon Apr 12 08:03:39 2010 +0000 +++ b/help/help_mp-hu.h Mon Apr 12 10:56:17 2010 +0000 @@ -1399,7 +1399,7 @@ #define MSGTR_TooManyAudioInBuffer "\nDEMUXER: Túl sok (%d db, %d bájt) audio-csomag a pufferben!\n" #define MSGTR_TooManyVideoInBuffer "\nDEMUXER: Túl sok (%d db, %d bájt) video-csomag a pufferben!\n" #define MSGTR_MaybeNI "Talán ez egy nem összefésült (interleaved) fájl vagy a codec nem működik jól?\n" \ - "AVI fájloknál próbáld meg a non-interleaved mód kényszerÃtését a -ni opcióval.\n" + "AVI fájloknál próbáld meg a non-interleaved mód kényszerÃtését a -ni opcióval.\n" #define MSGTR_WorkAroundBlockAlignHeaderBug "AVI: CBR-MP3 nBlockAlign fejléc hiba megkerülése!\n" #define MSGTR_SwitchToNi "\nRosszul összefésült (interleaved) fájl, átváltás -ni módba!\n" #define MSGTR_InvalidAudioStreamNosound "AVI: hibás audió folyam ID: %d - figyelmen kÃvül hagyva (nosound)\n" @@ -1410,7 +1410,7 @@ #define MSGTR_NotSystemStream "Nem MPEG System Stream formátum... (talán Transport Stream?)\n" #define MSGTR_InvalidMPEGES "Hibás MPEG-ES-folyam? Lépj kapcsolatba a készÃtÅ‘kkel, lehet, hogy hiba!\n" #define MSGTR_FormatNotRecognized "========= Sajnos ez a fájlformátum ismeretlen vagy nem támogatott ===========\n"\ - "= Ha ez egy AVI, ASF vagy MPEG fájl, lépj kapcsolatba a készÃtÅ‘kkel (hiba)! =\n" + "= Ha ez egy AVI, ASF vagy MPEG fájl, lépj kapcsolatba a készÃtÅ‘kkel (hiba)! =\n" #define MSGTR_SettingProcessPriority "Folyamat priorÃtásának beállÃtása: %s\n" #define MSGTR_FilefmtFourccSizeFpsFtime "[V] filefmt:%d fourcc:0x%X méret:%dx%d fps:%5.3f ftime:=%6.4f\n" #define MSGTR_CannotInitializeMuxer "A muxer nem inicializálható."
--- a/help/help_mp-it.h Mon Apr 12 08:03:39 2010 +0000 +++ b/help/help_mp-it.h Mon Apr 12 10:56:17 2010 +0000 @@ -1407,7 +1407,7 @@ #define MSGTR_NotSystemStream "il formato non è 'MPEG System Stream'... (è forse 'Transport Stream'?)\n" #define MSGTR_InvalidMPEGES "Flusso MPEG-ES non valido??? Contatta l'autore, può essere un baco :(\n" #define MSGTR_FormatNotRecognized "===== Mi dispiace, questo formato file non è riconosciuto/supportato ======\n"\ - "=== Se questo è un file AVI, ASF o MPEG, per favore contatta l'autore! ===\n" + "=== Se questo è un file AVI, ASF o MPEG, per favore contatta l'autore! ===\n" #define MSGTR_SettingProcessPriority "Imposto la priorità del processo: %s\n" #define MSGTR_CannotInitializeMuxer "Impossibile inizializzare il muxer." #define MSGTR_MissingVideoStream "Nessun flusso video trovato!\n" @@ -1448,7 +1448,7 @@ #define MSGTR_CacheFill "\rRiempio cache: %5.2f%% (%"PRId64" byte) " #define MSGTR_NoBindFound "Nessun controllo legato al tasto '%s'." #define MSGTR_FailedToOpen "Apertura di '%s' fallita.\n" - // + // #define MSGTR_VideoID "[%s] Trovato flusso video, -vid %d\n" #define MSGTR_AudioID "[%s] Trovato flusso audio, -aid %d\n" #define MSGTR_SubtitleID "[%s] Trovato flusso sottotitoli, -sid %d\n"
--- a/help/help_mp-ja.h Mon Apr 12 08:03:39 2010 +0000 +++ b/help/help_mp-ja.h Mon Apr 12 10:56:17 2010 +0000 @@ -192,7 +192,7 @@ #define MSGTR_Detected_XXX_FileFormat "%s ファイルフォーマットã¨åˆ¤æ–.\n" #define MSGTR_DetectedAudiofile "音声ファイルã¨åˆ¤æ–.\n" #define MSGTR_FormatNotRecognized "============ ã“ã®ãƒ•ã‚¡ã‚¤ãƒ«ãƒ•ã‚©ãƒ¼ãƒžãƒƒãƒˆã¯ サãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã›ã‚“ =============\n"\ - "======= ã‚‚ã—ã“ã®ãƒ•ã‚¡ã‚¤ãƒ«ãŒ AVIã€ASFã€MPEGãªã‚‰ä½œæˆè€…ã«é€£çµ¡ã—ã¦ä¸‹ã•ã„ ======\n" + "======= ã‚‚ã—ã“ã®ãƒ•ã‚¡ã‚¤ãƒ«ãŒ AVIã€ASFã€MPEGãªã‚‰ä½œæˆè€…ã«é€£çµ¡ã—ã¦ä¸‹ã•ã„ ======\n" #define MSGTR_MissingVideoStream "æ˜ åƒã‚¹ãƒˆãƒªãƒ¼ãƒ ãŒå˜åœ¨ã—ã¾ã›ã‚“.\n" #define MSGTR_MissingAudioStream "音声ストリームãŒå˜åœ¨ã—ã¾ã›ã‚“ -> 無音声ã«ãªã‚Šã¾ã™\n" #define MSGTR_MissingVideoStreamBug "Missing video stream!? 作æˆè€…ã«é€£çµ¡ã—ã¦ä¸‹ã•ã„ã€æらãã“ã‚Œã¯ãƒã‚°ã§ã™ :(\n"
--- a/help/help_mp-ko.h Mon Apr 12 08:03:39 2010 +0000 +++ b/help/help_mp-ko.h Mon Apr 12 10:56:17 2010 +0000 @@ -236,14 +236,14 @@ #define MSGTR_TooManyAudioInBuffer "\n버í¼ì— 너무 ë§Žì€ ì˜¤ë””ì˜¤ íŒ¨í‚·ì´ ìžˆìŠµë‹ˆë‹¤.: (%d in %d bytes)\n" #define MSGTR_TooManyVideoInBuffer "\n버í¼ì— 너무 ë§Žì€ ë¹„ë””ì˜¤ íŒ¨í‚·ì´ ìžˆìŠµë‹ˆë‹¤.: (%d in %d bytes)\n" #define MSGTR_MaybeNI "non-interleaved 스트림/파ì¼ì„ 재ìƒí•˜ê³ 있거나 ì½”ë±ì— ë¬¸ì œê°€ 있나요?\n" \ - "AVI 파ì¼ì˜ 경우, -ni 옵션으로 non-interleaved 모드로 ê°•ì œ ì‹œë„해보세요.\n" + "AVI 파ì¼ì˜ 경우, -ni 옵션으로 non-interleaved 모드로 ê°•ì œ ì‹œë„해보세요.\n" #define MSGTR_SwitchToNi "\nìž˜ëª»ëœ interleaved AVI 파ì¼ì„ 발견했습니다. -ni 모드로 변경합니다...\n" #define MSGTR_Detected_XXX_FileFormat "%s íŒŒì¼ í˜•ì‹ì„ 발견했습니다.\n" #define MSGTR_DetectedAudiofile "오디오 파ì¼ì„ ê°ì§€í•˜ì˜€ìŠµë‹ˆë‹¤.\n" #define MSGTR_NotSystemStream "MPEG 시스템 스트림 í¬ë§·ì´ 아닙니다... (혹시 ì „ì†¡ 스트림ì¼ì§€ë„?)\n" #define MSGTR_InvalidMPEGES "ìœ íš¨í•˜ì§€ ì•Šì€ MPEG-ES 스트림??? ì €ìž‘ìžì—게 문ì˜í•˜ì„¸ìš”, 버그ì¼ì§€ë„ 모릅니다. :(\n" #define MSGTR_FormatNotRecognized "============= 죄송합니다. ì´ íŒŒì¼í˜•ì‹ì„ ì¸ì‹í•˜ì§€ëª»í–ˆê±°ë‚˜ 지ì›í•˜ì§€ì•ŠìŠµë‹ˆë‹¤ ===============\n"\ - "=== 만약 ì´ íŒŒì¼ì´ AVI, ASF ë˜ëŠ” MPEG 스트림ì´ë¼ë©´, ì €ìž‘ìžì—게 문ì˜í•˜ì„¸ìš”! ===\n" + "=== 만약 ì´ íŒŒì¼ì´ AVI, ASF ë˜ëŠ” MPEG 스트림ì´ë¼ë©´, ì €ìž‘ìžì—게 문ì˜í•˜ì„¸ìš”! ===\n" #define MSGTR_MissingVideoStream "비디오 ìŠ¤íŠ¸ë¦¼ì„ ì°¾ì§€ 못했습니다.\n" #define MSGTR_MissingAudioStream "오디오 ìŠ¤íŠ¸ë¦¼ì„ ì°¾ì§€ 못했습니다. -> 소리없ìŒ\n" #define MSGTR_MissingVideoStreamBug "ì°¾ì„ ìˆ˜ 없는 비디오 스트림!? ì €ìž‘ìžì—게 문ì˜í•˜ì„¸ìš”, 버그ì¼ì§€ë„ 모릅니다. :(\n"
--- a/help/help_mp-mk.h Mon Apr 12 08:03:39 2010 +0000 +++ b/help/help_mp-mk.h Mon Apr 12 10:56:17 2010 +0000 @@ -237,14 +237,14 @@ #define MSGTR_TooManyAudioInBuffer "\nПремногу аудио пакети во баферот: (%d во %d бајти).\n" #define MSGTR_TooManyVideoInBuffer "\nПремногу видео пакети во баферот: (%d во %d бајти).\n" #define MSGTR_MaybeNI "Можеби вие пуштате непреклопувачки Ñтрим/датотека или кодекот не работи?\n" \ - "За AVI датотеки, обиди Ñе да го приÑилиш непреклопувачкиот мод Ñо опцијата -ni.\n" + "За AVI датотеки, обиди Ñе да го приÑилиш непреклопувачкиот мод Ñо опцијата -ni.\n" #define MSGTR_SwitchToNi "\nОткриена е лошо преклопена AVI датотека - Ñе префрла на модот -ni...\n" #define MSGTR_Detected_XXX_FileFormat "Пронајден е %s формат на датотеката.\n" #define MSGTR_DetectedAudiofile "Пронајдена е аудио датотека.\n" #define MSGTR_NotSystemStream "Ðе е формат на MPEG ÑиÑтемÑки проток... (можеби е транÑпортен проток?)\n" #define MSGTR_InvalidMPEGES "Ðевалиден MPEG-ES проток??? Контактирајте Ñо авторот, можеби е баг :(\n" #define MSGTR_FormatNotRecognized "============ Извинете, овој формат на датотеката не е пропознат/подржан =============\n"\ - "=== Ðко оваа датотека е AVI, ASF или MPEG проток, ве молиме контактирајте Ñо авторот! ===\n" + "=== Ðко оваа датотека е AVI, ASF или MPEG проток, ве молиме контактирајте Ñо авторот! ===\n" #define MSGTR_MissingVideoStream "Ðе е пронајден видео проток.\n" #define MSGTR_MissingAudioStream "Ðе е пронајден аудио проток -> нема звук.\n" #define MSGTR_MissingVideoStreamBug "ÐедоÑтига видео проток!? Контактирајте Ñо авторот, можеби е баг :(\n"
--- a/help/help_mp-nb.h Mon Apr 12 08:03:39 2010 +0000 +++ b/help/help_mp-nb.h Mon Apr 12 10:56:17 2010 +0000 @@ -117,7 +117,7 @@ #define MSGTR_Detected_XXX_FileFormat "Detekterte %s filformat!\n" #define MSGTR_InvalidMPEGES "Ugyldig MPEG-ES stream??? kontakt utvikleren, det kan være en feil :(\n" #define MSGTR_FormatNotRecognized "======== Beklager, dette filformatet er ikke gjenkjent/støttet ===============\n"\ - "=== Hvis det er en AVI, ASF eller MPEG stream, kontakt utvikleren! ===\n" + "=== Hvis det er en AVI, ASF eller MPEG stream, kontakt utvikleren! ===\n" #define MSGTR_MissingVideoStream "Ingen video stream funnet!\n" #define MSGTR_MissingAudioStream "Ingen lyd stream funnet... ->nosound\n" #define MSGTR_MissingVideoStreamBug "Manglende video stream!? Kontakt utvikleren, det kan være en feil :(\n"
--- a/help/help_mp-nl.h Mon Apr 12 08:03:39 2010 +0000 +++ b/help/help_mp-nl.h Mon Apr 12 10:56:17 2010 +0000 @@ -443,14 +443,14 @@ #define MSGTR_TooManyAudioInBuffer "\nDEMUXER: Te veel (%d in %d bytes) audio packetten in de buffer!\n" #define MSGTR_TooManyVideoInBuffer "\nDEMUXER: Te veel (%d in %d bytes) video packetten in de buffer!\n" #define MSGTR_MaybeNI "(misschien speel je een non-interleaved stream/bestand of werkte de codec niet)\n" \ - "Voor .AVI bestanden probeer je best non-interleaved mode met de optie -ni\n" + "Voor .AVI bestanden probeer je best non-interleaved mode met de optie -ni\n" #define MSGTR_SwitchToNi "\nSlecht geinterleaved .AVI bestand gedetecteerd - schakel om naar -ni mode!\n" #define MSGTR_Detected_XXX_FileFormat "%s bestandsformaat gedetecteerd!\n" #define MSGTR_DetectedAudiofile "Audio bestandsformaat gedetecteerd!\n" #define MSGTR_NotSystemStream "Geen MPEG System Stream formaat... (misschien Transport Stream?)\n" #define MSGTR_InvalidMPEGES "Invalid MPEG-ES stream??? Contacteer de auteur, het zou een bug kunnen zijn :(\n" #define MSGTR_FormatNotRecognized "============= Sorry, dit bestandsformaat niet herkend/ondersteund ===============\n"\ - "=== Als dit een AVI bestand, ASF bestand of MPEG stream is, contacteer dan aub de auteur! ===\n" + "=== Als dit een AVI bestand, ASF bestand of MPEG stream is, contacteer dan aub de auteur! ===\n" #define MSGTR_MissingVideoStream "Geen video stream gevonden!\n" #define MSGTR_MissingAudioStream "Geen audio stream gevonden... ->nosound\n" #define MSGTR_MissingVideoStreamBug "Ontbrekende video stream!? Contacteer de auteur, het zou een bug kunnen zijn :(\n"
--- a/help/help_mp-pl.h Mon Apr 12 08:03:39 2010 +0000 +++ b/help/help_mp-pl.h Mon Apr 12 10:56:17 2010 +0000 @@ -435,7 +435,7 @@ " 2: dostosuj\n"\ "\n"\ " fast Ustaw szybsze kodowanie na następnych ustawieniach VBR,\n"\ -" nieznacznie niższa jakość i wyższy bitrate.\n"\ +" nieznacznie niższa jakość i wyższy bitrate.\n"\ "\n"\ " preset=<value> Ustaw możliwie najwyższe ustawienia jakości.\n"\ " medium: kodowanie VBR, dobra jakość\n"\ @@ -554,14 +554,14 @@ #define MSGTR_TooManyAudioInBuffer "\nZa dużo pakietów audio w buforze: (%d w %d bajtach).\n" #define MSGTR_TooManyVideoInBuffer "\nZa dużo pakietów video w buforze: (%d w %d bajtach).\n" #define MSGTR_MaybeNI "Może odtwarzasz strumień/plik bez przeplotu (non-interleaved) albo kodek nie działa?\n" \ - "Spróbuj wymusić tryb bez przeplotu dla plików AVI opcją -ni.\n" + "Spróbuj wymusić tryb bez przeplotu dla plików AVI opcją -ni.\n" #define MSGTR_SwitchToNi "\nWykryłem plik AVI z błędnym przeplotem - przełączam na tryb -ni...\n" #define MSGTR_Detected_XXX_FileFormat "Wykryto format pliku %s.\n" #define MSGTR_DetectedAudiofile "Wykryto plik audio.\n" #define MSGTR_NotSystemStream "Strumień nie w formacie MPEG... (może Transport Stream?)\n" #define MSGTR_InvalidMPEGES "Błędny strumień MPEG-ES??? Skontaktuj się z autorem, to może być błąd :(\n" #define MSGTR_FormatNotRecognized "============ Niestety, ten format pliku jest nieobsługiwany =============\n"\ - "=== Jeśli plik to AVI lub strumień ASF, MPEG proszę skontaktuj się z autorem! ===\n" + "=== Jeśli plik to AVI lub strumień ASF, MPEG proszę skontaktuj się z autorem! ===\n" #define MSGTR_MissingVideoStream "Brak strumienia video.\n" #define MSGTR_MissingAudioStream "Brak strumienia audio -> brak dźwięku.\n" #define MSGTR_MissingVideoStreamBug "Brak strumienia video!? Skontaktuj się z autorem, to może być błąd :(\n"
--- a/help/help_mp-pt_BR.h Mon Apr 12 08:03:39 2010 +0000 +++ b/help/help_mp-pt_BR.h Mon Apr 12 10:56:17 2010 +0000 @@ -244,14 +244,14 @@ #define MSGTR_TooManyAudioInBuffer "\nMuitos pacotes de audio no buffer: (%d em %d bytes).\n" #define MSGTR_TooManyVideoInBuffer "\nMuitos pacotes de audio no buffer: (%d em %d bytes).\n" #define MSGTR_MaybeNI "Talvez você esteja reproduzindo um fluxo/arquivo não-entrelaçado ou o codec falhou?\n" \ - "Para arquivos .AVI, tente forçar um modo não-entrelaçado com a opção -ni.\n" + "Para arquivos .AVI, tente forçar um modo não-entrelaçado com a opção -ni.\n" #define MSGTR_SwitchToNi "\nDetectado .AVI mau entrelaçado - mudando para o modo -ni!\n" #define MSGTR_Detected_XXX_FileFormat "Detectado formato de arquivo %s!\n" #define MSGTR_DetectedAudiofile "Detectado arquivo de audio!\n" #define MSGTR_NotSystemStream "Formato do fluxo não MPEG System... (pode ser um fluxo de transporte?)\n" #define MSGTR_InvalidMPEGES "Fluxo MPEG-ES inválido??? Contacte o autor, pode ser um bug :(\n" #define MSGTR_FormatNotRecognized "======= Desculpe, este formato de arquivo não é reconhecido/suportado ========\n"\ - "== Se este arquivo é um fluxo AVI, ASF ou MPEG, por favor contacte o autor ==\n" + "== Se este arquivo é um fluxo AVI, ASF ou MPEG, por favor contacte o autor ==\n" #define MSGTR_MissingVideoStream "Nenhuma trilha de vÃdeo encontrado!\n" #define MSGTR_MissingAudioStream "Nenhuma trilha de audio encontrado -> sem som\n" #define MSGTR_MissingVideoStreamBug "Trilha de vÃdeo faltando!? Contacte o autor, pode ser um bug :(\n"
--- a/help/help_mp-ro.h Mon Apr 12 08:03:39 2010 +0000 +++ b/help/help_mp-ro.h Mon Apr 12 10:56:17 2010 +0000 @@ -68,7 +68,7 @@ #define MSGTR_NoHomeDir "Nu gãsesc directorul HOME.\n" #define MSGTR_GetpathProblem "get_path(\"config\") problem\n" #define MSGTR_CreatingCfgFile "Creez fiºierul de configurare: %s\n"\ - "Încearcã '-vo help' pentru o listã cu driveri video disponibili.\n" + "Încearcã '-vo help' pentru o listã cu driveri video disponibili.\n" #define MSGTR_BuiltinCodecsConf "Folosesc 'codecs.conf' built-in.\n" #define MSGTR_CantLoadFont "Nu pot încãrca fontul: %s\n" #define MSGTR_CantLoadSub "Nu pot încãrca subtitrarea: %s\n"
--- a/help/help_mp-ru.h Mon Apr 12 08:03:39 2010 +0000 +++ b/help/help_mp-ru.h Mon Apr 12 10:56:17 2010 +0000 @@ -771,7 +771,7 @@ #define MSGTR_PREFERENCES_FPS "FPS фильма:" #define MSGTR_PREFERENCES_ShowVideoWindow "Показывать окно видео, когда неактивен" #define MSGTR_PREFERENCES_ArtsBroken "Ðовые верÑии aRts неÑовмеÑтимы Ñ GTK 1.x "\ - "и приведут к фатальной ошибке GMPlayer!" + "и приведут к фатальной ошибке GMPlayer!" // --- aboutbox #define MSGTR_ABOUT_UHU "Разработка GUI ÑпонÑирована UHU Linux\n" @@ -1407,7 +1407,7 @@ #define MSGTR_NotSystemStream "Ðе MPEG System Stream формат... (возможно, Transport Stream?)\n" #define MSGTR_InvalidMPEGES "ÐедопуÑтимый MPEG-ES поток??? ÑвÑжитеÑÑŒ Ñ Ð°Ð²Ñ‚Ð¾Ñ€Ð¾Ð¼, Ñто может быть ошибкой :(\n" #define MSGTR_FormatNotRecognized "======= Извините, формат Ñтого файла не раÑпознан/не поддерживаетÑÑ ==========\n"\ - "===== ЕÑли Ñто AVI, ASF или MPEG поток, пожалуйÑта ÑвÑжитеÑÑŒ Ñ Ð°Ð²Ñ‚Ð¾Ñ€Ð¾Ð¼! ======\n" + "===== ЕÑли Ñто AVI, ASF или MPEG поток, пожалуйÑта ÑвÑжитеÑÑŒ Ñ Ð°Ð²Ñ‚Ð¾Ñ€Ð¾Ð¼! ======\n" #define MSGTR_SettingProcessPriority "УÑтанавливаю приоритет процеÑÑа: %s\n" #define MSGTR_FilefmtFourccSizeFpsFtime "[V] формат:%d fourcc:0x%X размер:%dx%d fps:%5.3f ftime:=%6.4f\n" #define MSGTR_CannotInitializeMuxer "Ðевозможно инициализировать мультиплекÑор."
--- a/help/help_mp-sk.h Mon Apr 12 08:03:39 2010 +0000 +++ b/help/help_mp-sk.h Mon Apr 12 10:56:17 2010 +0000 @@ -540,14 +540,14 @@ #define MSGTR_TooManyAudioInBuffer "\nDEMUXER: PrÃliÅ¡ mnoho (%d v %d bajtoch) audio paketov v bufferi!\n" #define MSGTR_TooManyVideoInBuffer "\nDEMUXER: PrÃliÅ¡ mnoho (%d v %d bajtoch) video paketov v bufferi!\n" #define MSGTR_MaybeNI "(možno prehrávate neprekladaný prúd/súbor alebo kodek zlyhal)\n" \ - "Pre .AVI súbory skúste vynútiÅ¥ neprekladaný mód voľbou -ni\n" + "Pre .AVI súbory skúste vynútiÅ¥ neprekladaný mód voľbou -ni\n" #define MSGTR_SwitchToNi "\nDetekovaný zle prekladaný .AVI - prepnite -ni mód!\n" #define MSGTR_Detected_XXX_FileFormat "Detekovaný %s formát súboru!\n" #define MSGTR_DetectedAudiofile "Detekovaný audio súbor!\n" #define MSGTR_NotSystemStream "Nie je to MPEG System Stream formát... (možno Transport Stream?)\n" #define MSGTR_InvalidMPEGES "Neplatný MPEG-ES prúd??? kontaktujte autora, možno je to chyba (bug) :(\n" #define MSGTR_FormatNotRecognized "========== Žiaľ, tento formát súboru nie je rozpoznaný/podporovaný =======\n"\ - "==== Pokiaľ je tento súbor AVI, ASF alebo MPEG prúd, kontaktujte autora! ====\n" + "==== Pokiaľ je tento súbor AVI, ASF alebo MPEG prúd, kontaktujte autora! ====\n" #define MSGTR_MissingVideoStream "Žiadny video prúd nenájdený!\n" #define MSGTR_MissingAudioStream "Žiadny audio prúd nenájdený... -> bez zvuku\n" #define MSGTR_MissingVideoStreamBug "Chýbajúci video prúd!? Kontaktujte autora, možno to je chyba (bug) :(\n"
--- a/help/help_mp-tr.h Mon Apr 12 08:03:39 2010 +0000 +++ b/help/help_mp-tr.h Mon Apr 12 10:56:17 2010 +0000 @@ -588,7 +588,7 @@ #define MSGTR_TooManyAudioInBuffer "\nAYRIŞTIRICI: Tamponda birçok (%d - %d baytta) ses paketi var!\n" #define MSGTR_TooManyVideoInBuffer "\nAYRIŞTIRICI: Tamponda birçok (%d - %d baytta) video paketi var!\n" #define MSGTR_MaybeNI "Boşluksuz AVI yayını/dosyası oynatıyor olabilirsiniz veya kodek hatalı?\n" \ - "AVI dosyaları için -ni seçeneğiyle boşluksuz modu zorlamayı deneyiniz.\n" + "AVI dosyaları için -ni seçeneğiyle boşluksuz modu zorlamayı deneyiniz.\n" #define MSGTR_WorkAroundBlockAlignHeaderBug "AVI: CBR-MP3 nBlockAlign başlık hatası etrafına çalışıyor!\n" #define MSGTR_SwitchToNi "\nHatalı boşluklandırılmış .AVI saptandı -ni moduna geçiliyor...\n" #define MSGTR_InvalidAudioStreamNosound "AVI: geçersiz ses akışı ID: %d - gözardı ediliyor (ses yok)\n" @@ -600,7 +600,7 @@ #define MSGTR_NotSystemStream "MPEG Sistem Yayın biçimi değil...(İletim yayını olabilir?)\n" #define MSGTR_InvalidMPEGES "Geçersiz MPEG-ES biçimi??? Geliştiricilere bildiriniz, bu bir hata olabilir.:(\n" #define MSGTR_FormatNotRecognized "============ Üzgünüm, bu dosya biçimi desteklenmiyor ===========\n"\ - "=== Dosya bir AVI,ASF veya MPEG yayın biçimi ise, lütfen geliştiricilere bildiriniz. ===\n" + "=== Dosya bir AVI,ASF veya MPEG yayın biçimi ise, lütfen geliştiricilere bildiriniz. ===\n" #define MSGTR_SettingProcessPriority "İşlem önceliği ayarlanıyor: %s\n" #define MSGTR_FilefmtFourccSizeFpsFtime "[V] filefmt:%d fourcc:0x%X boyut:%dx%d fps:%5.3f ftime:=%6.4f\n" #define MSGTR_CannotInitializeMuxer "Cannot initialize muxer."
--- a/help/help_mp-uk.h Mon Apr 12 08:03:39 2010 +0000 +++ b/help/help_mp-uk.h Mon Apr 12 10:56:17 2010 +0000 @@ -1100,7 +1100,7 @@ #define MSGTR_DetectedAudiofile "Ðудіо файл детектовано.\n" #define MSGTR_NotSystemStream "Ðе в форматі MPEG System Stream... (можливо, Transport Stream?)\n" #define MSGTR_FormatNotRecognized "========= Вибачте, формат цього файлу не розпізнаний чи не підтримуєтьÑÑ ===========\n"\ - "===== Якщо це AVI, ASF або MPEG потік, будь лаÑка зв'ÑжітьÑÑ Ð· автором! ======\n" + "===== Якщо це AVI, ASF або MPEG потік, будь лаÑка зв'ÑжітьÑÑ Ð· автором! ======\n" #define MSGTR_MissingVideoStream "Відео потік не знайдений!\n" #define MSGTR_MissingAudioStream "Ðудіо потік не знайдений... -> програю без звуку\n" #define MSGTR_MissingVideoStreamBug "Відео потік загублений!? Зв'ÑжітьÑÑ Ð· автором, це мабуть помилка :(\n"
--- a/help/help_mp-zh_CN.h Mon Apr 12 08:03:39 2010 +0000 +++ b/help/help_mp-zh_CN.h Mon Apr 12 10:56:17 2010 +0000 @@ -1381,7 +1381,7 @@ #define MSGTR_TooManyAudioInBuffer "\n缓冲ä¸éŸ³é¢‘包太多(%d 个包å˜åœ¨äºŽ %d å—节ä¸ï¼‰ã€‚\n" #define MSGTR_TooManyVideoInBuffer "\n缓冲ä¸è§†é¢‘包太多(%d 个包å˜åœ¨äºŽ %d å—节ä¸ï¼‰ã€‚\n" #define MSGTR_MaybeNI "å¯èƒ½æ’放了一个éžäº¤é”™åˆå¹¶çš„媒体æµ/文件,或者是编解ç è¿è¡Œå¤±è´¥ï¼Ÿ\n" \ - "对于 AVI 文件,å¯å°è¯•ç”¨ -ni 选项强制使用éžäº¤é”™æ¨¡å¼ã€‚\n" + "对于 AVI 文件,å¯å°è¯•ç”¨ -ni 选项强制使用éžäº¤é”™æ¨¡å¼ã€‚\n" #define MSGTR_WorkAroundBlockAlignHeaderBug "AVI:é¿å¼€ CBR-MP3 nBlockAlign 头部缺陷ï¼\n" #define MSGTR_SwitchToNi "\n检测到未æ£ç¡®äº¤é”™åˆå¹¶çš„ AVI 文件 - 切æ¢åˆ° -ni 模å¼...\n" #define MSGTR_InvalidAudioStreamNosound "AVIï¼šæ— æ•ˆçš„éŸ³é¢‘æµ ID: %d - 忽略 (nosound)\n" @@ -1392,7 +1392,7 @@ #define MSGTR_NotSystemStream "éž MPEG 系统的媒体æµæ ¼å¼...(å¯èƒ½æ˜¯ç½‘ç»œä¼ è¾“çš„åª’ä½“æµï¼Ÿï¼‰\n" #define MSGTR_InvalidMPEGES "æ— æ³•çš„ MPEG-ES 媒体æµï¼Ÿï¼Ÿï¼Ÿè¯·è”系开å‘者,这å¯èƒ½æ˜¯è½¯ä»¶çš„缺陷 :(\n" #define MSGTR_FormatNotRecognized "============= 抱æ‰, æ¤æ–‡ä»¶æ ¼å¼æ— æ³•è¾¨è®¤æˆ–æ”¯æŒ ===============\n"\ - "=== 如果æ¤æ–‡ä»¶æ˜¯ AVIã€ASF 或 MPEG 媒体æµï¼Œè¯·è”系开å‘è€…ï¼ ===\n" + "=== 如果æ¤æ–‡ä»¶æ˜¯ AVIã€ASF 或 MPEG 媒体æµï¼Œè¯·è”系开å‘è€…ï¼ ===\n" #define MSGTR_SettingProcessPriority "设置进程优先级:%s\n" #define MSGTR_FilefmtFourccSizeFpsFtime "[V] æ–‡ä»¶æ ¼å¼:%d fourcc代ç :0x%X 大å°:%dx%d 帧速:%5.3f æ¯å¸§æ—¶é•¿:=%6.4f\n" #define MSGTR_CannotInitializeMuxer "ä¸èƒ½åˆå§‹åŒ–æµåˆå¹¶å™¨ã€‚"
--- a/help/help_mp-zh_TW.h Mon Apr 12 08:03:39 2010 +0000 +++ b/help/help_mp-zh_TW.h Mon Apr 12 10:56:17 2010 +0000 @@ -567,7 +567,7 @@ #define MSGTR_TooManyAudioInBuffer "\nç·©è¡ä¸éŸ³é »åŒ…太多(%d in %d å—節)。\n" #define MSGTR_TooManyVideoInBuffer "\nç·©è¡ä¸è¦–é »åŒ…å¤ªå¤š(%d in %d å—節)。\n" #define MSGTR_MaybeNI "(ä¹Ÿè¨±ä½ æ’放了一個éžäº¤éŒ¯çš„æµ/文件或者是編解碼失敗)?\n" \ - "å°äºŽ AVI 文件, 嘗試用 -ni é¸é …鎖定éžäº¤éŒ¯æ¨¡å¼ã€‚\n" + "å°äºŽ AVI 文件, 嘗試用 -ni é¸é …鎖定éžäº¤éŒ¯æ¨¡å¼ã€‚\n" #define MSGTR_WorkAroundBlockAlignHeaderBug "AVI: ç¹žéŽ CBR-MP3 nBlockAlign é 部錯誤!\n" #define MSGTR_SwitchToNi "\næª¢æ¸¬åˆ°ç³Ÿç³•çš„äº¤éŒ¯æ ¼å¼çš„ AVI 文件 - 切æ›åˆ° -ni 模å¼...\n" #define MSGTR_InvalidAudioStreamNosound "AVI: ç„¡æ•ˆçš„éŸ³é »æµ ID: %d - 忽略 (nosound)\n" @@ -578,7 +578,7 @@ #define MSGTR_NotSystemStream "éž MPEG 係統的æµæ ¼å¼... (å¯èƒ½æ˜¯è¼¸é€æµ?)\n" #define MSGTR_InvalidMPEGES "MPEG-ES æµç„¡æ•ˆ??? è«‹è¯ä¿‚作者, 這å¯èƒ½æ˜¯å€‹éŒ¯èª¤:(\n" #define MSGTR_FormatNotRecognized "============= 抱æ‰, æ¤æ–‡ä»¶æ ¼å¼ç„¡æ³•è¾¨èªæˆ–æ”¯æŒ ===============\n"\ - "=== 如果æ¤æ–‡ä»¶æ˜¯ä¸€å€‹ AVI, ASF 或 MPEG æµ, è«‹è¯ä¿‚作者! ===\n" + "=== 如果æ¤æ–‡ä»¶æ˜¯ä¸€å€‹ AVI, ASF 或 MPEG æµ, è«‹è¯ä¿‚作者! ===\n" #define MSGTR_SettingProcessPriority "è¨ç½®é€²ç¨‹å„ªå…ˆç´š: %s\n" #define MSGTR_FilefmtFourccSizeFpsFtime "[V] æ–‡ä»¶æ ¼å¼:%d fourcc:0x%X 大å°:%dx%d 幀速:%5.3f 幀時間:=%6.4f\n" #define MSGTR_CannotInitializeMuxer "ä¸èƒ½åˆå§‹åŒ–muxer。"
--- a/mp3lib/dct36.c Mon Apr 12 08:03:39 2010 +0000 +++ b/mp3lib/dct36.c Mon Apr 12 10:56:17 2010 +0000 @@ -189,21 +189,21 @@ ts[SBLIMIT*(8-(v))] = out1[8-(v)] + sum0 * w[8-(v)]; \ ts[SBLIMIT*(9+(v))] = out1[9+(v)] + sum0 * w[9+(v)]; #define MACRO1(v) { \ - real sum0,sum1; \ + real sum0, sum1; \ sum0 = tmp1a + tmp2a; \ - sum1 = (tmp1b + tmp2b) * tfcos36[(v)]; \ - MACRO0(v); } + sum1 = (tmp1b + tmp2b) * tfcos36[(v)]; \ + MACRO0(v); } #define MACRO2(v) { \ - real sum0,sum1; \ + real sum0, sum1; \ sum0 = tmp2a - tmp1a; \ sum1 = (tmp2b - tmp1b) * tfcos36[(v)]; \ - MACRO0(v); } + MACRO0(v); } register const real *c = COS9; register real *out2 = o2; - register real *w = wintab; - register real *out1 = o1; - register real *ts = tsbuf; + register real *w = wintab; + register real *out1 = o1; + register real *ts = tsbuf; real ta33,ta66,tb33,tb66; @@ -256,12 +256,12 @@ MACRO2(5); } - { - real sum0,sum1; - sum0 = in[2*0+0] - in[2*2+0] + in[2*4+0] - in[2*6+0] + in[2*8+0]; - sum1 = (in[2*0+1] - in[2*2+1] + in[2*4+1] - in[2*6+1] + in[2*8+1] ) * tfcos36[4]; - MACRO0(4); - } + { + real sum0,sum1; + sum0 = in[2*0+0] - in[2*2+0] + in[2*4+0] - in[2*6+0] + in[2*8+0]; + sum1 = (in[2*0+1] - in[2*2+1] + in[2*4+1] - in[2*6+1] + in[2*8+1] ) * tfcos36[4]; + MACRO0(4); + } } #endif
--- a/mp3lib/dct36_3dnow.c Mon Apr 12 08:03:39 2010 +0000 +++ b/mp3lib/dct36_3dnow.c Mon Apr 12 10:56:17 2010 +0000 @@ -40,462 +40,462 @@ #endif { __asm__ volatile( - "movq (%%eax),%%mm0\n\t" - "movq 4(%%eax),%%mm1\n\t" - "pfadd %%mm1,%%mm0\n\t" - "movq %%mm0,4(%%eax)\n\t" - "psrlq $32,%%mm1\n\t" - "movq 12(%%eax),%%mm2\n\t" - "punpckldq %%mm2,%%mm1\n\t" - "pfadd %%mm2,%%mm1\n\t" - "movq %%mm1,12(%%eax)\n\t" - "psrlq $32,%%mm2\n\t" - "movq 20(%%eax),%%mm3\n\t" - "punpckldq %%mm3,%%mm2\n\t" - "pfadd %%mm3,%%mm2\n\t" - "movq %%mm2,20(%%eax)\n\t" - "psrlq $32,%%mm3\n\t" - "movq 28(%%eax),%%mm4\n\t" - "punpckldq %%mm4,%%mm3\n\t" - "pfadd %%mm4,%%mm3\n\t" - "movq %%mm3,28(%%eax)\n\t" - "psrlq $32,%%mm4\n\t" - "movq 36(%%eax),%%mm5\n\t" - "punpckldq %%mm5,%%mm4\n\t" - "pfadd %%mm5,%%mm4\n\t" - "movq %%mm4,36(%%eax)\n\t" - "psrlq $32,%%mm5\n\t" - "movq 44(%%eax),%%mm6\n\t" - "punpckldq %%mm6,%%mm5\n\t" - "pfadd %%mm6,%%mm5\n\t" - "movq %%mm5,44(%%eax)\n\t" - "psrlq $32,%%mm6\n\t" - "movq 52(%%eax),%%mm7\n\t" - "punpckldq %%mm7,%%mm6\n\t" - "pfadd %%mm7,%%mm6\n\t" - "movq %%mm6,52(%%eax)\n\t" - "psrlq $32,%%mm7\n\t" - "movq 60(%%eax),%%mm0\n\t" - "punpckldq %%mm0,%%mm7\n\t" - "pfadd %%mm0,%%mm7\n\t" - "movq %%mm7,60(%%eax)\n\t" - "psrlq $32,%%mm0\n\t" - "movd 68(%%eax),%%mm1\n\t" - "pfadd %%mm1,%%mm0\n\t" - "movd %%mm0,68(%%eax)\n\t" - "movd 4(%%eax),%%mm0\n\t" - "movd 12(%%eax),%%mm1\n\t" - "punpckldq %%mm1,%%mm0\n\t" - "punpckldq 20(%%eax),%%mm1\n\t" - "pfadd %%mm1,%%mm0\n\t" - "movd %%mm0,12(%%eax)\n\t" - "psrlq $32,%%mm0\n\t" - "movd %%mm0,20(%%eax)\n\t" - "psrlq $32,%%mm1\n\t" - "movd 28(%%eax),%%mm2\n\t" - "punpckldq %%mm2,%%mm1\n\t" - "punpckldq 36(%%eax),%%mm2\n\t" - "pfadd %%mm2,%%mm1\n\t" - "movd %%mm1,28(%%eax)\n\t" - "psrlq $32,%%mm1\n\t" - "movd %%mm1,36(%%eax)\n\t" - "psrlq $32,%%mm2\n\t" - "movd 44(%%eax),%%mm3\n\t" - "punpckldq %%mm3,%%mm2\n\t" - "punpckldq 52(%%eax),%%mm3\n\t" - "pfadd %%mm3,%%mm2\n\t" - "movd %%mm2,44(%%eax)\n\t" - "psrlq $32,%%mm2\n\t" - "movd %%mm2,52(%%eax)\n\t" - "psrlq $32,%%mm3\n\t" - "movd 60(%%eax),%%mm4\n\t" - "punpckldq %%mm4,%%mm3\n\t" - "punpckldq 68(%%eax),%%mm4\n\t" - "pfadd %%mm4,%%mm3\n\t" - "movd %%mm3,60(%%eax)\n\t" - "psrlq $32,%%mm3\n\t" - "movd %%mm3,68(%%eax)\n\t" + "movq (%%eax),%%mm0\n\t" + "movq 4(%%eax),%%mm1\n\t" + "pfadd %%mm1,%%mm0\n\t" + "movq %%mm0,4(%%eax)\n\t" + "psrlq $32,%%mm1\n\t" + "movq 12(%%eax),%%mm2\n\t" + "punpckldq %%mm2,%%mm1\n\t" + "pfadd %%mm2,%%mm1\n\t" + "movq %%mm1,12(%%eax)\n\t" + "psrlq $32,%%mm2\n\t" + "movq 20(%%eax),%%mm3\n\t" + "punpckldq %%mm3,%%mm2\n\t" + "pfadd %%mm3,%%mm2\n\t" + "movq %%mm2,20(%%eax)\n\t" + "psrlq $32,%%mm3\n\t" + "movq 28(%%eax),%%mm4\n\t" + "punpckldq %%mm4,%%mm3\n\t" + "pfadd %%mm4,%%mm3\n\t" + "movq %%mm3,28(%%eax)\n\t" + "psrlq $32,%%mm4\n\t" + "movq 36(%%eax),%%mm5\n\t" + "punpckldq %%mm5,%%mm4\n\t" + "pfadd %%mm5,%%mm4\n\t" + "movq %%mm4,36(%%eax)\n\t" + "psrlq $32,%%mm5\n\t" + "movq 44(%%eax),%%mm6\n\t" + "punpckldq %%mm6,%%mm5\n\t" + "pfadd %%mm6,%%mm5\n\t" + "movq %%mm5,44(%%eax)\n\t" + "psrlq $32,%%mm6\n\t" + "movq 52(%%eax),%%mm7\n\t" + "punpckldq %%mm7,%%mm6\n\t" + "pfadd %%mm7,%%mm6\n\t" + "movq %%mm6,52(%%eax)\n\t" + "psrlq $32,%%mm7\n\t" + "movq 60(%%eax),%%mm0\n\t" + "punpckldq %%mm0,%%mm7\n\t" + "pfadd %%mm0,%%mm7\n\t" + "movq %%mm7,60(%%eax)\n\t" + "psrlq $32,%%mm0\n\t" + "movd 68(%%eax),%%mm1\n\t" + "pfadd %%mm1,%%mm0\n\t" + "movd %%mm0,68(%%eax)\n\t" + "movd 4(%%eax),%%mm0\n\t" + "movd 12(%%eax),%%mm1\n\t" + "punpckldq %%mm1,%%mm0\n\t" + "punpckldq 20(%%eax),%%mm1\n\t" + "pfadd %%mm1,%%mm0\n\t" + "movd %%mm0,12(%%eax)\n\t" + "psrlq $32,%%mm0\n\t" + "movd %%mm0,20(%%eax)\n\t" + "psrlq $32,%%mm1\n\t" + "movd 28(%%eax),%%mm2\n\t" + "punpckldq %%mm2,%%mm1\n\t" + "punpckldq 36(%%eax),%%mm2\n\t" + "pfadd %%mm2,%%mm1\n\t" + "movd %%mm1,28(%%eax)\n\t" + "psrlq $32,%%mm1\n\t" + "movd %%mm1,36(%%eax)\n\t" + "psrlq $32,%%mm2\n\t" + "movd 44(%%eax),%%mm3\n\t" + "punpckldq %%mm3,%%mm2\n\t" + "punpckldq 52(%%eax),%%mm3\n\t" + "pfadd %%mm3,%%mm2\n\t" + "movd %%mm2,44(%%eax)\n\t" + "psrlq $32,%%mm2\n\t" + "movd %%mm2,52(%%eax)\n\t" + "psrlq $32,%%mm3\n\t" + "movd 60(%%eax),%%mm4\n\t" + "punpckldq %%mm4,%%mm3\n\t" + "punpckldq 68(%%eax),%%mm4\n\t" + "pfadd %%mm4,%%mm3\n\t" + "movd %%mm3,60(%%eax)\n\t" + "psrlq $32,%%mm3\n\t" + "movd %%mm3,68(%%eax)\n\t" - "movq 24(%%eax),%%mm0\n\t" - "movq 48(%%eax),%%mm1\n\t" - "movd "MANGLE(COS9)"+12,%%mm2\n\t" - "punpckldq %%mm2,%%mm2\n\t" - "movd "MANGLE(COS9)"+24,%%mm3\n\t" - "punpckldq %%mm3,%%mm3\n\t" - "pfmul %%mm2,%%mm0\n\t" - "pfmul %%mm3,%%mm1\n\t" - "pushl %%eax\n\t" - "movl $1,%%eax\n\t" - "movd %%eax,%%mm7\n\t" - "pi2fd %%mm7,%%mm7\n\t" - "popl %%eax\n\t" - "movq 8(%%eax),%%mm2\n\t" - "movd "MANGLE(COS9)"+4,%%mm3\n\t" - "punpckldq %%mm3,%%mm3\n\t" - "pfmul %%mm3,%%mm2\n\t" - "pfadd %%mm0,%%mm2\n\t" - "movq 40(%%eax),%%mm3\n\t" - "movd "MANGLE(COS9)"+20,%%mm4\n\t" - "punpckldq %%mm4,%%mm4\n\t" - "pfmul %%mm4,%%mm3\n\t" - "pfadd %%mm3,%%mm2\n\t" - "movq 56(%%eax),%%mm3\n\t" - "movd "MANGLE(COS9)"+28,%%mm4\n\t" - "punpckldq %%mm4,%%mm4\n\t" - "pfmul %%mm4,%%mm3\n\t" - "pfadd %%mm3,%%mm2\n\t" - "movq (%%eax),%%mm3\n\t" - "movq 16(%%eax),%%mm4\n\t" - "movd "MANGLE(COS9)"+8,%%mm5\n\t" - "punpckldq %%mm5,%%mm5\n\t" - "pfmul %%mm5,%%mm4\n\t" - "pfadd %%mm4,%%mm3\n\t" - "movq 32(%%eax),%%mm4\n\t" - "movd "MANGLE(COS9)"+16,%%mm5\n\t" - "punpckldq %%mm5,%%mm5\n\t" - "pfmul %%mm5,%%mm4\n\t" - "pfadd %%mm4,%%mm3\n\t" - "pfadd %%mm1,%%mm3\n\t" - "movq 64(%%eax),%%mm4\n\t" - "movd "MANGLE(COS9)"+32,%%mm5\n\t" - "punpckldq %%mm5,%%mm5\n\t" - "pfmul %%mm5,%%mm4\n\t" - "pfadd %%mm4,%%mm3\n\t" - "movq %%mm2,%%mm4\n\t" - "pfadd %%mm3,%%mm4\n\t" - "movq %%mm7,%%mm5\n\t" - "punpckldq "MANGLE(tfcos36)"+0,%%mm5\n\t" - "pfmul %%mm5,%%mm4\n\t" - "movq %%mm4,%%mm5\n\t" - "pfacc %%mm5,%%mm5\n\t" - "movd 108(%%edx),%%mm6\n\t" - "punpckldq 104(%%edx),%%mm6\n\t" - "pfmul %%mm6,%%mm5\n\t" + "movq 24(%%eax),%%mm0\n\t" + "movq 48(%%eax),%%mm1\n\t" + "movd "MANGLE(COS9)"+12,%%mm2\n\t" + "punpckldq %%mm2,%%mm2\n\t" + "movd "MANGLE(COS9)"+24,%%mm3\n\t" + "punpckldq %%mm3,%%mm3\n\t" + "pfmul %%mm2,%%mm0\n\t" + "pfmul %%mm3,%%mm1\n\t" + "pushl %%eax\n\t" + "movl $1,%%eax\n\t" + "movd %%eax,%%mm7\n\t" + "pi2fd %%mm7,%%mm7\n\t" + "popl %%eax\n\t" + "movq 8(%%eax),%%mm2\n\t" + "movd "MANGLE(COS9)"+4,%%mm3\n\t" + "punpckldq %%mm3,%%mm3\n\t" + "pfmul %%mm3,%%mm2\n\t" + "pfadd %%mm0,%%mm2\n\t" + "movq 40(%%eax),%%mm3\n\t" + "movd "MANGLE(COS9)"+20,%%mm4\n\t" + "punpckldq %%mm4,%%mm4\n\t" + "pfmul %%mm4,%%mm3\n\t" + "pfadd %%mm3,%%mm2\n\t" + "movq 56(%%eax),%%mm3\n\t" + "movd "MANGLE(COS9)"+28,%%mm4\n\t" + "punpckldq %%mm4,%%mm4\n\t" + "pfmul %%mm4,%%mm3\n\t" + "pfadd %%mm3,%%mm2\n\t" + "movq (%%eax),%%mm3\n\t" + "movq 16(%%eax),%%mm4\n\t" + "movd "MANGLE(COS9)"+8,%%mm5\n\t" + "punpckldq %%mm5,%%mm5\n\t" + "pfmul %%mm5,%%mm4\n\t" + "pfadd %%mm4,%%mm3\n\t" + "movq 32(%%eax),%%mm4\n\t" + "movd "MANGLE(COS9)"+16,%%mm5\n\t" + "punpckldq %%mm5,%%mm5\n\t" + "pfmul %%mm5,%%mm4\n\t" + "pfadd %%mm4,%%mm3\n\t" + "pfadd %%mm1,%%mm3\n\t" + "movq 64(%%eax),%%mm4\n\t" + "movd "MANGLE(COS9)"+32,%%mm5\n\t" + "punpckldq %%mm5,%%mm5\n\t" + "pfmul %%mm5,%%mm4\n\t" + "pfadd %%mm4,%%mm3\n\t" + "movq %%mm2,%%mm4\n\t" + "pfadd %%mm3,%%mm4\n\t" + "movq %%mm7,%%mm5\n\t" + "punpckldq "MANGLE(tfcos36)"+0,%%mm5\n\t" + "pfmul %%mm5,%%mm4\n\t" + "movq %%mm4,%%mm5\n\t" + "pfacc %%mm5,%%mm5\n\t" + "movd 108(%%edx),%%mm6\n\t" + "punpckldq 104(%%edx),%%mm6\n\t" + "pfmul %%mm6,%%mm5\n\t" #ifdef DCT36_OPTIMIZE_FOR_K7 - "pswapd %%mm5,%%mm5\n\t" - "movq %%mm5,32(%%ecx)\n\t" + "pswapd %%mm5,%%mm5\n\t" + "movq %%mm5,32(%%ecx)\n\t" #else - "movd %%mm5,36(%%ecx)\n\t" - "psrlq $32,%%mm5\n\t" - "movd %%mm5,32(%%ecx)\n\t" + "movd %%mm5,36(%%ecx)\n\t" + "psrlq $32,%%mm5\n\t" + "movd %%mm5,32(%%ecx)\n\t" #endif - "movq %%mm4,%%mm6\n\t" - "punpckldq %%mm6,%%mm5\n\t" - "pfsub %%mm6,%%mm5\n\t" - "punpckhdq %%mm5,%%mm5\n\t" - "movd 32(%%edx),%%mm6\n\t" - "punpckldq 36(%%edx),%%mm6\n\t" - "pfmul %%mm6,%%mm5\n\t" - "movd 32(%%esi),%%mm6\n\t" - "punpckldq 36(%%esi),%%mm6\n\t" - "pfadd %%mm6,%%mm5\n\t" - "movd %%mm5,1024(%%ebx)\n\t" - "psrlq $32,%%mm5\n\t" - "movd %%mm5,1152(%%ebx)\n\t" - "movq %%mm3,%%mm4\n\t" - "pfsub %%mm2,%%mm4\n\t" - "movq %%mm7,%%mm5\n\t" - "punpckldq "MANGLE(tfcos36)"+32,%%mm5\n\t" - "pfmul %%mm5,%%mm4\n\t" - "movq %%mm4,%%mm5\n\t" - "pfacc %%mm5,%%mm5\n\t" - "movd 140(%%edx),%%mm6\n\t" - "punpckldq 72(%%edx),%%mm6\n\t" - "pfmul %%mm6,%%mm5\n\t" - "movd %%mm5,68(%%ecx)\n\t" - "psrlq $32,%%mm5\n\t" - "movd %%mm5,0(%%ecx)\n\t" - "movq %%mm4,%%mm6\n\t" - "punpckldq %%mm6,%%mm5\n\t" - "pfsub %%mm6,%%mm5\n\t" - "punpckhdq %%mm5,%%mm5\n\t" - "movd 0(%%edx),%%mm6\n\t" - "punpckldq 68(%%edx),%%mm6\n\t" - "pfmul %%mm6,%%mm5\n\t" - "movd 0(%%esi),%%mm6\n\t" - "punpckldq 68(%%esi),%%mm6\n\t" - "pfadd %%mm6,%%mm5\n\t" - "movd %%mm5,0(%%ebx)\n\t" - "psrlq $32,%%mm5\n\t" - "movd %%mm5,2176(%%ebx)\n\t" - "movq 8(%%eax),%%mm2\n\t" - "movq 40(%%eax),%%mm3\n\t" - "pfsub %%mm3,%%mm2\n\t" - "movq 56(%%eax),%%mm3\n\t" - "pfsub %%mm3,%%mm2\n\t" - "movd "MANGLE(COS9)"+12,%%mm3\n\t" - "punpckldq %%mm3,%%mm3\n\t" - "pfmul %%mm3,%%mm2\n\t" - "movq 16(%%eax),%%mm3\n\t" - "movq 32(%%eax),%%mm4\n\t" - "pfsub %%mm4,%%mm3\n\t" - "movq 64(%%eax),%%mm4\n\t" - "pfsub %%mm4,%%mm3\n\t" - "movd "MANGLE(COS9)"+24,%%mm4\n\t" - "punpckldq %%mm4,%%mm4\n\t" - "pfmul %%mm4,%%mm3\n\t" - "movq 48(%%eax),%%mm4\n\t" - "pfsub %%mm4,%%mm3\n\t" - "movq (%%eax),%%mm4\n\t" - "pfadd %%mm4,%%mm3\n\t" - "movq %%mm2,%%mm4\n\t" - "pfadd %%mm3,%%mm4\n\t" - "movq %%mm7,%%mm5\n\t" - "punpckldq "MANGLE(tfcos36)"+4,%%mm5\n\t" - "pfmul %%mm5,%%mm4\n\t" - "movq %%mm4,%%mm5\n\t" - "pfacc %%mm5,%%mm5\n\t" - "movd 112(%%edx),%%mm6\n\t" - "punpckldq 100(%%edx),%%mm6\n\t" - "pfmul %%mm6,%%mm5\n\t" - "movd %%mm5,40(%%ecx)\n\t" - "psrlq $32,%%mm5\n\t" - "movd %%mm5,28(%%ecx)\n\t" - "movq %%mm4,%%mm6\n\t" - "punpckldq %%mm6,%%mm5\n\t" - "pfsub %%mm6,%%mm5\n\t" - "punpckhdq %%mm5,%%mm5\n\t" - "movd 28(%%edx),%%mm6\n\t" - "punpckldq 40(%%edx),%%mm6\n\t" - "pfmul %%mm6,%%mm5\n\t" - "movd 28(%%esi),%%mm6\n\t" - "punpckldq 40(%%esi),%%mm6\n\t" - "pfadd %%mm6,%%mm5\n\t" - "movd %%mm5,896(%%ebx)\n\t" - "psrlq $32,%%mm5\n\t" - "movd %%mm5,1280(%%ebx)\n\t" - "movq %%mm3,%%mm4\n\t" - "pfsub %%mm2,%%mm4\n\t" - "movq %%mm7,%%mm5\n\t" - "punpckldq "MANGLE(tfcos36)"+28,%%mm5\n\t" - "pfmul %%mm5,%%mm4\n\t" - "movq %%mm4,%%mm5\n\t" - "pfacc %%mm5,%%mm5\n\t" - "movd 136(%%edx),%%mm6\n\t" - "punpckldq 76(%%edx),%%mm6\n\t" - "pfmul %%mm6,%%mm5\n\t" - "movd %%mm5,64(%%ecx)\n\t" - "psrlq $32,%%mm5\n\t" - "movd %%mm5,4(%%ecx)\n\t" - "movq %%mm4,%%mm6\n\t" - "punpckldq %%mm6,%%mm5\n\t" - "pfsub %%mm6,%%mm5\n\t" - "punpckhdq %%mm5,%%mm5\n\t" - "movd 4(%%edx),%%mm6\n\t" - "punpckldq 64(%%edx),%%mm6\n\t" - "pfmul %%mm6,%%mm5\n\t" - "movd 4(%%esi),%%mm6\n\t" - "punpckldq 64(%%esi),%%mm6\n\t" - "pfadd %%mm6,%%mm5\n\t" - "movd %%mm5,128(%%ebx)\n\t" - "psrlq $32,%%mm5\n\t" - "movd %%mm5,2048(%%ebx)\n\t" + "movq %%mm4,%%mm6\n\t" + "punpckldq %%mm6,%%mm5\n\t" + "pfsub %%mm6,%%mm5\n\t" + "punpckhdq %%mm5,%%mm5\n\t" + "movd 32(%%edx),%%mm6\n\t" + "punpckldq 36(%%edx),%%mm6\n\t" + "pfmul %%mm6,%%mm5\n\t" + "movd 32(%%esi),%%mm6\n\t" + "punpckldq 36(%%esi),%%mm6\n\t" + "pfadd %%mm6,%%mm5\n\t" + "movd %%mm5,1024(%%ebx)\n\t" + "psrlq $32,%%mm5\n\t" + "movd %%mm5,1152(%%ebx)\n\t" + "movq %%mm3,%%mm4\n\t" + "pfsub %%mm2,%%mm4\n\t" + "movq %%mm7,%%mm5\n\t" + "punpckldq "MANGLE(tfcos36)"+32,%%mm5\n\t" + "pfmul %%mm5,%%mm4\n\t" + "movq %%mm4,%%mm5\n\t" + "pfacc %%mm5,%%mm5\n\t" + "movd 140(%%edx),%%mm6\n\t" + "punpckldq 72(%%edx),%%mm6\n\t" + "pfmul %%mm6,%%mm5\n\t" + "movd %%mm5,68(%%ecx)\n\t" + "psrlq $32,%%mm5\n\t" + "movd %%mm5,0(%%ecx)\n\t" + "movq %%mm4,%%mm6\n\t" + "punpckldq %%mm6,%%mm5\n\t" + "pfsub %%mm6,%%mm5\n\t" + "punpckhdq %%mm5,%%mm5\n\t" + "movd 0(%%edx),%%mm6\n\t" + "punpckldq 68(%%edx),%%mm6\n\t" + "pfmul %%mm6,%%mm5\n\t" + "movd 0(%%esi),%%mm6\n\t" + "punpckldq 68(%%esi),%%mm6\n\t" + "pfadd %%mm6,%%mm5\n\t" + "movd %%mm5,0(%%ebx)\n\t" + "psrlq $32,%%mm5\n\t" + "movd %%mm5,2176(%%ebx)\n\t" + "movq 8(%%eax),%%mm2\n\t" + "movq 40(%%eax),%%mm3\n\t" + "pfsub %%mm3,%%mm2\n\t" + "movq 56(%%eax),%%mm3\n\t" + "pfsub %%mm3,%%mm2\n\t" + "movd "MANGLE(COS9)"+12,%%mm3\n\t" + "punpckldq %%mm3,%%mm3\n\t" + "pfmul %%mm3,%%mm2\n\t" + "movq 16(%%eax),%%mm3\n\t" + "movq 32(%%eax),%%mm4\n\t" + "pfsub %%mm4,%%mm3\n\t" + "movq 64(%%eax),%%mm4\n\t" + "pfsub %%mm4,%%mm3\n\t" + "movd "MANGLE(COS9)"+24,%%mm4\n\t" + "punpckldq %%mm4,%%mm4\n\t" + "pfmul %%mm4,%%mm3\n\t" + "movq 48(%%eax),%%mm4\n\t" + "pfsub %%mm4,%%mm3\n\t" + "movq (%%eax),%%mm4\n\t" + "pfadd %%mm4,%%mm3\n\t" + "movq %%mm2,%%mm4\n\t" + "pfadd %%mm3,%%mm4\n\t" + "movq %%mm7,%%mm5\n\t" + "punpckldq "MANGLE(tfcos36)"+4,%%mm5\n\t" + "pfmul %%mm5,%%mm4\n\t" + "movq %%mm4,%%mm5\n\t" + "pfacc %%mm5,%%mm5\n\t" + "movd 112(%%edx),%%mm6\n\t" + "punpckldq 100(%%edx),%%mm6\n\t" + "pfmul %%mm6,%%mm5\n\t" + "movd %%mm5,40(%%ecx)\n\t" + "psrlq $32,%%mm5\n\t" + "movd %%mm5,28(%%ecx)\n\t" + "movq %%mm4,%%mm6\n\t" + "punpckldq %%mm6,%%mm5\n\t" + "pfsub %%mm6,%%mm5\n\t" + "punpckhdq %%mm5,%%mm5\n\t" + "movd 28(%%edx),%%mm6\n\t" + "punpckldq 40(%%edx),%%mm6\n\t" + "pfmul %%mm6,%%mm5\n\t" + "movd 28(%%esi),%%mm6\n\t" + "punpckldq 40(%%esi),%%mm6\n\t" + "pfadd %%mm6,%%mm5\n\t" + "movd %%mm5,896(%%ebx)\n\t" + "psrlq $32,%%mm5\n\t" + "movd %%mm5,1280(%%ebx)\n\t" + "movq %%mm3,%%mm4\n\t" + "pfsub %%mm2,%%mm4\n\t" + "movq %%mm7,%%mm5\n\t" + "punpckldq "MANGLE(tfcos36)"+28,%%mm5\n\t" + "pfmul %%mm5,%%mm4\n\t" + "movq %%mm4,%%mm5\n\t" + "pfacc %%mm5,%%mm5\n\t" + "movd 136(%%edx),%%mm6\n\t" + "punpckldq 76(%%edx),%%mm6\n\t" + "pfmul %%mm6,%%mm5\n\t" + "movd %%mm5,64(%%ecx)\n\t" + "psrlq $32,%%mm5\n\t" + "movd %%mm5,4(%%ecx)\n\t" + "movq %%mm4,%%mm6\n\t" + "punpckldq %%mm6,%%mm5\n\t" + "pfsub %%mm6,%%mm5\n\t" + "punpckhdq %%mm5,%%mm5\n\t" + "movd 4(%%edx),%%mm6\n\t" + "punpckldq 64(%%edx),%%mm6\n\t" + "pfmul %%mm6,%%mm5\n\t" + "movd 4(%%esi),%%mm6\n\t" + "punpckldq 64(%%esi),%%mm6\n\t" + "pfadd %%mm6,%%mm5\n\t" + "movd %%mm5,128(%%ebx)\n\t" + "psrlq $32,%%mm5\n\t" + "movd %%mm5,2048(%%ebx)\n\t" - "movq 8(%%eax),%%mm2\n\t" - "movd "MANGLE(COS9)"+20,%%mm3\n\t" - "punpckldq %%mm3,%%mm3\n\t" - "pfmul %%mm3,%%mm2\n\t" - "pfsub %%mm0,%%mm2\n\t" - "movq 40(%%eax),%%mm3\n\t" - "movd "MANGLE(COS9)"+28,%%mm4\n\t" - "punpckldq %%mm4,%%mm4\n\t" - "pfmul %%mm4,%%mm3\n\t" - "pfsub %%mm3,%%mm2\n\t" - "movq 56(%%eax),%%mm3\n\t" - "movd "MANGLE(COS9)"+4,%%mm4\n\t" - "punpckldq %%mm4,%%mm4\n\t" - "pfmul %%mm4,%%mm3\n\t" - "pfadd %%mm3,%%mm2\n\t" - "movq (%%eax),%%mm3\n\t" - "movq 16(%%eax),%%mm4\n\t" - "movd "MANGLE(COS9)"+32,%%mm5\n\t" - "punpckldq %%mm5,%%mm5\n\t" - "pfmul %%mm5,%%mm4\n\t" - "pfsub %%mm4,%%mm3\n\t" - "movq 32(%%eax),%%mm4\n\t" - "movd "MANGLE(COS9)"+8,%%mm5\n\t" - "punpckldq %%mm5,%%mm5\n\t" - "pfmul %%mm5,%%mm4\n\t" - "pfsub %%mm4,%%mm3\n\t" - "pfadd %%mm1,%%mm3\n\t" - "movq 64(%%eax),%%mm4\n\t" - "movd "MANGLE(COS9)"+16,%%mm5\n\t" - "punpckldq %%mm5,%%mm5\n\t" - "pfmul %%mm5,%%mm4\n\t" - "pfadd %%mm4,%%mm3\n\t" - "movq %%mm2,%%mm4\n\t" - "pfadd %%mm3,%%mm4\n\t" - "movq %%mm7,%%mm5\n\t" - "punpckldq "MANGLE(tfcos36)"+8,%%mm5\n\t" - "pfmul %%mm5,%%mm4\n\t" - "movq %%mm4,%%mm5\n\t" - "pfacc %%mm5,%%mm5\n\t" - "movd 116(%%edx),%%mm6\n\t" - "punpckldq 96(%%edx),%%mm6\n\t" - "pfmul %%mm6,%%mm5\n\t" - "movd %%mm5,44(%%ecx)\n\t" - "psrlq $32,%%mm5\n\t" - "movd %%mm5,24(%%ecx)\n\t" - "movq %%mm4,%%mm6\n\t" - "punpckldq %%mm6,%%mm5\n\t" - "pfsub %%mm6,%%mm5\n\t" - "punpckhdq %%mm5,%%mm5\n\t" - "movd 24(%%edx),%%mm6\n\t" - "punpckldq 44(%%edx),%%mm6\n\t" - "pfmul %%mm6,%%mm5\n\t" - "movd 24(%%esi),%%mm6\n\t" - "punpckldq 44(%%esi),%%mm6\n\t" - "pfadd %%mm6,%%mm5\n\t" - "movd %%mm5,768(%%ebx)\n\t" - "psrlq $32,%%mm5\n\t" - "movd %%mm5,1408(%%ebx)\n\t" - "movq %%mm3,%%mm4\n\t" - "pfsub %%mm2,%%mm4\n\t" - "movq %%mm7,%%mm5\n\t" - "punpckldq "MANGLE(tfcos36)"+24,%%mm5\n\t" - "pfmul %%mm5,%%mm4\n\t" - "movq %%mm4,%%mm5\n\t" - "pfacc %%mm5,%%mm5\n\t" - "movd 132(%%edx),%%mm6\n\t" - "punpckldq 80(%%edx),%%mm6\n\t" - "pfmul %%mm6,%%mm5\n\t" - "movd %%mm5,60(%%ecx)\n\t" - "psrlq $32,%%mm5\n\t" - "movd %%mm5,8(%%ecx)\n\t" - "movq %%mm4,%%mm6\n\t" - "punpckldq %%mm6,%%mm5\n\t" - "pfsub %%mm6,%%mm5\n\t" - "punpckhdq %%mm5,%%mm5\n\t" - "movd 8(%%edx),%%mm6\n\t" - "punpckldq 60(%%edx),%%mm6\n\t" - "pfmul %%mm6,%%mm5\n\t" - "movd 8(%%esi),%%mm6\n\t" - "punpckldq 60(%%esi),%%mm6\n\t" - "pfadd %%mm6,%%mm5\n\t" - "movd %%mm5,256(%%ebx)\n\t" - "psrlq $32,%%mm5\n\t" - "movd %%mm5,1920(%%ebx)\n\t" - "movq 8(%%eax),%%mm2\n\t" - "movd "MANGLE(COS9)"+28,%%mm3\n\t" - "punpckldq %%mm3,%%mm3\n\t" - "pfmul %%mm3,%%mm2\n\t" - "pfsub %%mm0,%%mm2\n\t" - "movq 40(%%eax),%%mm3\n\t" - "movd "MANGLE(COS9)"+4,%%mm4\n\t" - "punpckldq %%mm4,%%mm4\n\t" - "pfmul %%mm4,%%mm3\n\t" - "pfadd %%mm3,%%mm2\n\t" - "movq 56(%%eax),%%mm3\n\t" - "movd "MANGLE(COS9)"+20,%%mm4\n\t" - "punpckldq %%mm4,%%mm4\n\t" - "pfmul %%mm4,%%mm3\n\t" - "pfsub %%mm3,%%mm2\n\t" - "movq (%%eax),%%mm3\n\t" - "movq 16(%%eax),%%mm4\n\t" - "movd "MANGLE(COS9)"+16,%%mm5\n\t" - "punpckldq %%mm5,%%mm5\n\t" - "pfmul %%mm5,%%mm4\n\t" - "pfsub %%mm4,%%mm3\n\t" - "movq 32(%%eax),%%mm4\n\t" - "movd "MANGLE(COS9)"+32,%%mm5\n\t" - "punpckldq %%mm5,%%mm5\n\t" - "pfmul %%mm5,%%mm4\n\t" - "pfadd %%mm4,%%mm3\n\t" - "pfadd %%mm1,%%mm3\n\t" - "movq 64(%%eax),%%mm4\n\t" - "movd "MANGLE(COS9)"+8,%%mm5\n\t" - "punpckldq %%mm5,%%mm5\n\t" - "pfmul %%mm5,%%mm4\n\t" - "pfsub %%mm4,%%mm3\n\t" - "movq %%mm2,%%mm4\n\t" - "pfadd %%mm3,%%mm4\n\t" - "movq %%mm7,%%mm5\n\t" - "punpckldq "MANGLE(tfcos36)"+12,%%mm5\n\t" - "pfmul %%mm5,%%mm4\n\t" - "movq %%mm4,%%mm5\n\t" - "pfacc %%mm5,%%mm5\n\t" - "movd 120(%%edx),%%mm6\n\t" - "punpckldq 92(%%edx),%%mm6\n\t" - "pfmul %%mm6,%%mm5\n\t" - "movd %%mm5,48(%%ecx)\n\t" - "psrlq $32,%%mm5\n\t" - "movd %%mm5,20(%%ecx)\n\t" - "movq %%mm4,%%mm6\n\t" - "punpckldq %%mm6,%%mm5\n\t" - "pfsub %%mm6,%%mm5\n\t" - "punpckhdq %%mm5,%%mm5\n\t" - "movd 20(%%edx),%%mm6\n\t" - "punpckldq 48(%%edx),%%mm6\n\t" - "pfmul %%mm6,%%mm5\n\t" - "movd 20(%%esi),%%mm6\n\t" - "punpckldq 48(%%esi),%%mm6\n\t" - "pfadd %%mm6,%%mm5\n\t" - "movd %%mm5,640(%%ebx)\n\t" - "psrlq $32,%%mm5\n\t" - "movd %%mm5,1536(%%ebx)\n\t" - "movq %%mm3,%%mm4\n\t" - "pfsub %%mm2,%%mm4\n\t" - "movq %%mm7,%%mm5\n\t" - "punpckldq "MANGLE(tfcos36)"+20,%%mm5\n\t" - "pfmul %%mm5,%%mm4\n\t" - "movq %%mm4,%%mm5\n\t" - "pfacc %%mm5,%%mm5\n\t" - "movd 128(%%edx),%%mm6\n\t" - "punpckldq 84(%%edx),%%mm6\n\t" - "pfmul %%mm6,%%mm5\n\t" - "movd %%mm5,56(%%ecx)\n\t" - "psrlq $32,%%mm5\n\t" - "movd %%mm5,12(%%ecx)\n\t" - "movq %%mm4,%%mm6\n\t" - "punpckldq %%mm6,%%mm5\n\t" - "pfsub %%mm6,%%mm5\n\t" - "punpckhdq %%mm5,%%mm5\n\t" - "movd 12(%%edx),%%mm6\n\t" - "punpckldq 56(%%edx),%%mm6\n\t" - "pfmul %%mm6,%%mm5\n\t" - "movd 12(%%esi),%%mm6\n\t" - "punpckldq 56(%%esi),%%mm6\n\t" - "pfadd %%mm6,%%mm5\n\t" - "movd %%mm5,384(%%ebx)\n\t" - "psrlq $32,%%mm5\n\t" - "movd %%mm5,1792(%%ebx)\n\t" + "movq 8(%%eax),%%mm2\n\t" + "movd "MANGLE(COS9)"+20,%%mm3\n\t" + "punpckldq %%mm3,%%mm3\n\t" + "pfmul %%mm3,%%mm2\n\t" + "pfsub %%mm0,%%mm2\n\t" + "movq 40(%%eax),%%mm3\n\t" + "movd "MANGLE(COS9)"+28,%%mm4\n\t" + "punpckldq %%mm4,%%mm4\n\t" + "pfmul %%mm4,%%mm3\n\t" + "pfsub %%mm3,%%mm2\n\t" + "movq 56(%%eax),%%mm3\n\t" + "movd "MANGLE(COS9)"+4,%%mm4\n\t" + "punpckldq %%mm4,%%mm4\n\t" + "pfmul %%mm4,%%mm3\n\t" + "pfadd %%mm3,%%mm2\n\t" + "movq (%%eax),%%mm3\n\t" + "movq 16(%%eax),%%mm4\n\t" + "movd "MANGLE(COS9)"+32,%%mm5\n\t" + "punpckldq %%mm5,%%mm5\n\t" + "pfmul %%mm5,%%mm4\n\t" + "pfsub %%mm4,%%mm3\n\t" + "movq 32(%%eax),%%mm4\n\t" + "movd "MANGLE(COS9)"+8,%%mm5\n\t" + "punpckldq %%mm5,%%mm5\n\t" + "pfmul %%mm5,%%mm4\n\t" + "pfsub %%mm4,%%mm3\n\t" + "pfadd %%mm1,%%mm3\n\t" + "movq 64(%%eax),%%mm4\n\t" + "movd "MANGLE(COS9)"+16,%%mm5\n\t" + "punpckldq %%mm5,%%mm5\n\t" + "pfmul %%mm5,%%mm4\n\t" + "pfadd %%mm4,%%mm3\n\t" + "movq %%mm2,%%mm4\n\t" + "pfadd %%mm3,%%mm4\n\t" + "movq %%mm7,%%mm5\n\t" + "punpckldq "MANGLE(tfcos36)"+8,%%mm5\n\t" + "pfmul %%mm5,%%mm4\n\t" + "movq %%mm4,%%mm5\n\t" + "pfacc %%mm5,%%mm5\n\t" + "movd 116(%%edx),%%mm6\n\t" + "punpckldq 96(%%edx),%%mm6\n\t" + "pfmul %%mm6,%%mm5\n\t" + "movd %%mm5,44(%%ecx)\n\t" + "psrlq $32,%%mm5\n\t" + "movd %%mm5,24(%%ecx)\n\t" + "movq %%mm4,%%mm6\n\t" + "punpckldq %%mm6,%%mm5\n\t" + "pfsub %%mm6,%%mm5\n\t" + "punpckhdq %%mm5,%%mm5\n\t" + "movd 24(%%edx),%%mm6\n\t" + "punpckldq 44(%%edx),%%mm6\n\t" + "pfmul %%mm6,%%mm5\n\t" + "movd 24(%%esi),%%mm6\n\t" + "punpckldq 44(%%esi),%%mm6\n\t" + "pfadd %%mm6,%%mm5\n\t" + "movd %%mm5,768(%%ebx)\n\t" + "psrlq $32,%%mm5\n\t" + "movd %%mm5,1408(%%ebx)\n\t" + "movq %%mm3,%%mm4\n\t" + "pfsub %%mm2,%%mm4\n\t" + "movq %%mm7,%%mm5\n\t" + "punpckldq "MANGLE(tfcos36)"+24,%%mm5\n\t" + "pfmul %%mm5,%%mm4\n\t" + "movq %%mm4,%%mm5\n\t" + "pfacc %%mm5,%%mm5\n\t" + "movd 132(%%edx),%%mm6\n\t" + "punpckldq 80(%%edx),%%mm6\n\t" + "pfmul %%mm6,%%mm5\n\t" + "movd %%mm5,60(%%ecx)\n\t" + "psrlq $32,%%mm5\n\t" + "movd %%mm5,8(%%ecx)\n\t" + "movq %%mm4,%%mm6\n\t" + "punpckldq %%mm6,%%mm5\n\t" + "pfsub %%mm6,%%mm5\n\t" + "punpckhdq %%mm5,%%mm5\n\t" + "movd 8(%%edx),%%mm6\n\t" + "punpckldq 60(%%edx),%%mm6\n\t" + "pfmul %%mm6,%%mm5\n\t" + "movd 8(%%esi),%%mm6\n\t" + "punpckldq 60(%%esi),%%mm6\n\t" + "pfadd %%mm6,%%mm5\n\t" + "movd %%mm5,256(%%ebx)\n\t" + "psrlq $32,%%mm5\n\t" + "movd %%mm5,1920(%%ebx)\n\t" + "movq 8(%%eax),%%mm2\n\t" + "movd "MANGLE(COS9)"+28,%%mm3\n\t" + "punpckldq %%mm3,%%mm3\n\t" + "pfmul %%mm3,%%mm2\n\t" + "pfsub %%mm0,%%mm2\n\t" + "movq 40(%%eax),%%mm3\n\t" + "movd "MANGLE(COS9)"+4,%%mm4\n\t" + "punpckldq %%mm4,%%mm4\n\t" + "pfmul %%mm4,%%mm3\n\t" + "pfadd %%mm3,%%mm2\n\t" + "movq 56(%%eax),%%mm3\n\t" + "movd "MANGLE(COS9)"+20,%%mm4\n\t" + "punpckldq %%mm4,%%mm4\n\t" + "pfmul %%mm4,%%mm3\n\t" + "pfsub %%mm3,%%mm2\n\t" + "movq (%%eax),%%mm3\n\t" + "movq 16(%%eax),%%mm4\n\t" + "movd "MANGLE(COS9)"+16,%%mm5\n\t" + "punpckldq %%mm5,%%mm5\n\t" + "pfmul %%mm5,%%mm4\n\t" + "pfsub %%mm4,%%mm3\n\t" + "movq 32(%%eax),%%mm4\n\t" + "movd "MANGLE(COS9)"+32,%%mm5\n\t" + "punpckldq %%mm5,%%mm5\n\t" + "pfmul %%mm5,%%mm4\n\t" + "pfadd %%mm4,%%mm3\n\t" + "pfadd %%mm1,%%mm3\n\t" + "movq 64(%%eax),%%mm4\n\t" + "movd "MANGLE(COS9)"+8,%%mm5\n\t" + "punpckldq %%mm5,%%mm5\n\t" + "pfmul %%mm5,%%mm4\n\t" + "pfsub %%mm4,%%mm3\n\t" + "movq %%mm2,%%mm4\n\t" + "pfadd %%mm3,%%mm4\n\t" + "movq %%mm7,%%mm5\n\t" + "punpckldq "MANGLE(tfcos36)"+12,%%mm5\n\t" + "pfmul %%mm5,%%mm4\n\t" + "movq %%mm4,%%mm5\n\t" + "pfacc %%mm5,%%mm5\n\t" + "movd 120(%%edx),%%mm6\n\t" + "punpckldq 92(%%edx),%%mm6\n\t" + "pfmul %%mm6,%%mm5\n\t" + "movd %%mm5,48(%%ecx)\n\t" + "psrlq $32,%%mm5\n\t" + "movd %%mm5,20(%%ecx)\n\t" + "movq %%mm4,%%mm6\n\t" + "punpckldq %%mm6,%%mm5\n\t" + "pfsub %%mm6,%%mm5\n\t" + "punpckhdq %%mm5,%%mm5\n\t" + "movd 20(%%edx),%%mm6\n\t" + "punpckldq 48(%%edx),%%mm6\n\t" + "pfmul %%mm6,%%mm5\n\t" + "movd 20(%%esi),%%mm6\n\t" + "punpckldq 48(%%esi),%%mm6\n\t" + "pfadd %%mm6,%%mm5\n\t" + "movd %%mm5,640(%%ebx)\n\t" + "psrlq $32,%%mm5\n\t" + "movd %%mm5,1536(%%ebx)\n\t" + "movq %%mm3,%%mm4\n\t" + "pfsub %%mm2,%%mm4\n\t" + "movq %%mm7,%%mm5\n\t" + "punpckldq "MANGLE(tfcos36)"+20,%%mm5\n\t" + "pfmul %%mm5,%%mm4\n\t" + "movq %%mm4,%%mm5\n\t" + "pfacc %%mm5,%%mm5\n\t" + "movd 128(%%edx),%%mm6\n\t" + "punpckldq 84(%%edx),%%mm6\n\t" + "pfmul %%mm6,%%mm5\n\t" + "movd %%mm5,56(%%ecx)\n\t" + "psrlq $32,%%mm5\n\t" + "movd %%mm5,12(%%ecx)\n\t" + "movq %%mm4,%%mm6\n\t" + "punpckldq %%mm6,%%mm5\n\t" + "pfsub %%mm6,%%mm5\n\t" + "punpckhdq %%mm5,%%mm5\n\t" + "movd 12(%%edx),%%mm6\n\t" + "punpckldq 56(%%edx),%%mm6\n\t" + "pfmul %%mm6,%%mm5\n\t" + "movd 12(%%esi),%%mm6\n\t" + "punpckldq 56(%%esi),%%mm6\n\t" + "pfadd %%mm6,%%mm5\n\t" + "movd %%mm5,384(%%ebx)\n\t" + "psrlq $32,%%mm5\n\t" + "movd %%mm5,1792(%%ebx)\n\t" - "movq (%%eax),%%mm4\n\t" - "movq 16(%%eax),%%mm3\n\t" - "pfsub %%mm3,%%mm4\n\t" - "movq 32(%%eax),%%mm3\n\t" - "pfadd %%mm3,%%mm4\n\t" - "movq 48(%%eax),%%mm3\n\t" - "pfsub %%mm3,%%mm4\n\t" - "movq 64(%%eax),%%mm3\n\t" - "pfadd %%mm3,%%mm4\n\t" - "movq %%mm7,%%mm5\n\t" - "punpckldq "MANGLE(tfcos36)"+16,%%mm5\n\t" - "pfmul %%mm5,%%mm4\n\t" - "movq %%mm4,%%mm5\n\t" - "pfacc %%mm5,%%mm5\n\t" - "movd 124(%%edx),%%mm6\n\t" - "punpckldq 88(%%edx),%%mm6\n\t" - "pfmul %%mm6,%%mm5\n\t" - "movd %%mm5,52(%%ecx)\n\t" - "psrlq $32,%%mm5\n\t" - "movd %%mm5,16(%%ecx)\n\t" - "movq %%mm4,%%mm6\n\t" - "punpckldq %%mm6,%%mm5\n\t" - "pfsub %%mm6,%%mm5\n\t" - "punpckhdq %%mm5,%%mm5\n\t" - "movd 16(%%edx),%%mm6\n\t" - "punpckldq 52(%%edx),%%mm6\n\t" - "pfmul %%mm6,%%mm5\n\t" - "movd 16(%%esi),%%mm6\n\t" - "punpckldq 52(%%esi),%%mm6\n\t" - "pfadd %%mm6,%%mm5\n\t" - "movd %%mm5,512(%%ebx)\n\t" - "psrlq $32,%%mm5\n\t" - "movd %%mm5,1664(%%ebx)\n\t" + "movq (%%eax),%%mm4\n\t" + "movq 16(%%eax),%%mm3\n\t" + "pfsub %%mm3,%%mm4\n\t" + "movq 32(%%eax),%%mm3\n\t" + "pfadd %%mm3,%%mm4\n\t" + "movq 48(%%eax),%%mm3\n\t" + "pfsub %%mm3,%%mm4\n\t" + "movq 64(%%eax),%%mm3\n\t" + "pfadd %%mm3,%%mm4\n\t" + "movq %%mm7,%%mm5\n\t" + "punpckldq "MANGLE(tfcos36)"+16,%%mm5\n\t" + "pfmul %%mm5,%%mm4\n\t" + "movq %%mm4,%%mm5\n\t" + "pfacc %%mm5,%%mm5\n\t" + "movd 124(%%edx),%%mm6\n\t" + "punpckldq 88(%%edx),%%mm6\n\t" + "pfmul %%mm6,%%mm5\n\t" + "movd %%mm5,52(%%ecx)\n\t" + "psrlq $32,%%mm5\n\t" + "movd %%mm5,16(%%ecx)\n\t" + "movq %%mm4,%%mm6\n\t" + "punpckldq %%mm6,%%mm5\n\t" + "pfsub %%mm6,%%mm5\n\t" + "punpckhdq %%mm5,%%mm5\n\t" + "movd 16(%%edx),%%mm6\n\t" + "punpckldq 52(%%edx),%%mm6\n\t" + "pfmul %%mm6,%%mm5\n\t" + "movd 16(%%esi),%%mm6\n\t" + "punpckldq 52(%%esi),%%mm6\n\t" + "pfadd %%mm6,%%mm5\n\t" + "movd %%mm5,512(%%ebx)\n\t" + "psrlq $32,%%mm5\n\t" + "movd %%mm5,1664(%%ebx)\n\t" - "femms\n\t" - : - : "a" (inbuf), "S" (o1), "c" (o2), "d" (wintab), "b" (tsbuf) - : "memory"); + "femms\n\t" + : + : "a" (inbuf), "S" (o1), "c" (o2), "d" (wintab), "b" (tsbuf) + : "memory"); }
--- a/mp3lib/dct64_3dnow.c Mon Apr 12 08:03:39 2010 +0000 +++ b/mp3lib/dct64_3dnow.c Mon Apr 12 10:56:17 2010 +0000 @@ -19,910 +19,910 @@ { char tmp[256]; __asm__ volatile( -" movl %2,%%eax\n\t" +" movl %2,%%eax\n\t" -" leal 128+%3,%%edx\n\t" -" movl %0,%%esi\n\t" -" movl %1,%%edi\n\t" -" movl $"MANGLE(costab_mmx)",%%ebx\n\t" -" leal %3,%%ecx\n\t" +" leal 128+%3,%%edx\n\t" +" movl %0,%%esi\n\t" +" movl %1,%%edi\n\t" +" movl $"MANGLE(costab_mmx)",%%ebx\n\t" +" leal %3,%%ecx\n\t" /* Phase 1*/ -" movq (%%eax), %%mm0\n\t" -" movq 8(%%eax), %%mm4\n\t" -" movq %%mm0, %%mm3\n\t" -" movq %%mm4, %%mm7\n\t" -" movq 120(%%eax), %%mm1\n\t" -" movq 112(%%eax), %%mm5\n\t" +" movq (%%eax), %%mm0\n\t" +" movq 8(%%eax), %%mm4\n\t" +" movq %%mm0, %%mm3\n\t" +" movq %%mm4, %%mm7\n\t" +" movq 120(%%eax), %%mm1\n\t" +" movq 112(%%eax), %%mm5\n\t" /* n.b.: pswapd*/ -" movq %%mm1, %%mm2\n\t" -" movq %%mm5, %%mm6\n\t" -" psrlq $32, %%mm1\n\t" -" psrlq $32, %%mm5\n\t" -" punpckldq %%mm2, %%mm1\n\t" -" punpckldq %%mm6, %%mm5\n\t" +" movq %%mm1, %%mm2\n\t" +" movq %%mm5, %%mm6\n\t" +" psrlq $32, %%mm1\n\t" +" psrlq $32, %%mm5\n\t" +" punpckldq %%mm2, %%mm1\n\t" +" punpckldq %%mm6, %%mm5\n\t" /**/ -" pfadd %%mm1, %%mm0\n\t" -" pfadd %%mm5, %%mm4\n\t" -" movq %%mm0, (%%edx)\n\t" -" movq %%mm4, 8(%%edx)\n\t" -" pfsub %%mm1, %%mm3\n\t" -" pfsub %%mm5, %%mm7\n\t" -" pfmul (%%ebx), %%mm3\n\t" -" pfmul 8(%%ebx), %%mm7\n\t" -" movd %%mm3, 124(%%edx)\n\t" -" movd %%mm7, 116(%%edx)\n\t" -" psrlq $32, %%mm3\n\t" -" psrlq $32, %%mm7\n\t" -" movd %%mm3, 120(%%edx)\n\t" -" movd %%mm7, 112(%%edx)\n\t" +" pfadd %%mm1, %%mm0\n\t" +" pfadd %%mm5, %%mm4\n\t" +" movq %%mm0, (%%edx)\n\t" +" movq %%mm4, 8(%%edx)\n\t" +" pfsub %%mm1, %%mm3\n\t" +" pfsub %%mm5, %%mm7\n\t" +" pfmul (%%ebx), %%mm3\n\t" +" pfmul 8(%%ebx), %%mm7\n\t" +" movd %%mm3, 124(%%edx)\n\t" +" movd %%mm7, 116(%%edx)\n\t" +" psrlq $32, %%mm3\n\t" +" psrlq $32, %%mm7\n\t" +" movd %%mm3, 120(%%edx)\n\t" +" movd %%mm7, 112(%%edx)\n\t" -" movq 16(%%eax), %%mm0\n\t" -" movq 24(%%eax), %%mm4\n\t" -" movq %%mm0, %%mm3\n\t" -" movq %%mm4, %%mm7\n\t" -" movq 104(%%eax), %%mm1\n\t" -" movq 96(%%eax), %%mm5\n\t" +" movq 16(%%eax), %%mm0\n\t" +" movq 24(%%eax), %%mm4\n\t" +" movq %%mm0, %%mm3\n\t" +" movq %%mm4, %%mm7\n\t" +" movq 104(%%eax), %%mm1\n\t" +" movq 96(%%eax), %%mm5\n\t" /* n.b.: pswapd*/ -" movq %%mm1, %%mm2\n\t" -" movq %%mm5, %%mm6\n\t" -" psrlq $32, %%mm1\n\t" -" psrlq $32, %%mm5\n\t" -" punpckldq %%mm2, %%mm1\n\t" -" punpckldq %%mm6, %%mm5\n\t" +" movq %%mm1, %%mm2\n\t" +" movq %%mm5, %%mm6\n\t" +" psrlq $32, %%mm1\n\t" +" psrlq $32, %%mm5\n\t" +" punpckldq %%mm2, %%mm1\n\t" +" punpckldq %%mm6, %%mm5\n\t" /**/ -" pfadd %%mm1, %%mm0\n\t" -" pfadd %%mm5, %%mm4\n\t" -" movq %%mm0, 16(%%edx)\n\t" -" movq %%mm4, 24(%%edx)\n\t" -" pfsub %%mm1, %%mm3\n\t" -" pfsub %%mm5, %%mm7\n\t" -" pfmul 16(%%ebx), %%mm3\n\t" -" pfmul 24(%%ebx), %%mm7\n\t" -" movd %%mm3, 108(%%edx)\n\t" -" movd %%mm7, 100(%%edx)\n\t" -" psrlq $32, %%mm3\n\t" -" psrlq $32, %%mm7\n\t" -" movd %%mm3, 104(%%edx)\n\t" -" movd %%mm7, 96(%%edx)\n\t" +" pfadd %%mm1, %%mm0\n\t" +" pfadd %%mm5, %%mm4\n\t" +" movq %%mm0, 16(%%edx)\n\t" +" movq %%mm4, 24(%%edx)\n\t" +" pfsub %%mm1, %%mm3\n\t" +" pfsub %%mm5, %%mm7\n\t" +" pfmul 16(%%ebx), %%mm3\n\t" +" pfmul 24(%%ebx), %%mm7\n\t" +" movd %%mm3, 108(%%edx)\n\t" +" movd %%mm7, 100(%%edx)\n\t" +" psrlq $32, %%mm3\n\t" +" psrlq $32, %%mm7\n\t" +" movd %%mm3, 104(%%edx)\n\t" +" movd %%mm7, 96(%%edx)\n\t" -" movq 32(%%eax), %%mm0\n\t" -" movq 40(%%eax), %%mm4\n\t" -" movq %%mm0, %%mm3\n\t" -" movq %%mm4, %%mm7\n\t" -" movq 88(%%eax), %%mm1\n\t" -" movq 80(%%eax), %%mm5\n\t" +" movq 32(%%eax), %%mm0\n\t" +" movq 40(%%eax), %%mm4\n\t" +" movq %%mm0, %%mm3\n\t" +" movq %%mm4, %%mm7\n\t" +" movq 88(%%eax), %%mm1\n\t" +" movq 80(%%eax), %%mm5\n\t" /* n.b.: pswapd*/ -" movq %%mm1, %%mm2\n\t" -" movq %%mm5, %%mm6\n\t" -" psrlq $32, %%mm1\n\t" -" psrlq $32, %%mm5\n\t" -" punpckldq %%mm2, %%mm1\n\t" -" punpckldq %%mm6, %%mm5\n\t" +" movq %%mm1, %%mm2\n\t" +" movq %%mm5, %%mm6\n\t" +" psrlq $32, %%mm1\n\t" +" psrlq $32, %%mm5\n\t" +" punpckldq %%mm2, %%mm1\n\t" +" punpckldq %%mm6, %%mm5\n\t" /**/ -" pfadd %%mm1, %%mm0\n\t" -" pfadd %%mm5, %%mm4\n\t" -" movq %%mm0, 32(%%edx)\n\t" -" movq %%mm4, 40(%%edx)\n\t" -" pfsub %%mm1, %%mm3\n\t" -" pfsub %%mm5, %%mm7\n\t" -" pfmul 32(%%ebx), %%mm3\n\t" -" pfmul 40(%%ebx), %%mm7\n\t" -" movd %%mm3, 92(%%edx)\n\t" -" movd %%mm7, 84(%%edx)\n\t" -" psrlq $32, %%mm3\n\t" -" psrlq $32, %%mm7\n\t" -" movd %%mm3, 88(%%edx)\n\t" -" movd %%mm7, 80(%%edx)\n\t" +" pfadd %%mm1, %%mm0\n\t" +" pfadd %%mm5, %%mm4\n\t" +" movq %%mm0, 32(%%edx)\n\t" +" movq %%mm4, 40(%%edx)\n\t" +" pfsub %%mm1, %%mm3\n\t" +" pfsub %%mm5, %%mm7\n\t" +" pfmul 32(%%ebx), %%mm3\n\t" +" pfmul 40(%%ebx), %%mm7\n\t" +" movd %%mm3, 92(%%edx)\n\t" +" movd %%mm7, 84(%%edx)\n\t" +" psrlq $32, %%mm3\n\t" +" psrlq $32, %%mm7\n\t" +" movd %%mm3, 88(%%edx)\n\t" +" movd %%mm7, 80(%%edx)\n\t" -" movq 48(%%eax), %%mm0\n\t" -" movq 56(%%eax), %%mm4\n\t" -" movq %%mm0, %%mm3\n\t" -" movq %%mm4, %%mm7\n\t" -" movq 72(%%eax), %%mm1\n\t" -" movq 64(%%eax), %%mm5\n\t" +" movq 48(%%eax), %%mm0\n\t" +" movq 56(%%eax), %%mm4\n\t" +" movq %%mm0, %%mm3\n\t" +" movq %%mm4, %%mm7\n\t" +" movq 72(%%eax), %%mm1\n\t" +" movq 64(%%eax), %%mm5\n\t" /* n.b.: pswapd*/ -" movq %%mm1, %%mm2\n\t" -" movq %%mm5, %%mm6\n\t" -" psrlq $32, %%mm1\n\t" -" psrlq $32, %%mm5\n\t" -" punpckldq %%mm2, %%mm1\n\t" -" punpckldq %%mm6, %%mm5\n\t" +" movq %%mm1, %%mm2\n\t" +" movq %%mm5, %%mm6\n\t" +" psrlq $32, %%mm1\n\t" +" psrlq $32, %%mm5\n\t" +" punpckldq %%mm2, %%mm1\n\t" +" punpckldq %%mm6, %%mm5\n\t" /**/ -" pfadd %%mm1, %%mm0\n\t" -" pfadd %%mm5, %%mm4\n\t" -" movq %%mm0, 48(%%edx)\n\t" -" movq %%mm4, 56(%%edx)\n\t" -" pfsub %%mm1, %%mm3\n\t" -" pfsub %%mm5, %%mm7\n\t" -" pfmul 48(%%ebx), %%mm3\n\t" -" pfmul 56(%%ebx), %%mm7\n\t" -" movd %%mm3, 76(%%edx)\n\t" -" movd %%mm7, 68(%%edx)\n\t" -" psrlq $32, %%mm3\n\t" -" psrlq $32, %%mm7\n\t" -" movd %%mm3, 72(%%edx)\n\t" -" movd %%mm7, 64(%%edx)\n\t" +" pfadd %%mm1, %%mm0\n\t" +" pfadd %%mm5, %%mm4\n\t" +" movq %%mm0, 48(%%edx)\n\t" +" movq %%mm4, 56(%%edx)\n\t" +" pfsub %%mm1, %%mm3\n\t" +" pfsub %%mm5, %%mm7\n\t" +" pfmul 48(%%ebx), %%mm3\n\t" +" pfmul 56(%%ebx), %%mm7\n\t" +" movd %%mm3, 76(%%edx)\n\t" +" movd %%mm7, 68(%%edx)\n\t" +" psrlq $32, %%mm3\n\t" +" psrlq $32, %%mm7\n\t" +" movd %%mm3, 72(%%edx)\n\t" +" movd %%mm7, 64(%%edx)\n\t" /* Phase 2*/ -" movq (%%edx), %%mm0\n\t" -" movq 8(%%edx), %%mm4\n\t" -" movq %%mm0, %%mm3\n\t" -" movq %%mm4, %%mm7\n\t" -" movq 56(%%edx), %%mm1\n\t" -" movq 48(%%edx), %%mm5\n\t" +" movq (%%edx), %%mm0\n\t" +" movq 8(%%edx), %%mm4\n\t" +" movq %%mm0, %%mm3\n\t" +" movq %%mm4, %%mm7\n\t" +" movq 56(%%edx), %%mm1\n\t" +" movq 48(%%edx), %%mm5\n\t" /* n.b.: pswapd*/ -" movq %%mm1, %%mm2\n\t" -" movq %%mm5, %%mm6\n\t" -" psrlq $32, %%mm1\n\t" -" psrlq $32, %%mm5\n\t" -" punpckldq %%mm2, %%mm1\n\t" -" punpckldq %%mm6, %%mm5\n\t" +" movq %%mm1, %%mm2\n\t" +" movq %%mm5, %%mm6\n\t" +" psrlq $32, %%mm1\n\t" +" psrlq $32, %%mm5\n\t" +" punpckldq %%mm2, %%mm1\n\t" +" punpckldq %%mm6, %%mm5\n\t" /**/ -" pfadd %%mm1, %%mm0\n\t" -" pfadd %%mm5, %%mm4\n\t" -" movq %%mm0, (%%ecx)\n\t" -" movq %%mm4, 8(%%ecx)\n\t" -" pfsub %%mm1, %%mm3\n\t" -" pfsub %%mm5, %%mm7\n\t" -" pfmul 64(%%ebx), %%mm3\n\t" -" pfmul 72(%%ebx), %%mm7\n\t" -" movd %%mm3, 60(%%ecx)\n\t" -" movd %%mm7, 52(%%ecx)\n\t" -" psrlq $32, %%mm3\n\t" -" psrlq $32, %%mm7\n\t" -" movd %%mm3, 56(%%ecx)\n\t" -" movd %%mm7, 48(%%ecx)\n\t" +" pfadd %%mm1, %%mm0\n\t" +" pfadd %%mm5, %%mm4\n\t" +" movq %%mm0, (%%ecx)\n\t" +" movq %%mm4, 8(%%ecx)\n\t" +" pfsub %%mm1, %%mm3\n\t" +" pfsub %%mm5, %%mm7\n\t" +" pfmul 64(%%ebx), %%mm3\n\t" +" pfmul 72(%%ebx), %%mm7\n\t" +" movd %%mm3, 60(%%ecx)\n\t" +" movd %%mm7, 52(%%ecx)\n\t" +" psrlq $32, %%mm3\n\t" +" psrlq $32, %%mm7\n\t" +" movd %%mm3, 56(%%ecx)\n\t" +" movd %%mm7, 48(%%ecx)\n\t" -" movq 16(%%edx), %%mm0\n\t" -" movq 24(%%edx), %%mm4\n\t" -" movq %%mm0, %%mm3\n\t" -" movq %%mm4, %%mm7\n\t" -" movq 40(%%edx), %%mm1\n\t" -" movq 32(%%edx), %%mm5\n\t" +" movq 16(%%edx), %%mm0\n\t" +" movq 24(%%edx), %%mm4\n\t" +" movq %%mm0, %%mm3\n\t" +" movq %%mm4, %%mm7\n\t" +" movq 40(%%edx), %%mm1\n\t" +" movq 32(%%edx), %%mm5\n\t" /* n.b.: pswapd*/ -" movq %%mm1, %%mm2\n\t" -" movq %%mm5, %%mm6\n\t" -" psrlq $32, %%mm1\n\t" -" psrlq $32, %%mm5\n\t" -" punpckldq %%mm2, %%mm1\n\t" -" punpckldq %%mm6, %%mm5\n\t" +" movq %%mm1, %%mm2\n\t" +" movq %%mm5, %%mm6\n\t" +" psrlq $32, %%mm1\n\t" +" psrlq $32, %%mm5\n\t" +" punpckldq %%mm2, %%mm1\n\t" +" punpckldq %%mm6, %%mm5\n\t" /**/ -" pfadd %%mm1, %%mm0\n\t" -" pfadd %%mm5, %%mm4\n\t" -" movq %%mm0, 16(%%ecx)\n\t" -" movq %%mm4, 24(%%ecx)\n\t" -" pfsub %%mm1, %%mm3\n\t" -" pfsub %%mm5, %%mm7\n\t" -" pfmul 80(%%ebx), %%mm3\n\t" -" pfmul 88(%%ebx), %%mm7\n\t" -" movd %%mm3, 44(%%ecx)\n\t" -" movd %%mm7, 36(%%ecx)\n\t" -" psrlq $32, %%mm3\n\t" -" psrlq $32, %%mm7\n\t" -" movd %%mm3, 40(%%ecx)\n\t" -" movd %%mm7, 32(%%ecx)\n\t" +" pfadd %%mm1, %%mm0\n\t" +" pfadd %%mm5, %%mm4\n\t" +" movq %%mm0, 16(%%ecx)\n\t" +" movq %%mm4, 24(%%ecx)\n\t" +" pfsub %%mm1, %%mm3\n\t" +" pfsub %%mm5, %%mm7\n\t" +" pfmul 80(%%ebx), %%mm3\n\t" +" pfmul 88(%%ebx), %%mm7\n\t" +" movd %%mm3, 44(%%ecx)\n\t" +" movd %%mm7, 36(%%ecx)\n\t" +" psrlq $32, %%mm3\n\t" +" psrlq $32, %%mm7\n\t" +" movd %%mm3, 40(%%ecx)\n\t" +" movd %%mm7, 32(%%ecx)\n\t" /* Phase 3*/ -" movq 64(%%edx), %%mm0\n\t" -" movq 72(%%edx), %%mm4\n\t" -" movq %%mm0, %%mm3\n\t" -" movq %%mm4, %%mm7\n\t" -" movq 120(%%edx), %%mm1\n\t" -" movq 112(%%edx), %%mm5\n\t" +" movq 64(%%edx), %%mm0\n\t" +" movq 72(%%edx), %%mm4\n\t" +" movq %%mm0, %%mm3\n\t" +" movq %%mm4, %%mm7\n\t" +" movq 120(%%edx), %%mm1\n\t" +" movq 112(%%edx), %%mm5\n\t" /* n.b.: pswapd*/ -" movq %%mm1, %%mm2\n\t" -" movq %%mm5, %%mm6\n\t" -" psrlq $32, %%mm1\n\t" -" psrlq $32, %%mm5\n\t" -" punpckldq %%mm2, %%mm1\n\t" -" punpckldq %%mm6, %%mm5\n\t" +" movq %%mm1, %%mm2\n\t" +" movq %%mm5, %%mm6\n\t" +" psrlq $32, %%mm1\n\t" +" psrlq $32, %%mm5\n\t" +" punpckldq %%mm2, %%mm1\n\t" +" punpckldq %%mm6, %%mm5\n\t" /**/ -" pfadd %%mm1, %%mm0\n\t" -" pfadd %%mm5, %%mm4\n\t" -" movq %%mm0, 64(%%ecx)\n\t" -" movq %%mm4, 72(%%ecx)\n\t" -" pfsubr %%mm1, %%mm3\n\t" -" pfsubr %%mm5, %%mm7\n\t" -" pfmul 64(%%ebx), %%mm3\n\t" -" pfmul 72(%%ebx), %%mm7\n\t" -" movd %%mm3, 124(%%ecx)\n\t" -" movd %%mm7, 116(%%ecx)\n\t" -" psrlq $32, %%mm3\n\t" -" psrlq $32, %%mm7\n\t" -" movd %%mm3, 120(%%ecx)\n\t" -" movd %%mm7, 112(%%ecx)\n\t" +" pfadd %%mm1, %%mm0\n\t" +" pfadd %%mm5, %%mm4\n\t" +" movq %%mm0, 64(%%ecx)\n\t" +" movq %%mm4, 72(%%ecx)\n\t" +" pfsubr %%mm1, %%mm3\n\t" +" pfsubr %%mm5, %%mm7\n\t" +" pfmul 64(%%ebx), %%mm3\n\t" +" pfmul 72(%%ebx), %%mm7\n\t" +" movd %%mm3, 124(%%ecx)\n\t" +" movd %%mm7, 116(%%ecx)\n\t" +" psrlq $32, %%mm3\n\t" +" psrlq $32, %%mm7\n\t" +" movd %%mm3, 120(%%ecx)\n\t" +" movd %%mm7, 112(%%ecx)\n\t" -" movq 80(%%edx), %%mm0\n\t" -" movq 88(%%edx), %%mm4\n\t" -" movq %%mm0, %%mm3\n\t" -" movq %%mm4, %%mm7\n\t" -" movq 104(%%edx), %%mm1\n\t" -" movq 96(%%edx), %%mm5\n\t" +" movq 80(%%edx), %%mm0\n\t" +" movq 88(%%edx), %%mm4\n\t" +" movq %%mm0, %%mm3\n\t" +" movq %%mm4, %%mm7\n\t" +" movq 104(%%edx), %%mm1\n\t" +" movq 96(%%edx), %%mm5\n\t" /* n.b.: pswapd*/ -" movq %%mm1, %%mm2\n\t" -" movq %%mm5, %%mm6\n\t" -" psrlq $32, %%mm1\n\t" -" psrlq $32, %%mm5\n\t" -" punpckldq %%mm2, %%mm1\n\t" -" punpckldq %%mm6, %%mm5\n\t" +" movq %%mm1, %%mm2\n\t" +" movq %%mm5, %%mm6\n\t" +" psrlq $32, %%mm1\n\t" +" psrlq $32, %%mm5\n\t" +" punpckldq %%mm2, %%mm1\n\t" +" punpckldq %%mm6, %%mm5\n\t" /**/ -" pfadd %%mm1, %%mm0\n\t" -" pfadd %%mm5, %%mm4\n\t" -" movq %%mm0, 80(%%ecx)\n\t" -" movq %%mm4, 88(%%ecx)\n\t" -" pfsubr %%mm1, %%mm3\n\t" -" pfsubr %%mm5, %%mm7\n\t" -" pfmul 80(%%ebx), %%mm3\n\t" -" pfmul 88(%%ebx), %%mm7\n\t" -" movd %%mm3, 108(%%ecx)\n\t" -" movd %%mm7, 100(%%ecx)\n\t" -" psrlq $32, %%mm3\n\t" -" psrlq $32, %%mm7\n\t" -" movd %%mm3, 104(%%ecx)\n\t" -" movd %%mm7, 96(%%ecx)\n\t" +" pfadd %%mm1, %%mm0\n\t" +" pfadd %%mm5, %%mm4\n\t" +" movq %%mm0, 80(%%ecx)\n\t" +" movq %%mm4, 88(%%ecx)\n\t" +" pfsubr %%mm1, %%mm3\n\t" +" pfsubr %%mm5, %%mm7\n\t" +" pfmul 80(%%ebx), %%mm3\n\t" +" pfmul 88(%%ebx), %%mm7\n\t" +" movd %%mm3, 108(%%ecx)\n\t" +" movd %%mm7, 100(%%ecx)\n\t" +" psrlq $32, %%mm3\n\t" +" psrlq $32, %%mm7\n\t" +" movd %%mm3, 104(%%ecx)\n\t" +" movd %%mm7, 96(%%ecx)\n\t" /* Phase 4*/ -" movq (%%ecx), %%mm0\n\t" -" movq 8(%%ecx), %%mm4\n\t" -" movq %%mm0, %%mm3\n\t" -" movq %%mm4, %%mm7\n\t" -" movq 24(%%ecx), %%mm1\n\t" -" movq 16(%%ecx), %%mm5\n\t" +" movq (%%ecx), %%mm0\n\t" +" movq 8(%%ecx), %%mm4\n\t" +" movq %%mm0, %%mm3\n\t" +" movq %%mm4, %%mm7\n\t" +" movq 24(%%ecx), %%mm1\n\t" +" movq 16(%%ecx), %%mm5\n\t" /* n.b.: pswapd*/ -" movq %%mm1, %%mm2\n\t" -" movq %%mm5, %%mm6\n\t" -" psrlq $32, %%mm1\n\t" -" psrlq $32, %%mm5\n\t" -" punpckldq %%mm2, %%mm1\n\t" -" punpckldq %%mm6, %%mm5\n\t" +" movq %%mm1, %%mm2\n\t" +" movq %%mm5, %%mm6\n\t" +" psrlq $32, %%mm1\n\t" +" psrlq $32, %%mm5\n\t" +" punpckldq %%mm2, %%mm1\n\t" +" punpckldq %%mm6, %%mm5\n\t" /**/ -" pfadd %%mm1, %%mm0\n\t" -" pfadd %%mm5, %%mm4\n\t" -" movq %%mm0, (%%edx)\n\t" -" movq %%mm4, 8(%%edx)\n\t" -" pfsub %%mm1, %%mm3\n\t" -" pfsub %%mm5, %%mm7\n\t" -" pfmul 96(%%ebx), %%mm3\n\t" -" pfmul 104(%%ebx), %%mm7\n\t" -" movd %%mm3, 28(%%edx)\n\t" -" movd %%mm7, 20(%%edx)\n\t" -" psrlq $32, %%mm3\n\t" -" psrlq $32, %%mm7\n\t" -" movd %%mm3, 24(%%edx)\n\t" -" movd %%mm7, 16(%%edx)\n\t" +" pfadd %%mm1, %%mm0\n\t" +" pfadd %%mm5, %%mm4\n\t" +" movq %%mm0, (%%edx)\n\t" +" movq %%mm4, 8(%%edx)\n\t" +" pfsub %%mm1, %%mm3\n\t" +" pfsub %%mm5, %%mm7\n\t" +" pfmul 96(%%ebx), %%mm3\n\t" +" pfmul 104(%%ebx), %%mm7\n\t" +" movd %%mm3, 28(%%edx)\n\t" +" movd %%mm7, 20(%%edx)\n\t" +" psrlq $32, %%mm3\n\t" +" psrlq $32, %%mm7\n\t" +" movd %%mm3, 24(%%edx)\n\t" +" movd %%mm7, 16(%%edx)\n\t" -" movq 32(%%ecx), %%mm0\n\t" -" movq 40(%%ecx), %%mm4\n\t" -" movq %%mm0, %%mm3\n\t" -" movq %%mm4, %%mm7\n\t" -" movq 56(%%ecx), %%mm1\n\t" -" movq 48(%%ecx), %%mm5\n\t" +" movq 32(%%ecx), %%mm0\n\t" +" movq 40(%%ecx), %%mm4\n\t" +" movq %%mm0, %%mm3\n\t" +" movq %%mm4, %%mm7\n\t" +" movq 56(%%ecx), %%mm1\n\t" +" movq 48(%%ecx), %%mm5\n\t" /* n.b.: pswapd*/ -" movq %%mm1, %%mm2\n\t" -" movq %%mm5, %%mm6\n\t" -" psrlq $32, %%mm1\n\t" -" psrlq $32, %%mm5\n\t" -" punpckldq %%mm2, %%mm1\n\t" -" punpckldq %%mm6, %%mm5\n\t" +" movq %%mm1, %%mm2\n\t" +" movq %%mm5, %%mm6\n\t" +" psrlq $32, %%mm1\n\t" +" psrlq $32, %%mm5\n\t" +" punpckldq %%mm2, %%mm1\n\t" +" punpckldq %%mm6, %%mm5\n\t" /**/ -" pfadd %%mm1, %%mm0\n\t" -" pfadd %%mm5, %%mm4\n\t" -" movq %%mm0, 32(%%edx)\n\t" -" movq %%mm4, 40(%%edx)\n\t" -" pfsubr %%mm1, %%mm3\n\t" -" pfsubr %%mm5, %%mm7\n\t" -" pfmul 96(%%ebx), %%mm3\n\t" -" pfmul 104(%%ebx), %%mm7\n\t" -" movd %%mm3, 60(%%edx)\n\t" -" movd %%mm7, 52(%%edx)\n\t" -" psrlq $32, %%mm3\n\t" -" psrlq $32, %%mm7\n\t" -" movd %%mm3, 56(%%edx)\n\t" -" movd %%mm7, 48(%%edx)\n\t" +" pfadd %%mm1, %%mm0\n\t" +" pfadd %%mm5, %%mm4\n\t" +" movq %%mm0, 32(%%edx)\n\t" +" movq %%mm4, 40(%%edx)\n\t" +" pfsubr %%mm1, %%mm3\n\t" +" pfsubr %%mm5, %%mm7\n\t" +" pfmul 96(%%ebx), %%mm3\n\t" +" pfmul 104(%%ebx), %%mm7\n\t" +" movd %%mm3, 60(%%edx)\n\t" +" movd %%mm7, 52(%%edx)\n\t" +" psrlq $32, %%mm3\n\t" +" psrlq $32, %%mm7\n\t" +" movd %%mm3, 56(%%edx)\n\t" +" movd %%mm7, 48(%%edx)\n\t" -" movq 64(%%ecx), %%mm0\n\t" -" movq 72(%%ecx), %%mm4\n\t" -" movq %%mm0, %%mm3\n\t" -" movq %%mm4, %%mm7\n\t" -" movq 88(%%ecx), %%mm1\n\t" -" movq 80(%%ecx), %%mm5\n\t" +" movq 64(%%ecx), %%mm0\n\t" +" movq 72(%%ecx), %%mm4\n\t" +" movq %%mm0, %%mm3\n\t" +" movq %%mm4, %%mm7\n\t" +" movq 88(%%ecx), %%mm1\n\t" +" movq 80(%%ecx), %%mm5\n\t" /* n.b.: pswapd*/ -" movq %%mm1, %%mm2\n\t" -" movq %%mm5, %%mm6\n\t" -" psrlq $32, %%mm1\n\t" -" psrlq $32, %%mm5\n\t" -" punpckldq %%mm2, %%mm1\n\t" -" punpckldq %%mm6, %%mm5\n\t" +" movq %%mm1, %%mm2\n\t" +" movq %%mm5, %%mm6\n\t" +" psrlq $32, %%mm1\n\t" +" psrlq $32, %%mm5\n\t" +" punpckldq %%mm2, %%mm1\n\t" +" punpckldq %%mm6, %%mm5\n\t" /**/ -" pfadd %%mm1, %%mm0\n\t" -" pfadd %%mm5, %%mm4\n\t" -" movq %%mm0, 64(%%edx)\n\t" -" movq %%mm4, 72(%%edx)\n\t" -" pfsub %%mm1, %%mm3\n\t" -" pfsub %%mm5, %%mm7\n\t" -" pfmul 96(%%ebx), %%mm3\n\t" -" pfmul 104(%%ebx), %%mm7\n\t" -" movd %%mm3, 92(%%edx)\n\t" -" movd %%mm7, 84(%%edx)\n\t" -" psrlq $32, %%mm3\n\t" -" psrlq $32, %%mm7\n\t" -" movd %%mm3, 88(%%edx)\n\t" -" movd %%mm7, 80(%%edx)\n\t" +" pfadd %%mm1, %%mm0\n\t" +" pfadd %%mm5, %%mm4\n\t" +" movq %%mm0, 64(%%edx)\n\t" +" movq %%mm4, 72(%%edx)\n\t" +" pfsub %%mm1, %%mm3\n\t" +" pfsub %%mm5, %%mm7\n\t" +" pfmul 96(%%ebx), %%mm3\n\t" +" pfmul 104(%%ebx), %%mm7\n\t" +" movd %%mm3, 92(%%edx)\n\t" +" movd %%mm7, 84(%%edx)\n\t" +" psrlq $32, %%mm3\n\t" +" psrlq $32, %%mm7\n\t" +" movd %%mm3, 88(%%edx)\n\t" +" movd %%mm7, 80(%%edx)\n\t" -" movq 96(%%ecx), %%mm0\n\t" -" movq 104(%%ecx), %%mm4\n\t" -" movq %%mm0, %%mm3\n\t" -" movq %%mm4, %%mm7\n\t" -" movq 120(%%ecx), %%mm1\n\t" -" movq 112(%%ecx), %%mm5\n\t" +" movq 96(%%ecx), %%mm0\n\t" +" movq 104(%%ecx), %%mm4\n\t" +" movq %%mm0, %%mm3\n\t" +" movq %%mm4, %%mm7\n\t" +" movq 120(%%ecx), %%mm1\n\t" +" movq 112(%%ecx), %%mm5\n\t" /* n.b.: pswapd*/ -" movq %%mm1, %%mm2\n\t" -" movq %%mm5, %%mm6\n\t" -" psrlq $32, %%mm1\n\t" -" psrlq $32, %%mm5\n\t" -" punpckldq %%mm2, %%mm1\n\t" -" punpckldq %%mm6, %%mm5\n\t" +" movq %%mm1, %%mm2\n\t" +" movq %%mm5, %%mm6\n\t" +" psrlq $32, %%mm1\n\t" +" psrlq $32, %%mm5\n\t" +" punpckldq %%mm2, %%mm1\n\t" +" punpckldq %%mm6, %%mm5\n\t" /**/ -" pfadd %%mm1, %%mm0\n\t" -" pfadd %%mm5, %%mm4\n\t" -" movq %%mm0, 96(%%edx)\n\t" -" movq %%mm4, 104(%%edx)\n\t" -" pfsubr %%mm1, %%mm3\n\t" -" pfsubr %%mm5, %%mm7\n\t" -" pfmul 96(%%ebx), %%mm3\n\t" -" pfmul 104(%%ebx), %%mm7\n\t" -" movd %%mm3, 124(%%edx)\n\t" -" movd %%mm7, 116(%%edx)\n\t" -" psrlq $32, %%mm3\n\t" -" psrlq $32, %%mm7\n\t" -" movd %%mm3, 120(%%edx)\n\t" -" movd %%mm7, 112(%%edx)\n\t" +" pfadd %%mm1, %%mm0\n\t" +" pfadd %%mm5, %%mm4\n\t" +" movq %%mm0, 96(%%edx)\n\t" +" movq %%mm4, 104(%%edx)\n\t" +" pfsubr %%mm1, %%mm3\n\t" +" pfsubr %%mm5, %%mm7\n\t" +" pfmul 96(%%ebx), %%mm3\n\t" +" pfmul 104(%%ebx), %%mm7\n\t" +" movd %%mm3, 124(%%edx)\n\t" +" movd %%mm7, 116(%%edx)\n\t" +" psrlq $32, %%mm3\n\t" +" psrlq $32, %%mm7\n\t" +" movd %%mm3, 120(%%edx)\n\t" +" movd %%mm7, 112(%%edx)\n\t" /* Phase 5 */ -" movq (%%edx), %%mm0\n\t" -" movq 16(%%edx), %%mm4\n\t" -" movq %%mm0, %%mm3\n\t" -" movq %%mm4, %%mm7\n\t" -" movq 8(%%edx), %%mm1\n\t" -" movq 24(%%edx), %%mm5\n\t" +" movq (%%edx), %%mm0\n\t" +" movq 16(%%edx), %%mm4\n\t" +" movq %%mm0, %%mm3\n\t" +" movq %%mm4, %%mm7\n\t" +" movq 8(%%edx), %%mm1\n\t" +" movq 24(%%edx), %%mm5\n\t" /* n.b.: pswapd*/ -" movq %%mm1, %%mm2\n\t" -" movq %%mm5, %%mm6\n\t" -" psrlq $32, %%mm1\n\t" -" psrlq $32, %%mm5\n\t" -" punpckldq %%mm2, %%mm1\n\t" -" punpckldq %%mm6, %%mm5\n\t" +" movq %%mm1, %%mm2\n\t" +" movq %%mm5, %%mm6\n\t" +" psrlq $32, %%mm1\n\t" +" psrlq $32, %%mm5\n\t" +" punpckldq %%mm2, %%mm1\n\t" +" punpckldq %%mm6, %%mm5\n\t" /**/ -" pfadd %%mm1, %%mm0\n\t" -" pfadd %%mm5, %%mm4\n\t" -" movq %%mm0, (%%ecx)\n\t" -" movq %%mm4, 16(%%ecx)\n\t" -" pfsub %%mm1, %%mm3\n\t" -" pfsubr %%mm5, %%mm7\n\t" -" pfmul 112(%%ebx), %%mm3\n\t" -" pfmul 112(%%ebx), %%mm7\n\t" -" movd %%mm3, 12(%%ecx)\n\t" -" movd %%mm7, 28(%%ecx)\n\t" -" psrlq $32, %%mm3\n\t" -" psrlq $32, %%mm7\n\t" -" movd %%mm3, 8(%%ecx)\n\t" -" movd %%mm7, 24(%%ecx)\n\t" +" pfadd %%mm1, %%mm0\n\t" +" pfadd %%mm5, %%mm4\n\t" +" movq %%mm0, (%%ecx)\n\t" +" movq %%mm4, 16(%%ecx)\n\t" +" pfsub %%mm1, %%mm3\n\t" +" pfsubr %%mm5, %%mm7\n\t" +" pfmul 112(%%ebx), %%mm3\n\t" +" pfmul 112(%%ebx), %%mm7\n\t" +" movd %%mm3, 12(%%ecx)\n\t" +" movd %%mm7, 28(%%ecx)\n\t" +" psrlq $32, %%mm3\n\t" +" psrlq $32, %%mm7\n\t" +" movd %%mm3, 8(%%ecx)\n\t" +" movd %%mm7, 24(%%ecx)\n\t" -" movq 32(%%edx), %%mm0\n\t" -" movq 48(%%edx), %%mm4\n\t" -" movq %%mm0, %%mm3\n\t" -" movq %%mm4, %%mm7\n\t" -" movq 40(%%edx), %%mm1\n\t" -" movq 56(%%edx), %%mm5\n\t" +" movq 32(%%edx), %%mm0\n\t" +" movq 48(%%edx), %%mm4\n\t" +" movq %%mm0, %%mm3\n\t" +" movq %%mm4, %%mm7\n\t" +" movq 40(%%edx), %%mm1\n\t" +" movq 56(%%edx), %%mm5\n\t" /* n.b.: pswapd*/ -" movq %%mm1, %%mm2\n\t" -" movq %%mm5, %%mm6\n\t" -" psrlq $32, %%mm1\n\t" -" psrlq $32, %%mm5\n\t" -" punpckldq %%mm2, %%mm1\n\t" -" punpckldq %%mm6, %%mm5\n\t" +" movq %%mm1, %%mm2\n\t" +" movq %%mm5, %%mm6\n\t" +" psrlq $32, %%mm1\n\t" +" psrlq $32, %%mm5\n\t" +" punpckldq %%mm2, %%mm1\n\t" +" punpckldq %%mm6, %%mm5\n\t" /**/ -" pfadd %%mm1, %%mm0\n\t" -" pfadd %%mm5, %%mm4\n\t" -" movq %%mm0, 32(%%ecx)\n\t" -" movq %%mm4, 48(%%ecx)\n\t" -" pfsub %%mm1, %%mm3\n\t" -" pfsubr %%mm5, %%mm7\n\t" -" pfmul 112(%%ebx), %%mm3\n\t" -" pfmul 112(%%ebx), %%mm7\n\t" -" movd %%mm3, 44(%%ecx)\n\t" -" movd %%mm7, 60(%%ecx)\n\t" -" psrlq $32, %%mm3\n\t" -" psrlq $32, %%mm7\n\t" -" movd %%mm3, 40(%%ecx)\n\t" -" movd %%mm7, 56(%%ecx)\n\t" +" pfadd %%mm1, %%mm0\n\t" +" pfadd %%mm5, %%mm4\n\t" +" movq %%mm0, 32(%%ecx)\n\t" +" movq %%mm4, 48(%%ecx)\n\t" +" pfsub %%mm1, %%mm3\n\t" +" pfsubr %%mm5, %%mm7\n\t" +" pfmul 112(%%ebx), %%mm3\n\t" +" pfmul 112(%%ebx), %%mm7\n\t" +" movd %%mm3, 44(%%ecx)\n\t" +" movd %%mm7, 60(%%ecx)\n\t" +" psrlq $32, %%mm3\n\t" +" psrlq $32, %%mm7\n\t" +" movd %%mm3, 40(%%ecx)\n\t" +" movd %%mm7, 56(%%ecx)\n\t" -" movq 64(%%edx), %%mm0\n\t" -" movq 80(%%edx), %%mm4\n\t" -" movq %%mm0, %%mm3\n\t" -" movq %%mm4, %%mm7\n\t" -" movq 72(%%edx), %%mm1\n\t" -" movq 88(%%edx), %%mm5\n\t" +" movq 64(%%edx), %%mm0\n\t" +" movq 80(%%edx), %%mm4\n\t" +" movq %%mm0, %%mm3\n\t" +" movq %%mm4, %%mm7\n\t" +" movq 72(%%edx), %%mm1\n\t" +" movq 88(%%edx), %%mm5\n\t" /* n.b.: pswapd*/ -" movq %%mm1, %%mm2\n\t" -" movq %%mm5, %%mm6\n\t" -" psrlq $32, %%mm1\n\t" -" psrlq $32, %%mm5\n\t" -" punpckldq %%mm2, %%mm1\n\t" -" punpckldq %%mm6, %%mm5\n\t" +" movq %%mm1, %%mm2\n\t" +" movq %%mm5, %%mm6\n\t" +" psrlq $32, %%mm1\n\t" +" psrlq $32, %%mm5\n\t" +" punpckldq %%mm2, %%mm1\n\t" +" punpckldq %%mm6, %%mm5\n\t" /**/ -" pfadd %%mm1, %%mm0\n\t" -" pfadd %%mm5, %%mm4\n\t" -" movq %%mm0, 64(%%ecx)\n\t" -" movq %%mm4, 80(%%ecx)\n\t" -" pfsub %%mm1, %%mm3\n\t" -" pfsubr %%mm5, %%mm7\n\t" -" pfmul 112(%%ebx), %%mm3\n\t" -" pfmul 112(%%ebx), %%mm7\n\t" -" movd %%mm3, 76(%%ecx)\n\t" -" movd %%mm7, 92(%%ecx)\n\t" -" psrlq $32, %%mm3\n\t" -" psrlq $32, %%mm7\n\t" -" movd %%mm3, 72(%%ecx)\n\t" -" movd %%mm7, 88(%%ecx)\n\t" +" pfadd %%mm1, %%mm0\n\t" +" pfadd %%mm5, %%mm4\n\t" +" movq %%mm0, 64(%%ecx)\n\t" +" movq %%mm4, 80(%%ecx)\n\t" +" pfsub %%mm1, %%mm3\n\t" +" pfsubr %%mm5, %%mm7\n\t" +" pfmul 112(%%ebx), %%mm3\n\t" +" pfmul 112(%%ebx), %%mm7\n\t" +" movd %%mm3, 76(%%ecx)\n\t" +" movd %%mm7, 92(%%ecx)\n\t" +" psrlq $32, %%mm3\n\t" +" psrlq $32, %%mm7\n\t" +" movd %%mm3, 72(%%ecx)\n\t" +" movd %%mm7, 88(%%ecx)\n\t" -" movq 96(%%edx), %%mm0\n\t" -" movq 112(%%edx), %%mm4\n\t" -" movq %%mm0, %%mm3\n\t" -" movq %%mm4, %%mm7\n\t" -" movq 104(%%edx), %%mm1\n\t" -" movq 120(%%edx), %%mm5\n\t" +" movq 96(%%edx), %%mm0\n\t" +" movq 112(%%edx), %%mm4\n\t" +" movq %%mm0, %%mm3\n\t" +" movq %%mm4, %%mm7\n\t" +" movq 104(%%edx), %%mm1\n\t" +" movq 120(%%edx), %%mm5\n\t" /* n.b.: pswapd*/ -" movq %%mm1, %%mm2\n\t" -" movq %%mm5, %%mm6\n\t" -" psrlq $32, %%mm1\n\t" -" psrlq $32, %%mm5\n\t" -" punpckldq %%mm2, %%mm1\n\t" -" punpckldq %%mm6, %%mm5\n\t" +" movq %%mm1, %%mm2\n\t" +" movq %%mm5, %%mm6\n\t" +" psrlq $32, %%mm1\n\t" +" psrlq $32, %%mm5\n\t" +" punpckldq %%mm2, %%mm1\n\t" +" punpckldq %%mm6, %%mm5\n\t" /**/ -" pfadd %%mm1, %%mm0\n\t" -" pfadd %%mm5, %%mm4\n\t" -" movq %%mm0, 96(%%ecx)\n\t" -" movq %%mm4, 112(%%ecx)\n\t" -" pfsub %%mm1, %%mm3\n\t" -" pfsubr %%mm5, %%mm7\n\t" -" pfmul 112(%%ebx), %%mm3\n\t" -" pfmul 112(%%ebx), %%mm7\n\t" -" movd %%mm3, 108(%%ecx)\n\t" -" movd %%mm7, 124(%%ecx)\n\t" -" psrlq $32, %%mm3\n\t" -" psrlq $32, %%mm7\n\t" -" movd %%mm3, 104(%%ecx)\n\t" -" movd %%mm7, 120(%%ecx)\n\t" +" pfadd %%mm1, %%mm0\n\t" +" pfadd %%mm5, %%mm4\n\t" +" movq %%mm0, 96(%%ecx)\n\t" +" movq %%mm4, 112(%%ecx)\n\t" +" pfsub %%mm1, %%mm3\n\t" +" pfsubr %%mm5, %%mm7\n\t" +" pfmul 112(%%ebx), %%mm3\n\t" +" pfmul 112(%%ebx), %%mm7\n\t" +" movd %%mm3, 108(%%ecx)\n\t" +" movd %%mm7, 124(%%ecx)\n\t" +" psrlq $32, %%mm3\n\t" +" psrlq $32, %%mm7\n\t" +" movd %%mm3, 104(%%ecx)\n\t" +" movd %%mm7, 120(%%ecx)\n\t" /* Phase 6. This is the end of easy road. */ /* Code below is coded in scalar mode. Should be optimized */ -" movd "MANGLE(plus_1f)", %%mm6\n\t" -" punpckldq 120(%%ebx), %%mm6\n\t" /* mm6 = 1.0 | 120(%%ebx)*/ -" movq "MANGLE(x_plus_minus_3dnow)", %%mm7\n\t" /* mm7 = +1 | -1 */ +" movd "MANGLE(plus_1f)", %%mm6\n\t" +" punpckldq 120(%%ebx), %%mm6\n\t" /* mm6 = 1.0 | 120(%%ebx)*/ +" movq "MANGLE(x_plus_minus_3dnow)", %%mm7\n\t" /* mm7 = +1 | -1 */ -" movq 32(%%ecx), %%mm0\n\t" -" movq 64(%%ecx), %%mm2\n\t" -" movq %%mm0, %%mm1\n\t" -" movq %%mm2, %%mm3\n\t" -" pxor %%mm7, %%mm1\n\t" -" pxor %%mm7, %%mm3\n\t" -" pfacc %%mm1, %%mm0\n\t" -" pfacc %%mm3, %%mm2\n\t" -" pfmul %%mm6, %%mm0\n\t" -" pfmul %%mm6, %%mm2\n\t" -" movq %%mm0, 32(%%edx)\n\t" -" movq %%mm2, 64(%%edx)\n\t" +" movq 32(%%ecx), %%mm0\n\t" +" movq 64(%%ecx), %%mm2\n\t" +" movq %%mm0, %%mm1\n\t" +" movq %%mm2, %%mm3\n\t" +" pxor %%mm7, %%mm1\n\t" +" pxor %%mm7, %%mm3\n\t" +" pfacc %%mm1, %%mm0\n\t" +" pfacc %%mm3, %%mm2\n\t" +" pfmul %%mm6, %%mm0\n\t" +" pfmul %%mm6, %%mm2\n\t" +" movq %%mm0, 32(%%edx)\n\t" +" movq %%mm2, 64(%%edx)\n\t" -" movd 44(%%ecx), %%mm0\n\t" -" movd 40(%%ecx), %%mm2\n\t" -" movd 120(%%ebx), %%mm3\n\t" -" punpckldq 76(%%ecx), %%mm0\n\t" -" punpckldq 72(%%ecx), %%mm2\n\t" -" punpckldq %%mm3, %%mm3\n\t" -" movq %%mm0, %%mm4\n\t" -" movq %%mm2, %%mm5\n\t" -" pfsub %%mm2, %%mm0\n\t" -" pfmul %%mm3, %%mm0\n\t" -" movq %%mm0, %%mm1\n\t" -" pfadd %%mm5, %%mm0\n\t" -" pfadd %%mm4, %%mm0\n\t" -" movq %%mm0, %%mm2\n\t" -" punpckldq %%mm1, %%mm0\n\t" -" punpckhdq %%mm1, %%mm2\n\t" -" movq %%mm0, 40(%%edx)\n\t" -" movq %%mm2, 72(%%edx)\n\t" +" movd 44(%%ecx), %%mm0\n\t" +" movd 40(%%ecx), %%mm2\n\t" +" movd 120(%%ebx), %%mm3\n\t" +" punpckldq 76(%%ecx), %%mm0\n\t" +" punpckldq 72(%%ecx), %%mm2\n\t" +" punpckldq %%mm3, %%mm3\n\t" +" movq %%mm0, %%mm4\n\t" +" movq %%mm2, %%mm5\n\t" +" pfsub %%mm2, %%mm0\n\t" +" pfmul %%mm3, %%mm0\n\t" +" movq %%mm0, %%mm1\n\t" +" pfadd %%mm5, %%mm0\n\t" +" pfadd %%mm4, %%mm0\n\t" +" movq %%mm0, %%mm2\n\t" +" punpckldq %%mm1, %%mm0\n\t" +" punpckhdq %%mm1, %%mm2\n\t" +" movq %%mm0, 40(%%edx)\n\t" +" movq %%mm2, 72(%%edx)\n\t" -" movd 48(%%ecx), %%mm3\n\t" -" movd 60(%%ecx), %%mm2\n\t" -" pfsub 52(%%ecx), %%mm3\n\t" -" pfsub 56(%%ecx), %%mm2\n\t" -" pfmul 120(%%ebx), %%mm3\n\t" -" pfmul 120(%%ebx), %%mm2\n\t" -" movq %%mm2, %%mm1\n\t" +" movd 48(%%ecx), %%mm3\n\t" +" movd 60(%%ecx), %%mm2\n\t" +" pfsub 52(%%ecx), %%mm3\n\t" +" pfsub 56(%%ecx), %%mm2\n\t" +" pfmul 120(%%ebx), %%mm3\n\t" +" pfmul 120(%%ebx), %%mm2\n\t" +" movq %%mm2, %%mm1\n\t" -" pfadd 56(%%ecx), %%mm1\n\t" -" pfadd 60(%%ecx), %%mm1\n\t" -" movq %%mm1, %%mm0\n\t" +" pfadd 56(%%ecx), %%mm1\n\t" +" pfadd 60(%%ecx), %%mm1\n\t" +" movq %%mm1, %%mm0\n\t" -" pfadd 48(%%ecx), %%mm0\n\t" -" pfadd 52(%%ecx), %%mm0\n\t" -" pfadd %%mm3, %%mm1\n\t" -" punpckldq %%mm2, %%mm1\n\t" -" pfadd %%mm3, %%mm2\n\t" -" punpckldq %%mm2, %%mm0\n\t" -" movq %%mm1, 56(%%edx)\n\t" -" movq %%mm0, 48(%%edx)\n\t" +" pfadd 48(%%ecx), %%mm0\n\t" +" pfadd 52(%%ecx), %%mm0\n\t" +" pfadd %%mm3, %%mm1\n\t" +" punpckldq %%mm2, %%mm1\n\t" +" pfadd %%mm3, %%mm2\n\t" +" punpckldq %%mm2, %%mm0\n\t" +" movq %%mm1, 56(%%edx)\n\t" +" movq %%mm0, 48(%%edx)\n\t" /*---*/ -" movd 92(%%ecx), %%mm1\n\t" -" pfsub 88(%%ecx), %%mm1\n\t" -" pfmul 120(%%ebx), %%mm1\n\t" -" movd %%mm1, 92(%%edx)\n\t" -" pfadd 92(%%ecx), %%mm1\n\t" -" pfadd 88(%%ecx), %%mm1\n\t" -" movq %%mm1, %%mm0\n\t" +" movd 92(%%ecx), %%mm1\n\t" +" pfsub 88(%%ecx), %%mm1\n\t" +" pfmul 120(%%ebx), %%mm1\n\t" +" movd %%mm1, 92(%%edx)\n\t" +" pfadd 92(%%ecx), %%mm1\n\t" +" pfadd 88(%%ecx), %%mm1\n\t" +" movq %%mm1, %%mm0\n\t" -" pfadd 80(%%ecx), %%mm0\n\t" -" pfadd 84(%%ecx), %%mm0\n\t" -" movd %%mm0, 80(%%edx)\n\t" +" pfadd 80(%%ecx), %%mm0\n\t" +" pfadd 84(%%ecx), %%mm0\n\t" +" movd %%mm0, 80(%%edx)\n\t" -" movd 80(%%ecx), %%mm0\n\t" -" pfsub 84(%%ecx), %%mm0\n\t" -" pfmul 120(%%ebx), %%mm0\n\t" -" pfadd %%mm0, %%mm1\n\t" -" pfadd 92(%%edx), %%mm0\n\t" -" punpckldq %%mm1, %%mm0\n\t" -" movq %%mm0, 84(%%edx)\n\t" +" movd 80(%%ecx), %%mm0\n\t" +" pfsub 84(%%ecx), %%mm0\n\t" +" pfmul 120(%%ebx), %%mm0\n\t" +" pfadd %%mm0, %%mm1\n\t" +" pfadd 92(%%edx), %%mm0\n\t" +" punpckldq %%mm1, %%mm0\n\t" +" movq %%mm0, 84(%%edx)\n\t" -" movq 96(%%ecx), %%mm0\n\t" -" movq %%mm0, %%mm1\n\t" -" pxor %%mm7, %%mm1\n\t" -" pfacc %%mm1, %%mm0\n\t" -" pfmul %%mm6, %%mm0\n\t" -" movq %%mm0, 96(%%edx)\n\t" +" movq 96(%%ecx), %%mm0\n\t" +" movq %%mm0, %%mm1\n\t" +" pxor %%mm7, %%mm1\n\t" +" pfacc %%mm1, %%mm0\n\t" +" pfmul %%mm6, %%mm0\n\t" +" movq %%mm0, 96(%%edx)\n\t" -" movd 108(%%ecx), %%mm0\n\t" -" pfsub 104(%%ecx), %%mm0\n\t" -" pfmul 120(%%ebx), %%mm0\n\t" -" movd %%mm0, 108(%%edx)\n\t" -" pfadd 104(%%ecx), %%mm0\n\t" -" pfadd 108(%%ecx), %%mm0\n\t" -" movd %%mm0, 104(%%edx)\n\t" +" movd 108(%%ecx), %%mm0\n\t" +" pfsub 104(%%ecx), %%mm0\n\t" +" pfmul 120(%%ebx), %%mm0\n\t" +" movd %%mm0, 108(%%edx)\n\t" +" pfadd 104(%%ecx), %%mm0\n\t" +" pfadd 108(%%ecx), %%mm0\n\t" +" movd %%mm0, 104(%%edx)\n\t" -" movd 124(%%ecx), %%mm1\n\t" -" pfsub 120(%%ecx), %%mm1\n\t" -" pfmul 120(%%ebx), %%mm1\n\t" -" movd %%mm1, 124(%%edx)\n\t" -" pfadd 120(%%ecx), %%mm1\n\t" -" pfadd 124(%%ecx), %%mm1\n\t" -" movq %%mm1, %%mm0\n\t" +" movd 124(%%ecx), %%mm1\n\t" +" pfsub 120(%%ecx), %%mm1\n\t" +" pfmul 120(%%ebx), %%mm1\n\t" +" movd %%mm1, 124(%%edx)\n\t" +" pfadd 120(%%ecx), %%mm1\n\t" +" pfadd 124(%%ecx), %%mm1\n\t" +" movq %%mm1, %%mm0\n\t" -" pfadd 112(%%ecx), %%mm0\n\t" -" pfadd 116(%%ecx), %%mm0\n\t" -" movd %%mm0, 112(%%edx)\n\t" +" pfadd 112(%%ecx), %%mm0\n\t" +" pfadd 116(%%ecx), %%mm0\n\t" +" movd %%mm0, 112(%%edx)\n\t" -" movd 112(%%ecx), %%mm0\n\t" -" pfsub 116(%%ecx), %%mm0\n\t" -" pfmul 120(%%ebx), %%mm0\n\t" -" pfadd %%mm0,%%mm1\n\t" -" pfadd 124(%%edx), %%mm0\n\t" -" punpckldq %%mm1, %%mm0\n\t" -" movq %%mm0, 116(%%edx)\n\t" +" movd 112(%%ecx), %%mm0\n\t" +" pfsub 116(%%ecx), %%mm0\n\t" +" pfmul 120(%%ebx), %%mm0\n\t" +" pfadd %%mm0,%%mm1\n\t" +" pfadd 124(%%edx), %%mm0\n\t" +" punpckldq %%mm1, %%mm0\n\t" +" movq %%mm0, 116(%%edx)\n\t" // this code is broken, there is nothing modifying the z flag above. #if 0 -" jnz .L01\n\t" +" jnz .L01\n\t" /* Phase 7*/ /* Code below is coded in scalar mode. Should be optimized */ -" movd (%%ecx), %%mm0\n\t" -" pfadd 4(%%ecx), %%mm0\n\t" -" movd %%mm0, 1024(%%esi)\n\t" +" movd (%%ecx), %%mm0\n\t" +" pfadd 4(%%ecx), %%mm0\n\t" +" movd %%mm0, 1024(%%esi)\n\t" -" movd (%%ecx), %%mm0\n\t" -" pfsub 4(%%ecx), %%mm0\n\t" -" pfmul 120(%%ebx), %%mm0\n\t" -" movd %%mm0, (%%esi)\n\t" -" movd %%mm0, (%%edi)\n\t" +" movd (%%ecx), %%mm0\n\t" +" pfsub 4(%%ecx), %%mm0\n\t" +" pfmul 120(%%ebx), %%mm0\n\t" +" movd %%mm0, (%%esi)\n\t" +" movd %%mm0, (%%edi)\n\t" -" movd 12(%%ecx), %%mm0\n\t" -" pfsub 8(%%ecx), %%mm0\n\t" -" pfmul 120(%%ebx), %%mm0\n\t" -" movd %%mm0, 512(%%edi)\n\t" -" pfadd 12(%%ecx), %%mm0\n\t" -" pfadd 8(%%ecx), %%mm0\n\t" -" movd %%mm0, 512(%%esi)\n\t" +" movd 12(%%ecx), %%mm0\n\t" +" pfsub 8(%%ecx), %%mm0\n\t" +" pfmul 120(%%ebx), %%mm0\n\t" +" movd %%mm0, 512(%%edi)\n\t" +" pfadd 12(%%ecx), %%mm0\n\t" +" pfadd 8(%%ecx), %%mm0\n\t" +" movd %%mm0, 512(%%esi)\n\t" -" movd 16(%%ecx), %%mm0\n\t" -" pfsub 20(%%ecx), %%mm0\n\t" -" pfmul 120(%%ebx), %%mm0\n\t" -" movq %%mm0, %%mm3\n\t" +" movd 16(%%ecx), %%mm0\n\t" +" pfsub 20(%%ecx), %%mm0\n\t" +" pfmul 120(%%ebx), %%mm0\n\t" +" movq %%mm0, %%mm3\n\t" -" movd 28(%%ecx), %%mm0\n\t" -" pfsub 24(%%ecx), %%mm0\n\t" -" pfmul 120(%%ebx), %%mm0\n\t" -" movd %%mm0, 768(%%edi)\n\t" -" movq %%mm0, %%mm2\n\t" +" movd 28(%%ecx), %%mm0\n\t" +" pfsub 24(%%ecx), %%mm0\n\t" +" pfmul 120(%%ebx), %%mm0\n\t" +" movd %%mm0, 768(%%edi)\n\t" +" movq %%mm0, %%mm2\n\t" -" pfadd 24(%%ecx), %%mm0\n\t" -" pfadd 28(%%ecx), %%mm0\n\t" -" movq %%mm0, %%mm1\n\t" +" pfadd 24(%%ecx), %%mm0\n\t" +" pfadd 28(%%ecx), %%mm0\n\t" +" movq %%mm0, %%mm1\n\t" -" pfadd 16(%%ecx), %%mm0\n\t" -" pfadd 20(%%ecx), %%mm0\n\t" -" movd %%mm0, 768(%%esi)\n\t" -" pfadd %%mm3, %%mm1\n\t" -" movd %%mm1, 256(%%esi)\n\t" -" pfadd %%mm3, %%mm2\n\t" -" movd %%mm2, 256(%%edi)\n\t" +" pfadd 16(%%ecx), %%mm0\n\t" +" pfadd 20(%%ecx), %%mm0\n\t" +" movd %%mm0, 768(%%esi)\n\t" +" pfadd %%mm3, %%mm1\n\t" +" movd %%mm1, 256(%%esi)\n\t" +" pfadd %%mm3, %%mm2\n\t" +" movd %%mm2, 256(%%edi)\n\t" /* Phase 8*/ -" movq 32(%%edx), %%mm0\n\t" -" movq 48(%%edx), %%mm1\n\t" -" pfadd 48(%%edx), %%mm0\n\t" -" pfadd 40(%%edx), %%mm1\n\t" -" movd %%mm0, 896(%%esi)\n\t" -" movd %%mm1, 640(%%esi)\n\t" -" psrlq $32, %%mm0\n\t" -" psrlq $32, %%mm1\n\t" -" movd %%mm0, 128(%%edi)\n\t" -" movd %%mm1, 384(%%edi)\n\t" +" movq 32(%%edx), %%mm0\n\t" +" movq 48(%%edx), %%mm1\n\t" +" pfadd 48(%%edx), %%mm0\n\t" +" pfadd 40(%%edx), %%mm1\n\t" +" movd %%mm0, 896(%%esi)\n\t" +" movd %%mm1, 640(%%esi)\n\t" +" psrlq $32, %%mm0\n\t" +" psrlq $32, %%mm1\n\t" +" movd %%mm0, 128(%%edi)\n\t" +" movd %%mm1, 384(%%edi)\n\t" -" movd 40(%%edx), %%mm0\n\t" -" pfadd 56(%%edx), %%mm0\n\t" -" movd %%mm0, 384(%%esi)\n\t" +" movd 40(%%edx), %%mm0\n\t" +" pfadd 56(%%edx), %%mm0\n\t" +" movd %%mm0, 384(%%esi)\n\t" -" movd 56(%%edx), %%mm0\n\t" -" pfadd 36(%%edx), %%mm0\n\t" -" movd %%mm0, 128(%%esi)\n\t" +" movd 56(%%edx), %%mm0\n\t" +" pfadd 36(%%edx), %%mm0\n\t" +" movd %%mm0, 128(%%esi)\n\t" -" movd 60(%%edx), %%mm0\n\t" -" movd %%mm0, 896(%%edi)\n\t" -" pfadd 44(%%edx), %%mm0\n\t" -" movd %%mm0, 640(%%edi)\n\t" +" movd 60(%%edx), %%mm0\n\t" +" movd %%mm0, 896(%%edi)\n\t" +" pfadd 44(%%edx), %%mm0\n\t" +" movd %%mm0, 640(%%edi)\n\t" -" movq 96(%%edx), %%mm0\n\t" -" movq 112(%%edx), %%mm2\n\t" -" movq 104(%%edx), %%mm4\n\t" -" pfadd 112(%%edx), %%mm0\n\t" -" pfadd 104(%%edx), %%mm2\n\t" -" pfadd 120(%%edx), %%mm4\n\t" -" movq %%mm0, %%mm1\n\t" -" movq %%mm2, %%mm3\n\t" -" movq %%mm4, %%mm5\n\t" -" pfadd 64(%%edx), %%mm0\n\t" -" pfadd 80(%%edx), %%mm2\n\t" -" pfadd 72(%%edx), %%mm4\n\t" -" movd %%mm0, 960(%%esi)\n\t" -" movd %%mm2, 704(%%esi)\n\t" -" movd %%mm4, 448(%%esi)\n\t" -" psrlq $32, %%mm0\n\t" -" psrlq $32, %%mm2\n\t" -" psrlq $32, %%mm4\n\t" -" movd %%mm0, 64(%%edi)\n\t" -" movd %%mm2, 320(%%edi)\n\t" -" movd %%mm4, 576(%%edi)\n\t" -" pfadd 80(%%edx), %%mm1\n\t" -" pfadd 72(%%edx), %%mm3\n\t" -" pfadd 88(%%edx), %%mm5\n\t" -" movd %%mm1, 832(%%esi)\n\t" -" movd %%mm3, 576(%%esi)\n\t" -" movd %%mm5, 320(%%esi)\n\t" -" psrlq $32, %%mm1\n\t" -" psrlq $32, %%mm3\n\t" -" psrlq $32, %%mm5\n\t" -" movd %%mm1, 192(%%edi)\n\t" -" movd %%mm3, 448(%%edi)\n\t" -" movd %%mm5, 704(%%edi)\n\t" +" movq 96(%%edx), %%mm0\n\t" +" movq 112(%%edx), %%mm2\n\t" +" movq 104(%%edx), %%mm4\n\t" +" pfadd 112(%%edx), %%mm0\n\t" +" pfadd 104(%%edx), %%mm2\n\t" +" pfadd 120(%%edx), %%mm4\n\t" +" movq %%mm0, %%mm1\n\t" +" movq %%mm2, %%mm3\n\t" +" movq %%mm4, %%mm5\n\t" +" pfadd 64(%%edx), %%mm0\n\t" +" pfadd 80(%%edx), %%mm2\n\t" +" pfadd 72(%%edx), %%mm4\n\t" +" movd %%mm0, 960(%%esi)\n\t" +" movd %%mm2, 704(%%esi)\n\t" +" movd %%mm4, 448(%%esi)\n\t" +" psrlq $32, %%mm0\n\t" +" psrlq $32, %%mm2\n\t" +" psrlq $32, %%mm4\n\t" +" movd %%mm0, 64(%%edi)\n\t" +" movd %%mm2, 320(%%edi)\n\t" +" movd %%mm4, 576(%%edi)\n\t" +" pfadd 80(%%edx), %%mm1\n\t" +" pfadd 72(%%edx), %%mm3\n\t" +" pfadd 88(%%edx), %%mm5\n\t" +" movd %%mm1, 832(%%esi)\n\t" +" movd %%mm3, 576(%%esi)\n\t" +" movd %%mm5, 320(%%esi)\n\t" +" psrlq $32, %%mm1\n\t" +" psrlq $32, %%mm3\n\t" +" psrlq $32, %%mm5\n\t" +" movd %%mm1, 192(%%edi)\n\t" +" movd %%mm3, 448(%%edi)\n\t" +" movd %%mm5, 704(%%edi)\n\t" -" movd 120(%%edx), %%mm0\n\t" -" pfadd 100(%%edx), %%mm0\n\t" -" movq %%mm0, %%mm1\n\t" -" pfadd 88(%%edx), %%mm0\n\t" -" movd %%mm0, 192(%%esi)\n\t" -" pfadd 68(%%edx), %%mm1\n\t" -" movd %%mm1, 64(%%esi)\n\t" +" movd 120(%%edx), %%mm0\n\t" +" pfadd 100(%%edx), %%mm0\n\t" +" movq %%mm0, %%mm1\n\t" +" pfadd 88(%%edx), %%mm0\n\t" +" movd %%mm0, 192(%%esi)\n\t" +" pfadd 68(%%edx), %%mm1\n\t" +" movd %%mm1, 64(%%esi)\n\t" -" movd 124(%%edx), %%mm0\n\t" -" movd %%mm0, 960(%%edi)\n\t" -" pfadd 92(%%edx), %%mm0\n\t" -" movd %%mm0, 832(%%edi)\n\t" +" movd 124(%%edx), %%mm0\n\t" +" movd %%mm0, 960(%%edi)\n\t" +" pfadd 92(%%edx), %%mm0\n\t" +" movd %%mm0, 832(%%edi)\n\t" -" jmp .L_bye\n\t" +" jmp .L_bye\n\t" ".L01:\n\t" #endif /* Phase 9*/ -" movq (%%ecx), %%mm0\n\t" -" movq %%mm0, %%mm1\n\t" -" pxor %%mm7, %%mm1\n\t" -" pfacc %%mm1, %%mm0\n\t" -" pfmul %%mm6, %%mm0\n\t" -" pf2id %%mm0, %%mm0\n\t" -" packssdw %%mm0, %%mm0\n\t" -" movd %%mm0, %%eax\n\t" -" movw %%ax, 512(%%esi)\n\t" -" shrl $16, %%eax\n\t" -" movw %%ax, (%%esi)\n\t" +" movq (%%ecx), %%mm0\n\t" +" movq %%mm0, %%mm1\n\t" +" pxor %%mm7, %%mm1\n\t" +" pfacc %%mm1, %%mm0\n\t" +" pfmul %%mm6, %%mm0\n\t" +" pf2id %%mm0, %%mm0\n\t" +" packssdw %%mm0, %%mm0\n\t" +" movd %%mm0, %%eax\n\t" +" movw %%ax, 512(%%esi)\n\t" +" shrl $16, %%eax\n\t" +" movw %%ax, (%%esi)\n\t" -" movd 12(%%ecx), %%mm0\n\t" -" pfsub 8(%%ecx), %%mm0\n\t" -" pfmul 120(%%ebx), %%mm0\n\t" -" pf2id %%mm0, %%mm7\n\t" -" packssdw %%mm7, %%mm7\n\t" -" movd %%mm7, %%eax\n\t" -" movw %%ax, 256(%%edi)\n\t" -" pfadd 12(%%ecx), %%mm0\n\t" -" pfadd 8(%%ecx), %%mm0\n\t" -" pf2id %%mm0, %%mm0\n\t" -" packssdw %%mm0, %%mm0\n\t" -" movd %%mm0, %%eax\n\t" -" movw %%ax, 256(%%esi)\n\t" +" movd 12(%%ecx), %%mm0\n\t" +" pfsub 8(%%ecx), %%mm0\n\t" +" pfmul 120(%%ebx), %%mm0\n\t" +" pf2id %%mm0, %%mm7\n\t" +" packssdw %%mm7, %%mm7\n\t" +" movd %%mm7, %%eax\n\t" +" movw %%ax, 256(%%edi)\n\t" +" pfadd 12(%%ecx), %%mm0\n\t" +" pfadd 8(%%ecx), %%mm0\n\t" +" pf2id %%mm0, %%mm0\n\t" +" packssdw %%mm0, %%mm0\n\t" +" movd %%mm0, %%eax\n\t" +" movw %%ax, 256(%%esi)\n\t" -" movd 16(%%ecx), %%mm3\n\t" -" pfsub 20(%%ecx), %%mm3\n\t" -" pfmul 120(%%ebx), %%mm3\n\t" -" movq %%mm3, %%mm2\n\t" +" movd 16(%%ecx), %%mm3\n\t" +" pfsub 20(%%ecx), %%mm3\n\t" +" pfmul 120(%%ebx), %%mm3\n\t" +" movq %%mm3, %%mm2\n\t" -" movd 28(%%ecx), %%mm2\n\t" -" pfsub 24(%%ecx), %%mm2\n\t" -" pfmul 120(%%ebx), %%mm2\n\t" -" movq %%mm2, %%mm1\n\t" +" movd 28(%%ecx), %%mm2\n\t" +" pfsub 24(%%ecx), %%mm2\n\t" +" pfmul 120(%%ebx), %%mm2\n\t" +" movq %%mm2, %%mm1\n\t" -" pf2id %%mm2, %%mm7\n\t" -" packssdw %%mm7, %%mm7\n\t" -" movd %%mm7, %%eax\n\t" -" movw %%ax, 384(%%edi)\n\t" +" pf2id %%mm2, %%mm7\n\t" +" packssdw %%mm7, %%mm7\n\t" +" movd %%mm7, %%eax\n\t" +" movw %%ax, 384(%%edi)\n\t" -" pfadd 24(%%ecx), %%mm1\n\t" -" pfadd 28(%%ecx), %%mm1\n\t" -" movq %%mm1, %%mm0\n\t" +" pfadd 24(%%ecx), %%mm1\n\t" +" pfadd 28(%%ecx), %%mm1\n\t" +" movq %%mm1, %%mm0\n\t" -" pfadd 16(%%ecx), %%mm0\n\t" -" pfadd 20(%%ecx), %%mm0\n\t" -" pf2id %%mm0, %%mm0\n\t" -" packssdw %%mm0, %%mm0\n\t" -" movd %%mm0, %%eax\n\t" -" movw %%ax, 384(%%esi)\n\t" -" pfadd %%mm3, %%mm1\n\t" -" pf2id %%mm1, %%mm1\n\t" -" packssdw %%mm1, %%mm1\n\t" -" movd %%mm1, %%eax\n\t" -" movw %%ax, 128(%%esi)\n\t" -" pfadd %%mm3, %%mm2\n\t" -" pf2id %%mm2, %%mm2\n\t" -" packssdw %%mm2, %%mm2\n\t" -" movd %%mm2, %%eax\n\t" -" movw %%ax, 128(%%edi)\n\t" +" pfadd 16(%%ecx), %%mm0\n\t" +" pfadd 20(%%ecx), %%mm0\n\t" +" pf2id %%mm0, %%mm0\n\t" +" packssdw %%mm0, %%mm0\n\t" +" movd %%mm0, %%eax\n\t" +" movw %%ax, 384(%%esi)\n\t" +" pfadd %%mm3, %%mm1\n\t" +" pf2id %%mm1, %%mm1\n\t" +" packssdw %%mm1, %%mm1\n\t" +" movd %%mm1, %%eax\n\t" +" movw %%ax, 128(%%esi)\n\t" +" pfadd %%mm3, %%mm2\n\t" +" pf2id %%mm2, %%mm2\n\t" +" packssdw %%mm2, %%mm2\n\t" +" movd %%mm2, %%eax\n\t" +" movw %%ax, 128(%%edi)\n\t" /* Phase 10*/ -" movq 32(%%edx), %%mm0\n\t" -" movq 48(%%edx), %%mm1\n\t" -" pfadd 48(%%edx), %%mm0\n\t" -" pfadd 40(%%edx), %%mm1\n\t" -" pf2id %%mm0, %%mm0\n\t" -" pf2id %%mm1, %%mm1\n\t" -" packssdw %%mm0, %%mm0\n\t" -" packssdw %%mm1, %%mm1\n\t" -" movd %%mm0, %%eax\n\t" -" movd %%mm1, %%ecx\n\t" -" movw %%ax, 448(%%esi)\n\t" -" movw %%cx, 320(%%esi)\n\t" -" shrl $16, %%eax\n\t" -" shrl $16, %%ecx\n\t" -" movw %%ax, 64(%%edi)\n\t" -" movw %%cx, 192(%%edi)\n\t" +" movq 32(%%edx), %%mm0\n\t" +" movq 48(%%edx), %%mm1\n\t" +" pfadd 48(%%edx), %%mm0\n\t" +" pfadd 40(%%edx), %%mm1\n\t" +" pf2id %%mm0, %%mm0\n\t" +" pf2id %%mm1, %%mm1\n\t" +" packssdw %%mm0, %%mm0\n\t" +" packssdw %%mm1, %%mm1\n\t" +" movd %%mm0, %%eax\n\t" +" movd %%mm1, %%ecx\n\t" +" movw %%ax, 448(%%esi)\n\t" +" movw %%cx, 320(%%esi)\n\t" +" shrl $16, %%eax\n\t" +" shrl $16, %%ecx\n\t" +" movw %%ax, 64(%%edi)\n\t" +" movw %%cx, 192(%%edi)\n\t" -" movd 40(%%edx), %%mm3\n\t" -" movd 56(%%edx), %%mm4\n\t" -" movd 60(%%edx), %%mm0\n\t" -" movd 44(%%edx), %%mm2\n\t" -" movd 120(%%edx), %%mm5\n\t" -" punpckldq %%mm4, %%mm3\n\t" -" punpckldq 124(%%edx), %%mm0\n\t" -" pfadd 100(%%edx), %%mm5\n\t" -" punpckldq 36(%%edx), %%mm4\n\t" -" punpckldq 92(%%edx), %%mm2\n\t" -" movq %%mm5, %%mm6\n\t" -" pfadd %%mm4, %%mm3\n\t" -" pf2id %%mm0, %%mm1\n\t" -" pf2id %%mm3, %%mm3\n\t" -" packssdw %%mm1, %%mm1\n\t" -" packssdw %%mm3, %%mm3\n\t" -" pfadd 88(%%edx), %%mm5\n\t" -" movd %%mm1, %%eax\n\t" -" movd %%mm3, %%ecx\n\t" -" movw %%ax, 448(%%edi)\n\t" -" movw %%cx, 192(%%esi)\n\t" -" pf2id %%mm5, %%mm5\n\t" -" packssdw %%mm5, %%mm5\n\t" -" shrl $16, %%eax\n\t" -" shrl $16, %%ecx\n\t" -" movd %%mm5, %%ebx\n\t" -" movw %%bx, 96(%%esi)\n\t" -" movw %%ax, 480(%%edi)\n\t" -" movw %%cx, 64(%%esi)\n\t" -" pfadd %%mm2, %%mm0\n\t" -" pf2id %%mm0, %%mm0\n\t" -" packssdw %%mm0, %%mm0\n\t" -" movd %%mm0, %%eax\n\t" -" pfadd 68(%%edx), %%mm6\n\t" -" movw %%ax, 320(%%edi)\n\t" -" shr $16, %%eax\n\t" -" pf2id %%mm6, %%mm6\n\t" -" packssdw %%mm6, %%mm6\n\t" -" movd %%mm6, %%ebx\n\t" -" movw %%ax, 416(%%edi)\n\t" -" movw %%bx, 32(%%esi)\n\t" +" movd 40(%%edx), %%mm3\n\t" +" movd 56(%%edx), %%mm4\n\t" +" movd 60(%%edx), %%mm0\n\t" +" movd 44(%%edx), %%mm2\n\t" +" movd 120(%%edx), %%mm5\n\t" +" punpckldq %%mm4, %%mm3\n\t" +" punpckldq 124(%%edx), %%mm0\n\t" +" pfadd 100(%%edx), %%mm5\n\t" +" punpckldq 36(%%edx), %%mm4\n\t" +" punpckldq 92(%%edx), %%mm2\n\t" +" movq %%mm5, %%mm6\n\t" +" pfadd %%mm4, %%mm3\n\t" +" pf2id %%mm0, %%mm1\n\t" +" pf2id %%mm3, %%mm3\n\t" +" packssdw %%mm1, %%mm1\n\t" +" packssdw %%mm3, %%mm3\n\t" +" pfadd 88(%%edx), %%mm5\n\t" +" movd %%mm1, %%eax\n\t" +" movd %%mm3, %%ecx\n\t" +" movw %%ax, 448(%%edi)\n\t" +" movw %%cx, 192(%%esi)\n\t" +" pf2id %%mm5, %%mm5\n\t" +" packssdw %%mm5, %%mm5\n\t" +" shrl $16, %%eax\n\t" +" shrl $16, %%ecx\n\t" +" movd %%mm5, %%ebx\n\t" +" movw %%bx, 96(%%esi)\n\t" +" movw %%ax, 480(%%edi)\n\t" +" movw %%cx, 64(%%esi)\n\t" +" pfadd %%mm2, %%mm0\n\t" +" pf2id %%mm0, %%mm0\n\t" +" packssdw %%mm0, %%mm0\n\t" +" movd %%mm0, %%eax\n\t" +" pfadd 68(%%edx), %%mm6\n\t" +" movw %%ax, 320(%%edi)\n\t" +" shr $16, %%eax\n\t" +" pf2id %%mm6, %%mm6\n\t" +" packssdw %%mm6, %%mm6\n\t" +" movd %%mm6, %%ebx\n\t" +" movw %%ax, 416(%%edi)\n\t" +" movw %%bx, 32(%%esi)\n\t" -" movq 96(%%edx), %%mm0\n\t" -" movq 112(%%edx), %%mm2\n\t" -" movq 104(%%edx), %%mm4\n\t" -" pfadd %%mm2, %%mm0\n\t" -" pfadd %%mm4, %%mm2\n\t" -" pfadd 120(%%edx), %%mm4\n\t" -" movq %%mm0, %%mm1\n\t" -" movq %%mm2, %%mm3\n\t" -" movq %%mm4, %%mm5\n\t" -" pfadd 64(%%edx), %%mm0\n\t" -" pfadd 80(%%edx), %%mm2\n\t" -" pfadd 72(%%edx), %%mm4\n\t" -" pf2id %%mm0, %%mm0\n\t" -" pf2id %%mm2, %%mm2\n\t" -" pf2id %%mm4, %%mm4\n\t" -" packssdw %%mm0, %%mm0\n\t" -" packssdw %%mm2, %%mm2\n\t" -" packssdw %%mm4, %%mm4\n\t" -" movd %%mm0, %%eax\n\t" -" movd %%mm2, %%ecx\n\t" -" movd %%mm4, %%ebx\n\t" -" movw %%ax, 480(%%esi)\n\t" -" movw %%cx, 352(%%esi)\n\t" -" movw %%bx, 224(%%esi)\n\t" -" shrl $16, %%eax\n\t" -" shrl $16, %%ecx\n\t" -" shrl $16, %%ebx\n\t" -" movw %%ax, 32(%%edi)\n\t" -" movw %%cx, 160(%%edi)\n\t" -" movw %%bx, 288(%%edi)\n\t" -" pfadd 80(%%edx), %%mm1\n\t" -" pfadd 72(%%edx), %%mm3\n\t" -" pfadd 88(%%edx), %%mm5\n\t" -" pf2id %%mm1, %%mm1\n\t" -" pf2id %%mm3, %%mm3\n\t" -" pf2id %%mm5, %%mm5\n\t" -" packssdw %%mm1, %%mm1\n\t" -" packssdw %%mm3, %%mm3\n\t" -" packssdw %%mm5, %%mm5\n\t" -" movd %%mm1, %%eax\n\t" -" movd %%mm3, %%ecx\n\t" -" movd %%mm5, %%ebx\n\t" -" movw %%ax, 416(%%esi)\n\t" -" movw %%cx, 288(%%esi)\n\t" -" movw %%bx, 160(%%esi)\n\t" -" shrl $16, %%eax\n\t" -" shrl $16, %%ecx\n\t" -" shrl $16, %%ebx\n\t" -" movw %%ax, 96(%%edi)\n\t" -" movw %%cx, 224(%%edi)\n\t" -" movw %%bx, 352(%%edi)\n\t" +" movq 96(%%edx), %%mm0\n\t" +" movq 112(%%edx), %%mm2\n\t" +" movq 104(%%edx), %%mm4\n\t" +" pfadd %%mm2, %%mm0\n\t" +" pfadd %%mm4, %%mm2\n\t" +" pfadd 120(%%edx), %%mm4\n\t" +" movq %%mm0, %%mm1\n\t" +" movq %%mm2, %%mm3\n\t" +" movq %%mm4, %%mm5\n\t" +" pfadd 64(%%edx), %%mm0\n\t" +" pfadd 80(%%edx), %%mm2\n\t" +" pfadd 72(%%edx), %%mm4\n\t" +" pf2id %%mm0, %%mm0\n\t" +" pf2id %%mm2, %%mm2\n\t" +" pf2id %%mm4, %%mm4\n\t" +" packssdw %%mm0, %%mm0\n\t" +" packssdw %%mm2, %%mm2\n\t" +" packssdw %%mm4, %%mm4\n\t" +" movd %%mm0, %%eax\n\t" +" movd %%mm2, %%ecx\n\t" +" movd %%mm4, %%ebx\n\t" +" movw %%ax, 480(%%esi)\n\t" +" movw %%cx, 352(%%esi)\n\t" +" movw %%bx, 224(%%esi)\n\t" +" shrl $16, %%eax\n\t" +" shrl $16, %%ecx\n\t" +" shrl $16, %%ebx\n\t" +" movw %%ax, 32(%%edi)\n\t" +" movw %%cx, 160(%%edi)\n\t" +" movw %%bx, 288(%%edi)\n\t" +" pfadd 80(%%edx), %%mm1\n\t" +" pfadd 72(%%edx), %%mm3\n\t" +" pfadd 88(%%edx), %%mm5\n\t" +" pf2id %%mm1, %%mm1\n\t" +" pf2id %%mm3, %%mm3\n\t" +" pf2id %%mm5, %%mm5\n\t" +" packssdw %%mm1, %%mm1\n\t" +" packssdw %%mm3, %%mm3\n\t" +" packssdw %%mm5, %%mm5\n\t" +" movd %%mm1, %%eax\n\t" +" movd %%mm3, %%ecx\n\t" +" movd %%mm5, %%ebx\n\t" +" movw %%ax, 416(%%esi)\n\t" +" movw %%cx, 288(%%esi)\n\t" +" movw %%bx, 160(%%esi)\n\t" +" shrl $16, %%eax\n\t" +" shrl $16, %%ecx\n\t" +" shrl $16, %%ebx\n\t" +" movw %%ax, 96(%%edi)\n\t" +" movw %%cx, 224(%%edi)\n\t" +" movw %%bx, 352(%%edi)\n\t" -" movsw\n\t" +" movsw\n\t" ".L_bye:\n\t" -" femms\n\t" - : - :"m"(a),"m"(b),"m"(c),"m"(tmp[0]) - :"memory","%eax","%ebx","%ecx","%edx","%esi","%edi"); +" femms\n\t" + : + :"m"(a),"m"(b),"m"(c),"m"(tmp[0]) + :"memory","%eax","%ebx","%ecx","%edx","%esi","%edi"); }
--- a/mp3lib/dct64_k7.c Mon Apr 12 08:03:39 2010 +0000 +++ b/mp3lib/dct64_k7.c Mon Apr 12 10:56:17 2010 +0000 @@ -19,748 +19,748 @@ { char tmp[256]; __asm__ volatile( -" movl %2,%%eax\n\t" +" movl %2,%%eax\n\t" -" leal 128+%3,%%edx\n\t" -" movl %0,%%esi\n\t" -" movl %1,%%edi\n\t" -" movl $"MANGLE(costab_mmx)",%%ebx\n\t" -" leal %3,%%ecx\n\t" +" leal 128+%3,%%edx\n\t" +" movl %0,%%esi\n\t" +" movl %1,%%edi\n\t" +" movl $"MANGLE(costab_mmx)",%%ebx\n\t" +" leal %3,%%ecx\n\t" /* Phase 1*/ -" movq (%%eax), %%mm0\n\t" -" movq 8(%%eax), %%mm4\n\t" -" movq %%mm0, %%mm3\n\t" -" movq %%mm4, %%mm7\n\t" -" pswapd 120(%%eax), %%mm1\n\t" -" pswapd 112(%%eax), %%mm5\n\t" -" pfadd %%mm1, %%mm0\n\t" -" pfadd %%mm5, %%mm4\n\t" -" movq %%mm0, (%%edx)\n\t" -" movq %%mm4, 8(%%edx)\n\t" -" pfsub %%mm1, %%mm3\n\t" -" pfsub %%mm5, %%mm7\n\t" -" pfmul (%%ebx), %%mm3\n\t" -" pfmul 8(%%ebx), %%mm7\n\t" -" pswapd %%mm3, %%mm3\n\t" -" pswapd %%mm7, %%mm7\n\t" -" movq %%mm3, 120(%%edx)\n\t" -" movq %%mm7, 112(%%edx)\n\t" +" movq (%%eax), %%mm0\n\t" +" movq 8(%%eax), %%mm4\n\t" +" movq %%mm0, %%mm3\n\t" +" movq %%mm4, %%mm7\n\t" +" pswapd 120(%%eax), %%mm1\n\t" +" pswapd 112(%%eax), %%mm5\n\t" +" pfadd %%mm1, %%mm0\n\t" +" pfadd %%mm5, %%mm4\n\t" +" movq %%mm0, (%%edx)\n\t" +" movq %%mm4, 8(%%edx)\n\t" +" pfsub %%mm1, %%mm3\n\t" +" pfsub %%mm5, %%mm7\n\t" +" pfmul (%%ebx), %%mm3\n\t" +" pfmul 8(%%ebx), %%mm7\n\t" +" pswapd %%mm3, %%mm3\n\t" +" pswapd %%mm7, %%mm7\n\t" +" movq %%mm3, 120(%%edx)\n\t" +" movq %%mm7, 112(%%edx)\n\t" -" movq 16(%%eax), %%mm0\n\t" -" movq 24(%%eax), %%mm4\n\t" -" movq %%mm0, %%mm3\n\t" -" movq %%mm4, %%mm7\n\t" -" pswapd 104(%%eax), %%mm1\n\t" -" pswapd 96(%%eax), %%mm5\n\t" -" pfadd %%mm1, %%mm0\n\t" -" pfadd %%mm5, %%mm4\n\t" -" movq %%mm0, 16(%%edx)\n\t" -" movq %%mm4, 24(%%edx)\n\t" -" pfsub %%mm1, %%mm3\n\t" -" pfsub %%mm5, %%mm7\n\t" -" pfmul 16(%%ebx), %%mm3\n\t" -" pfmul 24(%%ebx), %%mm7\n\t" -" pswapd %%mm3, %%mm3\n\t" -" pswapd %%mm7, %%mm7\n\t" -" movq %%mm3, 104(%%edx)\n\t" -" movq %%mm7, 96(%%edx)\n\t" +" movq 16(%%eax), %%mm0\n\t" +" movq 24(%%eax), %%mm4\n\t" +" movq %%mm0, %%mm3\n\t" +" movq %%mm4, %%mm7\n\t" +" pswapd 104(%%eax), %%mm1\n\t" +" pswapd 96(%%eax), %%mm5\n\t" +" pfadd %%mm1, %%mm0\n\t" +" pfadd %%mm5, %%mm4\n\t" +" movq %%mm0, 16(%%edx)\n\t" +" movq %%mm4, 24(%%edx)\n\t" +" pfsub %%mm1, %%mm3\n\t" +" pfsub %%mm5, %%mm7\n\t" +" pfmul 16(%%ebx), %%mm3\n\t" +" pfmul 24(%%ebx), %%mm7\n\t" +" pswapd %%mm3, %%mm3\n\t" +" pswapd %%mm7, %%mm7\n\t" +" movq %%mm3, 104(%%edx)\n\t" +" movq %%mm7, 96(%%edx)\n\t" -" movq 32(%%eax), %%mm0\n\t" -" movq 40(%%eax), %%mm4\n\t" -" movq %%mm0, %%mm3\n\t" -" movq %%mm4, %%mm7\n\t" -" pswapd 88(%%eax), %%mm1\n\t" -" pswapd 80(%%eax), %%mm5\n\t" -" pfadd %%mm1, %%mm0\n\t" -" pfadd %%mm5, %%mm4\n\t" -" movq %%mm0, 32(%%edx)\n\t" -" movq %%mm4, 40(%%edx)\n\t" -" pfsub %%mm1, %%mm3\n\t" -" pfsub %%mm5, %%mm7\n\t" -" pfmul 32(%%ebx), %%mm3\n\t" -" pfmul 40(%%ebx), %%mm7\n\t" -" pswapd %%mm3, %%mm3\n\t" -" pswapd %%mm7, %%mm7\n\t" -" movq %%mm3, 88(%%edx)\n\t" -" movq %%mm7, 80(%%edx)\n\t" +" movq 32(%%eax), %%mm0\n\t" +" movq 40(%%eax), %%mm4\n\t" +" movq %%mm0, %%mm3\n\t" +" movq %%mm4, %%mm7\n\t" +" pswapd 88(%%eax), %%mm1\n\t" +" pswapd 80(%%eax), %%mm5\n\t" +" pfadd %%mm1, %%mm0\n\t" +" pfadd %%mm5, %%mm4\n\t" +" movq %%mm0, 32(%%edx)\n\t" +" movq %%mm4, 40(%%edx)\n\t" +" pfsub %%mm1, %%mm3\n\t" +" pfsub %%mm5, %%mm7\n\t" +" pfmul 32(%%ebx), %%mm3\n\t" +" pfmul 40(%%ebx), %%mm7\n\t" +" pswapd %%mm3, %%mm3\n\t" +" pswapd %%mm7, %%mm7\n\t" +" movq %%mm3, 88(%%edx)\n\t" +" movq %%mm7, 80(%%edx)\n\t" -" movq 48(%%eax), %%mm0\n\t" -" movq 56(%%eax), %%mm4\n\t" -" movq %%mm0, %%mm3\n\t" -" movq %%mm4, %%mm7\n\t" -" pswapd 72(%%eax), %%mm1\n\t" -" pswapd 64(%%eax), %%mm5\n\t" -" pfadd %%mm1, %%mm0\n\t" -" pfadd %%mm5, %%mm4\n\t" -" movq %%mm0, 48(%%edx)\n\t" -" movq %%mm4, 56(%%edx)\n\t" -" pfsub %%mm1, %%mm3\n\t" -" pfsub %%mm5, %%mm7\n\t" -" pfmul 48(%%ebx), %%mm3\n\t" -" pfmul 56(%%ebx), %%mm7\n\t" -" pswapd %%mm3, %%mm3\n\t" -" pswapd %%mm7, %%mm7\n\t" -" movq %%mm3, 72(%%edx)\n\t" -" movq %%mm7, 64(%%edx)\n\t" +" movq 48(%%eax), %%mm0\n\t" +" movq 56(%%eax), %%mm4\n\t" +" movq %%mm0, %%mm3\n\t" +" movq %%mm4, %%mm7\n\t" +" pswapd 72(%%eax), %%mm1\n\t" +" pswapd 64(%%eax), %%mm5\n\t" +" pfadd %%mm1, %%mm0\n\t" +" pfadd %%mm5, %%mm4\n\t" +" movq %%mm0, 48(%%edx)\n\t" +" movq %%mm4, 56(%%edx)\n\t" +" pfsub %%mm1, %%mm3\n\t" +" pfsub %%mm5, %%mm7\n\t" +" pfmul 48(%%ebx), %%mm3\n\t" +" pfmul 56(%%ebx), %%mm7\n\t" +" pswapd %%mm3, %%mm3\n\t" +" pswapd %%mm7, %%mm7\n\t" +" movq %%mm3, 72(%%edx)\n\t" +" movq %%mm7, 64(%%edx)\n\t" /* Phase 2*/ -" movq (%%edx), %%mm0\n\t" -" movq 8(%%edx), %%mm4\n\t" -" movq %%mm0, %%mm3\n\t" -" movq %%mm4, %%mm7\n\t" -" pswapd 56(%%edx), %%mm1\n\t" -" pswapd 48(%%edx), %%mm5\n\t" -" pfadd %%mm1, %%mm0\n\t" -" pfadd %%mm5, %%mm4\n\t" -" movq %%mm0, (%%ecx)\n\t" -" movq %%mm4, 8(%%ecx)\n\t" -" pfsub %%mm1, %%mm3\n\t" -" pfsub %%mm5, %%mm7\n\t" -" pfmul 64(%%ebx), %%mm3\n\t" -" pfmul 72(%%ebx), %%mm7\n\t" -" pswapd %%mm3, %%mm3\n\t" -" pswapd %%mm7, %%mm7\n\t" -" movq %%mm3, 56(%%ecx)\n\t" -" movq %%mm7, 48(%%ecx)\n\t" +" movq (%%edx), %%mm0\n\t" +" movq 8(%%edx), %%mm4\n\t" +" movq %%mm0, %%mm3\n\t" +" movq %%mm4, %%mm7\n\t" +" pswapd 56(%%edx), %%mm1\n\t" +" pswapd 48(%%edx), %%mm5\n\t" +" pfadd %%mm1, %%mm0\n\t" +" pfadd %%mm5, %%mm4\n\t" +" movq %%mm0, (%%ecx)\n\t" +" movq %%mm4, 8(%%ecx)\n\t" +" pfsub %%mm1, %%mm3\n\t" +" pfsub %%mm5, %%mm7\n\t" +" pfmul 64(%%ebx), %%mm3\n\t" +" pfmul 72(%%ebx), %%mm7\n\t" +" pswapd %%mm3, %%mm3\n\t" +" pswapd %%mm7, %%mm7\n\t" +" movq %%mm3, 56(%%ecx)\n\t" +" movq %%mm7, 48(%%ecx)\n\t" -" movq 16(%%edx), %%mm0\n\t" -" movq 24(%%edx), %%mm4\n\t" -" movq %%mm0, %%mm3\n\t" -" movq %%mm4, %%mm7\n\t" -" pswapd 40(%%edx), %%mm1\n\t" -" pswapd 32(%%edx), %%mm5\n\t" -" pfadd %%mm1, %%mm0\n\t" -" pfadd %%mm5, %%mm4\n\t" -" movq %%mm0, 16(%%ecx)\n\t" -" movq %%mm4, 24(%%ecx)\n\t" -" pfsub %%mm1, %%mm3\n\t" -" pfsub %%mm5, %%mm7\n\t" -" pfmul 80(%%ebx), %%mm3\n\t" -" pfmul 88(%%ebx), %%mm7\n\t" -" pswapd %%mm3, %%mm3\n\t" -" pswapd %%mm7, %%mm7\n\t" -" movq %%mm3, 40(%%ecx)\n\t" -" movq %%mm7, 32(%%ecx)\n\t" +" movq 16(%%edx), %%mm0\n\t" +" movq 24(%%edx), %%mm4\n\t" +" movq %%mm0, %%mm3\n\t" +" movq %%mm4, %%mm7\n\t" +" pswapd 40(%%edx), %%mm1\n\t" +" pswapd 32(%%edx), %%mm5\n\t" +" pfadd %%mm1, %%mm0\n\t" +" pfadd %%mm5, %%mm4\n\t" +" movq %%mm0, 16(%%ecx)\n\t" +" movq %%mm4, 24(%%ecx)\n\t" +" pfsub %%mm1, %%mm3\n\t" +" pfsub %%mm5, %%mm7\n\t" +" pfmul 80(%%ebx), %%mm3\n\t" +" pfmul 88(%%ebx), %%mm7\n\t" +" pswapd %%mm3, %%mm3\n\t" +" pswapd %%mm7, %%mm7\n\t" +" movq %%mm3, 40(%%ecx)\n\t" +" movq %%mm7, 32(%%ecx)\n\t" /* Phase 3*/ -" movq 64(%%edx), %%mm0\n\t" -" movq 72(%%edx), %%mm4\n\t" -" movq %%mm0, %%mm3\n\t" -" movq %%mm4, %%mm7\n\t" -" pswapd 120(%%edx), %%mm1\n\t" -" pswapd 112(%%edx), %%mm5\n\t" -" pfadd %%mm1, %%mm0\n\t" -" pfadd %%mm5, %%mm4\n\t" -" movq %%mm0, 64(%%ecx)\n\t" -" movq %%mm4, 72(%%ecx)\n\t" -" pfsubr %%mm1, %%mm3\n\t" -" pfsubr %%mm5, %%mm7\n\t" -" pfmul 64(%%ebx), %%mm3\n\t" -" pfmul 72(%%ebx), %%mm7\n\t" -" pswapd %%mm3, %%mm3\n\t" -" pswapd %%mm7, %%mm7\n\t" -" movq %%mm3, 120(%%ecx)\n\t" -" movq %%mm7, 112(%%ecx)\n\t" +" movq 64(%%edx), %%mm0\n\t" +" movq 72(%%edx), %%mm4\n\t" +" movq %%mm0, %%mm3\n\t" +" movq %%mm4, %%mm7\n\t" +" pswapd 120(%%edx), %%mm1\n\t" +" pswapd 112(%%edx), %%mm5\n\t" +" pfadd %%mm1, %%mm0\n\t" +" pfadd %%mm5, %%mm4\n\t" +" movq %%mm0, 64(%%ecx)\n\t" +" movq %%mm4, 72(%%ecx)\n\t" +" pfsubr %%mm1, %%mm3\n\t" +" pfsubr %%mm5, %%mm7\n\t" +" pfmul 64(%%ebx), %%mm3\n\t" +" pfmul 72(%%ebx), %%mm7\n\t" +" pswapd %%mm3, %%mm3\n\t" +" pswapd %%mm7, %%mm7\n\t" +" movq %%mm3, 120(%%ecx)\n\t" +" movq %%mm7, 112(%%ecx)\n\t" -" movq 80(%%edx), %%mm0\n\t" -" movq 88(%%edx), %%mm4\n\t" -" movq %%mm0, %%mm3\n\t" -" movq %%mm4, %%mm7\n\t" -" pswapd 104(%%edx), %%mm1\n\t" -" pswapd 96(%%edx), %%mm5\n\t" -" pfadd %%mm1, %%mm0\n\t" -" pfadd %%mm5, %%mm4\n\t" -" movq %%mm0, 80(%%ecx)\n\t" -" movq %%mm4, 88(%%ecx)\n\t" -" pfsubr %%mm1, %%mm3\n\t" -" pfsubr %%mm5, %%mm7\n\t" -" pfmul 80(%%ebx), %%mm3\n\t" -" pfmul 88(%%ebx), %%mm7\n\t" -" pswapd %%mm3, %%mm3\n\t" -" pswapd %%mm7, %%mm7\n\t" -" movq %%mm3, 104(%%ecx)\n\t" -" movq %%mm7, 96(%%ecx)\n\t" +" movq 80(%%edx), %%mm0\n\t" +" movq 88(%%edx), %%mm4\n\t" +" movq %%mm0, %%mm3\n\t" +" movq %%mm4, %%mm7\n\t" +" pswapd 104(%%edx), %%mm1\n\t" +" pswapd 96(%%edx), %%mm5\n\t" +" pfadd %%mm1, %%mm0\n\t" +" pfadd %%mm5, %%mm4\n\t" +" movq %%mm0, 80(%%ecx)\n\t" +" movq %%mm4, 88(%%ecx)\n\t" +" pfsubr %%mm1, %%mm3\n\t" +" pfsubr %%mm5, %%mm7\n\t" +" pfmul 80(%%ebx), %%mm3\n\t" +" pfmul 88(%%ebx), %%mm7\n\t" +" pswapd %%mm3, %%mm3\n\t" +" pswapd %%mm7, %%mm7\n\t" +" movq %%mm3, 104(%%ecx)\n\t" +" movq %%mm7, 96(%%ecx)\n\t" /* Phase 4*/ -" movq 96(%%ebx), %%mm2\n\t" -" movq 104(%%ebx), %%mm6\n\t" +" movq 96(%%ebx), %%mm2\n\t" +" movq 104(%%ebx), %%mm6\n\t" -" movq (%%ecx), %%mm0\n\t" -" movq 8(%%ecx), %%mm4\n\t" -" movq %%mm0, %%mm3\n\t" -" movq %%mm4, %%mm7\n\t" -" pswapd 24(%%ecx), %%mm1\n\t" -" pswapd 16(%%ecx), %%mm5\n\t" -" pfadd %%mm1, %%mm0\n\t" -" pfadd %%mm5, %%mm4\n\t" -" movq %%mm0, (%%edx)\n\t" -" movq %%mm4, 8(%%edx)\n\t" -" pfsub %%mm1, %%mm3\n\t" -" pfsub %%mm5, %%mm7\n\t" -" pfmul %%mm2, %%mm3\n\t" -" pfmul %%mm6, %%mm7\n\t" -" pswapd %%mm3, %%mm3\n\t" -" pswapd %%mm7, %%mm7\n\t" -" movq %%mm3, 24(%%edx)\n\t" -" movq %%mm7, 16(%%edx)\n\t" +" movq (%%ecx), %%mm0\n\t" +" movq 8(%%ecx), %%mm4\n\t" +" movq %%mm0, %%mm3\n\t" +" movq %%mm4, %%mm7\n\t" +" pswapd 24(%%ecx), %%mm1\n\t" +" pswapd 16(%%ecx), %%mm5\n\t" +" pfadd %%mm1, %%mm0\n\t" +" pfadd %%mm5, %%mm4\n\t" +" movq %%mm0, (%%edx)\n\t" +" movq %%mm4, 8(%%edx)\n\t" +" pfsub %%mm1, %%mm3\n\t" +" pfsub %%mm5, %%mm7\n\t" +" pfmul %%mm2, %%mm3\n\t" +" pfmul %%mm6, %%mm7\n\t" +" pswapd %%mm3, %%mm3\n\t" +" pswapd %%mm7, %%mm7\n\t" +" movq %%mm3, 24(%%edx)\n\t" +" movq %%mm7, 16(%%edx)\n\t" -" movq 32(%%ecx), %%mm0\n\t" -" movq 40(%%ecx), %%mm4\n\t" -" movq %%mm0, %%mm3\n\t" -" movq %%mm4, %%mm7\n\t" -" pswapd 56(%%ecx), %%mm1\n\t" -" pswapd 48(%%ecx), %%mm5\n\t" -" pfadd %%mm1, %%mm0\n\t" -" pfadd %%mm5, %%mm4\n\t" -" movq %%mm0, 32(%%edx)\n\t" -" movq %%mm4, 40(%%edx)\n\t" -" pfsubr %%mm1, %%mm3\n\t" -" pfsubr %%mm5, %%mm7\n\t" -" pfmul %%mm2, %%mm3\n\t" -" pfmul %%mm6, %%mm7\n\t" -" pswapd %%mm3, %%mm3\n\t" -" pswapd %%mm7, %%mm7\n\t" -" movq %%mm3, 56(%%edx)\n\t" -" movq %%mm7, 48(%%edx)\n\t" +" movq 32(%%ecx), %%mm0\n\t" +" movq 40(%%ecx), %%mm4\n\t" +" movq %%mm0, %%mm3\n\t" +" movq %%mm4, %%mm7\n\t" +" pswapd 56(%%ecx), %%mm1\n\t" +" pswapd 48(%%ecx), %%mm5\n\t" +" pfadd %%mm1, %%mm0\n\t" +" pfadd %%mm5, %%mm4\n\t" +" movq %%mm0, 32(%%edx)\n\t" +" movq %%mm4, 40(%%edx)\n\t" +" pfsubr %%mm1, %%mm3\n\t" +" pfsubr %%mm5, %%mm7\n\t" +" pfmul %%mm2, %%mm3\n\t" +" pfmul %%mm6, %%mm7\n\t" +" pswapd %%mm3, %%mm3\n\t" +" pswapd %%mm7, %%mm7\n\t" +" movq %%mm3, 56(%%edx)\n\t" +" movq %%mm7, 48(%%edx)\n\t" -" movq 64(%%ecx), %%mm0\n\t" -" movq 72(%%ecx), %%mm4\n\t" -" movq %%mm0, %%mm3\n\t" -" movq %%mm4, %%mm7\n\t" -" pswapd 88(%%ecx), %%mm1\n\t" -" pswapd 80(%%ecx), %%mm5\n\t" -" pfadd %%mm1, %%mm0\n\t" -" pfadd %%mm5, %%mm4\n\t" -" movq %%mm0, 64(%%edx)\n\t" -" movq %%mm4, 72(%%edx)\n\t" -" pfsub %%mm1, %%mm3\n\t" -" pfsub %%mm5, %%mm7\n\t" -" pfmul %%mm2, %%mm3\n\t" -" pfmul %%mm6, %%mm7\n\t" -" pswapd %%mm3, %%mm3\n\t" -" pswapd %%mm7, %%mm7\n\t" -" movq %%mm3, 88(%%edx)\n\t" -" movq %%mm7, 80(%%edx)\n\t" +" movq 64(%%ecx), %%mm0\n\t" +" movq 72(%%ecx), %%mm4\n\t" +" movq %%mm0, %%mm3\n\t" +" movq %%mm4, %%mm7\n\t" +" pswapd 88(%%ecx), %%mm1\n\t" +" pswapd 80(%%ecx), %%mm5\n\t" +" pfadd %%mm1, %%mm0\n\t" +" pfadd %%mm5, %%mm4\n\t" +" movq %%mm0, 64(%%edx)\n\t" +" movq %%mm4, 72(%%edx)\n\t" +" pfsub %%mm1, %%mm3\n\t" +" pfsub %%mm5, %%mm7\n\t" +" pfmul %%mm2, %%mm3\n\t" +" pfmul %%mm6, %%mm7\n\t" +" pswapd %%mm3, %%mm3\n\t" +" pswapd %%mm7, %%mm7\n\t" +" movq %%mm3, 88(%%edx)\n\t" +" movq %%mm7, 80(%%edx)\n\t" -" movq 96(%%ecx), %%mm0\n\t" -" movq 104(%%ecx), %%mm4\n\t" -" movq %%mm0, %%mm3\n\t" -" movq %%mm4, %%mm7\n\t" -" pswapd 120(%%ecx), %%mm1\n\t" -" pswapd 112(%%ecx), %%mm5\n\t" -" pfadd %%mm1, %%mm0\n\t" -" pfadd %%mm5, %%mm4\n\t" -" movq %%mm0, 96(%%edx)\n\t" -" movq %%mm4, 104(%%edx)\n\t" -" pfsubr %%mm1, %%mm3\n\t" -" pfsubr %%mm5, %%mm7\n\t" -" pfmul %%mm2, %%mm3\n\t" -" pfmul %%mm6, %%mm7\n\t" -" pswapd %%mm3, %%mm3\n\t" -" pswapd %%mm7, %%mm7\n\t" -" movq %%mm3, 120(%%edx)\n\t" -" movq %%mm7, 112(%%edx)\n\t" +" movq 96(%%ecx), %%mm0\n\t" +" movq 104(%%ecx), %%mm4\n\t" +" movq %%mm0, %%mm3\n\t" +" movq %%mm4, %%mm7\n\t" +" pswapd 120(%%ecx), %%mm1\n\t" +" pswapd 112(%%ecx), %%mm5\n\t" +" pfadd %%mm1, %%mm0\n\t" +" pfadd %%mm5, %%mm4\n\t" +" movq %%mm0, 96(%%edx)\n\t" +" movq %%mm4, 104(%%edx)\n\t" +" pfsubr %%mm1, %%mm3\n\t" +" pfsubr %%mm5, %%mm7\n\t" +" pfmul %%mm2, %%mm3\n\t" +" pfmul %%mm6, %%mm7\n\t" +" pswapd %%mm3, %%mm3\n\t" +" pswapd %%mm7, %%mm7\n\t" +" movq %%mm3, 120(%%edx)\n\t" +" movq %%mm7, 112(%%edx)\n\t" /* Phase 5 */ -" movq 112(%%ebx), %%mm2\n\t" +" movq 112(%%ebx), %%mm2\n\t" -" movq (%%edx), %%mm0\n\t" -" movq 16(%%edx), %%mm4\n\t" -" movq %%mm0, %%mm3\n\t" -" movq %%mm4, %%mm7\n\t" -" pswapd 8(%%edx), %%mm1\n\t" -" pswapd 24(%%edx), %%mm5\n\t" -" pfadd %%mm1, %%mm0\n\t" -" pfadd %%mm5, %%mm4\n\t" -" movq %%mm0, (%%ecx)\n\t" -" movq %%mm4, 16(%%ecx)\n\t" -" pfsub %%mm1, %%mm3\n\t" -" pfsubr %%mm5, %%mm7\n\t" -" pfmul %%mm2, %%mm3\n\t" -" pfmul %%mm2, %%mm7\n\t" -" pswapd %%mm3, %%mm3\n\t" -" pswapd %%mm7, %%mm7\n\t" -" movq %%mm3, 8(%%ecx)\n\t" -" movq %%mm7, 24(%%ecx)\n\t" +" movq (%%edx), %%mm0\n\t" +" movq 16(%%edx), %%mm4\n\t" +" movq %%mm0, %%mm3\n\t" +" movq %%mm4, %%mm7\n\t" +" pswapd 8(%%edx), %%mm1\n\t" +" pswapd 24(%%edx), %%mm5\n\t" +" pfadd %%mm1, %%mm0\n\t" +" pfadd %%mm5, %%mm4\n\t" +" movq %%mm0, (%%ecx)\n\t" +" movq %%mm4, 16(%%ecx)\n\t" +" pfsub %%mm1, %%mm3\n\t" +" pfsubr %%mm5, %%mm7\n\t" +" pfmul %%mm2, %%mm3\n\t" +" pfmul %%mm2, %%mm7\n\t" +" pswapd %%mm3, %%mm3\n\t" +" pswapd %%mm7, %%mm7\n\t" +" movq %%mm3, 8(%%ecx)\n\t" +" movq %%mm7, 24(%%ecx)\n\t" -" movq 32(%%edx), %%mm0\n\t" -" movq 48(%%edx), %%mm4\n\t" -" movq %%mm0, %%mm3\n\t" -" movq %%mm4, %%mm7\n\t" -" pswapd 40(%%edx), %%mm1\n\t" -" pswapd 56(%%edx), %%mm5\n\t" -" pfadd %%mm1, %%mm0\n\t" -" pfadd %%mm5, %%mm4\n\t" -" movq %%mm0, 32(%%ecx)\n\t" -" movq %%mm4, 48(%%ecx)\n\t" -" pfsub %%mm1, %%mm3\n\t" -" pfsubr %%mm5, %%mm7\n\t" -" pfmul %%mm2, %%mm3\n\t" -" pfmul %%mm2, %%mm7\n\t" -" pswapd %%mm3, %%mm3\n\t" -" pswapd %%mm7, %%mm7\n\t" -" movq %%mm3, 40(%%ecx)\n\t" -" movq %%mm7, 56(%%ecx)\n\t" +" movq 32(%%edx), %%mm0\n\t" +" movq 48(%%edx), %%mm4\n\t" +" movq %%mm0, %%mm3\n\t" +" movq %%mm4, %%mm7\n\t" +" pswapd 40(%%edx), %%mm1\n\t" +" pswapd 56(%%edx), %%mm5\n\t" +" pfadd %%mm1, %%mm0\n\t" +" pfadd %%mm5, %%mm4\n\t" +" movq %%mm0, 32(%%ecx)\n\t" +" movq %%mm4, 48(%%ecx)\n\t" +" pfsub %%mm1, %%mm3\n\t" +" pfsubr %%mm5, %%mm7\n\t" +" pfmul %%mm2, %%mm3\n\t" +" pfmul %%mm2, %%mm7\n\t" +" pswapd %%mm3, %%mm3\n\t" +" pswapd %%mm7, %%mm7\n\t" +" movq %%mm3, 40(%%ecx)\n\t" +" movq %%mm7, 56(%%ecx)\n\t" -" movq 64(%%edx), %%mm0\n\t" -" movq 80(%%edx), %%mm4\n\t" -" movq %%mm0, %%mm3\n\t" -" movq %%mm4, %%mm7\n\t" -" pswapd 72(%%edx), %%mm1\n\t" -" pswapd 88(%%edx), %%mm5\n\t" -" pfadd %%mm1, %%mm0\n\t" -" pfadd %%mm5, %%mm4\n\t" -" movq %%mm0, 64(%%ecx)\n\t" -" movq %%mm4, 80(%%ecx)\n\t" -" pfsub %%mm1, %%mm3\n\t" -" pfsubr %%mm5, %%mm7\n\t" -" pfmul %%mm2, %%mm3\n\t" -" pfmul %%mm2, %%mm7\n\t" -" pswapd %%mm3, %%mm3\n\t" -" pswapd %%mm7, %%mm7\n\t" -" movq %%mm3, 72(%%ecx)\n\t" -" movq %%mm7, 88(%%ecx)\n\t" +" movq 64(%%edx), %%mm0\n\t" +" movq 80(%%edx), %%mm4\n\t" +" movq %%mm0, %%mm3\n\t" +" movq %%mm4, %%mm7\n\t" +" pswapd 72(%%edx), %%mm1\n\t" +" pswapd 88(%%edx), %%mm5\n\t" +" pfadd %%mm1, %%mm0\n\t" +" pfadd %%mm5, %%mm4\n\t" +" movq %%mm0, 64(%%ecx)\n\t" +" movq %%mm4, 80(%%ecx)\n\t" +" pfsub %%mm1, %%mm3\n\t" +" pfsubr %%mm5, %%mm7\n\t" +" pfmul %%mm2, %%mm3\n\t" +" pfmul %%mm2, %%mm7\n\t" +" pswapd %%mm3, %%mm3\n\t" +" pswapd %%mm7, %%mm7\n\t" +" movq %%mm3, 72(%%ecx)\n\t" +" movq %%mm7, 88(%%ecx)\n\t" -" movq 96(%%edx), %%mm0\n\t" -" movq 112(%%edx), %%mm4\n\t" -" movq %%mm0, %%mm3\n\t" -" movq %%mm4, %%mm7\n\t" -" pswapd 104(%%edx), %%mm1\n\t" -" pswapd 120(%%edx), %%mm5\n\t" -" pfadd %%mm1, %%mm0\n\t" -" pfadd %%mm5, %%mm4\n\t" -" movq %%mm0, 96(%%ecx)\n\t" -" movq %%mm4, 112(%%ecx)\n\t" -" pfsub %%mm1, %%mm3\n\t" -" pfsubr %%mm5, %%mm7\n\t" -" pfmul %%mm2, %%mm3\n\t" -" pfmul %%mm2, %%mm7\n\t" -" pswapd %%mm3, %%mm3\n\t" -" pswapd %%mm7, %%mm7\n\t" -" movq %%mm3, 104(%%ecx)\n\t" -" movq %%mm7, 120(%%ecx)\n\t" +" movq 96(%%edx), %%mm0\n\t" +" movq 112(%%edx), %%mm4\n\t" +" movq %%mm0, %%mm3\n\t" +" movq %%mm4, %%mm7\n\t" +" pswapd 104(%%edx), %%mm1\n\t" +" pswapd 120(%%edx), %%mm5\n\t" +" pfadd %%mm1, %%mm0\n\t" +" pfadd %%mm5, %%mm4\n\t" +" movq %%mm0, 96(%%ecx)\n\t" +" movq %%mm4, 112(%%ecx)\n\t" +" pfsub %%mm1, %%mm3\n\t" +" pfsubr %%mm5, %%mm7\n\t" +" pfmul %%mm2, %%mm3\n\t" +" pfmul %%mm2, %%mm7\n\t" +" pswapd %%mm3, %%mm3\n\t" +" pswapd %%mm7, %%mm7\n\t" +" movq %%mm3, 104(%%ecx)\n\t" +" movq %%mm7, 120(%%ecx)\n\t" /* Phase 6. This is the end of easy road. */ /* Code below is coded in scalar mode. Should be optimized */ -" movd "MANGLE(plus_1f)", %%mm6\n\t" -" punpckldq 120(%%ebx), %%mm6\n\t" /* mm6 = 1.0 | 120(%%ebx)*/ -" movq "MANGLE(x_plus_minus_3dnow)", %%mm7\n\t" /* mm7 = +1 | -1 */ +" movd "MANGLE(plus_1f)", %%mm6\n\t" +" punpckldq 120(%%ebx), %%mm6\n\t" /* mm6 = 1.0 | 120(%%ebx)*/ +" movq "MANGLE(x_plus_minus_3dnow)", %%mm7\n\t" /* mm7 = +1 | -1 */ -" movq 32(%%ecx), %%mm0\n\t" -" movq 64(%%ecx), %%mm2\n\t" -" movq %%mm0, %%mm1\n\t" -" movq %%mm2, %%mm3\n\t" -" pxor %%mm7, %%mm1\n\t" -" pxor %%mm7, %%mm3\n\t" -" pfacc %%mm1, %%mm0\n\t" -" pfacc %%mm3, %%mm2\n\t" -" pfmul %%mm6, %%mm0\n\t" -" pfmul %%mm6, %%mm2\n\t" -" movq %%mm0, 32(%%edx)\n\t" -" movq %%mm2, 64(%%edx)\n\t" +" movq 32(%%ecx), %%mm0\n\t" +" movq 64(%%ecx), %%mm2\n\t" +" movq %%mm0, %%mm1\n\t" +" movq %%mm2, %%mm3\n\t" +" pxor %%mm7, %%mm1\n\t" +" pxor %%mm7, %%mm3\n\t" +" pfacc %%mm1, %%mm0\n\t" +" pfacc %%mm3, %%mm2\n\t" +" pfmul %%mm6, %%mm0\n\t" +" pfmul %%mm6, %%mm2\n\t" +" movq %%mm0, 32(%%edx)\n\t" +" movq %%mm2, 64(%%edx)\n\t" -" movd 44(%%ecx), %%mm0\n\t" -" movd 40(%%ecx), %%mm2\n\t" -" movd 120(%%ebx), %%mm3\n\t" -" punpckldq 76(%%ecx), %%mm0\n\t" -" punpckldq 72(%%ecx), %%mm2\n\t" -" punpckldq %%mm3, %%mm3\n\t" -" movq %%mm0, %%mm4\n\t" -" movq %%mm2, %%mm5\n\t" -" pfsub %%mm2, %%mm0\n\t" -" pfmul %%mm3, %%mm0\n\t" -" movq %%mm0, %%mm1\n\t" -" pfadd %%mm5, %%mm0\n\t" -" pfadd %%mm4, %%mm0\n\t" -" movq %%mm0, %%mm2\n\t" -" punpckldq %%mm1, %%mm0\n\t" -" punpckhdq %%mm1, %%mm2\n\t" -" movq %%mm0, 40(%%edx)\n\t" -" movq %%mm2, 72(%%edx)\n\t" +" movd 44(%%ecx), %%mm0\n\t" +" movd 40(%%ecx), %%mm2\n\t" +" movd 120(%%ebx), %%mm3\n\t" +" punpckldq 76(%%ecx), %%mm0\n\t" +" punpckldq 72(%%ecx), %%mm2\n\t" +" punpckldq %%mm3, %%mm3\n\t" +" movq %%mm0, %%mm4\n\t" +" movq %%mm2, %%mm5\n\t" +" pfsub %%mm2, %%mm0\n\t" +" pfmul %%mm3, %%mm0\n\t" +" movq %%mm0, %%mm1\n\t" +" pfadd %%mm5, %%mm0\n\t" +" pfadd %%mm4, %%mm0\n\t" +" movq %%mm0, %%mm2\n\t" +" punpckldq %%mm1, %%mm0\n\t" +" punpckhdq %%mm1, %%mm2\n\t" +" movq %%mm0, 40(%%edx)\n\t" +" movq %%mm2, 72(%%edx)\n\t" -" movd 48(%%ecx), %%mm3\n\t" -" movd 60(%%ecx), %%mm2\n\t" -" pfsub 52(%%ecx), %%mm3\n\t" -" pfsub 56(%%ecx), %%mm2\n\t" -" pfmul 120(%%ebx), %%mm3\n\t" -" pfmul 120(%%ebx), %%mm2\n\t" -" movq %%mm2, %%mm1\n\t" +" movd 48(%%ecx), %%mm3\n\t" +" movd 60(%%ecx), %%mm2\n\t" +" pfsub 52(%%ecx), %%mm3\n\t" +" pfsub 56(%%ecx), %%mm2\n\t" +" pfmul 120(%%ebx), %%mm3\n\t" +" pfmul 120(%%ebx), %%mm2\n\t" +" movq %%mm2, %%mm1\n\t" -" pfadd 56(%%ecx), %%mm1\n\t" -" pfadd 60(%%ecx), %%mm1\n\t" -" movq %%mm1, %%mm0\n\t" +" pfadd 56(%%ecx), %%mm1\n\t" +" pfadd 60(%%ecx), %%mm1\n\t" +" movq %%mm1, %%mm0\n\t" -" pfadd 48(%%ecx), %%mm0\n\t" -" pfadd 52(%%ecx), %%mm0\n\t" -" pfadd %%mm3, %%mm1\n\t" -" punpckldq %%mm2, %%mm1\n\t" -" pfadd %%mm3, %%mm2\n\t" -" punpckldq %%mm2, %%mm0\n\t" -" movq %%mm1, 56(%%edx)\n\t" -" movq %%mm0, 48(%%edx)\n\t" +" pfadd 48(%%ecx), %%mm0\n\t" +" pfadd 52(%%ecx), %%mm0\n\t" +" pfadd %%mm3, %%mm1\n\t" +" punpckldq %%mm2, %%mm1\n\t" +" pfadd %%mm3, %%mm2\n\t" +" punpckldq %%mm2, %%mm0\n\t" +" movq %%mm1, 56(%%edx)\n\t" +" movq %%mm0, 48(%%edx)\n\t" /*---*/ -" movd 92(%%ecx), %%mm1\n\t" -" pfsub 88(%%ecx), %%mm1\n\t" -" pfmul 120(%%ebx), %%mm1\n\t" -" movd %%mm1, 92(%%edx)\n\t" -" pfadd 92(%%ecx), %%mm1\n\t" -" pfadd 88(%%ecx), %%mm1\n\t" -" movq %%mm1, %%mm0\n\t" +" movd 92(%%ecx), %%mm1\n\t" +" pfsub 88(%%ecx), %%mm1\n\t" +" pfmul 120(%%ebx), %%mm1\n\t" +" movd %%mm1, 92(%%edx)\n\t" +" pfadd 92(%%ecx), %%mm1\n\t" +" pfadd 88(%%ecx), %%mm1\n\t" +" movq %%mm1, %%mm0\n\t" -" pfadd 80(%%ecx), %%mm0\n\t" -" pfadd 84(%%ecx), %%mm0\n\t" -" movd %%mm0, 80(%%edx)\n\t" +" pfadd 80(%%ecx), %%mm0\n\t" +" pfadd 84(%%ecx), %%mm0\n\t" +" movd %%mm0, 80(%%edx)\n\t" -" movd 80(%%ecx), %%mm0\n\t" -" pfsub 84(%%ecx), %%mm0\n\t" -" pfmul 120(%%ebx), %%mm0\n\t" -" pfadd %%mm0, %%mm1\n\t" -" pfadd 92(%%edx), %%mm0\n\t" -" punpckldq %%mm1, %%mm0\n\t" -" movq %%mm0, 84(%%edx)\n\t" +" movd 80(%%ecx), %%mm0\n\t" +" pfsub 84(%%ecx), %%mm0\n\t" +" pfmul 120(%%ebx), %%mm0\n\t" +" pfadd %%mm0, %%mm1\n\t" +" pfadd 92(%%edx), %%mm0\n\t" +" punpckldq %%mm1, %%mm0\n\t" +" movq %%mm0, 84(%%edx)\n\t" -" movq 96(%%ecx), %%mm0\n\t" -" movq %%mm0, %%mm1\n\t" -" pxor %%mm7, %%mm1\n\t" -" pfacc %%mm1, %%mm0\n\t" -" pfmul %%mm6, %%mm0\n\t" -" movq %%mm0, 96(%%edx)\n\t" +" movq 96(%%ecx), %%mm0\n\t" +" movq %%mm0, %%mm1\n\t" +" pxor %%mm7, %%mm1\n\t" +" pfacc %%mm1, %%mm0\n\t" +" pfmul %%mm6, %%mm0\n\t" +" movq %%mm0, 96(%%edx)\n\t" -" movd 108(%%ecx), %%mm0\n\t" -" pfsub 104(%%ecx), %%mm0\n\t" -" pfmul 120(%%ebx), %%mm0\n\t" -" movd %%mm0, 108(%%edx)\n\t" -" pfadd 104(%%ecx), %%mm0\n\t" -" pfadd 108(%%ecx), %%mm0\n\t" -" movd %%mm0, 104(%%edx)\n\t" +" movd 108(%%ecx), %%mm0\n\t" +" pfsub 104(%%ecx), %%mm0\n\t" +" pfmul 120(%%ebx), %%mm0\n\t" +" movd %%mm0, 108(%%edx)\n\t" +" pfadd 104(%%ecx), %%mm0\n\t" +" pfadd 108(%%ecx), %%mm0\n\t" +" movd %%mm0, 104(%%edx)\n\t" -" movd 124(%%ecx), %%mm1\n\t" -" pfsub 120(%%ecx), %%mm1\n\t" -" pfmul 120(%%ebx), %%mm1\n\t" -" movd %%mm1, 124(%%edx)\n\t" -" pfadd 120(%%ecx), %%mm1\n\t" -" pfadd 124(%%ecx), %%mm1\n\t" -" movq %%mm1, %%mm0\n\t" +" movd 124(%%ecx), %%mm1\n\t" +" pfsub 120(%%ecx), %%mm1\n\t" +" pfmul 120(%%ebx), %%mm1\n\t" +" movd %%mm1, 124(%%edx)\n\t" +" pfadd 120(%%ecx), %%mm1\n\t" +" pfadd 124(%%ecx), %%mm1\n\t" +" movq %%mm1, %%mm0\n\t" -" pfadd 112(%%ecx), %%mm0\n\t" -" pfadd 116(%%ecx), %%mm0\n\t" -" movd %%mm0, 112(%%edx)\n\t" +" pfadd 112(%%ecx), %%mm0\n\t" +" pfadd 116(%%ecx), %%mm0\n\t" +" movd %%mm0, 112(%%edx)\n\t" -" movd 112(%%ecx), %%mm0\n\t" -" pfsub 116(%%ecx), %%mm0\n\t" -" pfmul 120(%%ebx), %%mm0\n\t" -" pfadd %%mm0,%%mm1\n\t" -" pfadd 124(%%edx), %%mm0\n\t" -" punpckldq %%mm1, %%mm0\n\t" -" movq %%mm0, 116(%%edx)\n\t" +" movd 112(%%ecx), %%mm0\n\t" +" pfsub 116(%%ecx), %%mm0\n\t" +" pfmul 120(%%ebx), %%mm0\n\t" +" pfadd %%mm0,%%mm1\n\t" +" pfadd 124(%%edx), %%mm0\n\t" +" punpckldq %%mm1, %%mm0\n\t" +" movq %%mm0, 116(%%edx)\n\t" // this code is broken, there is nothing modifying the z flag above. #if 0 -" jnz .L01\n\t" +" jnz .L01\n\t" /* Phase 7*/ /* Code below is coded in scalar mode. Should be optimized */ -" movd (%%ecx), %%mm0\n\t" -" pfadd 4(%%ecx), %%mm0\n\t" -" movd %%mm0, 1024(%%esi)\n\t" +" movd (%%ecx), %%mm0\n\t" +" pfadd 4(%%ecx), %%mm0\n\t" +" movd %%mm0, 1024(%%esi)\n\t" -" movd (%%ecx), %%mm0\n\t" -" pfsub 4(%%ecx), %%mm0\n\t" -" pfmul 120(%%ebx), %%mm0\n\t" -" movd %%mm0, (%%esi)\n\t" -" movd %%mm0, (%%edi)\n\t" +" movd (%%ecx), %%mm0\n\t" +" pfsub 4(%%ecx), %%mm0\n\t" +" pfmul 120(%%ebx), %%mm0\n\t" +" movd %%mm0, (%%esi)\n\t" +" movd %%mm0, (%%edi)\n\t" -" movd 12(%%ecx), %%mm0\n\t" -" pfsub 8(%%ecx), %%mm0\n\t" -" pfmul 120(%%ebx), %%mm0\n\t" -" movd %%mm0, 512(%%edi)\n\t" -" pfadd 12(%%ecx), %%mm0\n\t" -" pfadd 8(%%ecx), %%mm0\n\t" -" movd %%mm0, 512(%%esi)\n\t" +" movd 12(%%ecx), %%mm0\n\t" +" pfsub 8(%%ecx), %%mm0\n\t" +" pfmul 120(%%ebx), %%mm0\n\t" +" movd %%mm0, 512(%%edi)\n\t" +" pfadd 12(%%ecx), %%mm0\n\t" +" pfadd 8(%%ecx), %%mm0\n\t" +" movd %%mm0, 512(%%esi)\n\t" -" movd 16(%%ecx), %%mm0\n\t" -" pfsub 20(%%ecx), %%mm0\n\t" -" pfmul 120(%%ebx), %%mm0\n\t" -" movq %%mm0, %%mm3\n\t" +" movd 16(%%ecx), %%mm0\n\t" +" pfsub 20(%%ecx), %%mm0\n\t" +" pfmul 120(%%ebx), %%mm0\n\t" +" movq %%mm0, %%mm3\n\t" -" movd 28(%%ecx), %%mm0\n\t" -" pfsub 24(%%ecx), %%mm0\n\t" -" pfmul 120(%%ebx), %%mm0\n\t" -" movd %%mm0, 768(%%edi)\n\t" -" movq %%mm0, %%mm2\n\t" +" movd 28(%%ecx), %%mm0\n\t" +" pfsub 24(%%ecx), %%mm0\n\t" +" pfmul 120(%%ebx), %%mm0\n\t" +" movd %%mm0, 768(%%edi)\n\t" +" movq %%mm0, %%mm2\n\t" -" pfadd 24(%%ecx), %%mm0\n\t" -" pfadd 28(%%ecx), %%mm0\n\t" -" movq %%mm0, %%mm1\n\t" +" pfadd 24(%%ecx), %%mm0\n\t" +" pfadd 28(%%ecx), %%mm0\n\t" +" movq %%mm0, %%mm1\n\t" -" pfadd 16(%%ecx), %%mm0\n\t" -" pfadd 20(%%ecx), %%mm0\n\t" -" movd %%mm0, 768(%%esi)\n\t" -" pfadd %%mm3, %%mm1\n\t" -" movd %%mm1, 256(%%esi)\n\t" -" pfadd %%mm3, %%mm2\n\t" -" movd %%mm2, 256(%%edi)\n\t" +" pfadd 16(%%ecx), %%mm0\n\t" +" pfadd 20(%%ecx), %%mm0\n\t" +" movd %%mm0, 768(%%esi)\n\t" +" pfadd %%mm3, %%mm1\n\t" +" movd %%mm1, 256(%%esi)\n\t" +" pfadd %%mm3, %%mm2\n\t" +" movd %%mm2, 256(%%edi)\n\t" /* Phase 8*/ -" movq 32(%%edx), %%mm0\n\t" -" movq 48(%%edx), %%mm1\n\t" -" pfadd 48(%%edx), %%mm0\n\t" -" pfadd 40(%%edx), %%mm1\n\t" -" movd %%mm0, 896(%%esi)\n\t" -" movd %%mm1, 640(%%esi)\n\t" -" psrlq $32, %%mm0\n\t" -" psrlq $32, %%mm1\n\t" -" movd %%mm0, 128(%%edi)\n\t" -" movd %%mm1, 384(%%edi)\n\t" +" movq 32(%%edx), %%mm0\n\t" +" movq 48(%%edx), %%mm1\n\t" +" pfadd 48(%%edx), %%mm0\n\t" +" pfadd 40(%%edx), %%mm1\n\t" +" movd %%mm0, 896(%%esi)\n\t" +" movd %%mm1, 640(%%esi)\n\t" +" psrlq $32, %%mm0\n\t" +" psrlq $32, %%mm1\n\t" +" movd %%mm0, 128(%%edi)\n\t" +" movd %%mm1, 384(%%edi)\n\t" -" movd 40(%%edx), %%mm0\n\t" -" pfadd 56(%%edx), %%mm0\n\t" -" movd %%mm0, 384(%%esi)\n\t" +" movd 40(%%edx), %%mm0\n\t" +" pfadd 56(%%edx), %%mm0\n\t" +" movd %%mm0, 384(%%esi)\n\t" -" movd 56(%%edx), %%mm0\n\t" -" pfadd 36(%%edx), %%mm0\n\t" -" movd %%mm0, 128(%%esi)\n\t" +" movd 56(%%edx), %%mm0\n\t" +" pfadd 36(%%edx), %%mm0\n\t" +" movd %%mm0, 128(%%esi)\n\t" -" movd 60(%%edx), %%mm0\n\t" -" movd %%mm0, 896(%%edi)\n\t" -" pfadd 44(%%edx), %%mm0\n\t" -" movd %%mm0, 640(%%edi)\n\t" +" movd 60(%%edx), %%mm0\n\t" +" movd %%mm0, 896(%%edi)\n\t" +" pfadd 44(%%edx), %%mm0\n\t" +" movd %%mm0, 640(%%edi)\n\t" -" movq 96(%%edx), %%mm0\n\t" -" movq 112(%%edx), %%mm2\n\t" -" movq 104(%%edx), %%mm4\n\t" -" pfadd 112(%%edx), %%mm0\n\t" -" pfadd 104(%%edx), %%mm2\n\t" -" pfadd 120(%%edx), %%mm4\n\t" -" movq %%mm0, %%mm1\n\t" -" movq %%mm2, %%mm3\n\t" -" movq %%mm4, %%mm5\n\t" -" pfadd 64(%%edx), %%mm0\n\t" -" pfadd 80(%%edx), %%mm2\n\t" -" pfadd 72(%%edx), %%mm4\n\t" -" movd %%mm0, 960(%%esi)\n\t" -" movd %%mm2, 704(%%esi)\n\t" -" movd %%mm4, 448(%%esi)\n\t" -" psrlq $32, %%mm0\n\t" -" psrlq $32, %%mm2\n\t" -" psrlq $32, %%mm4\n\t" -" movd %%mm0, 64(%%edi)\n\t" -" movd %%mm2, 320(%%edi)\n\t" -" movd %%mm4, 576(%%edi)\n\t" -" pfadd 80(%%edx), %%mm1\n\t" -" pfadd 72(%%edx), %%mm3\n\t" -" pfadd 88(%%edx), %%mm5\n\t" -" movd %%mm1, 832(%%esi)\n\t" -" movd %%mm3, 576(%%esi)\n\t" -" movd %%mm5, 320(%%esi)\n\t" -" psrlq $32, %%mm1\n\t" -" psrlq $32, %%mm3\n\t" -" psrlq $32, %%mm5\n\t" -" movd %%mm1, 192(%%edi)\n\t" -" movd %%mm3, 448(%%edi)\n\t" -" movd %%mm5, 704(%%edi)\n\t" +" movq 96(%%edx), %%mm0\n\t" +" movq 112(%%edx), %%mm2\n\t" +" movq 104(%%edx), %%mm4\n\t" +" pfadd 112(%%edx), %%mm0\n\t" +" pfadd 104(%%edx), %%mm2\n\t" +" pfadd 120(%%edx), %%mm4\n\t" +" movq %%mm0, %%mm1\n\t" +" movq %%mm2, %%mm3\n\t" +" movq %%mm4, %%mm5\n\t" +" pfadd 64(%%edx), %%mm0\n\t" +" pfadd 80(%%edx), %%mm2\n\t" +" pfadd 72(%%edx), %%mm4\n\t" +" movd %%mm0, 960(%%esi)\n\t" +" movd %%mm2, 704(%%esi)\n\t" +" movd %%mm4, 448(%%esi)\n\t" +" psrlq $32, %%mm0\n\t" +" psrlq $32, %%mm2\n\t" +" psrlq $32, %%mm4\n\t" +" movd %%mm0, 64(%%edi)\n\t" +" movd %%mm2, 320(%%edi)\n\t" +" movd %%mm4, 576(%%edi)\n\t" +" pfadd 80(%%edx), %%mm1\n\t" +" pfadd 72(%%edx), %%mm3\n\t" +" pfadd 88(%%edx), %%mm5\n\t" +" movd %%mm1, 832(%%esi)\n\t" +" movd %%mm3, 576(%%esi)\n\t" +" movd %%mm5, 320(%%esi)\n\t" +" psrlq $32, %%mm1\n\t" +" psrlq $32, %%mm3\n\t" +" psrlq $32, %%mm5\n\t" +" movd %%mm1, 192(%%edi)\n\t" +" movd %%mm3, 448(%%edi)\n\t" +" movd %%mm5, 704(%%edi)\n\t" -" movd 120(%%edx), %%mm0\n\t" -" pfadd 100(%%edx), %%mm0\n\t" -" movq %%mm0, %%mm1\n\t" -" pfadd 88(%%edx), %%mm0\n\t" -" movd %%mm0, 192(%%esi)\n\t" -" pfadd 68(%%edx), %%mm1\n\t" -" movd %%mm1, 64(%%esi)\n\t" +" movd 120(%%edx), %%mm0\n\t" +" pfadd 100(%%edx), %%mm0\n\t" +" movq %%mm0, %%mm1\n\t" +" pfadd 88(%%edx), %%mm0\n\t" +" movd %%mm0, 192(%%esi)\n\t" +" pfadd 68(%%edx), %%mm1\n\t" +" movd %%mm1, 64(%%esi)\n\t" -" movd 124(%%edx), %%mm0\n\t" -" movd %%mm0, 960(%%edi)\n\t" -" pfadd 92(%%edx), %%mm0\n\t" -" movd %%mm0, 832(%%edi)\n\t" +" movd 124(%%edx), %%mm0\n\t" +" movd %%mm0, 960(%%edi)\n\t" +" pfadd 92(%%edx), %%mm0\n\t" +" movd %%mm0, 832(%%edi)\n\t" -" jmp .L_bye\n\t" -".L01: \n\t" +" jmp .L_bye\n\t" +".L01: \n\t" #endif /* Phase 9*/ -" movq (%%ecx), %%mm0\n\t" -" movq %%mm0, %%mm1\n\t" -" pxor %%mm7, %%mm1\n\t" -" pfacc %%mm1, %%mm0\n\t" -" pfmul %%mm6, %%mm0\n\t" -" pf2iw %%mm0, %%mm0\n\t" -" movd %%mm0, %%eax\n\t" -" movw %%ax, 512(%%esi)\n\t" -" psrlq $32, %%mm0\n\t" -" movd %%mm0, %%eax\n\t" -" movw %%ax, (%%esi)\n\t" +" movq (%%ecx), %%mm0\n\t" +" movq %%mm0, %%mm1\n\t" +" pxor %%mm7, %%mm1\n\t" +" pfacc %%mm1, %%mm0\n\t" +" pfmul %%mm6, %%mm0\n\t" +" pf2iw %%mm0, %%mm0\n\t" +" movd %%mm0, %%eax\n\t" +" movw %%ax, 512(%%esi)\n\t" +" psrlq $32, %%mm0\n\t" +" movd %%mm0, %%eax\n\t" +" movw %%ax, (%%esi)\n\t" -" movd 12(%%ecx), %%mm0\n\t" -" pfsub 8(%%ecx), %%mm0\n\t" -" pfmul 120(%%ebx), %%mm0\n\t" -" pf2iw %%mm0, %%mm7\n\t" -" movd %%mm7, %%eax\n\t" -" movw %%ax, 256(%%edi)\n\t" -" pfadd 12(%%ecx), %%mm0\n\t" -" pfadd 8(%%ecx), %%mm0\n\t" -" pf2iw %%mm0, %%mm0\n\t" -" movd %%mm0, %%eax\n\t" -" movw %%ax, 256(%%esi)\n\t" +" movd 12(%%ecx), %%mm0\n\t" +" pfsub 8(%%ecx), %%mm0\n\t" +" pfmul 120(%%ebx), %%mm0\n\t" +" pf2iw %%mm0, %%mm7\n\t" +" movd %%mm7, %%eax\n\t" +" movw %%ax, 256(%%edi)\n\t" +" pfadd 12(%%ecx), %%mm0\n\t" +" pfadd 8(%%ecx), %%mm0\n\t" +" pf2iw %%mm0, %%mm0\n\t" +" movd %%mm0, %%eax\n\t" +" movw %%ax, 256(%%esi)\n\t" -" movd 16(%%ecx), %%mm3\n\t" -" pfsub 20(%%ecx), %%mm3\n\t" -" pfmul 120(%%ebx), %%mm3\n\t" -" movq %%mm3, %%mm2\n\t" +" movd 16(%%ecx), %%mm3\n\t" +" pfsub 20(%%ecx), %%mm3\n\t" +" pfmul 120(%%ebx), %%mm3\n\t" +" movq %%mm3, %%mm2\n\t" -" movd 28(%%ecx), %%mm2\n\t" -" pfsub 24(%%ecx), %%mm2\n\t" -" pfmul 120(%%ebx), %%mm2\n\t" -" movq %%mm2, %%mm1\n\t" +" movd 28(%%ecx), %%mm2\n\t" +" pfsub 24(%%ecx), %%mm2\n\t" +" pfmul 120(%%ebx), %%mm2\n\t" +" movq %%mm2, %%mm1\n\t" -" pf2iw %%mm2, %%mm7\n\t" -" movd %%mm7, %%eax\n\t" -" movw %%ax, 384(%%edi)\n\t" +" pf2iw %%mm2, %%mm7\n\t" +" movd %%mm7, %%eax\n\t" +" movw %%ax, 384(%%edi)\n\t" -" pfadd 24(%%ecx), %%mm1\n\t" -" pfadd 28(%%ecx), %%mm1\n\t" -" movq %%mm1, %%mm0\n\t" +" pfadd 24(%%ecx), %%mm1\n\t" +" pfadd 28(%%ecx), %%mm1\n\t" +" movq %%mm1, %%mm0\n\t" -" pfadd 16(%%ecx), %%mm0\n\t" -" pfadd 20(%%ecx), %%mm0\n\t" -" pf2iw %%mm0, %%mm0\n\t" -" movd %%mm0, %%eax\n\t" -" movw %%ax, 384(%%esi)\n\t" -" pfadd %%mm3, %%mm1\n\t" -" pf2iw %%mm1, %%mm1\n\t" -" movd %%mm1, %%eax\n\t" -" movw %%ax, 128(%%esi)\n\t" -" pfadd %%mm3, %%mm2\n\t" -" pf2iw %%mm2, %%mm2\n\t" -" movd %%mm2, %%eax\n\t" -" movw %%ax, 128(%%edi)\n\t" +" pfadd 16(%%ecx), %%mm0\n\t" +" pfadd 20(%%ecx), %%mm0\n\t" +" pf2iw %%mm0, %%mm0\n\t" +" movd %%mm0, %%eax\n\t" +" movw %%ax, 384(%%esi)\n\t" +" pfadd %%mm3, %%mm1\n\t" +" pf2iw %%mm1, %%mm1\n\t" +" movd %%mm1, %%eax\n\t" +" movw %%ax, 128(%%esi)\n\t" +" pfadd %%mm3, %%mm2\n\t" +" pf2iw %%mm2, %%mm2\n\t" +" movd %%mm2, %%eax\n\t" +" movw %%ax, 128(%%edi)\n\t" /* Phase 10*/ -" movq 32(%%edx), %%mm0\n\t" -" movq 48(%%edx), %%mm1\n\t" -" pfadd 48(%%edx), %%mm0\n\t" -" pfadd 40(%%edx), %%mm1\n\t" -" pf2iw %%mm0, %%mm0\n\t" -" pf2iw %%mm1, %%mm1\n\t" -" movd %%mm0, %%eax\n\t" -" movd %%mm1, %%ecx\n\t" -" movw %%ax, 448(%%esi)\n\t" -" movw %%cx, 320(%%esi)\n\t" -" psrlq $32, %%mm0\n\t" -" psrlq $32, %%mm1\n\t" -" movd %%mm0, %%eax\n\t" -" movd %%mm1, %%ecx\n\t" -" movw %%ax, 64(%%edi)\n\t" -" movw %%cx, 192(%%edi)\n\t" +" movq 32(%%edx), %%mm0\n\t" +" movq 48(%%edx), %%mm1\n\t" +" pfadd 48(%%edx), %%mm0\n\t" +" pfadd 40(%%edx), %%mm1\n\t" +" pf2iw %%mm0, %%mm0\n\t" +" pf2iw %%mm1, %%mm1\n\t" +" movd %%mm0, %%eax\n\t" +" movd %%mm1, %%ecx\n\t" +" movw %%ax, 448(%%esi)\n\t" +" movw %%cx, 320(%%esi)\n\t" +" psrlq $32, %%mm0\n\t" +" psrlq $32, %%mm1\n\t" +" movd %%mm0, %%eax\n\t" +" movd %%mm1, %%ecx\n\t" +" movw %%ax, 64(%%edi)\n\t" +" movw %%cx, 192(%%edi)\n\t" -" movd 40(%%edx), %%mm3\n\t" -" movd 56(%%edx), %%mm4\n\t" -" movd 60(%%edx), %%mm0\n\t" -" movd 44(%%edx), %%mm2\n\t" -" movd 120(%%edx), %%mm5\n\t" -" punpckldq %%mm4, %%mm3\n\t" -" punpckldq 124(%%edx), %%mm0\n\t" -" pfadd 100(%%edx), %%mm5\n\t" -" punpckldq 36(%%edx), %%mm4\n\t" -" punpckldq 92(%%edx), %%mm2\n\t" -" movq %%mm5, %%mm6\n\t" -" pfadd %%mm4, %%mm3\n\t" -" pf2iw %%mm0, %%mm1\n\t" -" pf2iw %%mm3, %%mm3\n\t" -" pfadd 88(%%edx), %%mm5\n\t" -" movd %%mm1, %%eax\n\t" -" movd %%mm3, %%ecx\n\t" -" movw %%ax, 448(%%edi)\n\t" -" movw %%cx, 192(%%esi)\n\t" -" pf2iw %%mm5, %%mm5\n\t" -" psrlq $32, %%mm1\n\t" +" movd 40(%%edx), %%mm3\n\t" +" movd 56(%%edx), %%mm4\n\t" +" movd 60(%%edx), %%mm0\n\t" +" movd 44(%%edx), %%mm2\n\t" +" movd 120(%%edx), %%mm5\n\t" +" punpckldq %%mm4, %%mm3\n\t" +" punpckldq 124(%%edx), %%mm0\n\t" +" pfadd 100(%%edx), %%mm5\n\t" +" punpckldq 36(%%edx), %%mm4\n\t" +" punpckldq 92(%%edx), %%mm2\n\t" +" movq %%mm5, %%mm6\n\t" +" pfadd %%mm4, %%mm3\n\t" +" pf2iw %%mm0, %%mm1\n\t" +" pf2iw %%mm3, %%mm3\n\t" +" pfadd 88(%%edx), %%mm5\n\t" +" movd %%mm1, %%eax\n\t" +" movd %%mm3, %%ecx\n\t" +" movw %%ax, 448(%%edi)\n\t" +" movw %%cx, 192(%%esi)\n\t" +" pf2iw %%mm5, %%mm5\n\t" +" psrlq $32, %%mm1\n\t" " psrlq $32, %%mm3\n\t" -" movd %%mm5, %%ebx\n\t" -" movd %%mm1, %%eax\n\t" -" movd %%mm3, %%ecx\n\t" -" movw %%bx, 96(%%esi)\n\t" -" movw %%ax, 480(%%edi)\n\t" -" movw %%cx, 64(%%esi)\n\t" -" pfadd %%mm2, %%mm0\n\t" -" pf2iw %%mm0, %%mm0\n\t" -" movd %%mm0, %%eax\n\t" -" pfadd 68(%%edx), %%mm6\n\t" -" movw %%ax, 320(%%edi)\n\t" -" psrlq $32, %%mm0\n\t" -" pf2iw %%mm6, %%mm6\n\t" -" movd %%mm0, %%eax\n\t" -" movd %%mm6, %%ebx\n\t" -" movw %%ax, 416(%%edi)\n\t" -" movw %%bx, 32(%%esi)\n\t" +" movd %%mm5, %%ebx\n\t" +" movd %%mm1, %%eax\n\t" +" movd %%mm3, %%ecx\n\t" +" movw %%bx, 96(%%esi)\n\t" +" movw %%ax, 480(%%edi)\n\t" +" movw %%cx, 64(%%esi)\n\t" +" pfadd %%mm2, %%mm0\n\t" +" pf2iw %%mm0, %%mm0\n\t" +" movd %%mm0, %%eax\n\t" +" pfadd 68(%%edx), %%mm6\n\t" +" movw %%ax, 320(%%edi)\n\t" +" psrlq $32, %%mm0\n\t" +" pf2iw %%mm6, %%mm6\n\t" +" movd %%mm0, %%eax\n\t" +" movd %%mm6, %%ebx\n\t" +" movw %%ax, 416(%%edi)\n\t" +" movw %%bx, 32(%%esi)\n\t" -" movq 96(%%edx), %%mm0\n\t" -" movq 112(%%edx), %%mm2\n\t" -" movq 104(%%edx), %%mm4\n\t" -" pfadd %%mm2, %%mm0\n\t" -" pfadd %%mm4, %%mm2\n\t" -" pfadd 120(%%edx), %%mm4\n\t" -" movq %%mm0, %%mm1\n\t" -" movq %%mm2, %%mm3\n\t" -" movq %%mm4, %%mm5\n\t" -" pfadd 64(%%edx), %%mm0\n\t" -" pfadd 80(%%edx), %%mm2\n\t" -" pfadd 72(%%edx), %%mm4\n\t" -" pf2iw %%mm0, %%mm0\n\t" -" pf2iw %%mm2, %%mm2\n\t" -" pf2iw %%mm4, %%mm4\n\t" -" movd %%mm0, %%eax\n\t" -" movd %%mm2, %%ecx\n\t" -" movd %%mm4, %%ebx\n\t" -" movw %%ax, 480(%%esi)\n\t" -" movw %%cx, 352(%%esi)\n\t" -" movw %%bx, 224(%%esi)\n\t" -" psrlq $32, %%mm0\n\t" -" psrlq $32, %%mm2\n\t" -" psrlq $32, %%mm4\n\t" -" movd %%mm0, %%eax\n\t" -" movd %%mm2, %%ecx\n\t" -" movd %%mm4, %%ebx\n\t" -" movw %%ax, 32(%%edi)\n\t" -" movw %%cx, 160(%%edi)\n\t" -" movw %%bx, 288(%%edi)\n\t" -" pfadd 80(%%edx), %%mm1\n\t" -" pfadd 72(%%edx), %%mm3\n\t" -" pfadd 88(%%edx), %%mm5\n\t" -" pf2iw %%mm1, %%mm1\n\t" -" pf2iw %%mm3, %%mm3\n\t" -" pf2iw %%mm5, %%mm5\n\t" -" movd %%mm1, %%eax\n\t" -" movd %%mm3, %%ecx\n\t" -" movd %%mm5, %%ebx\n\t" -" movw %%ax, 416(%%esi)\n\t" -" movw %%cx, 288(%%esi)\n\t" -" movw %%bx, 160(%%esi)\n\t" -" psrlq $32, %%mm1\n\t" -" psrlq $32, %%mm3\n\t" -" psrlq $32, %%mm5\n\t" -" movd %%mm1, %%eax\n\t" -" movd %%mm3, %%ecx\n\t" -" movd %%mm5, %%ebx\n\t" -" movw %%ax, 96(%%edi)\n\t" -" movw %%cx, 224(%%edi)\n\t" -" movw %%bx, 352(%%edi)\n\t" +" movq 96(%%edx), %%mm0\n\t" +" movq 112(%%edx), %%mm2\n\t" +" movq 104(%%edx), %%mm4\n\t" +" pfadd %%mm2, %%mm0\n\t" +" pfadd %%mm4, %%mm2\n\t" +" pfadd 120(%%edx), %%mm4\n\t" +" movq %%mm0, %%mm1\n\t" +" movq %%mm2, %%mm3\n\t" +" movq %%mm4, %%mm5\n\t" +" pfadd 64(%%edx), %%mm0\n\t" +" pfadd 80(%%edx), %%mm2\n\t" +" pfadd 72(%%edx), %%mm4\n\t" +" pf2iw %%mm0, %%mm0\n\t" +" pf2iw %%mm2, %%mm2\n\t" +" pf2iw %%mm4, %%mm4\n\t" +" movd %%mm0, %%eax\n\t" +" movd %%mm2, %%ecx\n\t" +" movd %%mm4, %%ebx\n\t" +" movw %%ax, 480(%%esi)\n\t" +" movw %%cx, 352(%%esi)\n\t" +" movw %%bx, 224(%%esi)\n\t" +" psrlq $32, %%mm0\n\t" +" psrlq $32, %%mm2\n\t" +" psrlq $32, %%mm4\n\t" +" movd %%mm0, %%eax\n\t" +" movd %%mm2, %%ecx\n\t" +" movd %%mm4, %%ebx\n\t" +" movw %%ax, 32(%%edi)\n\t" +" movw %%cx, 160(%%edi)\n\t" +" movw %%bx, 288(%%edi)\n\t" +" pfadd 80(%%edx), %%mm1\n\t" +" pfadd 72(%%edx), %%mm3\n\t" +" pfadd 88(%%edx), %%mm5\n\t" +" pf2iw %%mm1, %%mm1\n\t" +" pf2iw %%mm3, %%mm3\n\t" +" pf2iw %%mm5, %%mm5\n\t" +" movd %%mm1, %%eax\n\t" +" movd %%mm3, %%ecx\n\t" +" movd %%mm5, %%ebx\n\t" +" movw %%ax, 416(%%esi)\n\t" +" movw %%cx, 288(%%esi)\n\t" +" movw %%bx, 160(%%esi)\n\t" +" psrlq $32, %%mm1\n\t" +" psrlq $32, %%mm3\n\t" +" psrlq $32, %%mm5\n\t" +" movd %%mm1, %%eax\n\t" +" movd %%mm3, %%ecx\n\t" +" movd %%mm5, %%ebx\n\t" +" movw %%ax, 96(%%edi)\n\t" +" movw %%cx, 224(%%edi)\n\t" +" movw %%bx, 352(%%edi)\n\t" -" movsw\n\t" +" movsw\n\t" ".L_bye:\n\t" -" femms\n\t" - : - :"m"(a),"m"(b),"m"(c),"m"(tmp[0]) - :"memory","%eax","%ebx","%ecx","%edx","%esi","%edi"); +" femms\n\t" + : + :"m"(a),"m"(b),"m"(c),"m"(tmp[0]) + :"memory","%eax","%ebx","%ecx","%edx","%esi","%edi"); }
--- a/mp3lib/dct64_mmx.c Mon Apr 12 08:03:39 2010 +0000 +++ b/mp3lib/dct64_mmx.c Mon Apr 12 10:56:17 2010 +0000 @@ -11,976 +11,976 @@ { char tmp[256]; __asm__ volatile( -" movl %2,%%eax\n\t" +" movl %2,%%eax\n\t" /* Phase 1*/ -" flds (%%eax)\n\t" -" leal 128+%3,%%edx\n\t" -" fadds 124(%%eax)\n\t" -" movl %0,%%esi\n\t" -" fstps (%%edx)\n\t" -" movl %1,%%edi\n\t" +" flds (%%eax)\n\t" +" leal 128+%3,%%edx\n\t" +" fadds 124(%%eax)\n\t" +" movl %0,%%esi\n\t" +" fstps (%%edx)\n\t" +" movl %1,%%edi\n\t" -" flds 4(%%eax)\n\t" -" movl $"MANGLE(costab_mmx)",%%ebx\n\t" -" fadds 120(%%eax)\n\t" -" orl %%ecx,%%ecx\n\t" -" fstps 4(%%edx)\n\t" +" flds 4(%%eax)\n\t" +" movl $"MANGLE(costab_mmx)",%%ebx\n\t" +" fadds 120(%%eax)\n\t" +" orl %%ecx,%%ecx\n\t" +" fstps 4(%%edx)\n\t" -" flds (%%eax)\n\t" -" leal %3,%%ecx\n\t" -" fsubs 124(%%eax)\n\t" -" fmuls (%%ebx)\n\t" -" fstps 124(%%edx)\n\t" +" flds (%%eax)\n\t" +" leal %3,%%ecx\n\t" +" fsubs 124(%%eax)\n\t" +" fmuls (%%ebx)\n\t" +" fstps 124(%%edx)\n\t" -" flds 4(%%eax)\n\t" -" fsubs 120(%%eax)\n\t" -" fmuls 4(%%ebx)\n\t" -" fstps 120(%%edx)\n\t" +" flds 4(%%eax)\n\t" +" fsubs 120(%%eax)\n\t" +" fmuls 4(%%ebx)\n\t" +" fstps 120(%%edx)\n\t" -" flds 8(%%eax)\n\t" -" fadds 116(%%eax)\n\t" -" fstps 8(%%edx)\n\t" +" flds 8(%%eax)\n\t" +" fadds 116(%%eax)\n\t" +" fstps 8(%%edx)\n\t" -" flds 12(%%eax)\n\t" -" fadds 112(%%eax)\n\t" -" fstps 12(%%edx)\n\t" +" flds 12(%%eax)\n\t" +" fadds 112(%%eax)\n\t" +" fstps 12(%%edx)\n\t" -" flds 8(%%eax)\n\t" -" fsubs 116(%%eax)\n\t" -" fmuls 8(%%ebx)\n\t" -" fstps 116(%%edx)\n\t" +" flds 8(%%eax)\n\t" +" fsubs 116(%%eax)\n\t" +" fmuls 8(%%ebx)\n\t" +" fstps 116(%%edx)\n\t" -" flds 12(%%eax)\n\t" -" fsubs 112(%%eax)\n\t" -" fmuls 12(%%ebx)\n\t" -" fstps 112(%%edx)\n\t" +" flds 12(%%eax)\n\t" +" fsubs 112(%%eax)\n\t" +" fmuls 12(%%ebx)\n\t" +" fstps 112(%%edx)\n\t" -" flds 16(%%eax)\n\t" -" fadds 108(%%eax)\n\t" -" fstps 16(%%edx)\n\t" +" flds 16(%%eax)\n\t" +" fadds 108(%%eax)\n\t" +" fstps 16(%%edx)\n\t" -" flds 20(%%eax)\n\t" -" fadds 104(%%eax)\n\t" -" fstps 20(%%edx)\n\t" +" flds 20(%%eax)\n\t" +" fadds 104(%%eax)\n\t" +" fstps 20(%%edx)\n\t" -" flds 16(%%eax)\n\t" -" fsubs 108(%%eax)\n\t" -" fmuls 16(%%ebx)\n\t" -" fstps 108(%%edx)\n\t" +" flds 16(%%eax)\n\t" +" fsubs 108(%%eax)\n\t" +" fmuls 16(%%ebx)\n\t" +" fstps 108(%%edx)\n\t" -" flds 20(%%eax)\n\t" -" fsubs 104(%%eax)\n\t" -" fmuls 20(%%ebx)\n\t" -" fstps 104(%%edx)\n\t" +" flds 20(%%eax)\n\t" +" fsubs 104(%%eax)\n\t" +" fmuls 20(%%ebx)\n\t" +" fstps 104(%%edx)\n\t" -" flds 24(%%eax)\n\t" -" fadds 100(%%eax)\n\t" -" fstps 24(%%edx)\n\t" +" flds 24(%%eax)\n\t" +" fadds 100(%%eax)\n\t" +" fstps 24(%%edx)\n\t" -" flds 28(%%eax)\n\t" -" fadds 96(%%eax)\n\t" -" fstps 28(%%edx)\n\t" +" flds 28(%%eax)\n\t" +" fadds 96(%%eax)\n\t" +" fstps 28(%%edx)\n\t" -" flds 24(%%eax)\n\t" -" fsubs 100(%%eax)\n\t" -" fmuls 24(%%ebx)\n\t" -" fstps 100(%%edx)\n\t" +" flds 24(%%eax)\n\t" +" fsubs 100(%%eax)\n\t" +" fmuls 24(%%ebx)\n\t" +" fstps 100(%%edx)\n\t" -" flds 28(%%eax)\n\t" -" fsubs 96(%%eax)\n\t" -" fmuls 28(%%ebx)\n\t" -" fstps 96(%%edx)\n\t" +" flds 28(%%eax)\n\t" +" fsubs 96(%%eax)\n\t" +" fmuls 28(%%ebx)\n\t" +" fstps 96(%%edx)\n\t" -" flds 32(%%eax)\n\t" -" fadds 92(%%eax)\n\t" -" fstps 32(%%edx)\n\t" +" flds 32(%%eax)\n\t" +" fadds 92(%%eax)\n\t" +" fstps 32(%%edx)\n\t" -" flds 36(%%eax)\n\t" -" fadds 88(%%eax)\n\t" -" fstps 36(%%edx)\n\t" +" flds 36(%%eax)\n\t" +" fadds 88(%%eax)\n\t" +" fstps 36(%%edx)\n\t" -" flds 32(%%eax)\n\t" -" fsubs 92(%%eax)\n\t" -" fmuls 32(%%ebx)\n\t" -" fstps 92(%%edx)\n\t" +" flds 32(%%eax)\n\t" +" fsubs 92(%%eax)\n\t" +" fmuls 32(%%ebx)\n\t" +" fstps 92(%%edx)\n\t" -" flds 36(%%eax)\n\t" -" fsubs 88(%%eax)\n\t" -" fmuls 36(%%ebx)\n\t" -" fstps 88(%%edx)\n\t" +" flds 36(%%eax)\n\t" +" fsubs 88(%%eax)\n\t" +" fmuls 36(%%ebx)\n\t" +" fstps 88(%%edx)\n\t" -" flds 40(%%eax)\n\t" -" fadds 84(%%eax)\n\t" -" fstps 40(%%edx)\n\t" +" flds 40(%%eax)\n\t" +" fadds 84(%%eax)\n\t" +" fstps 40(%%edx)\n\t" -" flds 44(%%eax)\n\t" -" fadds 80(%%eax)\n\t" -" fstps 44(%%edx)\n\t" +" flds 44(%%eax)\n\t" +" fadds 80(%%eax)\n\t" +" fstps 44(%%edx)\n\t" -" flds 40(%%eax)\n\t" -" fsubs 84(%%eax)\n\t" -" fmuls 40(%%ebx)\n\t" -" fstps 84(%%edx)\n\t" +" flds 40(%%eax)\n\t" +" fsubs 84(%%eax)\n\t" +" fmuls 40(%%ebx)\n\t" +" fstps 84(%%edx)\n\t" -" flds 44(%%eax)\n\t" -" fsubs 80(%%eax)\n\t" -" fmuls 44(%%ebx)\n\t" -" fstps 80(%%edx)\n\t" +" flds 44(%%eax)\n\t" +" fsubs 80(%%eax)\n\t" +" fmuls 44(%%ebx)\n\t" +" fstps 80(%%edx)\n\t" -" flds 48(%%eax)\n\t" -" fadds 76(%%eax)\n\t" -" fstps 48(%%edx)\n\t" +" flds 48(%%eax)\n\t" +" fadds 76(%%eax)\n\t" +" fstps 48(%%edx)\n\t" -" flds 52(%%eax)\n\t" -" fadds 72(%%eax)\n\t" -" fstps 52(%%edx)\n\t" +" flds 52(%%eax)\n\t" +" fadds 72(%%eax)\n\t" +" fstps 52(%%edx)\n\t" -" flds 48(%%eax)\n\t" -" fsubs 76(%%eax)\n\t" -" fmuls 48(%%ebx)\n\t" -" fstps 76(%%edx)\n\t" +" flds 48(%%eax)\n\t" +" fsubs 76(%%eax)\n\t" +" fmuls 48(%%ebx)\n\t" +" fstps 76(%%edx)\n\t" -" flds 52(%%eax)\n\t" -" fsubs 72(%%eax)\n\t" -" fmuls 52(%%ebx)\n\t" -" fstps 72(%%edx)\n\t" +" flds 52(%%eax)\n\t" +" fsubs 72(%%eax)\n\t" +" fmuls 52(%%ebx)\n\t" +" fstps 72(%%edx)\n\t" -" flds 56(%%eax)\n\t" -" fadds 68(%%eax)\n\t" -" fstps 56(%%edx)\n\t" +" flds 56(%%eax)\n\t" +" fadds 68(%%eax)\n\t" +" fstps 56(%%edx)\n\t" -" flds 60(%%eax)\n\t" -" fadds 64(%%eax)\n\t" -" fstps 60(%%edx)\n\t" +" flds 60(%%eax)\n\t" +" fadds 64(%%eax)\n\t" +" fstps 60(%%edx)\n\t" -" flds 56(%%eax)\n\t" -" fsubs 68(%%eax)\n\t" -" fmuls 56(%%ebx)\n\t" -" fstps 68(%%edx)\n\t" +" flds 56(%%eax)\n\t" +" fsubs 68(%%eax)\n\t" +" fmuls 56(%%ebx)\n\t" +" fstps 68(%%edx)\n\t" -" flds 60(%%eax)\n\t" -" fsubs 64(%%eax)\n\t" -" fmuls 60(%%ebx)\n\t" -" fstps 64(%%edx)\n\t" +" flds 60(%%eax)\n\t" +" fsubs 64(%%eax)\n\t" +" fmuls 60(%%ebx)\n\t" +" fstps 64(%%edx)\n\t" /* Phase 2*/ -" flds (%%edx)\n\t" -" fadds 60(%%edx)\n\t" -" fstps (%%ecx)\n\t" +" flds (%%edx)\n\t" +" fadds 60(%%edx)\n\t" +" fstps (%%ecx)\n\t" -" flds 4(%%edx)\n\t" -" fadds 56(%%edx)\n\t" -" fstps 4(%%ecx)\n\t" +" flds 4(%%edx)\n\t" +" fadds 56(%%edx)\n\t" +" fstps 4(%%ecx)\n\t" -" flds (%%edx)\n\t" -" fsubs 60(%%edx)\n\t" -" fmuls 64(%%ebx)\n\t" -" fstps 60(%%ecx)\n\t" +" flds (%%edx)\n\t" +" fsubs 60(%%edx)\n\t" +" fmuls 64(%%ebx)\n\t" +" fstps 60(%%ecx)\n\t" -" flds 4(%%edx)\n\t" -" fsubs 56(%%edx)\n\t" -" fmuls 68(%%ebx)\n\t" -" fstps 56(%%ecx)\n\t" +" flds 4(%%edx)\n\t" +" fsubs 56(%%edx)\n\t" +" fmuls 68(%%ebx)\n\t" +" fstps 56(%%ecx)\n\t" -" flds 8(%%edx)\n\t" -" fadds 52(%%edx)\n\t" -" fstps 8(%%ecx)\n\t" +" flds 8(%%edx)\n\t" +" fadds 52(%%edx)\n\t" +" fstps 8(%%ecx)\n\t" -" flds 12(%%edx)\n\t" -" fadds 48(%%edx)\n\t" -" fstps 12(%%ecx)\n\t" +" flds 12(%%edx)\n\t" +" fadds 48(%%edx)\n\t" +" fstps 12(%%ecx)\n\t" -" flds 8(%%edx)\n\t" -" fsubs 52(%%edx)\n\t" -" fmuls 72(%%ebx)\n\t" -" fstps 52(%%ecx)\n\t" +" flds 8(%%edx)\n\t" +" fsubs 52(%%edx)\n\t" +" fmuls 72(%%ebx)\n\t" +" fstps 52(%%ecx)\n\t" -" flds 12(%%edx)\n\t" -" fsubs 48(%%edx)\n\t" -" fmuls 76(%%ebx)\n\t" -" fstps 48(%%ecx)\n\t" +" flds 12(%%edx)\n\t" +" fsubs 48(%%edx)\n\t" +" fmuls 76(%%ebx)\n\t" +" fstps 48(%%ecx)\n\t" -" flds 16(%%edx)\n\t" -" fadds 44(%%edx)\n\t" -" fstps 16(%%ecx)\n\t" +" flds 16(%%edx)\n\t" +" fadds 44(%%edx)\n\t" +" fstps 16(%%ecx)\n\t" -" flds 20(%%edx)\n\t" -" fadds 40(%%edx)\n\t" -" fstps 20(%%ecx)\n\t" +" flds 20(%%edx)\n\t" +" fadds 40(%%edx)\n\t" +" fstps 20(%%ecx)\n\t" -" flds 16(%%edx)\n\t" -" fsubs 44(%%edx)\n\t" -" fmuls 80(%%ebx)\n\t" -" fstps 44(%%ecx)\n\t" +" flds 16(%%edx)\n\t" +" fsubs 44(%%edx)\n\t" +" fmuls 80(%%ebx)\n\t" +" fstps 44(%%ecx)\n\t" -" flds 20(%%edx)\n\t" -" fsubs 40(%%edx)\n\t" -" fmuls 84(%%ebx)\n\t" -" fstps 40(%%ecx)\n\t" +" flds 20(%%edx)\n\t" +" fsubs 40(%%edx)\n\t" +" fmuls 84(%%ebx)\n\t" +" fstps 40(%%ecx)\n\t" -" flds 24(%%edx)\n\t" -" fadds 36(%%edx)\n\t" -" fstps 24(%%ecx)\n\t" +" flds 24(%%edx)\n\t" +" fadds 36(%%edx)\n\t" +" fstps 24(%%ecx)\n\t" -" flds 28(%%edx)\n\t" -" fadds 32(%%edx)\n\t" -" fstps 28(%%ecx)\n\t" +" flds 28(%%edx)\n\t" +" fadds 32(%%edx)\n\t" +" fstps 28(%%ecx)\n\t" -" flds 24(%%edx)\n\t" -" fsubs 36(%%edx)\n\t" -" fmuls 88(%%ebx)\n\t" -" fstps 36(%%ecx)\n\t" +" flds 24(%%edx)\n\t" +" fsubs 36(%%edx)\n\t" +" fmuls 88(%%ebx)\n\t" +" fstps 36(%%ecx)\n\t" -" flds 28(%%edx)\n\t" -" fsubs 32(%%edx)\n\t" -" fmuls 92(%%ebx)\n\t" -" fstps 32(%%ecx)\n\t" +" flds 28(%%edx)\n\t" +" fsubs 32(%%edx)\n\t" +" fmuls 92(%%ebx)\n\t" +" fstps 32(%%ecx)\n\t" /* Phase 3*/ -" flds 64(%%edx)\n\t" -" fadds 124(%%edx)\n\t" -" fstps 64(%%ecx)\n\t" +" flds 64(%%edx)\n\t" +" fadds 124(%%edx)\n\t" +" fstps 64(%%ecx)\n\t" -" flds 68(%%edx)\n\t" -" fadds 120(%%edx)\n\t" -" fstps 68(%%ecx)\n\t" +" flds 68(%%edx)\n\t" +" fadds 120(%%edx)\n\t" +" fstps 68(%%ecx)\n\t" -" flds 124(%%edx)\n\t" -" fsubs 64(%%edx)\n\t" -" fmuls 64(%%ebx)\n\t" -" fstps 124(%%ecx)\n\t" +" flds 124(%%edx)\n\t" +" fsubs 64(%%edx)\n\t" +" fmuls 64(%%ebx)\n\t" +" fstps 124(%%ecx)\n\t" -" flds 120(%%edx)\n\t" -" fsubs 68(%%edx)\n\t" -" fmuls 68(%%ebx)\n\t" -" fstps 120(%%ecx)\n\t" +" flds 120(%%edx)\n\t" +" fsubs 68(%%edx)\n\t" +" fmuls 68(%%ebx)\n\t" +" fstps 120(%%ecx)\n\t" -" flds 72(%%edx)\n\t" -" fadds 116(%%edx)\n\t" -" fstps 72(%%ecx)\n\t" +" flds 72(%%edx)\n\t" +" fadds 116(%%edx)\n\t" +" fstps 72(%%ecx)\n\t" -" flds 76(%%edx)\n\t" -" fadds 112(%%edx)\n\t" -" fstps 76(%%ecx)\n\t" +" flds 76(%%edx)\n\t" +" fadds 112(%%edx)\n\t" +" fstps 76(%%ecx)\n\t" -" flds 116(%%edx)\n\t" -" fsubs 72(%%edx)\n\t" -" fmuls 72(%%ebx)\n\t" -" fstps 116(%%ecx)\n\t" +" flds 116(%%edx)\n\t" +" fsubs 72(%%edx)\n\t" +" fmuls 72(%%ebx)\n\t" +" fstps 116(%%ecx)\n\t" -" flds 112(%%edx)\n\t" -" fsubs 76(%%edx)\n\t" -" fmuls 76(%%ebx)\n\t" -" fstps 112(%%ecx)\n\t" +" flds 112(%%edx)\n\t" +" fsubs 76(%%edx)\n\t" +" fmuls 76(%%ebx)\n\t" +" fstps 112(%%ecx)\n\t" -" flds 80(%%edx)\n\t" -" fadds 108(%%edx)\n\t" -" fstps 80(%%ecx)\n\t" +" flds 80(%%edx)\n\t" +" fadds 108(%%edx)\n\t" +" fstps 80(%%ecx)\n\t" -" flds 84(%%edx)\n\t" -" fadds 104(%%edx)\n\t" -" fstps 84(%%ecx)\n\t" +" flds 84(%%edx)\n\t" +" fadds 104(%%edx)\n\t" +" fstps 84(%%ecx)\n\t" -" flds 108(%%edx)\n\t" -" fsubs 80(%%edx)\n\t" -" fmuls 80(%%ebx)\n\t" -" fstps 108(%%ecx)\n\t" +" flds 108(%%edx)\n\t" +" fsubs 80(%%edx)\n\t" +" fmuls 80(%%ebx)\n\t" +" fstps 108(%%ecx)\n\t" -" flds 104(%%edx)\n\t" -" fsubs 84(%%edx)\n\t" -" fmuls 84(%%ebx)\n\t" -" fstps 104(%%ecx)\n\t" +" flds 104(%%edx)\n\t" +" fsubs 84(%%edx)\n\t" +" fmuls 84(%%ebx)\n\t" +" fstps 104(%%ecx)\n\t" -" flds 88(%%edx)\n\t" -" fadds 100(%%edx)\n\t" -" fstps 88(%%ecx)\n\t" +" flds 88(%%edx)\n\t" +" fadds 100(%%edx)\n\t" +" fstps 88(%%ecx)\n\t" -" flds 92(%%edx)\n\t" -" fadds 96(%%edx)\n\t" -" fstps 92(%%ecx)\n\t" +" flds 92(%%edx)\n\t" +" fadds 96(%%edx)\n\t" +" fstps 92(%%ecx)\n\t" -" flds 100(%%edx)\n\t" -" fsubs 88(%%edx)\n\t" -" fmuls 88(%%ebx)\n\t" -" fstps 100(%%ecx)\n\t" +" flds 100(%%edx)\n\t" +" fsubs 88(%%edx)\n\t" +" fmuls 88(%%ebx)\n\t" +" fstps 100(%%ecx)\n\t" -" flds 96(%%edx)\n\t" -" fsubs 92(%%edx)\n\t" -" fmuls 92(%%ebx)\n\t" -" fstps 96(%%ecx)\n\t" +" flds 96(%%edx)\n\t" +" fsubs 92(%%edx)\n\t" +" fmuls 92(%%ebx)\n\t" +" fstps 96(%%ecx)\n\t" /* Phase 4*/ -" flds (%%ecx)\n\t" -" fadds 28(%%ecx)\n\t" -" fstps (%%edx)\n\t" +" flds (%%ecx)\n\t" +" fadds 28(%%ecx)\n\t" +" fstps (%%edx)\n\t" -" flds (%%ecx)\n\t" -" fsubs 28(%%ecx)\n\t" -" fmuls 96(%%ebx)\n\t" -" fstps 28(%%edx)\n\t" +" flds (%%ecx)\n\t" +" fsubs 28(%%ecx)\n\t" +" fmuls 96(%%ebx)\n\t" +" fstps 28(%%edx)\n\t" -" flds 4(%%ecx)\n\t" -" fadds 24(%%ecx)\n\t" -" fstps 4(%%edx)\n\t" +" flds 4(%%ecx)\n\t" +" fadds 24(%%ecx)\n\t" +" fstps 4(%%edx)\n\t" -" flds 4(%%ecx)\n\t" -" fsubs 24(%%ecx)\n\t" -" fmuls 100(%%ebx)\n\t" -" fstps 24(%%edx)\n\t" +" flds 4(%%ecx)\n\t" +" fsubs 24(%%ecx)\n\t" +" fmuls 100(%%ebx)\n\t" +" fstps 24(%%edx)\n\t" -" flds 8(%%ecx)\n\t" -" fadds 20(%%ecx)\n\t" -" fstps 8(%%edx)\n\t" +" flds 8(%%ecx)\n\t" +" fadds 20(%%ecx)\n\t" +" fstps 8(%%edx)\n\t" -" flds 8(%%ecx)\n\t" -" fsubs 20(%%ecx)\n\t" -" fmuls 104(%%ebx)\n\t" -" fstps 20(%%edx)\n\t" +" flds 8(%%ecx)\n\t" +" fsubs 20(%%ecx)\n\t" +" fmuls 104(%%ebx)\n\t" +" fstps 20(%%edx)\n\t" -" flds 12(%%ecx)\n\t" -" fadds 16(%%ecx)\n\t" -" fstps 12(%%edx)\n\t" +" flds 12(%%ecx)\n\t" +" fadds 16(%%ecx)\n\t" +" fstps 12(%%edx)\n\t" -" flds 12(%%ecx)\n\t" -" fsubs 16(%%ecx)\n\t" -" fmuls 108(%%ebx)\n\t" -" fstps 16(%%edx)\n\t" +" flds 12(%%ecx)\n\t" +" fsubs 16(%%ecx)\n\t" +" fmuls 108(%%ebx)\n\t" +" fstps 16(%%edx)\n\t" -" flds 32(%%ecx)\n\t" -" fadds 60(%%ecx)\n\t" -" fstps 32(%%edx)\n\t" +" flds 32(%%ecx)\n\t" +" fadds 60(%%ecx)\n\t" +" fstps 32(%%edx)\n\t" -" flds 60(%%ecx)\n\t" -" fsubs 32(%%ecx)\n\t" -" fmuls 96(%%ebx)\n\t" -" fstps 60(%%edx)\n\t" +" flds 60(%%ecx)\n\t" +" fsubs 32(%%ecx)\n\t" +" fmuls 96(%%ebx)\n\t" +" fstps 60(%%edx)\n\t" -" flds 36(%%ecx)\n\t" -" fadds 56(%%ecx)\n\t" -" fstps 36(%%edx)\n\t" +" flds 36(%%ecx)\n\t" +" fadds 56(%%ecx)\n\t" +" fstps 36(%%edx)\n\t" -" flds 56(%%ecx)\n\t" -" fsubs 36(%%ecx)\n\t" -" fmuls 100(%%ebx)\n\t" -" fstps 56(%%edx)\n\t" +" flds 56(%%ecx)\n\t" +" fsubs 36(%%ecx)\n\t" +" fmuls 100(%%ebx)\n\t" +" fstps 56(%%edx)\n\t" -" flds 40(%%ecx)\n\t" -" fadds 52(%%ecx)\n\t" -" fstps 40(%%edx)\n\t" +" flds 40(%%ecx)\n\t" +" fadds 52(%%ecx)\n\t" +" fstps 40(%%edx)\n\t" -" flds 52(%%ecx)\n\t" -" fsubs 40(%%ecx)\n\t" -" fmuls 104(%%ebx)\n\t" -" fstps 52(%%edx)\n\t" +" flds 52(%%ecx)\n\t" +" fsubs 40(%%ecx)\n\t" +" fmuls 104(%%ebx)\n\t" +" fstps 52(%%edx)\n\t" -" flds 44(%%ecx)\n\t" -" fadds 48(%%ecx)\n\t" -" fstps 44(%%edx)\n\t" +" flds 44(%%ecx)\n\t" +" fadds 48(%%ecx)\n\t" +" fstps 44(%%edx)\n\t" -" flds 48(%%ecx)\n\t" -" fsubs 44(%%ecx)\n\t" -" fmuls 108(%%ebx)\n\t" -" fstps 48(%%edx)\n\t" +" flds 48(%%ecx)\n\t" +" fsubs 44(%%ecx)\n\t" +" fmuls 108(%%ebx)\n\t" +" fstps 48(%%edx)\n\t" -" flds 64(%%ecx)\n\t" -" fadds 92(%%ecx)\n\t" -" fstps 64(%%edx)\n\t" +" flds 64(%%ecx)\n\t" +" fadds 92(%%ecx)\n\t" +" fstps 64(%%edx)\n\t" -" flds 64(%%ecx)\n\t" -" fsubs 92(%%ecx)\n\t" -" fmuls 96(%%ebx)\n\t" -" fstps 92(%%edx)\n\t" +" flds 64(%%ecx)\n\t" +" fsubs 92(%%ecx)\n\t" +" fmuls 96(%%ebx)\n\t" +" fstps 92(%%edx)\n\t" -" flds 68(%%ecx)\n\t" -" fadds 88(%%ecx)\n\t" -" fstps 68(%%edx)\n\t" +" flds 68(%%ecx)\n\t" +" fadds 88(%%ecx)\n\t" +" fstps 68(%%edx)\n\t" -" flds 68(%%ecx)\n\t" -" fsubs 88(%%ecx)\n\t" -" fmuls 100(%%ebx)\n\t" -" fstps 88(%%edx)\n\t" +" flds 68(%%ecx)\n\t" +" fsubs 88(%%ecx)\n\t" +" fmuls 100(%%ebx)\n\t" +" fstps 88(%%edx)\n\t" -" flds 72(%%ecx)\n\t" -" fadds 84(%%ecx)\n\t" -" fstps 72(%%edx)\n\t" +" flds 72(%%ecx)\n\t" +" fadds 84(%%ecx)\n\t" +" fstps 72(%%edx)\n\t" -" flds 72(%%ecx)\n\t" -" fsubs 84(%%ecx)\n\t" -" fmuls 104(%%ebx)\n\t" -" fstps 84(%%edx)\n\t" +" flds 72(%%ecx)\n\t" +" fsubs 84(%%ecx)\n\t" +" fmuls 104(%%ebx)\n\t" +" fstps 84(%%edx)\n\t" -" flds 76(%%ecx)\n\t" -" fadds 80(%%ecx)\n\t" -" fstps 76(%%edx)\n\t" +" flds 76(%%ecx)\n\t" +" fadds 80(%%ecx)\n\t" +" fstps 76(%%edx)\n\t" -" flds 76(%%ecx)\n\t" -" fsubs 80(%%ecx)\n\t" -" fmuls 108(%%ebx)\n\t" -" fstps 80(%%edx)\n\t" +" flds 76(%%ecx)\n\t" +" fsubs 80(%%ecx)\n\t" +" fmuls 108(%%ebx)\n\t" +" fstps 80(%%edx)\n\t" -" flds 96(%%ecx)\n\t" -" fadds 124(%%ecx)\n\t" -" fstps 96(%%edx)\n\t" +" flds 96(%%ecx)\n\t" +" fadds 124(%%ecx)\n\t" +" fstps 96(%%edx)\n\t" -" flds 124(%%ecx)\n\t" -" fsubs 96(%%ecx)\n\t" -" fmuls 96(%%ebx)\n\t" -" fstps 124(%%edx)\n\t" +" flds 124(%%ecx)\n\t" +" fsubs 96(%%ecx)\n\t" +" fmuls 96(%%ebx)\n\t" +" fstps 124(%%edx)\n\t" -" flds 100(%%ecx)\n\t" -" fadds 120(%%ecx)\n\t" -" fstps 100(%%edx)\n\t" +" flds 100(%%ecx)\n\t" +" fadds 120(%%ecx)\n\t" +" fstps 100(%%edx)\n\t" -" flds 120(%%ecx)\n\t" -" fsubs 100(%%ecx)\n\t" -" fmuls 100(%%ebx)\n\t" -" fstps 120(%%edx)\n\t" +" flds 120(%%ecx)\n\t" +" fsubs 100(%%ecx)\n\t" +" fmuls 100(%%ebx)\n\t" +" fstps 120(%%edx)\n\t" -" flds 104(%%ecx)\n\t" -" fadds 116(%%ecx)\n\t" -" fstps 104(%%edx)\n\t" +" flds 104(%%ecx)\n\t" +" fadds 116(%%ecx)\n\t" +" fstps 104(%%edx)\n\t" -" flds 116(%%ecx)\n\t" -" fsubs 104(%%ecx)\n\t" -" fmuls 104(%%ebx)\n\t" -" fstps 116(%%edx)\n\t" +" flds 116(%%ecx)\n\t" +" fsubs 104(%%ecx)\n\t" +" fmuls 104(%%ebx)\n\t" +" fstps 116(%%edx)\n\t" -" flds 108(%%ecx)\n\t" -" fadds 112(%%ecx)\n\t" -" fstps 108(%%edx)\n\t" +" flds 108(%%ecx)\n\t" +" fadds 112(%%ecx)\n\t" +" fstps 108(%%edx)\n\t" -" flds 112(%%ecx)\n\t" -" fsubs 108(%%ecx)\n\t" -" fmuls 108(%%ebx)\n\t" -" fstps 112(%%edx)\n\t" +" flds 112(%%ecx)\n\t" +" fsubs 108(%%ecx)\n\t" +" fmuls 108(%%ebx)\n\t" +" fstps 112(%%edx)\n\t" -" flds (%%edx)\n\t" -" fadds 12(%%edx)\n\t" -" fstps (%%ecx)\n\t" +" flds (%%edx)\n\t" +" fadds 12(%%edx)\n\t" +" fstps (%%ecx)\n\t" -" flds (%%edx)\n\t" -" fsubs 12(%%edx)\n\t" -" fmuls 112(%%ebx)\n\t" -" fstps 12(%%ecx)\n\t" +" flds (%%edx)\n\t" +" fsubs 12(%%edx)\n\t" +" fmuls 112(%%ebx)\n\t" +" fstps 12(%%ecx)\n\t" -" flds 4(%%edx)\n\t" -" fadds 8(%%edx)\n\t" -" fstps 4(%%ecx)\n\t" +" flds 4(%%edx)\n\t" +" fadds 8(%%edx)\n\t" +" fstps 4(%%ecx)\n\t" -" flds 4(%%edx)\n\t" -" fsubs 8(%%edx)\n\t" -" fmuls 116(%%ebx)\n\t" -" fstps 8(%%ecx)\n\t" +" flds 4(%%edx)\n\t" +" fsubs 8(%%edx)\n\t" +" fmuls 116(%%ebx)\n\t" +" fstps 8(%%ecx)\n\t" -" flds 16(%%edx)\n\t" -" fadds 28(%%edx)\n\t" -" fstps 16(%%ecx)\n\t" +" flds 16(%%edx)\n\t" +" fadds 28(%%edx)\n\t" +" fstps 16(%%ecx)\n\t" -" flds 28(%%edx)\n\t" -" fsubs 16(%%edx)\n\t" -" fmuls 112(%%ebx)\n\t" -" fstps 28(%%ecx)\n\t" +" flds 28(%%edx)\n\t" +" fsubs 16(%%edx)\n\t" +" fmuls 112(%%ebx)\n\t" +" fstps 28(%%ecx)\n\t" -" flds 20(%%edx)\n\t" -" fadds 24(%%edx)\n\t" -" fstps 20(%%ecx)\n\t" +" flds 20(%%edx)\n\t" +" fadds 24(%%edx)\n\t" +" fstps 20(%%ecx)\n\t" -" flds 24(%%edx)\n\t" -" fsubs 20(%%edx)\n\t" -" fmuls 116(%%ebx)\n\t" -" fstps 24(%%ecx)\n\t" +" flds 24(%%edx)\n\t" +" fsubs 20(%%edx)\n\t" +" fmuls 116(%%ebx)\n\t" +" fstps 24(%%ecx)\n\t" -" flds 32(%%edx)\n\t" -" fadds 44(%%edx)\n\t" -" fstps 32(%%ecx)\n\t" +" flds 32(%%edx)\n\t" +" fadds 44(%%edx)\n\t" +" fstps 32(%%ecx)\n\t" -" flds 32(%%edx)\n\t" -" fsubs 44(%%edx)\n\t" -" fmuls 112(%%ebx)\n\t" -" fstps 44(%%ecx)\n\t" +" flds 32(%%edx)\n\t" +" fsubs 44(%%edx)\n\t" +" fmuls 112(%%ebx)\n\t" +" fstps 44(%%ecx)\n\t" -" flds 36(%%edx)\n\t" -" fadds 40(%%edx)\n\t" -" fstps 36(%%ecx)\n\t" +" flds 36(%%edx)\n\t" +" fadds 40(%%edx)\n\t" +" fstps 36(%%ecx)\n\t" -" flds 36(%%edx)\n\t" -" fsubs 40(%%edx)\n\t" -" fmuls 116(%%ebx)\n\t" -" fstps 40(%%ecx)\n\t" +" flds 36(%%edx)\n\t" +" fsubs 40(%%edx)\n\t" +" fmuls 116(%%ebx)\n\t" +" fstps 40(%%ecx)\n\t" -" flds 48(%%edx)\n\t" -" fadds 60(%%edx)\n\t" -" fstps 48(%%ecx)\n\t" +" flds 48(%%edx)\n\t" +" fadds 60(%%edx)\n\t" +" fstps 48(%%ecx)\n\t" -" flds 60(%%edx)\n\t" -" fsubs 48(%%edx)\n\t" -" fmuls 112(%%ebx)\n\t" -" fstps 60(%%ecx)\n\t" +" flds 60(%%edx)\n\t" +" fsubs 48(%%edx)\n\t" +" fmuls 112(%%ebx)\n\t" +" fstps 60(%%ecx)\n\t" -" flds 52(%%edx)\n\t" -" fadds 56(%%edx)\n\t" -" fstps 52(%%ecx)\n\t" +" flds 52(%%edx)\n\t" +" fadds 56(%%edx)\n\t" +" fstps 52(%%ecx)\n\t" -" flds 56(%%edx)\n\t" -" fsubs 52(%%edx)\n\t" -" fmuls 116(%%ebx)\n\t" -" fstps 56(%%ecx)\n\t" +" flds 56(%%edx)\n\t" +" fsubs 52(%%edx)\n\t" +" fmuls 116(%%ebx)\n\t" +" fstps 56(%%ecx)\n\t" -" flds 64(%%edx)\n\t" -" fadds 76(%%edx)\n\t" -" fstps 64(%%ecx)\n\t" +" flds 64(%%edx)\n\t" +" fadds 76(%%edx)\n\t" +" fstps 64(%%ecx)\n\t" -" flds 64(%%edx)\n\t" -" fsubs 76(%%edx)\n\t" -" fmuls 112(%%ebx)\n\t" -" fstps 76(%%ecx)\n\t" +" flds 64(%%edx)\n\t" +" fsubs 76(%%edx)\n\t" +" fmuls 112(%%ebx)\n\t" +" fstps 76(%%ecx)\n\t" -" flds 68(%%edx)\n\t" -" fadds 72(%%edx)\n\t" -" fstps 68(%%ecx)\n\t" +" flds 68(%%edx)\n\t" +" fadds 72(%%edx)\n\t" +" fstps 68(%%ecx)\n\t" -" flds 68(%%edx)\n\t" -" fsubs 72(%%edx)\n\t" -" fmuls 116(%%ebx)\n\t" -" fstps 72(%%ecx)\n\t" +" flds 68(%%edx)\n\t" +" fsubs 72(%%edx)\n\t" +" fmuls 116(%%ebx)\n\t" +" fstps 72(%%ecx)\n\t" -" flds 80(%%edx)\n\t" -" fadds 92(%%edx)\n\t" -" fstps 80(%%ecx)\n\t" +" flds 80(%%edx)\n\t" +" fadds 92(%%edx)\n\t" +" fstps 80(%%ecx)\n\t" -" flds 92(%%edx)\n\t" -" fsubs 80(%%edx)\n\t" -" fmuls 112(%%ebx)\n\t" -" fstps 92(%%ecx)\n\t" +" flds 92(%%edx)\n\t" +" fsubs 80(%%edx)\n\t" +" fmuls 112(%%ebx)\n\t" +" fstps 92(%%ecx)\n\t" -" flds 84(%%edx)\n\t" -" fadds 88(%%edx)\n\t" -" fstps 84(%%ecx)\n\t" +" flds 84(%%edx)\n\t" +" fadds 88(%%edx)\n\t" +" fstps 84(%%ecx)\n\t" -" flds 88(%%edx)\n\t" -" fsubs 84(%%edx)\n\t" -" fmuls 116(%%ebx)\n\t" -" fstps 88(%%ecx)\n\t" +" flds 88(%%edx)\n\t" +" fsubs 84(%%edx)\n\t" +" fmuls 116(%%ebx)\n\t" +" fstps 88(%%ecx)\n\t" -" flds 96(%%edx)\n\t" -" fadds 108(%%edx)\n\t" -" fstps 96(%%ecx)\n\t" +" flds 96(%%edx)\n\t" +" fadds 108(%%edx)\n\t" +" fstps 96(%%ecx)\n\t" -" flds 96(%%edx)\n\t" -" fsubs 108(%%edx)\n\t" -" fmuls 112(%%ebx)\n\t" -" fstps 108(%%ecx)\n\t" +" flds 96(%%edx)\n\t" +" fsubs 108(%%edx)\n\t" +" fmuls 112(%%ebx)\n\t" +" fstps 108(%%ecx)\n\t" -" flds 100(%%edx)\n\t" -" fadds 104(%%edx)\n\t" -" fstps 100(%%ecx)\n\t" +" flds 100(%%edx)\n\t" +" fadds 104(%%edx)\n\t" +" fstps 100(%%ecx)\n\t" -" flds 100(%%edx)\n\t" -" fsubs 104(%%edx)\n\t" -" fmuls 116(%%ebx)\n\t" -" fstps 104(%%ecx)\n\t" +" flds 100(%%edx)\n\t" +" fsubs 104(%%edx)\n\t" +" fmuls 116(%%ebx)\n\t" +" fstps 104(%%ecx)\n\t" -" flds 112(%%edx)\n\t" -" fadds 124(%%edx)\n\t" -" fstps 112(%%ecx)\n\t" +" flds 112(%%edx)\n\t" +" fadds 124(%%edx)\n\t" +" fstps 112(%%ecx)\n\t" -" flds 124(%%edx)\n\t" -" fsubs 112(%%edx)\n\t" -" fmuls 112(%%ebx)\n\t" -" fstps 124(%%ecx)\n\t" +" flds 124(%%edx)\n\t" +" fsubs 112(%%edx)\n\t" +" fmuls 112(%%ebx)\n\t" +" fstps 124(%%ecx)\n\t" -" flds 116(%%edx)\n\t" -" fadds 120(%%edx)\n\t" -" fstps 116(%%ecx)\n\t" +" flds 116(%%edx)\n\t" +" fadds 120(%%edx)\n\t" +" fstps 116(%%ecx)\n\t" -" flds 120(%%edx)\n\t" -" fsubs 116(%%edx)\n\t" -" fmuls 116(%%ebx)\n\t" -" fstps 120(%%ecx)\n\t" +" flds 120(%%edx)\n\t" +" fsubs 116(%%edx)\n\t" +" fmuls 116(%%ebx)\n\t" +" fstps 120(%%ecx)\n\t" /* Phase 5*/ -" flds 32(%%ecx)\n\t" -" fadds 36(%%ecx)\n\t" -" fstps 32(%%edx)\n\t" +" flds 32(%%ecx)\n\t" +" fadds 36(%%ecx)\n\t" +" fstps 32(%%edx)\n\t" -" flds 32(%%ecx)\n\t" -" fsubs 36(%%ecx)\n\t" -" fmuls 120(%%ebx)\n\t" -" fstps 36(%%edx)\n\t" +" flds 32(%%ecx)\n\t" +" fsubs 36(%%ecx)\n\t" +" fmuls 120(%%ebx)\n\t" +" fstps 36(%%edx)\n\t" -" flds 44(%%ecx)\n\t" -" fsubs 40(%%ecx)\n\t" -" fmuls 120(%%ebx)\n\t" -" fsts 44(%%edx)\n\t" -" fadds 40(%%ecx)\n\t" -" fadds 44(%%ecx)\n\t" -" fstps 40(%%edx)\n\t" +" flds 44(%%ecx)\n\t" +" fsubs 40(%%ecx)\n\t" +" fmuls 120(%%ebx)\n\t" +" fsts 44(%%edx)\n\t" +" fadds 40(%%ecx)\n\t" +" fadds 44(%%ecx)\n\t" +" fstps 40(%%edx)\n\t" -" flds 48(%%ecx)\n\t" -" fsubs 52(%%ecx)\n\t" -" fmuls 120(%%ebx)\n\t" +" flds 48(%%ecx)\n\t" +" fsubs 52(%%ecx)\n\t" +" fmuls 120(%%ebx)\n\t" -" flds 60(%%ecx)\n\t" -" fsubs 56(%%ecx)\n\t" -" fmuls 120(%%ebx)\n\t" -" fld %%st(0)\n\t" -" fadds 56(%%ecx)\n\t" -" fadds 60(%%ecx)\n\t" -" fld %%st(0)\n\t" -" fadds 48(%%ecx)\n\t" -" fadds 52(%%ecx)\n\t" -" fstps 48(%%edx)\n\t" -" fadd %%st(2)\n\t" -" fstps 56(%%edx)\n\t" -" fsts 60(%%edx)\n\t" -" faddp %%st(1)\n\t" -" fstps 52(%%edx)\n\t" +" flds 60(%%ecx)\n\t" +" fsubs 56(%%ecx)\n\t" +" fmuls 120(%%ebx)\n\t" +" fld %%st(0)\n\t" +" fadds 56(%%ecx)\n\t" +" fadds 60(%%ecx)\n\t" +" fld %%st(0)\n\t" +" fadds 48(%%ecx)\n\t" +" fadds 52(%%ecx)\n\t" +" fstps 48(%%edx)\n\t" +" fadd %%st(2)\n\t" +" fstps 56(%%edx)\n\t" +" fsts 60(%%edx)\n\t" +" faddp %%st(1)\n\t" +" fstps 52(%%edx)\n\t" -" flds 64(%%ecx)\n\t" -" fadds 68(%%ecx)\n\t" -" fstps 64(%%edx)\n\t" +" flds 64(%%ecx)\n\t" +" fadds 68(%%ecx)\n\t" +" fstps 64(%%edx)\n\t" -" flds 64(%%ecx)\n\t" -" fsubs 68(%%ecx)\n\t" -" fmuls 120(%%ebx)\n\t" -" fstps 68(%%edx)\n\t" +" flds 64(%%ecx)\n\t" +" fsubs 68(%%ecx)\n\t" +" fmuls 120(%%ebx)\n\t" +" fstps 68(%%edx)\n\t" -" flds 76(%%ecx)\n\t" -" fsubs 72(%%ecx)\n\t" -" fmuls 120(%%ebx)\n\t" -" fsts 76(%%edx)\n\t" -" fadds 72(%%ecx)\n\t" -" fadds 76(%%ecx)\n\t" -" fstps 72(%%edx)\n\t" +" flds 76(%%ecx)\n\t" +" fsubs 72(%%ecx)\n\t" +" fmuls 120(%%ebx)\n\t" +" fsts 76(%%edx)\n\t" +" fadds 72(%%ecx)\n\t" +" fadds 76(%%ecx)\n\t" +" fstps 72(%%edx)\n\t" -" flds 92(%%ecx)\n\t" -" fsubs 88(%%ecx)\n\t" -" fmuls 120(%%ebx)\n\t" -" fsts 92(%%edx)\n\t" -" fadds 92(%%ecx)\n\t" -" fadds 88(%%ecx)\n\t" -" fld %%st(0)\n\t" -" fadds 80(%%ecx)\n\t" -" fadds 84(%%ecx)\n\t" -" fstps 80(%%edx)\n\t" +" flds 92(%%ecx)\n\t" +" fsubs 88(%%ecx)\n\t" +" fmuls 120(%%ebx)\n\t" +" fsts 92(%%edx)\n\t" +" fadds 92(%%ecx)\n\t" +" fadds 88(%%ecx)\n\t" +" fld %%st(0)\n\t" +" fadds 80(%%ecx)\n\t" +" fadds 84(%%ecx)\n\t" +" fstps 80(%%edx)\n\t" -" flds 80(%%ecx)\n\t" -" fsubs 84(%%ecx)\n\t" -" fmuls 120(%%ebx)\n\t" -" fadd %%st(0), %%st(1)\n\t" -" fadds 92(%%edx)\n\t" -" fstps 84(%%edx)\n\t" -" fstps 88(%%edx)\n\t" +" flds 80(%%ecx)\n\t" +" fsubs 84(%%ecx)\n\t" +" fmuls 120(%%ebx)\n\t" +" fadd %%st(0), %%st(1)\n\t" +" fadds 92(%%edx)\n\t" +" fstps 84(%%edx)\n\t" +" fstps 88(%%edx)\n\t" -" flds 96(%%ecx)\n\t" -" fadds 100(%%ecx)\n\t" -" fstps 96(%%edx)\n\t" +" flds 96(%%ecx)\n\t" +" fadds 100(%%ecx)\n\t" +" fstps 96(%%edx)\n\t" -" flds 96(%%ecx)\n\t" -" fsubs 100(%%ecx)\n\t" -" fmuls 120(%%ebx)\n\t" -" fstps 100(%%edx)\n\t" +" flds 96(%%ecx)\n\t" +" fsubs 100(%%ecx)\n\t" +" fmuls 120(%%ebx)\n\t" +" fstps 100(%%edx)\n\t" -" flds 108(%%ecx)\n\t" -" fsubs 104(%%ecx)\n\t" -" fmuls 120(%%ebx)\n\t" -" fsts 108(%%edx)\n\t" -" fadds 104(%%ecx)\n\t" -" fadds 108(%%ecx)\n\t" -" fstps 104(%%edx)\n\t" +" flds 108(%%ecx)\n\t" +" fsubs 104(%%ecx)\n\t" +" fmuls 120(%%ebx)\n\t" +" fsts 108(%%edx)\n\t" +" fadds 104(%%ecx)\n\t" +" fadds 108(%%ecx)\n\t" +" fstps 104(%%edx)\n\t" -" flds 124(%%ecx)\n\t" -" fsubs 120(%%ecx)\n\t" -" fmuls 120(%%ebx)\n\t" -" fsts 124(%%edx)\n\t" -" fadds 120(%%ecx)\n\t" -" fadds 124(%%ecx)\n\t" -" fld %%st(0)\n\t" -" fadds 112(%%ecx)\n\t" -" fadds 116(%%ecx)\n\t" -" fstps 112(%%edx)\n\t" +" flds 124(%%ecx)\n\t" +" fsubs 120(%%ecx)\n\t" +" fmuls 120(%%ebx)\n\t" +" fsts 124(%%edx)\n\t" +" fadds 120(%%ecx)\n\t" +" fadds 124(%%ecx)\n\t" +" fld %%st(0)\n\t" +" fadds 112(%%ecx)\n\t" +" fadds 116(%%ecx)\n\t" +" fstps 112(%%edx)\n\t" -" flds 112(%%ecx)\n\t" -" fsubs 116(%%ecx)\n\t" -" fmuls 120(%%ebx)\n\t" -" fadd %%st(0),%%st(1)\n\t" -" fadds 124(%%edx)\n\t" -" fstps 116(%%edx)\n\t" -" fstps 120(%%edx)\n\t" -" jnz .L01\n\t" +" flds 112(%%ecx)\n\t" +" fsubs 116(%%ecx)\n\t" +" fmuls 120(%%ebx)\n\t" +" fadd %%st(0),%%st(1)\n\t" +" fadds 124(%%edx)\n\t" +" fstps 116(%%edx)\n\t" +" fstps 120(%%edx)\n\t" +" jnz .L01\n\t" /* Phase 6*/ -" flds (%%ecx)\n\t" -" fadds 4(%%ecx)\n\t" -" fstps 1024(%%esi)\n\t" +" flds (%%ecx)\n\t" +" fadds 4(%%ecx)\n\t" +" fstps 1024(%%esi)\n\t" -" flds (%%ecx)\n\t" -" fsubs 4(%%ecx)\n\t" -" fmuls 120(%%ebx)\n\t" -" fsts (%%esi)\n\t" -" fstps (%%edi)\n\t" +" flds (%%ecx)\n\t" +" fsubs 4(%%ecx)\n\t" +" fmuls 120(%%ebx)\n\t" +" fsts (%%esi)\n\t" +" fstps (%%edi)\n\t" -" flds 12(%%ecx)\n\t" -" fsubs 8(%%ecx)\n\t" -" fmuls 120(%%ebx)\n\t" -" fsts 512(%%edi)\n\t" -" fadds 12(%%ecx)\n\t" -" fadds 8(%%ecx)\n\t" -" fstps 512(%%esi)\n\t" +" flds 12(%%ecx)\n\t" +" fsubs 8(%%ecx)\n\t" +" fmuls 120(%%ebx)\n\t" +" fsts 512(%%edi)\n\t" +" fadds 12(%%ecx)\n\t" +" fadds 8(%%ecx)\n\t" +" fstps 512(%%esi)\n\t" -" flds 16(%%ecx)\n\t" -" fsubs 20(%%ecx)\n\t" -" fmuls 120(%%ebx)\n\t" +" flds 16(%%ecx)\n\t" +" fsubs 20(%%ecx)\n\t" +" fmuls 120(%%ebx)\n\t" -" flds 28(%%ecx)\n\t" -" fsubs 24(%%ecx)\n\t" -" fmuls 120(%%ebx)\n\t" -" fsts 768(%%edi)\n\t" -" fld %%st(0)\n\t" -" fadds 24(%%ecx)\n\t" -" fadds 28(%%ecx)\n\t" -" fld %%st(0)\n\t" -" fadds 16(%%ecx)\n\t" -" fadds 20(%%ecx)\n\t" -" fstps 768(%%esi)\n\t" -" fadd %%st(2)\n\t" -" fstps 256(%%esi)\n\t" -" faddp %%st(1)\n\t" -" fstps 256(%%edi)\n\t" +" flds 28(%%ecx)\n\t" +" fsubs 24(%%ecx)\n\t" +" fmuls 120(%%ebx)\n\t" +" fsts 768(%%edi)\n\t" +" fld %%st(0)\n\t" +" fadds 24(%%ecx)\n\t" +" fadds 28(%%ecx)\n\t" +" fld %%st(0)\n\t" +" fadds 16(%%ecx)\n\t" +" fadds 20(%%ecx)\n\t" +" fstps 768(%%esi)\n\t" +" fadd %%st(2)\n\t" +" fstps 256(%%esi)\n\t" +" faddp %%st(1)\n\t" +" fstps 256(%%edi)\n\t" /* Phase 7*/ -" flds 32(%%edx)\n\t" -" fadds 48(%%edx)\n\t" -" fstps 896(%%esi)\n\t" +" flds 32(%%edx)\n\t" +" fadds 48(%%edx)\n\t" +" fstps 896(%%esi)\n\t" -" flds 48(%%edx)\n\t" -" fadds 40(%%edx)\n\t" -" fstps 640(%%esi)\n\t" +" flds 48(%%edx)\n\t" +" fadds 40(%%edx)\n\t" +" fstps 640(%%esi)\n\t" -" flds 40(%%edx)\n\t" -" fadds 56(%%edx)\n\t" -" fstps 384(%%esi)\n\t" +" flds 40(%%edx)\n\t" +" fadds 56(%%edx)\n\t" +" fstps 384(%%esi)\n\t" -" flds 56(%%edx)\n\t" -" fadds 36(%%edx)\n\t" -" fstps 128(%%esi)\n\t" +" flds 56(%%edx)\n\t" +" fadds 36(%%edx)\n\t" +" fstps 128(%%esi)\n\t" -" flds 36(%%edx)\n\t" -" fadds 52(%%edx)\n\t" -" fstps 128(%%edi)\n\t" +" flds 36(%%edx)\n\t" +" fadds 52(%%edx)\n\t" +" fstps 128(%%edi)\n\t" -" flds 52(%%edx)\n\t" -" fadds 44(%%edx)\n\t" -" fstps 384(%%edi)\n\t" +" flds 52(%%edx)\n\t" +" fadds 44(%%edx)\n\t" +" fstps 384(%%edi)\n\t" -" flds 60(%%edx)\n\t" -" fsts 896(%%edi)\n\t" -" fadds 44(%%edx)\n\t" -" fstps 640(%%edi)\n\t" +" flds 60(%%edx)\n\t" +" fsts 896(%%edi)\n\t" +" fadds 44(%%edx)\n\t" +" fstps 640(%%edi)\n\t" -" flds 96(%%edx)\n\t" -" fadds 112(%%edx)\n\t" -" fld %%st(0)\n\t" -" fadds 64(%%edx)\n\t" -" fstps 960(%%esi)\n\t" -" fadds 80(%%edx)\n\t" -" fstps 832(%%esi)\n\t" +" flds 96(%%edx)\n\t" +" fadds 112(%%edx)\n\t" +" fld %%st(0)\n\t" +" fadds 64(%%edx)\n\t" +" fstps 960(%%esi)\n\t" +" fadds 80(%%edx)\n\t" +" fstps 832(%%esi)\n\t" -" flds 112(%%edx)\n\t" -" fadds 104(%%edx)\n\t" -" fld %%st(0)\n\t" -" fadds 80(%%edx)\n\t" -" fstps 704(%%esi)\n\t" -" fadds 72(%%edx)\n\t" -" fstps 576(%%esi)\n\t" +" flds 112(%%edx)\n\t" +" fadds 104(%%edx)\n\t" +" fld %%st(0)\n\t" +" fadds 80(%%edx)\n\t" +" fstps 704(%%esi)\n\t" +" fadds 72(%%edx)\n\t" +" fstps 576(%%esi)\n\t" -" flds 104(%%edx)\n\t" -" fadds 120(%%edx)\n\t" -" fld %%st(0)\n\t" -" fadds 72(%%edx)\n\t" -" fstps 448(%%esi)\n\t" -" fadds 88(%%edx)\n\t" -" fstps 320(%%esi)\n\t" +" flds 104(%%edx)\n\t" +" fadds 120(%%edx)\n\t" +" fld %%st(0)\n\t" +" fadds 72(%%edx)\n\t" +" fstps 448(%%esi)\n\t" +" fadds 88(%%edx)\n\t" +" fstps 320(%%esi)\n\t" -" flds 120(%%edx)\n\t" -" fadds 100(%%edx)\n\t" -" fld %%st(0)\n\t" -" fadds 88(%%edx)\n\t" -" fstps 192(%%esi)\n\t" -" fadds 68(%%edx)\n\t" -" fstps 64(%%esi)\n\t" +" flds 120(%%edx)\n\t" +" fadds 100(%%edx)\n\t" +" fld %%st(0)\n\t" +" fadds 88(%%edx)\n\t" +" fstps 192(%%esi)\n\t" +" fadds 68(%%edx)\n\t" +" fstps 64(%%esi)\n\t" -" flds 100(%%edx)\n\t" -" fadds 116(%%edx)\n\t" -" fld %%st(0)\n\t" -" fadds 68(%%edx)\n\t" -" fstps 64(%%edi)\n\t" -" fadds 84(%%edx)\n\t" -" fstps 192(%%edi)\n\t" +" flds 100(%%edx)\n\t" +" fadds 116(%%edx)\n\t" +" fld %%st(0)\n\t" +" fadds 68(%%edx)\n\t" +" fstps 64(%%edi)\n\t" +" fadds 84(%%edx)\n\t" +" fstps 192(%%edi)\n\t" -" flds 116(%%edx)\n\t" -" fadds 108(%%edx)\n\t" -" fld %%st(0)\n\t" -" fadds 84(%%edx)\n\t" -" fstps 320(%%edi)\n\t" -" fadds 76(%%edx)\n\t" -" fstps 448(%%edi)\n\t" +" flds 116(%%edx)\n\t" +" fadds 108(%%edx)\n\t" +" fld %%st(0)\n\t" +" fadds 84(%%edx)\n\t" +" fstps 320(%%edi)\n\t" +" fadds 76(%%edx)\n\t" +" fstps 448(%%edi)\n\t" -" flds 108(%%edx)\n\t" -" fadds 124(%%edx)\n\t" -" fld %%st(0)\n\t" -" fadds 76(%%edx)\n\t" -" fstps 576(%%edi)\n\t" -" fadds 92(%%edx)\n\t" -" fstps 704(%%edi)\n\t" +" flds 108(%%edx)\n\t" +" fadds 124(%%edx)\n\t" +" fld %%st(0)\n\t" +" fadds 76(%%edx)\n\t" +" fstps 576(%%edi)\n\t" +" fadds 92(%%edx)\n\t" +" fstps 704(%%edi)\n\t" -" flds 124(%%edx)\n\t" -" fsts 960(%%edi)\n\t" -" fadds 92(%%edx)\n\t" -" fstps 832(%%edi)\n\t" -" jmp .L_bye\n\t" +" flds 124(%%edx)\n\t" +" fsts 960(%%edi)\n\t" +" fadds 92(%%edx)\n\t" +" fstps 832(%%edi)\n\t" +" jmp .L_bye\n\t" ".L01:\n\t" /* Phase 8*/ -" flds (%%ecx)\n\t" -" fadds 4(%%ecx)\n\t" -" fistp 512(%%esi)\n\t" +" flds (%%ecx)\n\t" +" fadds 4(%%ecx)\n\t" +" fistp 512(%%esi)\n\t" -" flds (%%ecx)\n\t" -" fsubs 4(%%ecx)\n\t" -" fmuls 120(%%ebx)\n\t" +" flds (%%ecx)\n\t" +" fsubs 4(%%ecx)\n\t" +" fmuls 120(%%ebx)\n\t" -" fistp (%%esi)\n\t" +" fistp (%%esi)\n\t" -" flds 12(%%ecx)\n\t" -" fsubs 8(%%ecx)\n\t" -" fmuls 120(%%ebx)\n\t" -" fist 256(%%edi)\n\t" -" fadds 12(%%ecx)\n\t" -" fadds 8(%%ecx)\n\t" -" fistp 256(%%esi)\n\t" +" flds 12(%%ecx)\n\t" +" fsubs 8(%%ecx)\n\t" +" fmuls 120(%%ebx)\n\t" +" fist 256(%%edi)\n\t" +" fadds 12(%%ecx)\n\t" +" fadds 8(%%ecx)\n\t" +" fistp 256(%%esi)\n\t" -" flds 16(%%ecx)\n\t" -" fsubs 20(%%ecx)\n\t" -" fmuls 120(%%ebx)\n\t" +" flds 16(%%ecx)\n\t" +" fsubs 20(%%ecx)\n\t" +" fmuls 120(%%ebx)\n\t" -" flds 28(%%ecx)\n\t" -" fsubs 24(%%ecx)\n\t" -" fmuls 120(%%ebx)\n\t" -" fist 384(%%edi)\n\t" -" fld %%st(0)\n\t" -" fadds 24(%%ecx)\n\t" -" fadds 28(%%ecx)\n\t" -" fld %%st(0)\n\t" -" fadds 16(%%ecx)\n\t" -" fadds 20(%%ecx)\n\t" -" fistp 384(%%esi)\n\t" -" fadd %%st(2)\n\t" -" fistp 128(%%esi)\n\t" -" faddp %%st(1)\n\t" -" fistp 128(%%edi)\n\t" +" flds 28(%%ecx)\n\t" +" fsubs 24(%%ecx)\n\t" +" fmuls 120(%%ebx)\n\t" +" fist 384(%%edi)\n\t" +" fld %%st(0)\n\t" +" fadds 24(%%ecx)\n\t" +" fadds 28(%%ecx)\n\t" +" fld %%st(0)\n\t" +" fadds 16(%%ecx)\n\t" +" fadds 20(%%ecx)\n\t" +" fistp 384(%%esi)\n\t" +" fadd %%st(2)\n\t" +" fistp 128(%%esi)\n\t" +" faddp %%st(1)\n\t" +" fistp 128(%%edi)\n\t" /* Phase 9*/ -" flds 32(%%edx)\n\t" -" fadds 48(%%edx)\n\t" -" fistp 448(%%esi)\n\t" +" flds 32(%%edx)\n\t" +" fadds 48(%%edx)\n\t" +" fistp 448(%%esi)\n\t" -" flds 48(%%edx)\n\t" -" fadds 40(%%edx)\n\t" -" fistp 320(%%esi)\n\t" +" flds 48(%%edx)\n\t" +" fadds 40(%%edx)\n\t" +" fistp 320(%%esi)\n\t" -" flds 40(%%edx)\n\t" -" fadds 56(%%edx)\n\t" -" fistp 192(%%esi)\n\t" +" flds 40(%%edx)\n\t" +" fadds 56(%%edx)\n\t" +" fistp 192(%%esi)\n\t" -" flds 56(%%edx)\n\t" -" fadds 36(%%edx)\n\t" -" fistp 64(%%esi)\n\t" +" flds 56(%%edx)\n\t" +" fadds 36(%%edx)\n\t" +" fistp 64(%%esi)\n\t" -" flds 36(%%edx)\n\t" -" fadds 52(%%edx)\n\t" -" fistp 64(%%edi)\n\t" +" flds 36(%%edx)\n\t" +" fadds 52(%%edx)\n\t" +" fistp 64(%%edi)\n\t" -" flds 52(%%edx)\n\t" -" fadds 44(%%edx)\n\t" -" fistp 192(%%edi)\n\t" +" flds 52(%%edx)\n\t" +" fadds 44(%%edx)\n\t" +" fistp 192(%%edi)\n\t" -" flds 60(%%edx)\n\t" -" fist 448(%%edi)\n\t" -" fadds 44(%%edx)\n\t" -" fistp 320(%%edi)\n\t" +" flds 60(%%edx)\n\t" +" fist 448(%%edi)\n\t" +" fadds 44(%%edx)\n\t" +" fistp 320(%%edi)\n\t" -" flds 96(%%edx)\n\t" -" fadds 112(%%edx)\n\t" -" fld %%st(0)\n\t" -" fadds 64(%%edx)\n\t" -" fistp 480(%%esi)\n\t" -" fadds 80(%%edx)\n\t" -" fistp 416(%%esi)\n\t" +" flds 96(%%edx)\n\t" +" fadds 112(%%edx)\n\t" +" fld %%st(0)\n\t" +" fadds 64(%%edx)\n\t" +" fistp 480(%%esi)\n\t" +" fadds 80(%%edx)\n\t" +" fistp 416(%%esi)\n\t" -" flds 112(%%edx)\n\t" -" fadds 104(%%edx)\n\t" -" fld %%st(0)\n\t" -" fadds 80(%%edx)\n\t" -" fistp 352(%%esi)\n\t" -" fadds 72(%%edx)\n\t" -" fistp 288(%%esi)\n\t" +" flds 112(%%edx)\n\t" +" fadds 104(%%edx)\n\t" +" fld %%st(0)\n\t" +" fadds 80(%%edx)\n\t" +" fistp 352(%%esi)\n\t" +" fadds 72(%%edx)\n\t" +" fistp 288(%%esi)\n\t" -" flds 104(%%edx)\n\t" -" fadds 120(%%edx)\n\t" -" fld %%st(0)\n\t" -" fadds 72(%%edx)\n\t" -" fistp 224(%%esi)\n\t" -" fadds 88(%%edx)\n\t" -" fistp 160(%%esi)\n\t" +" flds 104(%%edx)\n\t" +" fadds 120(%%edx)\n\t" +" fld %%st(0)\n\t" +" fadds 72(%%edx)\n\t" +" fistp 224(%%esi)\n\t" +" fadds 88(%%edx)\n\t" +" fistp 160(%%esi)\n\t" -" flds 120(%%edx)\n\t" -" fadds 100(%%edx)\n\t" -" fld %%st(0)\n\t" -" fadds 88(%%edx)\n\t" -" fistp 96(%%esi)\n\t" -" fadds 68(%%edx)\n\t" -" fistp 32(%%esi)\n\t" +" flds 120(%%edx)\n\t" +" fadds 100(%%edx)\n\t" +" fld %%st(0)\n\t" +" fadds 88(%%edx)\n\t" +" fistp 96(%%esi)\n\t" +" fadds 68(%%edx)\n\t" +" fistp 32(%%esi)\n\t" -" flds 100(%%edx)\n\t" -" fadds 116(%%edx)\n\t" -" fld %%st(0)\n\t" -" fadds 68(%%edx)\n\t" -" fistp 32(%%edi)\n\t" -" fadds 84(%%edx)\n\t" -" fistp 96(%%edi)\n\t" +" flds 100(%%edx)\n\t" +" fadds 116(%%edx)\n\t" +" fld %%st(0)\n\t" +" fadds 68(%%edx)\n\t" +" fistp 32(%%edi)\n\t" +" fadds 84(%%edx)\n\t" +" fistp 96(%%edi)\n\t" -" flds 116(%%edx)\n\t" -" fadds 108(%%edx)\n\t" -" fld %%st(0)\n\t" -" fadds 84(%%edx)\n\t" -" fistp 160(%%edi)\n\t" -" fadds 76(%%edx)\n\t" -" fistp 224(%%edi)\n\t" +" flds 116(%%edx)\n\t" +" fadds 108(%%edx)\n\t" +" fld %%st(0)\n\t" +" fadds 84(%%edx)\n\t" +" fistp 160(%%edi)\n\t" +" fadds 76(%%edx)\n\t" +" fistp 224(%%edi)\n\t" -" flds 108(%%edx)\n\t" -" fadds 124(%%edx)\n\t" -" fld %%st(0)\n\t" -" fadds 76(%%edx)\n\t" -" fistp 288(%%edi)\n\t" -" fadds 92(%%edx)\n\t" -" fistp 352(%%edi)\n\t" +" flds 108(%%edx)\n\t" +" fadds 124(%%edx)\n\t" +" fld %%st(0)\n\t" +" fadds 76(%%edx)\n\t" +" fistp 288(%%edi)\n\t" +" fadds 92(%%edx)\n\t" +" fistp 352(%%edi)\n\t" -" flds 124(%%edx)\n\t" -" fist 480(%%edi)\n\t" -" fadds 92(%%edx)\n\t" -" fistp 416(%%edi)\n\t" -" movsw\n\t" +" flds 124(%%edx)\n\t" +" fist 480(%%edi)\n\t" +" fadds 92(%%edx)\n\t" +" fistp 416(%%edi)\n\t" +" movsw\n\t" ".L_bye:" - : - :"m"(a),"m"(b),"m"(c),"m"(tmp[0]) - :"memory","%eax","%ebx","%ecx","%edx","%esi","%edi"); + : + :"m"(a),"m"(b),"m"(c),"m"(tmp[0]) + :"memory","%eax","%ebx","%ecx","%edx","%esi","%edi"); }
--- a/mp3lib/decod386.c Mon Apr 12 08:03:39 2010 +0000 +++ b/mp3lib/decod386.c Mon Apr 12 10:56:17 2010 +0000 @@ -22,10 +22,10 @@ #if 0 /* old WRITE_SAMPLE */ /* is portable */ -#define WRITE_SAMPLE(samples,sum,clip) { \ - if( (sum) > 32767.0) { *(samples) = 0x7fff; (clip)++; } \ +#define WRITE_SAMPLE(samples,sum,clip) { \ + if( (sum) > 32767.0) { *(samples) = 0x7fff; (clip)++; } \ else if( (sum) < -32768.0) { *(samples) = -0x8000; (clip)++; }\ - else { *(samples) = sum; } \ + else { *(samples) = sum; } \ } #else /* new WRITE_SAMPLE */ @@ -55,9 +55,9 @@ * it doesn't work for you, just enable the "old WRITE_SAMPLE" macro. */ #if HAVE_BIGENDIAN -#define MANTISSA_OFFSET 1 +#define MANTISSA_OFFSET 1 #else -#define MANTISSA_OFFSET 0 +#define MANTISSA_OFFSET 0 #endif /* sizeof(int) == 4 */
--- a/mp3lib/decode_i586.c Mon Apr 12 08:03:39 2010 +0000 +++ b/mp3lib/decode_i586.c Mon Apr 12 10:56:17 2010 +0000 @@ -311,8 +311,8 @@ " jnz .L68\n\t" " movl %%edi,%%eax\n\t" " movl "MANGLE(saved_ebp)",%%ebp\n\t" - :"=a"(retval) - :"m"(bandPtr),"m"(channel),"m"(samples),"m"(tmp[0]) - :"memory","%edi","%esi","%ebx","%ecx","%edx"); + :"=a"(retval) + :"m"(bandPtr),"m"(channel),"m"(samples),"m"(tmp[0]) + :"memory","%edi","%esi","%ebx","%ecx","%edx"); return retval; }
--- a/mp3lib/decode_mmx.c Mon Apr 12 08:03:39 2010 +0000 +++ b/mp3lib/decode_mmx.c Mon Apr 12 10:56:17 2010 +0000 @@ -15,37 +15,37 @@ static const unsigned long long attribute_used __attribute__((aligned(8))) one_null = 0xffff0000ffff0000ULL; const unsigned int __attribute__((aligned(16))) costab_mmx[] = { - 1056974725, - 1057056395, - 1057223771, - 1057485416, - 1057855544, - 1058356026, - 1059019886, - 1059897405, - 1061067246, - 1062657950, - 1064892987, - 1066774581, - 1069414683, - 1073984175, - 1079645762, - 1092815430, - 1057005197, - 1057342072, - 1058087743, - 1059427869, - 1061799040, - 1065862217, - 1071413542, - 1084439708, - 1057128951, - 1058664893, - 1063675095, - 1076102863, - 1057655764, - 1067924853, - 1060439283, + 1056974725, + 1057056395, + 1057223771, + 1057485416, + 1057855544, + 1058356026, + 1059019886, + 1059897405, + 1061067246, + 1062657950, + 1064892987, + 1066774581, + 1069414683, + 1073984175, + 1079645762, + 1092815430, + 1057005197, + 1057342072, + 1058087743, + 1059427869, + 1061799040, + 1065862217, + 1071413542, + 1084439708, + 1057128951, + 1058664893, + 1063675095, + 1076102863, + 1057655764, + 1067924853, + 1060439283, }; /** @@ -55,134 +55,134 @@ */ static const short __attribute__((aligned(8))) mp3lib_decwins[] = { - 0, 7, 54, 114, 510, 1288, 1644, 9372, - 18760, -9373, 1644, -1289, 510, -115, 54, -8, - 0, 7, 54, 114, 510, 1288, 1644, 9372, - 18760, -9373, 1644, -1289, 510, -115, 54, -8, - 0, 7, 55, 129, 500, 1379, 1490, 9834, - 18748, -8910, 1784, -1197, 516, -101, 52, -7, - 0, 7, 55, 129, 500, 1379, 1490, 9834, - 18748, -8910, 1784, -1197, 516, -101, 52, -7, - 0, 8, 56, 145, 488, 1469, 1322, 10294, - 18714, -8448, 1910, -1107, 520, -87, 51, -6, - 0, 8, 56, 145, 488, 1469, 1322, 10294, - 18714, -8448, 1910, -1107, 520, -87, 51, -6, - 0, 9, 57, 161, 474, 1559, 1141, 10751, - 18658, -7987, 2023, -1016, 522, -74, 49, -6, - 0, 9, 57, 161, 474, 1559, 1141, 10751, - 18658, -7987, 2023, -1016, 522, -74, 49, -6, - 0, 10, 57, 177, 456, 1647, 944, 11205, - 18579, -7528, 2123, -927, 522, -61, 48, -5, - 0, 10, 57, 177, 456, 1647, 944, 11205, - 18579, -7528, 2123, -927, 522, -61, 48, -5, - 0, 11, 57, 194, 435, 1733, 734, 11654, - 18477, -7073, 2210, -838, 519, -50, 46, -5, - 0, 11, 57, 194, 435, 1733, 734, 11654, - 18477, -7073, 2210, -838, 519, -50, 46, -5, - 0, 12, 57, 212, 411, 1817, 510, 12097, - 18354, -6621, 2285, -751, 515, -39, 44, -4, - 0, 12, 57, 212, 411, 1817, 510, 12097, - 18354, -6621, 2285, -751, 515, -39, 44, -4, - 0, 13, 57, 229, 384, 1899, 271, 12534, - 18209, -6174, 2348, -666, 508, -28, 43, -4, - 0, 13, 57, 229, 384, 1899, 271, 12534, - 18209, -6174, 2348, -666, 508, -28, 43, -4, - 0, 14, 56, 247, 354, 1977, 18, 12963, - 18043, -5733, 2398, -583, 501, -18, 41, -4, - 0, 14, 56, 247, 354, 1977, 18, 12963, - 18043, -5733, 2398, -583, 501, -18, 41, -4, - 0, 15, 56, 266, 320, 2052, -249, 13383, - 17855, -5298, 2438, -502, 491, -9, 39, -3, - 0, 15, 56, 266, 320, 2052, -249, 13383, - 17855, -5298, 2438, -502, 491, -9, 39, -3, - 0, 17, 54, 284, 283, 2122, -530, 13794, - 17648, -4870, 2466, -423, 480, -1, 37, -3, - 0, 17, 54, 284, 283, 2122, -530, 13794, - 17648, -4870, 2466, -423, 480, -1, 37, -3, - 0, 18, 52, 302, 243, 2188, -825, 14194, - 17420, -4450, 2484, -347, 468, 7, 35, -3, - 0, 18, 52, 302, 243, 2188, -825, 14194, - 17420, -4450, 2484, -347, 468, 7, 35, -3, - 0, 19, 50, 320, 199, 2249, -1133, 14583, - 17173, -4039, 2492, -274, 455, 14, 33, -2, - 0, 19, 50, 320, 199, 2249, -1133, 14583, - 17173, -4039, 2492, -274, 455, 14, 33, -2, - -1, 21, 48, 339, 152, 2304, -1454, 14959, - 16908, -3637, 2490, -204, 440, 20, 32, -2, - -1, 21, 48, 339, 152, 2304, -1454, 14959, - 16908, -3637, 2490, -204, 440, 20, 32, -2, - -1, 22, 45, 357, 101, 2354, -1788, 15322, - 16624, -3245, 2479, -137, 425, 26, 30, -2, - -1, 22, 45, 357, 101, 2354, -1788, 15322, - 16624, -3245, 2479, -137, 425, 26, 30, -2, - -1, 24, 41, 374, 47, 2396, -2135, 15671, - 16323, -2864, 2460, -72, 409, 31, 28, -2, - -1, 24, 41, 374, 47, 2396, -2135, 15671, - 16323, -2864, 2460, -72, 409, 31, 28, -2, - -1, 26, 37, 391, -11, 2431, -2493, 16004, - 16005, -2494, 2432, -12, 392, 36, 26, -2, - -1, 26, 37, 391, -11, 2431, -2493, 16004, - 16005, -2494, 2432, -12, 392, 36, 26, -2, - -2, -28, 31, -409, -72, -2460, -2864, -16323, - 15671, 2135, 2396, -47, 374, -41, 24, 1, - -2, -28, 31, -409, -72, -2460, -2864, -16323, - 15671, 2135, 2396, -47, 374, -41, 24, 1, - -2, -30, 26, -425, -137, -2479, -3245, -16624, - 15322, 1788, 2354, -101, 357, -45, 22, 1, - -2, -30, 26, -425, -137, -2479, -3245, -16624, - 15322, 1788, 2354, -101, 357, -45, 22, 1, - -2, -32, 20, -440, -204, -2490, -3637, -16908, - 14959, 1454, 2304, -152, 339, -48, 21, 1, - -2, -32, 20, -440, -204, -2490, -3637, -16908, - 14959, 1454, 2304, -152, 339, -48, 21, 1, - -2, -33, 14, -455, -274, -2492, -4039, -17173, - 14583, 1133, 2249, -199, 320, -50, 19, 0, - -2, -33, 14, -455, -274, -2492, -4039, -17173, - 14583, 1133, 2249, -199, 320, -50, 19, 0, - -3, -35, 7, -468, -347, -2484, -4450, -17420, - 14194, 825, 2188, -243, 302, -52, 18, 0, - -3, -35, 7, -468, -347, -2484, -4450, -17420, - 14194, 825, 2188, -243, 302, -52, 18, 0, - -3, -37, -1, -480, -423, -2466, -4870, -17648, - 13794, 530, 2122, -283, 284, -54, 17, 0, - -3, -37, -1, -480, -423, -2466, -4870, -17648, - 13794, 530, 2122, -283, 284, -54, 17, 0, - -3, -39, -9, -491, -502, -2438, -5298, -17855, - 13383, 249, 2052, -320, 266, -56, 15, 0, - -3, -39, -9, -491, -502, -2438, -5298, -17855, - 13383, 249, 2052, -320, 266, -56, 15, 0, - -4, -41, -18, -501, -583, -2398, -5733, -18043, - 12963, -18, 1977, -354, 247, -56, 14, 0, - -4, -41, -18, -501, -583, -2398, -5733, -18043, - 12963, -18, 1977, -354, 247, -56, 14, 0, - -4, -43, -28, -508, -666, -2348, -6174, -18209, - 12534, -271, 1899, -384, 229, -57, 13, 0, - -4, -43, -28, -508, -666, -2348, -6174, -18209, - 12534, -271, 1899, -384, 229, -57, 13, 0, - -4, -44, -39, -515, -751, -2285, -6621, -18354, - 12097, -510, 1817, -411, 212, -57, 12, 0, - -4, -44, -39, -515, -751, -2285, -6621, -18354, - 12097, -510, 1817, -411, 212, -57, 12, 0, - -5, -46, -50, -519, -838, -2210, -7073, -18477, - 11654, -734, 1733, -435, 194, -57, 11, 0, - -5, -46, -50, -519, -838, -2210, -7073, -18477, - 11654, -734, 1733, -435, 194, -57, 11, 0, - -5, -48, -61, -522, -927, -2123, -7528, -18579, - 11205, -944, 1647, -456, 177, -57, 10, 0, - -5, -48, -61, -522, -927, -2123, -7528, -18579, - 11205, -944, 1647, -456, 177, -57, 10, 0, - -6, -49, -74, -522, -1016, -2023, -7987, -18658, - 10751, -1141, 1559, -474, 161, -57, 9, 0, - -6, -49, -74, -522, -1016, -2023, -7987, -18658, - 10751, -1141, 1559, -474, 161, -57, 9, 0, - -6, -51, -87, -520, -1107, -1910, -8448, -18714, - 10294, -1322, 1469, -488, 145, -56, 8, 0, - -6, -51, -87, -520, -1107, -1910, -8448, -18714, - 10294, -1322, 1469, -488, 145, -56, 8, 0, - -7, -52, -101, -516, -1197, -1784, -8910, -18748, - 9834, -1490, 1379, -500, 129, -55, 7, 0, - -7, -52, -101, -516, -1197, -1784, -8910, -18748, - 9834, -1490, 1379, -500, 129, -55, 7, 0, + 0, 7, 54, 114, 510, 1288, 1644, 9372, + 18760, -9373, 1644, -1289, 510, -115, 54, -8, + 0, 7, 54, 114, 510, 1288, 1644, 9372, + 18760, -9373, 1644, -1289, 510, -115, 54, -8, + 0, 7, 55, 129, 500, 1379, 1490, 9834, + 18748, -8910, 1784, -1197, 516, -101, 52, -7, + 0, 7, 55, 129, 500, 1379, 1490, 9834, + 18748, -8910, 1784, -1197, 516, -101, 52, -7, + 0, 8, 56, 145, 488, 1469, 1322, 10294, + 18714, -8448, 1910, -1107, 520, -87, 51, -6, + 0, 8, 56, 145, 488, 1469, 1322, 10294, + 18714, -8448, 1910, -1107, 520, -87, 51, -6, + 0, 9, 57, 161, 474, 1559, 1141, 10751, + 18658, -7987, 2023, -1016, 522, -74, 49, -6, + 0, 9, 57, 161, 474, 1559, 1141, 10751, + 18658, -7987, 2023, -1016, 522, -74, 49, -6, + 0, 10, 57, 177, 456, 1647, 944, 11205, + 18579, -7528, 2123, -927, 522, -61, 48, -5, + 0, 10, 57, 177, 456, 1647, 944, 11205, + 18579, -7528, 2123, -927, 522, -61, 48, -5, + 0, 11, 57, 194, 435, 1733, 734, 11654, + 18477, -7073, 2210, -838, 519, -50, 46, -5, + 0, 11, 57, 194, 435, 1733, 734, 11654, + 18477, -7073, 2210, -838, 519, -50, 46, -5, + 0, 12, 57, 212, 411, 1817, 510, 12097, + 18354, -6621, 2285, -751, 515, -39, 44, -4, + 0, 12, 57, 212, 411, 1817, 510, 12097, + 18354, -6621, 2285, -751, 515, -39, 44, -4, + 0, 13, 57, 229, 384, 1899, 271, 12534, + 18209, -6174, 2348, -666, 508, -28, 43, -4, + 0, 13, 57, 229, 384, 1899, 271, 12534, + 18209, -6174, 2348, -666, 508, -28, 43, -4, + 0, 14, 56, 247, 354, 1977, 18, 12963, + 18043, -5733, 2398, -583, 501, -18, 41, -4, + 0, 14, 56, 247, 354, 1977, 18, 12963, + 18043, -5733, 2398, -583, 501, -18, 41, -4, + 0, 15, 56, 266, 320, 2052, -249, 13383, + 17855, -5298, 2438, -502, 491, -9, 39, -3, + 0, 15, 56, 266, 320, 2052, -249, 13383, + 17855, -5298, 2438, -502, 491, -9, 39, -3, + 0, 17, 54, 284, 283, 2122, -530, 13794, + 17648, -4870, 2466, -423, 480, -1, 37, -3, + 0, 17, 54, 284, 283, 2122, -530, 13794, + 17648, -4870, 2466, -423, 480, -1, 37, -3, + 0, 18, 52, 302, 243, 2188, -825, 14194, + 17420, -4450, 2484, -347, 468, 7, 35, -3, + 0, 18, 52, 302, 243, 2188, -825, 14194, + 17420, -4450, 2484, -347, 468, 7, 35, -3, + 0, 19, 50, 320, 199, 2249, -1133, 14583, + 17173, -4039, 2492, -274, 455, 14, 33, -2, + 0, 19, 50, 320, 199, 2249, -1133, 14583, + 17173, -4039, 2492, -274, 455, 14, 33, -2, + -1, 21, 48, 339, 152, 2304, -1454, 14959, + 16908, -3637, 2490, -204, 440, 20, 32, -2, + -1, 21, 48, 339, 152, 2304, -1454, 14959, + 16908, -3637, 2490, -204, 440, 20, 32, -2, + -1, 22, 45, 357, 101, 2354, -1788, 15322, + 16624, -3245, 2479, -137, 425, 26, 30, -2, + -1, 22, 45, 357, 101, 2354, -1788, 15322, + 16624, -3245, 2479, -137, 425, 26, 30, -2, + -1, 24, 41, 374, 47, 2396, -2135, 15671, + 16323, -2864, 2460, -72, 409, 31, 28, -2, + -1, 24, 41, 374, 47, 2396, -2135, 15671, + 16323, -2864, 2460, -72, 409, 31, 28, -2, + -1, 26, 37, 391, -11, 2431, -2493, 16004, + 16005, -2494, 2432, -12, 392, 36, 26, -2, + -1, 26, 37, 391, -11, 2431, -2493, 16004, + 16005, -2494, 2432, -12, 392, 36, 26, -2, + -2, -28, 31, -409, -72, -2460, -2864, -16323, + 15671, 2135, 2396, -47, 374, -41, 24, 1, + -2, -28, 31, -409, -72, -2460, -2864, -16323, + 15671, 2135, 2396, -47, 374, -41, 24, 1, + -2, -30, 26, -425, -137, -2479, -3245, -16624, + 15322, 1788, 2354, -101, 357, -45, 22, 1, + -2, -30, 26, -425, -137, -2479, -3245, -16624, + 15322, 1788, 2354, -101, 357, -45, 22, 1, + -2, -32, 20, -440, -204, -2490, -3637, -16908, + 14959, 1454, 2304, -152, 339, -48, 21, 1, + -2, -32, 20, -440, -204, -2490, -3637, -16908, + 14959, 1454, 2304, -152, 339, -48, 21, 1, + -2, -33, 14, -455, -274, -2492, -4039, -17173, + 14583, 1133, 2249, -199, 320, -50, 19, 0, + -2, -33, 14, -455, -274, -2492, -4039, -17173, + 14583, 1133, 2249, -199, 320, -50, 19, 0, + -3, -35, 7, -468, -347, -2484, -4450, -17420, + 14194, 825, 2188, -243, 302, -52, 18, 0, + -3, -35, 7, -468, -347, -2484, -4450, -17420, + 14194, 825, 2188, -243, 302, -52, 18, 0, + -3, -37, -1, -480, -423, -2466, -4870, -17648, + 13794, 530, 2122, -283, 284, -54, 17, 0, + -3, -37, -1, -480, -423, -2466, -4870, -17648, + 13794, 530, 2122, -283, 284, -54, 17, 0, + -3, -39, -9, -491, -502, -2438, -5298, -17855, + 13383, 249, 2052, -320, 266, -56, 15, 0, + -3, -39, -9, -491, -502, -2438, -5298, -17855, + 13383, 249, 2052, -320, 266, -56, 15, 0, + -4, -41, -18, -501, -583, -2398, -5733, -18043, + 12963, -18, 1977, -354, 247, -56, 14, 0, + -4, -41, -18, -501, -583, -2398, -5733, -18043, + 12963, -18, 1977, -354, 247, -56, 14, 0, + -4, -43, -28, -508, -666, -2348, -6174, -18209, + 12534, -271, 1899, -384, 229, -57, 13, 0, + -4, -43, -28, -508, -666, -2348, -6174, -18209, + 12534, -271, 1899, -384, 229, -57, 13, 0, + -4, -44, -39, -515, -751, -2285, -6621, -18354, + 12097, -510, 1817, -411, 212, -57, 12, 0, + -4, -44, -39, -515, -751, -2285, -6621, -18354, + 12097, -510, 1817, -411, 212, -57, 12, 0, + -5, -46, -50, -519, -838, -2210, -7073, -18477, + 11654, -734, 1733, -435, 194, -57, 11, 0, + -5, -46, -50, -519, -838, -2210, -7073, -18477, + 11654, -734, 1733, -435, 194, -57, 11, 0, + -5, -48, -61, -522, -927, -2123, -7528, -18579, + 11205, -944, 1647, -456, 177, -57, 10, 0, + -5, -48, -61, -522, -927, -2123, -7528, -18579, + 11205, -944, 1647, -456, 177, -57, 10, 0, + -6, -49, -74, -522, -1016, -2023, -7987, -18658, + 10751, -1141, 1559, -474, 161, -57, 9, 0, + -6, -49, -74, -522, -1016, -2023, -7987, -18658, + 10751, -1141, 1559, -474, 161, -57, 9, 0, + -6, -51, -87, -520, -1107, -1910, -8448, -18714, + 10294, -1322, 1469, -488, 145, -56, 8, 0, + -6, -51, -87, -520, -1107, -1910, -8448, -18714, + 10294, -1322, 1469, -488, 145, -56, 8, 0, + -7, -52, -101, -516, -1197, -1784, -8910, -18748, + 9834, -1490, 1379, -500, 129, -55, 7, 0, + -7, -52, -101, -516, -1197, -1784, -8910, -18748, + 9834, -1490, 1379, -500, 129, -55, 7, 0, }; int synth_1to1_MMX(real *bandPtr, int channel, short *samples) @@ -194,23 +194,23 @@ int bo1, i = 8; if (channel == 0) { - bo = (bo - 1) & 0xf; - buf = buffs[1]; + bo = (bo - 1) & 0xf; + buf = buffs[1]; } else { - samples++; - buf = buffs[0]; + samples++; + buf = buffs[0]; } if (bo & 1) { - b0 = buf[1]; - bo1 = bo + 1; - a = buf[0] + bo; - b = buf[1] + ((bo + 1) & 0xf); + b0 = buf[1]; + bo1 = bo + 1; + a = buf[0] + bo; + b = buf[1] + ((bo + 1) & 0xf); } else { - b0 = buf[0]; - bo1 = bo; - b = buf[0] + bo; - a = buf[1] + ((bo + 1) & 0xf); + b0 = buf[0]; + bo1 = bo; + b = buf[0] + bo; + a = buf[1] + ((bo + 1) & 0xf); } dct64_MMX_func(a, b, bandPtr); @@ -252,18 +252,18 @@ "packssdw %%mm0,%%mm0\n\t" "packssdw %%mm4,%%mm4\n\t" - "movq (%3), %%mm1\n\t" - "punpckldq %%mm4, %%mm0\n\t" - "pand "MANGLE(one_null)", %%mm1\n\t" - "pand "MANGLE(null_one)", %%mm0\n\t" - "por %%mm0, %%mm1\n\t" - "movq %%mm1,(%3)\n\t" + "movq (%3), %%mm1\n\t" + "punpckldq %%mm4, %%mm0\n\t" + "pand "MANGLE(one_null)", %%mm1\n\t" + "pand "MANGLE(null_one)", %%mm0\n\t" + "por %%mm0, %%mm1\n\t" + "movq %%mm1,(%3)\n\t" "add $64,%2\n\t" "add $128,%1\n\t" "add $8,%3\n\t" - "decl %0\n\t" + "decl %0\n\t" "jnz 0b\n\t" "movq (%1),%%mm0\n\t" @@ -283,7 +283,7 @@ "psrad $13,%%mm0\n\t" "packssdw %%mm0,%%mm0\n\t" "movd %%mm0,%%eax\n\t" - "movw %%ax, (%3)\n\t" + "movw %%ax, (%3)\n\t" "sub $32,%2\n\t" "add $64,%1\n\t" "add $4,%3\n\t" @@ -328,18 +328,18 @@ "psubsw %%mm1,%%mm0\n\t" "psubsw %%mm5,%%mm4\n\t" - "movq (%3), %%mm1\n\t" - "punpckldq %%mm4, %%mm0\n\t" - "pand "MANGLE(one_null)", %%mm1\n\t" - "pand "MANGLE(null_one)", %%mm0\n\t" - "por %%mm0, %%mm1\n\t" - "movq %%mm1,(%3)\n\t" + "movq (%3), %%mm1\n\t" + "punpckldq %%mm4, %%mm0\n\t" + "pand "MANGLE(one_null)", %%mm1\n\t" + "pand "MANGLE(null_one)", %%mm0\n\t" + "por %%mm0, %%mm1\n\t" + "movq %%mm1,(%3)\n\t" "sub $64,%2\n\t" "add $128,%1\n\t" "add $8,%3\n\t" "decl %0\n\t" - "jnz 1b\n\t" + "jnz 1b\n\t" "movq (%1),%%mm0\n\t" "pmaddwd (%2),%%mm0\n\t" @@ -360,10 +360,10 @@ "psubd %%mm0,%%mm0\n\t" "psubsw %%mm1,%%mm0\n\t" "movd %%mm0,%%eax\n\t" - "movw %%ax,(%3)\n\t" - "emms\n\t" - :"+r"(i), "+r"(window), "+r"(b0), "+r"(samples) - : - :"memory", "%eax"); + "movw %%ax,(%3)\n\t" + "emms\n\t" + :"+r"(i), "+r"(window), "+r"(b0), "+r"(samples) + : + :"memory", "%eax"); return 0; }
--- a/mp3lib/equalizer.c Mon Apr 12 08:03:39 2010 +0000 +++ b/mp3lib/equalizer.c Mon Apr 12 10:56:17 2010 +0000 @@ -2,78 +2,77 @@ void init_spline(float *x, float *y, int n, float *y2) { + int i, k; + float p, qn, sig, un, *u; + u = malloc(n * sizeof (float)); - int i, k; - float p, qn, sig, un, *u; - u = malloc(n * sizeof (float)); - - y2[0] = u[0] = 0.0; + y2[0] = u[0] = 0.0; - for (i = 1; i < n - 1; i++) - { - sig = ((float) x[i] - x[i - 1]) / ((float) x[i + 1] - x[i - 1]); - p = sig * y2[i - 1] + 2.0; - y2[i] = (sig - 1.0) / p; - u[i] = (((float) y[i + 1] - y[i]) / (x[i + 1] - x[i])) - - (((float) y[i] - y[i - 1]) / (x[i] - x[i - 1])); - u[i] = (6.0 * u[i] / (x[i + 1] - x[i - 1]) - sig * u[i - 1]) / p; - } - qn = un = 0.0; + for (i = 1; i < n - 1; i++) + { + sig = ((float) x[i] - x[i - 1]) / ((float) x[i + 1] - x[i - 1]); + p = sig * y2[i - 1] + 2.0; + y2[i] = (sig - 1.0) / p; + u[i] = (((float) y[i + 1] - y[i]) / (x[i + 1] - x[i])) - + (((float) y[i] - y[i - 1]) / (x[i] - x[i - 1])); + u[i] = (6.0 * u[i] / (x[i + 1] - x[i - 1]) - sig * u[i - 1]) / p; + } + qn = un = 0.0; - y2[n - 1] = (un - qn * u[n - 2]) / (qn * y2[n - 2] + 1.0); - for (k = n - 2; k >= 0; k--) - y2[k] = y2[k] * y2[k + 1] + u[k]; - free(u); + y2[n - 1] = (un - qn * u[n - 2]) / (qn * y2[n - 2] + 1.0); + for (k = n - 2; k >= 0; k--) + y2[k] = y2[k] * y2[k + 1] + u[k]; + free(u); } float eval_spline(float xa[], float ya[], float y2a[], int n, float x) { - int klo, khi, k; - float h, b, a; + int klo, khi, k; + float h, b, a; - klo = 0; - khi = n - 1; - while (khi - klo > 1) - { - k = (khi + klo) >> 1; - if (xa[k] > x) - khi = k; - else - klo = k; - } - h = xa[khi] - xa[klo]; - a = (xa[khi] - x) / h; - b = (x - xa[klo]) / h; - return (a * ya[klo] + b * ya[khi] + ((a * a * a - a) * y2a[klo] + (b * b * b - b) * y2a[khi]) - * (h * h) / 6.0); + klo = 0; + khi = n - 1; + while (khi - klo > 1) + { + k = (khi + klo) >> 1; + if (xa[k] > x) + khi = k; + else + klo = k; + } + h = xa[khi] - xa[klo]; + a = (xa[khi] - x) / h; + b = (x - xa[klo]) / h; + return (a * ya[klo] + b * ya[khi] + ((a * a * a - a) * y2a[klo] + (b * b * b - b) * y2a[khi]) + * (h * h) / 6.0); } void mpg123_set_eq(int on, float preamp, float *b) { - float x[] = - {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, yf[10], val, band[10]; - int bands[] = - {0, 4, 8, 16, 26, 78, 157, 313, 366, 418}; - int i, j; + float x[] = + {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, yf[10], val, band[10]; + int bands[] = + {0, 4, 8, 16, 26, 78, 157, 313, 366, 418}; + int i, j; - mpg123_info->eq_active = on; - if (mpg123_info->eq_active) - { - for (i = 0; i < 10; i++) - { - band[i] = b[i] + preamp; - } + mpg123_info->eq_active = on; + if (mpg123_info->eq_active) + { + for (i = 0; i < 10; i++) + { + band[i] = b[i] + preamp; + } - init_spline(x, band, 10, yf); - for (i = 0; i < 9; i++) - { - for (j = bands[i]; j < bands[i + 1]; j++) - { - val = eval_spline(x, band, yf, 10, i + ((float) (j - bands[i]) * (1.0 / (bands[i + 1] - bands[i])))); - mpg123_info->eq_mul[j] = pow(2, val / 10.0); - } - } - for (i = bands[9]; i < 576; i++) - mpg123_info->eq_mul[i] = mpg123_info->eq_mul[bands[9] - 1]; - } + init_spline(x, band, 10, yf); + for (i = 0; i < 9; i++) + { + for (j = bands[i]; j < bands[i + 1]; j++) + { + val = eval_spline(x, band, yf, 10, i + ((float) (j - bands[i]) * (1.0 / (bands[i + 1] - bands[i])))); + mpg123_info->eq_mul[j] = pow(2, val / 10.0); + } + } + for (i = bands[9]; i < 576; i++) + mpg123_info->eq_mul[i] = mpg123_info->eq_mul[bands[9] - 1]; + } }
--- a/mp3lib/l2tables.h Mon Apr 12 08:03:39 2010 +0000 +++ b/mp3lib/l2tables.h Mon Apr 12 10:56:17 2010 +0000 @@ -17,143 +17,143 @@ */ static struct al_table alloc_0[] = { - {4,0},{5,3},{3,-3},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},{9,-255},{10,-511}, - {11,-1023},{12,-2047},{13,-4095},{14,-8191},{15,-16383},{16,-32767}, - {4,0},{5,3},{3,-3},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},{9,-255},{10,-511}, - {11,-1023},{12,-2047},{13,-4095},{14,-8191},{15,-16383},{16,-32767}, - {4,0},{5,3},{3,-3},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},{9,-255},{10,-511}, - {11,-1023},{12,-2047},{13,-4095},{14,-8191},{15,-16383},{16,-32767}, - {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127}, - {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{16,-32767}, - {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127}, - {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{16,-32767}, - {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127}, - {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{16,-32767}, - {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127}, - {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{16,-32767}, - {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127}, - {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{16,-32767}, - {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127}, - {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{16,-32767}, - {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127}, - {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{16,-32767}, - {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127}, - {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{16,-32767}, - {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767}, - {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767}, - {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767}, - {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767}, - {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767}, - {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767}, - {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767}, - {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767}, - {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767}, - {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767}, - {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767}, - {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767}, - {2,0},{5,3},{7,5},{16,-32767}, - {2,0},{5,3},{7,5},{16,-32767}, - {2,0},{5,3},{7,5},{16,-32767}, - {2,0},{5,3},{7,5},{16,-32767} }; + {4,0},{5,3},{3,-3},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},{9,-255},{10,-511}, + {11,-1023},{12,-2047},{13,-4095},{14,-8191},{15,-16383},{16,-32767}, + {4,0},{5,3},{3,-3},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},{9,-255},{10,-511}, + {11,-1023},{12,-2047},{13,-4095},{14,-8191},{15,-16383},{16,-32767}, + {4,0},{5,3},{3,-3},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},{9,-255},{10,-511}, + {11,-1023},{12,-2047},{13,-4095},{14,-8191},{15,-16383},{16,-32767}, + {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127}, + {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{16,-32767}, + {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127}, + {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{16,-32767}, + {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127}, + {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{16,-32767}, + {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127}, + {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{16,-32767}, + {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127}, + {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{16,-32767}, + {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127}, + {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{16,-32767}, + {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127}, + {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{16,-32767}, + {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127}, + {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{16,-32767}, + {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767}, + {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767}, + {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767}, + {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767}, + {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767}, + {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767}, + {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767}, + {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767}, + {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767}, + {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767}, + {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767}, + {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767}, + {2,0},{5,3},{7,5},{16,-32767}, + {2,0},{5,3},{7,5},{16,-32767}, + {2,0},{5,3},{7,5},{16,-32767}, + {2,0},{5,3},{7,5},{16,-32767} }; static struct al_table alloc_1[] = { - {4,0},{5,3},{3,-3},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},{9,-255},{10,-511}, - {11,-1023},{12,-2047},{13,-4095},{14,-8191},{15,-16383},{16,-32767}, - {4,0},{5,3},{3,-3},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},{9,-255},{10,-511}, - {11,-1023},{12,-2047},{13,-4095},{14,-8191},{15,-16383},{16,-32767}, - {4,0},{5,3},{3,-3},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},{9,-255},{10,-511}, - {11,-1023},{12,-2047},{13,-4095},{14,-8191},{15,-16383},{16,-32767}, - {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127}, - {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{16,-32767}, - {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127}, - {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{16,-32767}, - {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127}, - {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{16,-32767}, - {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127}, - {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{16,-32767}, - {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127}, - {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{16,-32767}, - {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127}, - {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{16,-32767}, - {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127}, - {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{16,-32767}, - {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127}, - {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{16,-32767}, - {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767}, - {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767}, - {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767}, - {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767}, - {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767}, - {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767}, - {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767}, - {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767}, - {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767}, - {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767}, - {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767}, - {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767}, - {2,0},{5,3},{7,5},{16,-32767}, - {2,0},{5,3},{7,5},{16,-32767}, - {2,0},{5,3},{7,5},{16,-32767}, - {2,0},{5,3},{7,5},{16,-32767}, - {2,0},{5,3},{7,5},{16,-32767}, - {2,0},{5,3},{7,5},{16,-32767}, - {2,0},{5,3},{7,5},{16,-32767} }; + {4,0},{5,3},{3,-3},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},{9,-255},{10,-511}, + {11,-1023},{12,-2047},{13,-4095},{14,-8191},{15,-16383},{16,-32767}, + {4,0},{5,3},{3,-3},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},{9,-255},{10,-511}, + {11,-1023},{12,-2047},{13,-4095},{14,-8191},{15,-16383},{16,-32767}, + {4,0},{5,3},{3,-3},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},{9,-255},{10,-511}, + {11,-1023},{12,-2047},{13,-4095},{14,-8191},{15,-16383},{16,-32767}, + {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127}, + {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{16,-32767}, + {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127}, + {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{16,-32767}, + {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127}, + {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{16,-32767}, + {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127}, + {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{16,-32767}, + {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127}, + {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{16,-32767}, + {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127}, + {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{16,-32767}, + {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127}, + {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{16,-32767}, + {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127}, + {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{16,-32767}, + {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767}, + {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767}, + {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767}, + {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767}, + {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767}, + {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767}, + {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767}, + {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767}, + {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767}, + {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767}, + {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767}, + {3,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{16,-32767}, + {2,0},{5,3},{7,5},{16,-32767}, + {2,0},{5,3},{7,5},{16,-32767}, + {2,0},{5,3},{7,5},{16,-32767}, + {2,0},{5,3},{7,5},{16,-32767}, + {2,0},{5,3},{7,5},{16,-32767}, + {2,0},{5,3},{7,5},{16,-32767}, + {2,0},{5,3},{7,5},{16,-32767} }; static struct al_table alloc_2[] = { - {4,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},{9,-255}, - {10,-511},{11,-1023},{12,-2047},{13,-4095},{14,-8191},{15,-16383}, - {4,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},{9,-255}, - {10,-511},{11,-1023},{12,-2047},{13,-4095},{14,-8191},{15,-16383}, - {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63}, - {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63}, - {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63}, - {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63}, - {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63}, - {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63} }; + {4,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},{9,-255}, + {10,-511},{11,-1023},{12,-2047},{13,-4095},{14,-8191},{15,-16383}, + {4,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},{9,-255}, + {10,-511},{11,-1023},{12,-2047},{13,-4095},{14,-8191},{15,-16383}, + {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63}, + {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63}, + {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63}, + {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63}, + {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63}, + {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63} }; static struct al_table alloc_3[] = { - {4,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},{9,-255}, - {10,-511},{11,-1023},{12,-2047},{13,-4095},{14,-8191},{15,-16383}, - {4,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},{9,-255}, - {10,-511},{11,-1023},{12,-2047},{13,-4095},{14,-8191},{15,-16383}, - {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63}, - {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63}, - {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63}, - {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63}, - {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63}, - {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63}, - {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63}, - {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63}, - {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63}, - {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63} }; + {4,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},{9,-255}, + {10,-511},{11,-1023},{12,-2047},{13,-4095},{14,-8191},{15,-16383}, + {4,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127},{9,-255}, + {10,-511},{11,-1023},{12,-2047},{13,-4095},{14,-8191},{15,-16383}, + {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63}, + {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63}, + {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63}, + {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63}, + {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63}, + {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63}, + {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63}, + {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63}, + {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63}, + {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63} }; static struct al_table alloc_4[] = { - {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127}, - {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{14,-8191}, - {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127}, - {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{14,-8191}, - {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127}, - {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{14,-8191}, - {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127}, - {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{14,-8191}, - {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63}, - {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63}, - {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63}, - {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63}, - {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63}, - {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63}, - {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63}, - {2,0},{5,3},{7,5},{10,9}, - {2,0},{5,3},{7,5},{10,9}, - {2,0},{5,3},{7,5},{10,9}, - {2,0},{5,3},{7,5},{10,9}, - {2,0},{5,3},{7,5},{10,9}, - {2,0},{5,3},{7,5},{10,9}, - {2,0},{5,3},{7,5},{10,9}, - {2,0},{5,3},{7,5},{10,9}, - {2,0},{5,3},{7,5},{10,9}, - {2,0},{5,3},{7,5},{10,9}, - {2,0},{5,3},{7,5},{10,9}, + {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127}, + {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{14,-8191}, + {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127}, + {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{14,-8191}, + {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127}, + {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{14,-8191}, + {4,0},{5,3},{7,5},{3,-3},{10,9},{4,-7},{5,-15},{6,-31},{7,-63},{8,-127}, + {9,-255},{10,-511},{11,-1023},{12,-2047},{13,-4095},{14,-8191}, + {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63}, + {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63}, + {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63}, + {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63}, + {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63}, + {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63}, + {3,0},{5,3},{7,5},{10,9},{4,-7},{5,-15},{6,-31},{7,-63}, + {2,0},{5,3},{7,5},{10,9}, + {2,0},{5,3},{7,5},{10,9}, + {2,0},{5,3},{7,5},{10,9}, + {2,0},{5,3},{7,5},{10,9}, + {2,0},{5,3},{7,5},{10,9}, + {2,0},{5,3},{7,5},{10,9}, + {2,0},{5,3},{7,5},{10,9}, + {2,0},{5,3},{7,5},{10,9}, + {2,0},{5,3},{7,5},{10,9}, + {2,0},{5,3},{7,5},{10,9}, + {2,0},{5,3},{7,5},{10,9}, {2,0},{5,3},{7,5},{10,9}, {2,0},{5,3},{7,5},{10,9}, {2,0},{5,3},{7,5},{10,9},
--- a/mp3lib/layer1.c Mon Apr 12 08:03:39 2010 +0000 +++ b/mp3lib/layer1.c Mon Apr 12 10:56:17 2010 +0000 @@ -61,7 +61,7 @@ } static void I_step_two(real fraction[2][SBLIMIT],unsigned int balloc[2*SBLIMIT], - unsigned int scale_index[2][SBLIMIT],struct frame *fr) + unsigned int scale_index[2][SBLIMIT],struct frame *fr) { int i,n; int smpb[2*SBLIMIT]; /* values: 0-65535 */
--- a/mp3lib/layer2.c Mon Apr 12 08:03:39 2010 +0000 +++ b/mp3lib/layer2.c Mon Apr 12 10:56:17 2010 +0000 @@ -18,7 +18,7 @@ static int grp_5tab[128 * 3] = { 0, }; /* used: 125 */ static int grp_9tab[1024 * 3] = { 0, }; /* used: 729 */ -static real muls[27][64]; /* also used by layer 1 */ +static real muls[27][64]; /* also used by layer 1 */ static void init_layer2(void) { @@ -59,7 +59,7 @@ if(_has_mmx) { for(j=3,i=0;i<63;i++,j--) - *table++ = 16384 * m * pow(2.0,(double) j / 3.0); + *table++ = 16384 * m * pow(2.0,(double) j / 3.0); } else for(j=3,i=0;i<63;i++,j--) @@ -189,7 +189,7 @@ for (i=jsbound;i<sblimit;i++,alloc1+=(1<<step)) { step = alloc1->bits; - bita++; /* channel 1 and channel 2 bitalloc are the same */ + bita++; /* channel 1 and channel 2 bitalloc are the same */ if ( (ba=*bita++) ) { k=(alloc2 = alloc1+ba)->bits;
--- a/mp3lib/layer3.c Mon Apr 12 08:03:39 2010 +0000 +++ b/mp3lib/layer3.c Mon Apr 12 10:56:17 2010 +0000 @@ -25,7 +25,7 @@ #define CUT_HF #endif -# define REAL_MUL(x, y) ((x) * (y)) +#define REAL_MUL(x, y) ((x) * (y)) static real ispow[8207]; static real aa_ca[8],aa_cs[8]; @@ -734,8 +734,8 @@ mask <<= 1; } if(part2remain+num <= 0) { - num -= part2remain+num; - break; + num -= part2remain+num; + break; } for(i=0;i<4;i++) { @@ -851,7 +851,7 @@ if (x == 15 && h->linbits) { max = cb; - REFRESH_MASK; + REFRESH_MASK; x += ((unsigned long) mask) >> (BITSHIFT+8-h->linbits); num -= h->linbits+1; mask <<= h->linbits; @@ -875,7 +875,7 @@ if (y == 15 && h->linbits) { max = cb; - REFRESH_MASK; + REFRESH_MASK; y += ((unsigned long) mask) >> (BITSHIFT+8-h->linbits); num -= h->linbits+1; mask <<= h->linbits; @@ -914,7 +914,7 @@ mask <<= 1; } if(part2remain+num <= 0) { - num -= part2remain+num; + num -= part2remain+num; break; } @@ -1003,7 +1003,7 @@ #if 0 if(lsf) { int p = gr_info->scalefac_compress & 0x1; - if(ms_stereo) { + if(ms_stereo) { tab1 = pow1_2[p]; tab2 = pow2_2[p]; } else { @@ -1329,17 +1329,17 @@ for(ch=0;ch<stereo1;ch++) { struct gr_info_s *gr_info = &(sideinfo.ch[ch].gr[gr]); - III_antialias(hybridIn[ch],gr_info); - III_hybrid(hybridIn[ch], hybridOut[ch], ch,gr_info); + III_antialias(hybridIn[ch],gr_info); + III_hybrid(hybridIn[ch], hybridOut[ch], ch,gr_info); } for(ss=0;ss<SSLIMIT;ss++) { if(single >= 0) { - clip += (fr->synth_mono)(hybridOut[0][ss],pcm_sample,&pcm_point); - } else { - int p1 = pcm_point; - clip += (fr->synth)(hybridOut[0][ss],0,pcm_sample,&p1); - clip += (fr->synth)(hybridOut[1][ss],1,pcm_sample,&pcm_point); + clip += (fr->synth_mono)(hybridOut[0][ss],pcm_sample,&pcm_point); + } else { + int p1 = pcm_point; + clip += (fr->synth)(hybridOut[0][ss],0,pcm_sample,&p1); + clip += (fr->synth)(hybridOut[1][ss],1,pcm_sample,&pcm_point); } }
--- a/mp3lib/mpg123.h Mon Apr 12 08:03:39 2010 +0000 +++ b/mp3lib/mpg123.h Mon Apr 12 10:56:17 2010 +0000 @@ -15,10 +15,10 @@ #include "config.h" #ifndef M_PI -#define M_PI 3.141592653589793238462 +#define M_PI 3.141592653589793238462 #endif #ifndef M_SQRT2 -#define M_SQRT2 1.414213562373095048802 +#define M_SQRT2 1.414213562373095048802 #endif #define REAL_IS_FLOAT #define NEW_DCT9
--- a/mp3lib/sr1.c Mon Apr 12 08:03:39 2010 +0000 +++ b/mp3lib/sr1.c Mon Apr 12 10:56:17 2010 +0000 @@ -412,34 +412,34 @@ #if HAVE_MMX if (gCpuCaps.hasMMX) { - _has_mmx = 1; - synth_func = synth_1to1_MMX; + _has_mmx = 1; + synth_func = synth_1to1_MMX; } #endif #if HAVE_AMD3DNOWEXT if (gCpuCaps.has3DNowExt) { - dct36_func=dct36_3dnowex; - dct64_MMX_func= dct64_MMX_3dnowex; - mp_msg(MSGT_DECAUDIO,MSGL_V,"mp3lib: using 3DNow!Ex optimized decore!\n"); + dct36_func=dct36_3dnowex; + dct64_MMX_func= dct64_MMX_3dnowex; + mp_msg(MSGT_DECAUDIO,MSGL_V,"mp3lib: using 3DNow!Ex optimized decore!\n"); } else #endif #if HAVE_AMD3DNOW if (gCpuCaps.has3DNow) { - dct36_func = dct36_3dnow; - dct64_MMX_func = dct64_MMX_3dnow; - mp_msg(MSGT_DECAUDIO,MSGL_V,"mp3lib: using 3DNow! optimized decore!\n"); + dct36_func = dct36_3dnow; + dct64_MMX_func = dct64_MMX_3dnow; + mp_msg(MSGT_DECAUDIO,MSGL_V,"mp3lib: using 3DNow! optimized decore!\n"); } else #endif #if HAVE_SSE if (gCpuCaps.hasSSE) { - dct64_MMX_func = dct64_sse; - mp_msg(MSGT_DECAUDIO,MSGL_V,"mp3lib: using SSE optimized decore!\n"); + dct64_MMX_func = dct64_sse; + mp_msg(MSGT_DECAUDIO,MSGL_V,"mp3lib: using SSE optimized decore!\n"); } else #endif @@ -447,28 +447,28 @@ #if HAVE_MMX if (gCpuCaps.hasMMX) { - dct64_MMX_func = dct64_MMX; - mp_msg(MSGT_DECAUDIO,MSGL_V,"mp3lib: using MMX optimized decore!\n"); + dct64_MMX_func = dct64_MMX; + mp_msg(MSGT_DECAUDIO,MSGL_V,"mp3lib: using MMX optimized decore!\n"); } else #endif if (gCpuCaps.cpuType >= CPUTYPE_I586) { - synth_func = synth_1to1_pent; - mp_msg(MSGT_DECAUDIO,MSGL_V,"mp3lib: using Pentium optimized decore!\n"); + synth_func = synth_1to1_pent; + mp_msg(MSGT_DECAUDIO,MSGL_V,"mp3lib: using Pentium optimized decore!\n"); } else #endif /* ARCH_X86_32 */ #if HAVE_ALTIVEC if (gCpuCaps.hasAltiVec) { - mp_msg(MSGT_DECAUDIO,MSGL_V,"mp3lib: using AltiVec optimized decore!\n"); + mp_msg(MSGT_DECAUDIO,MSGL_V,"mp3lib: using AltiVec optimized decore!\n"); } else #endif { - synth_func = NULL; /* use default c version */ - mp_msg(MSGT_DECAUDIO,MSGL_V,"mp3lib: using generic C decore!\n"); + synth_func = NULL; /* use default c version */ + mp_msg(MSGT_DECAUDIO,MSGL_V,"mp3lib: using generic C decore!\n"); } #ifdef CONFIG_FAKE_MONO @@ -535,7 +535,7 @@ case 3: do_layer3(&fr,single);break; case 1: do_layer1(&fr,single);break; default: - return 0; // unsupported + return 0; // unsupported } // ++MP3_frames; return pcm_point ? pcm_point : 2;