text:
User talk:Mts15~enwikibooks

Welcome!
Come introduce yourself at the new users page. If you have any questions, you can ask there or contact me personally.-- – Mike.lifeguard  | talk 18:31, 13 February 2008 (UTC)

Your account will be renamed
Hello,

The developer team at Wikimedia is making some changes to how accounts work, as part of our on-going efforts to provide new and better tools for our users like cross-wiki notifications. These changes will mean you have the same account name everywhere. This will let us give you new features that will help you edit and discuss better, and allow more flexible user permissions for tools. One of the side-effects of this is that user accounts will now have to be unique across all 900 Wikimedia wikis. See the announcement for more information.

Unfortunately, your account clashes with another account also called Mts15. To make sure that both of you can use all Wikimedia projects in future, we have reserved the name Mts15~enwikibooks that only you will have. If you like it, you don't have to do anything. If you do not like it, you can pick out a different name.

Your account will still work as before, and you will be credited for all your edits made so far, but you will have to use the new account name when you log in.

Sorry for the inconvenience.

Yours, Keegan Peterzell Community Liaison, Wikimedia Foundation 23:29, 17 March 2015 (UTC)

Renamed
 This account has been renamed as part of single-user login finalisation. If you own this account you can |log in using your previous username and password for more information. If you do not like this account's new name, you can choose your own using this form after logging in: . -- Keegan (WMF) (talk) 05:16, 19 April 2015 (UTC)

title: User talk:Mts15~enwikibooks


text:
User talk:Spockezri~enwikibooks

Welcome!
Come introduce yourself at the new users page. If you have any questions, you can ask there or contact me personally.-- – Mike.lifeguard  | talk 18:32, 13 February 2008 (UTC)

Your account will be renamed
Hello,

The developer team at Wikimedia is making some changes to how accounts work, as part of our on-going efforts to provide new and better tools for our users like cross-wiki notifications. These changes will mean you have the same account name everywhere. This will let us give you new features that will help you edit and discuss better, and allow more flexible user permissions for tools. One of the side-effects of this is that user accounts will now have to be unique across all 900 Wikimedia wikis. See the announcement for more information.

Unfortunately, your account clashes with another account also called Spockezri. To make sure that both of you can use all Wikimedia projects in future, we have reserved the name Spockezri~enwikibooks that only you will have. If you like it, you don't have to do anything. If you do not like it, you can pick out a different name.

Your account will still work as before, and you will be credited for all your edits made so far, but you will have to use the new account name when you log in.

Sorry for the inconvenience.

Yours, Keegan Peterzell Community Liaison, Wikimedia Foundation 23:43, 17 March 2015 (UTC)

Renamed
 This account has been renamed as part of single-user login finalisation. If you own this account you can |log in using your previous username and password for more information. If you do not like this account's new name, you can choose your own using this form after logging in: . -- Keegan (WMF) (talk) 05:32, 19 April 2015 (UTC)

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/

title: User talk:Spockezri~enwikibooks


text:
User talk:Amar1979~enwikibooks

Welcome!
Come introduce yourself at the new users page. If you have any questions, you can ask there or contact me personally.-- – Mike.lifeguard  | talk 18:32, 13 February 2008 (UTC)

Your account will be renamed
Hello,

The developer team at Wikimedia is making some changes to how accounts work, as part of our on-going efforts to provide new and better tools for our users like cross-wiki notifications. These changes will mean you have the same account name everywhere. This will let us give you new features that will help you edit and discuss better, and allow more flexible user permissions for tools. One of the side-effects of this is that user accounts will now have to be unique across all 900 Wikimedia wikis. See the announcement for more information.

Unfortunately, your account clashes with another account also called Amar1979. To make sure that both of you can use all Wikimedia projects in future, we have reserved the name Amar1979~enwikibooks that only you will have. If you like it, you don't have to do anything. If you do not like it, you can pick out a different name.

Your account will still work as before, and you will be credited for all your edits made so far, but you will have to use the new account name when you log in.

Sorry for the inconvenience.

Yours, Keegan Peterzell Community Liaison, Wikimedia Foundation 22:57, 17 March 2015 (UTC)

Renamed
 This account has been renamed as part of single-user login finalisation. If you own this account you can |log in using your previous username and password for more information. If you do not like this account's new name, you can choose your own using this form after logging in: . -- Keegan (WMF) (talk) 04:31, 19 April 2015 (UTC)

title: User talk:Amar1979~enwikibooks


text:
User talk:Amar79

Welcome!
Come introduce yourself at the new users page. If you have any questions, you can ask there or contact me personally.-- – Mike.lifeguard  | talk 18:32, 13 February 2008 (UTC)

title: User talk:Amar79


text:
User talk:Rkesh07

Welcome!
Come introduce yourself at the new users page. If you have any questions, you can ask there or contact me personally.-- – Mike.lifeguard  | talk 18:33, 13 February 2008 (UTC)

title: User talk:Rkesh07


text:
User talk:Rakesh07~enwikibooks

Welcome!
Come introduce yourself at the new users page. If you have any questions, you can ask there or contact me personally.-- – Mike.lifeguard  | talk 18:33, 13 February 2008 (UTC)

Your account will be renamed
Hello,

The developer team at Wikimedia is making some changes to how accounts work, as part of our on-going efforts to provide new and better tools for our users like cross-wiki notifications. These changes will mean you have the same account name everywhere. This will let us give you new features that will help you edit and discuss better, and allow more flexible user permissions for tools. One of the side-effects of this is that user accounts will now have to be unique across all 900 Wikimedia wikis. See the announcement for more information.

Unfortunately, your account clashes with another account also called Rakesh07. To make sure that both of you can use all Wikimedia projects in future, we have reserved the name Rakesh07~enwikibooks that only you will have. If you like it, you don't have to do anything. If you do not like it, you can pick out a different name.

Your account will still work as before, and you will be credited for all your edits made so far, but you will have to use the new account name when you log in.

Sorry for the inconvenience.

Yours, Keegan Peterzell Community Liaison, Wikimedia Foundation 23:36, 17 March 2015 (UTC)

Renamed
 This account has been renamed as part of single-user login finalisation. If you own this account you can |log in using your previous username and password for more information. If you do not like this account's new name, you can choose your own using this form after logging in: . -- Keegan (WMF) (talk) 05:24, 19 April 2015 (UTC)

title: User talk:Rakesh07~enwikibooks


text:
User talk:Hardy~enwikibooks

Welcome!
Come introduce yourself at the new users page. If you have any questions, you can ask there or contact me personally.-- – Mike.lifeguard  | talk 18:33, 13 February 2008 (UTC)

Your account will be renamed
Hello,

The developer team at Wikimedia is making some changes to how accounts work, as part of our on-going efforts to provide new and better tools for our users like cross-wiki notifications. These changes will mean you have the same account name everywhere. This will let us give you new features that will help you edit and discuss better, and allow more flexible user permissions for tools. One of the side-effects of this is that user accounts will now have to be unique across all 900 Wikimedia wikis. See the announcement for more information.

Unfortunately, your account clashes with another account also called Hardy. To make sure that both of you can use all Wikimedia projects in future, we have reserved the name Hardy~enwikibooks that only you will have. If you like it, you don't have to do anything. If you do not like it, you can pick out a different name.

Your account will still work as before, and you will be credited for all your edits made so far, but you will have to use the new account name when you log in.

Sorry for the inconvenience.

Yours, Keegan Peterzell Community Liaison, Wikimedia Foundation 23:16, 17 March 2015 (UTC)

Renamed
 This account has been renamed as part of single-user login finalisation. If you own this account you can |log in using your previous username and password for more information. If you do not like this account's new name, you can choose your own using this form after logging in: . -- Keegan (WMF) (talk) 05:01, 19 April 2015 (UTC)

title: User talk:Hardy~enwikibooks


text:
User talk:Hardesh Kumar

Welcome!
Come introduce yourself at the new users page. If you have any questions, you can ask there or contact me personally.-- – Mike.lifeguard  | talk 18:33, 13 February 2008 (UTC)

title: User talk:Hardesh Kumar


text:
User talk:Sokkruteez

Welcome!
Come introduce yourself at the new users page. If you have any questions, you can ask there or contact me personally.-- – Mike.lifeguard  | talk 18:33, 13 February 2008 (UTC)

title: User talk:Sokkruteez


text:
User talk:TheSecretHero

Welcome!
Come introduce yourself at the new users page. If you have any questions, you can ask there or contact me personally.-- – Mike.lifeguard  | talk 18:33, 13 February 2008 (UTC)

Welcome!
Come introduce yourself at the new users page. If you have any questions, you can ask there or contact me personally.-- – Mike.lifeguard  | talk 18:34, 13 February 2008 (UTC)

title: User talk:TheSecretHero


text:
User talk:Wugo

Welcome!
Come introduce yourself at the new users page. If you have any questions, you can ask there or contact me personally.-- – Mike.lifeguard  | talk 18:34, 13 February 2008 (UTC)

title: User talk:Wugo


text:
User talk:Richardjavangwe

Welcome!
Come introduce yourself at the new users page. If you have any questions, you can ask there or contact me personally.-- – Mike.lifeguard  | talk 18:34, 13 February 2008 (UTC)

title: User talk:Richardjavangwe


text:
User talk:Baldwinjavangwe

Welcome!
Come introduce yourself at the new users page. If you have any questions, you can ask there or contact me personally.-- – Mike.lifeguard  | talk 18:34, 13 February 2008 (UTC)

title: User talk:Baldwinjavangwe


text: User talk:69.94.190.176

title: User talk:69.94.190.176


text: User talk:147.65.21.102

title: User talk:147.65.21.102


text:
Talk:Windows Programming/Windows Script Host

Windows scripting has undergone a lot of evolution, and the file extensions in used has changed as well. This is my interpretaion:

.WSF A generic XML script format containing one ore more jobs. Each job is written inside a script-block, dictating the language used, i.e. JavaScript or VBScript. .JS and .VBS contains pure code. No jobs! .WSH is a property file, mush like the old .PIF-files.

(must edit this more)


text: User talk:204.184.29.2

title: User talk:204.184.29.2


text: User talk:208.68.153.193

title: User talk:208.68.153.193


text: User talk:131.123.177.115

title: User talk:131.123.177.115


text:
Eac3to

eac3to is an audio/video processing software with focus on new generation HD formats, Blu-ray and HD DVD. It is able to make audio conversions among many formats and various other tasks as well. It has been designed for use under Windows x86, but it runs under Windows x64 and Linux also.

Table of Contents

 * /Introduction/
 * /Features/
 * /How to Use/
 * /In Depth Technical Explanation/
 * /FAQ/
 * /Planned Future Features/

Eac3to

title: Eac3to


text:
Eac3to/How to Use

Software needed to run eac3to
Taking the most out of eac3to involves using several external filters. These can be audio decoders and encoders or media splitters and muxers. As eac3to puts quality on top, it uses the best audio decoders available, but since most of them are commercial software, there also freeware alternatives (usually of lower sound quality though). Depending on what is the user's goal more or less of the filters below are needed. Evaluation of them is based on the comprehensive testing of the Doom9 forum members.

Audio Decoders
AC3 decoding can be achieved through:
 * Nero 7 (version 7.8.5.0 or newer, Nero 8 won't work) accompanied with Nero Blu-ray / HD DVD plugin (commercial software)
 * libav / ffmpeg decoder (freeware, ships with eac3to package)

E-AC3 decoding can be achieved through:
 * Nero 7 (version 7.8.5.0 or newer, Nero 8 won't work) accompanied with Nero Blu-ray / HD DVD plugin (commercial software)
 * Libav / ffmpeg decoder (freeware, ships with eac3to package)

TrueHD decoding can be achieved through:
 * Nero 7 (version 7.8.5.0 or newer, Nero 8 won't work) accompanied with Nero Blu-ray / HD DVD plugin (commercial software)
 * Libav / ffmpeg decoder (freeware, ships with eac3to package)

DTS decoding can be achieved through:
 * Nero 7 (version 7.8.5.0 or newer, Nero 8 won't work) accompanied with Nero Blu-ray / HD DVD plugin (commercial software)
 * Libav / ffmpeg decoder (freeware, ships with eac3to package)
 * "Sonic Cinemaster Audio Decoder 4.3" DirectShow filter (commercial software)
 * ArcSoft TotalMedia Theatre (commercial software)

DTS-HD decoding can be achieved through:
 * "Sonic Cinemaster Audio Decoder 4.3" DirectShow filter (commercial software)
 * ArcSoft TotalMedia Theatre (commercial software)

FLAC decoding can be achieved through the official Free Lossless Audio Codec (ships with eac3to package)

Audio Encoders

 * For AC3 encoding Aften - A/52 Audio Encoder is needed. (freeware, ships with eac3to package)
 * For DTS encoding SurCode DVD DTS (version 1.0.21 or newer) is needed. (commercial software)
 * For FLAC encoding Free Lossless Audio Codec is needed. (freeware, ships with eac3to package)
 * For AAC encoding Nero AAC Encoder is needed. (freeware, no longer available - only as external download)

Splitters and Muxers

 * For Matroska muxing, Haali Matroska Muxer is needed (it's part of Haali Media Splitter package).

Command Line Syntax
There are basically 3 ways to use eac3to depending on the input file(s): 1. audio or video file, 2. Container file or 3. Disc folder.

Using audio or video files as input
In this category we deal with inputs like simple audio files (AC3, TrueHD, DTS-HD, WAV, etc.) or simple video files (e.g. raw H.264, VC-1 or MPEG-2 streams). In this case the command line will look like this:

 * ~ It's the file to be processed. eac3to can accept various audio formats like RAW, (L)PCM, WAV (PCM only), W64 (like WAV without the 4 GB limit), RF64 (like W64), AC3, E-AC3, DTS, DTS-ES, DTS-96/24, DTS-HD Hi-Res, DTS-HD Master Audio, MLP, TrueHD, TrueHD/AC3, FLAC, video formats like VC-1, H.264, MPEG-2.
 * ~ Multiple input files (of the same format) are accepted. This is useful when the input file is split among several parts. Use the + symbol to add more.
 * ~ This is the output file that eac3to will create. It could be an audio format like RAW, (L)PCM, WAV (PCM only), WAVs (multiple mono WAV files, PCM only), W64, RF64, AC3, DTS, FLAC, video format like VC-1, H.264, MPEG-2 or Matroska (MKV) container. eac3to can also output audio (only) data to stdout for further processing by other applications.
 * ~ Here you can set the options that tell eac3to how to operate. Not all of them are applicable to all input / output formats. If none set, the default is used when necessary. When using an audio or video file as input, the following options are available:

Examples

 * Convert an AC3 track to a 384 kbps AC3 one, using Nero AC3 decoder (default) and Aften AC3 encoder:

 * Convert an E-AC3 track to a 1536 kbps DTS one, using Nero E-AC3 decoder (default) and Surcode DTS encoder:

 * Convert a DTS-HD Master Audio track to a FLAC one, using ArcSoft DTS-HD decoder (default) and FLAC encoder:

 * Convert a DTS track to a AC3 one, using libav encoder:

 * Convert a TrueHD track to a 640 kbps AC3 one, using Nero TrueHD decoder (non default) and Aften AC3 encoder:

 * Decode a 24 bit 96 kHz MLP track using MLP libav / ffmpeg decoder (default), downsample it to 16 bit 44.1 kHz and output data to stdout (e.g. for encoding to MP3, ACC or OGG format):

 * Extract the DTS core of a DTS-HD track:

 * Extract the AC3 core of a TrueHD track:

 * Delay an E-AC3 track by +178ms:

 * Reverse PAL speedup to an E-AC3 track and convert it to a 192 kbps AC3 one, using Nero E-AC3 decoder (default) and Aften AC3 encoder:

 * Convert a 16 bit 48 kHz 5.1 LPCM track to 6 mono WAV tracks, when eac3to detects the LPCM track parameters automatically:

 * Convert a 16 bit 48 kHz 5.1 LPCM track to 6 mono WAV tracks, when eac3to can't figure out the LPCM track parameters (manual setting is necessary):

 * Convert a Blu-ray 7.1 PCM track to a 5.1 640 kbps AC3 one, using Aften AC3 encoder:

 * Multiplex a VC-1 video stream to MKV container while removing the pulldown flags (default behavior):

 * Multiplex an H.264 video stream to MKV container while keeping the pulldown flags:

Using container files as input
These files contain one or more audio and video streams (tracks). By setting such file as input, eac3to can list all streams inside and give numbers (stream/track number) to each one. This way the user can explicitly set which stream wants to process. eac3to command line will look like this:

 * ~ Container inputs can only be in EVO, M2TS, TS and VOB format.
 * ~ Multiple input files (of the same format) are accepted. This is useful when the input file is split among several parts (e.g. a set of 2 main movie EVO files in a HD DVD or 2 or more M2TS parts of a seamless branching Blu-ray Disc). Use the + symbol to add more. With Blu-ray Disc we can use also like input the .mpls files in PLAYLIST folder.
 * ~ This is the output file that eac3to will create. It could be an audio format like RAW, (L)PCM, WAV (PCM only), WAVs (multiple mono WAV files, PCM only), W64, RF64, AC3, DTS, FLAC, video format like VC-1, H.264, MPEG-2 or Matroska (MKV) container. eac3to can also output audio (only) data to stdout for further processing by other applications.
 * ~ It applies only to container source files and refers to the tracks/streams inside them.
 * ~ Here you can set the options that tell eac3to how to operate. Not all of them are applicable to all input / output formats. If none set, the default is used when necessary.

The logic behind this is simple: Using the various streams inside the container as source, eac3to can output one or more of them to their original or not format. Here rises the question: How can i choose the stream i want? This can be done using the stream/track numbers (e.g. 3: ). The output files can be from all audio and video formats that have been used in the previous case. All options listed in the previously plus the following can be used when we are dealing with container inputs:

To get an idea how the stream/track list looks like when we feed eac3to with container files will use the 2 main movie EVO files of an HD DVD. Running  we get:

EVO, 1 video track, 3 audio tracks, 5 subtitle tracks, 1:55:33 1: Joined EVO file 2: h264/AVC, 1080p24 /1.001 (16:9) with pulldown flags 3: E-AC3, 5.1 channels, 1536kbps, 48khz, dialnorm: -27 dB, -65ms 4: E-AC3, 5.1 channels, 768kbps, 48khz, dialnorm: -27 dB, -76ms 5: AC3, 2.0 channels, 192kbps, 48khz, dialnorm: -27 dB, -92ms 6: Subtitle 7: Subtitle 8: Subtitle 9: Subtitle 10: Subtitle

Here we are informed of all video, audio and subtitle stream inside our source files. To process one of them we just have to add the appropriate number before the output file, like this:

In the following examples various containers are used as source and we have already obtain the stream numbers.

 * Demux 1st video track and all audio tracks of a set of two HD DVD EVO files:

 * Demux the H.264 video stream [id 2] of a blu-ray M2TS file:

 * Demux the VC-1 video stream [id 2], TrueHD audio track [id 3] and E-AC3 audio track [id 5] of a 3 part seamless branching Blu-ray movie (files 00001.m2ts, 00002.m2ts and 00003.m2ts) to the specified directories:

 * Convert 1st video track of an EVO file to MKV, convert all lossless audio tracks to FLAC and demux all compressed audio tracks at once:

 * Convert an HD DVD video stream [id 2] (set of two EVO files) to MKV and also convert a DTS-HD audio track [id 4] to a FLAC one:

 * Convert an HD DVD VC-1 video stream [id 3] (set of two EVO files) to MKV while skipping the first 3 erroneous sequence headers, convert a TrueHD audio track [id 4] to a FLAC one while downconverting it from 24 bit to 16 bit and convert an E-AC3 audio track [id 5] to a 768 kbps DTS one using libav / ffmpeg E-AC3 decoder (non default):

Using complete disc structure as input
This is the most exciting possibility of eac3to and requires complete disc structure, like HD DVD or Blu-ray Disc. Why is exciting? Because we get the correct playback order of the numerous M2TS parts (seamless branching Blu-ray Discs) automatically. Also we get additional info like chapters and subtitle and audio track languages.

It takes 3 steps: 1. Read the root folder of the disc. This way you get a list of all available titles/playlists in the disc. 2. Select the appropriate title/playlist. This actually means you select the actual files (containers) to process. 3. Convert/edit and output the streams inside the container to a different format.

As examples we 'll use an HD DVD (Galapagos) and a Blu-ray Disc (Rambo IV), both ripped to the hard disc.

STEP 1: By typing  the title playlist of the disc is generated.

1) EPISODE1.EVO+EPISODE2_1.EVO+EPISODE2_2.EVO+EPISODE3.EVO, 2:26:44   "PlayAll"    - VC-1, 1080i (16:9)    - E-AC3, 2.0, 48 kHz 2) EPISODE1.EVO, 0:49:02 "Episode1" - VC-1, 1080i (16:9) - E-AC3, 2.0, 48 kHz 3) EPISODE2_1.EVO+EPISODE2_2.EVO, 0:48:55   "Episode2"    - VC-1, 1080i (16:9)    - E-AC3, 2.0, 48 kHz  4) EPISODE3.EVO, 0:48:47 "Episode3" - VC-1, 1080i (16:9) - E-AC3, 2.0, 48 kHz 5) PLANETEARTHTRL.EVO, 0:01:02   "Planet Earth Trailer"    - VC-1, 1080p (16:9)    - E-AC3, 2.0, 48 kHz

STEP 2: By adding the title number you want, the above command changes to  and the stream/track list of the specific title is generated.

EVO, 1 video track, 1 audio track, 1 subtitle track, 0:48:58 "Episode2" 1: Joined EVO file 2: Chapters, 6 chapters with names 3: VC-1, 1080i60 /1.001 (16:9) 4: AC3, 2.0 channels, 448kbit/s, 48khz, dialnorm: -27 dB 5: Subtitle, English

STEP 3: Finally, choose the tracks that are going to be processed and output like this:

EVO, 1 video track, 1 audio track, 1 subtitle track, 0:48:58 "Episode2" 1: Joined EVO file 2: Chapters, 6 chapters with names 3: VC-1, 1080i60 /1.001 (16:9) 4: AC3, 2.0 channels, 448kbit/s, 48khz, dialnorm: -27 dB 5: Subtitle, English Creating file "galapagos.ep2.chapters.txt"... Extracting primary video track... Muxing video to Matroska... Extracting audio track number 4... Removing dialog normalization... Extracting subtitle track number 5... Creating file "galapagos.ep2.ac3"... ... ... ...

Now, let's try the Blu-ray disc. This is a seamless branching disc and reveals eac3to's power:

STEP 1: By typing  the title playlist of the disc is generated.

1) 00041.mpls, 2:00:22   [112+127+115+128+117+129+119+130+121+131+123+132+125].m2ts    - h264/AVC, 1080p24 /1.001 (16:9)    - h264/AVC, 480p24 /1.001 (16:9)    - DTS Master Audio, English, multi-channel, 48 kHz    - AC3, French, multi-channel, 48 kHz    - AC3, English, stereo, 48 kHz 2) 00042.mpls, 2:00:22 [112+127+115+128+117+129+119+130+121+131+123+132+125].m2ts - h264/AVC, 1080p24 /1.001 (16:9) - h264/AVC, 480p24 /1.001 (16:9) - DTS Master Audio, English, multi-channel, 48 kHz - AC3, French, multi-channel, 48 kHz - AC3, English, stereo, 48 kHz 3) 00040.mpls, 1:31:32   [112+114+115+116+117+118+119+120+121+122+123+124+125].m2ts    - h264/AVC, 1080p24 /1.001 (16:9)    - h264/AVC, 480p24 /1.001 (16:9)    - DTS Master Audio, English, multi-channel, 48 kHz    - AC3, French, multi-channel, 48 kHz    - AC3, English, stereo, 48 kHz 4) 00037.mpls, 1:10:56 [87+88+89+90+91+92+93].m2ts - MPEG2, 1080i30 /1.001 (16:9) - AC3, English, stereo, 48 kHz 5) 00056.mpls, 00125.m2ts, 0:25:16   - h264/AVC, 1080p24 /1.001 (16:9)    - h264/AVC, 480p24 /1.001 (16:9)    - DTS Master Audio, English, multi-channel, 48 kHz    - AC3, French, multi-channel, 48 kHz    - AC3, English, stereo, 48 kHz 6) 00046.mpls, 00115.m2ts, 0:22:32 - h264/AVC, 1080p24 /1.001 (16:9) - h264/AVC, 480p24 /1.001 (16:9) - DTS Master Audio, English, multi-channel, 48 kHz - AC3, French, multi-channel, 48 kHz - AC3, English, stereo, 48 kHz 7) 00011.mpls, 00087.m2ts, 0:19:45   - MPEG2, 1080i30 /1.001 (16:9)    - AC3, English, stereo, 48 kHz

STEP 2: By adding the title number you want, the above command changes to  and the stream/track list of the specific title is generated (note: not always the title with the longer runtime is the main movie).

M2TS, 2 video tracks, 3 audio tracks, 2:00:22 1: Chapters, 17 chapters 2: h264/AVC, 1080p24 /1.001 (16:9) 3: h264/AVC, 480p24 /1.001 (20:11) 4: DTS Master Audio, English, 5.1 channels, 24 bits, 48khz 5: AC3, French, 5.1 channels, 640kbit/s, 48khz, dialnorm: -27 dB 6: AC3, English, 2.0 channels, 192kbit/s, 48khz, dialnorm: -27 dB

STEP 3: Finally, choose the tracks that are going to be processed and output like this:

M2TS, 2 video tracks, 3 audio tracks, 2:00:22 1: Chapters, 17 chapters 2: h264/AVC, 1080p24 /1.001 (16:9) 3: h264/AVC, 480p24 /1.001 (20:11) 4: DTS Master Audio, English, 5.1 channels, 24 bits, 48khz 5: AC3, French, 5.1 channels, 640kbit/s, 48khz, dialnorm: -27 dB 6: AC3, English, 2.0 channels, 192kbit/s, 48khz, dialnorm: -27 dB Creating file "c:\rambo\rambo.chapters.txt"... [v02] Extracting video track number 2... [a04] Extracting audio track number 4... [a04] Extracting audio track number 4... [a05] Extracting audio track number 5... [v02] Muxing video to Matroska... [a04] Extracting DTS core... [a04] Decoding with DirectShow (Sonic Audio Decoder)... [a05] Removing dialog normalization... [a04] DirectShow reports 5.1 channels, 24 bits, 48 kHz [a04] Encoding FLAC... [a04] Creating file "c:\rambo\rambo.flac"... [a04] Creating file "c:\rambo\rambo.dts"... [a05] Creating file "c:\rambo\rambo.comm.ac3"... --

Recommended & Not Recommended Conversions
This is some basic advice on what audio conversion should and shouldn't be done. Generally, dealing with movie audio requires 4 things to have in mind:

 * What is the original (source) format?
 * How much space do you have to consume?
 * How will the audio be transmitted to the receiver/speakers?
 * Do you own an expensive high fidelity home cinema system?

Usually, people convert lossless audio tracks to FLAC, high bitrate lossy tracks (e.g. 1536 kbit/s E-AC3 and DTS-HD Hi Res) to 640 kbit/s AC3 or 1536 kbit/s DTS, and lower bitrate lossy tracks to 448 kbit/s AC3 audio or 768 kbit/s DTS. Of course, when both lossless and lossy audio tracks are available for a movie, it is recommended that the lossless track should be used as the source file for the new audio creation. Another thing to have in mind is whether the audio will be passed through HDMI, S/PDIF, or analog connection. AC3 & DTS can be transmitted through S/PDIF, unlike FLAC, which makes them very popular.

title: Eac3to/How to Use


text:
Eac3to/Features

What eac3to can and can't do can be summarized in the list below:

 * Can demux M2TS, TS, EVO, VOB and AOB containers
 * Can convert any audio track found in M2TS, TS, EVO, VOB and AOB containers to almost any other audio format
 * Can remove useless data (e.g. pulldown flags, filler data, sequence end codes, etc.) from H.264, VC-1 and MPEG-2 video streams
 * Can mux H.264, VC-1 and MPEG-2 video streams (video only, no audio) to MKV container
 * Can't mux / remux M2TS, TS, EVO, VOB and AOB containers
 * Can't demux MKV container
 * Can't encode video

Some of the tasks eac3to is able to perform are the following:

 * show information about audio files
 * decode and encode various audio formats
 * remove dialog normalization from AC3, E-AC3, DTS and TrueHD tracks
 * extract AC3 stream from Blu-ray Disc TrueHD / AC3 tracks
 * extract TrueHD stream from Blu-ray Disc TrueHD / AC3 tracks
 * extract DTS core from DTS-HD Hi Res and DTS-HD Master Audio tracks
 * remove DTS zero padding and repair outdated DTS-ES headers
 * apply positive or negative audio delays
 * reduce bitdepth of decoded audio data by using TPDF dithering
 * resample decoded audio data (using r8brain)
 * apply/reverse PAL speedup on decoded audio data (using r8brain)
 * demux all video and audio tracks of an EVO or VOB source file
 * join/rebuild multiple EVO or VOB files
 * remux the video track of an EVO or VOB source to Matroska
 * remove pulldown flags from MPEG-2, VC-1 and H.264 video tracks

Eac3to/Возможности

title: Eac3to/Features


text:
XQuery/Filtering Nodes

Motivation
You want to create filters that remove or replace specific nodes in an XML stream. This stream may be in-memory XML documents and may not be on-disk.

Method
To process all nodes in a tree we will start with recursive function called the identity transform. This function copies the source tree into the output tree without change. We begin with this process and then add some exception processing for each filter.

This function uses an XQuery construct called  computed element constructor to construct an element. The format of the element constructor is the following:

element {ELEMENT-NAME} {ELEMENT-VALUE}

In the above case ELEMENT-VALUE is another query that finds all the child elements of the current node. The for loop selects all nodes of the current element and does the following pseudo-code:

if the child is another element (this uses the "instance of" instruction) then copy the child (recursively) else return the child (we have a leaf element of the tree)

If you understand this basic structure of this algorithm you can now modify it to filter out only the elements you want. You just start with this template and modify various sections.

Note that you can also achieve this function by using the typeswitch operator:

Removing all attributes
The following function removes all attributes from elements since attributes are not copied.

This function can also be arrived at by using the typeswitch operator:

The function can be parameterized by adding a second function argument to indicate what attributes should be removed.

Replacing all attribute values
For all elements that have specific attribute names replace old attribute values with new attribute value.

Removing named attributes
Attributes are filtered in the predicate expression not(name=$attribute-name) so that named attributes are omitted.

Removing named elements
Likewise, elements can be filtered in a predicate:

This adds the node qualifier and the name of the node in the predicate:

To use this function just pass the input XML as the first parameter and a sequence of element names as strings as the second parameter. For example:

let $input := doc('my-input.xml') let $remove-list := ('xxx', 'yyy', 'zzz') local:remove-elements($input, $remove-list)

Renaming Elements Using a Map
Suppose we have a file of elements that we want to rename using a filter. We want to store the rename rules in a file like this:

The rename elements function is the following

The following is the input and output

Removing Empty Elements
Many RDBMS systems export rows of data that are converted into XML. It is a best practice to remove any XML elements that have no text content.

The XQuery function will take in a single element and it returns an optional element.

The first test is to check if a child element or text is present. If it is then an element is constructed and the attribute are added. Then for each child element the function calls itself.

Example Input

Example Output

Note that even if an element contains spaces, carriage returns or tabs, the element will be removed.

Example illustrating the above filters
The following script demonstrates these functions:

return {$x} {local:copy($x)} {local:copy-no-attributes($x)} {local:copy-filter-attributes($x,"q")} {local:copy-filter-elements($x,"a")} {local:copy-filter-elements($x,("a","d"))}

Run

Adding a Namespace
Here is a function that will add a namespace to the root element in an XML document. Note that it uses an element constructor with two parameters. The first parameter is the element name and the second is the element content. The element name is created using the QName function and the element content is created using {$in/@*, $in/node}, which will add attributes and all child nodes.

If we use the following input:

The function will return the following output:

Note that if you use null as the prefix, then the prefix will not be used in the root element, However, the namespace will be used.

Removing unwanted namespaces
Some systems do not allow you to have precise control of the namespaces used after doing an update despite the use of copy-namespaces declarations.

Remove TEI Namespace
The following XQuery function is an example that will remove the TEI namespace from a node.

Below two functions will remove any namespace from a node, nnsc stands for no-namespace-copy. The first one performs much faster: From my limited understanding it jumps attributes quicker. The other one still here, something tricky might be hidden there.

Remove ALL Namespaces
The following recursive function will remove all namespaces from elements and attributes. Note that the local-name function is used to generate the namespace free attribute name.

Version 2

This version uses @* and * to generate a single sequence of attributes and elements. Elements are passed a recursive function but attributes are returned directly as $child.

Conversely, if you want to add a namespace to an element, a starting point in this Misztur, Chrisblog post: http://fgeorges.blogspot.com/2006/08/add-namespace-node-to-element-in.html

Remove extra whitespace
Contributed by Chris Misztur.

Removing elements with no string value
Elements which contain no string value or which contain whitespace only can be removed:

Removing empty attributes
Attributes which contain no text can be stripped:

One Function for Several In-Memory Operations
You can integrate several functions for altering the node tree in one function. In the following function a number of common operations on elements are facilitated.

The parameters passed are 1) the node tree to be operated on, 2) any new item(s) to be inserted, 3) the action to be performed, 4) the name(s) of the element(s) targeted by the action.

The function can insert one or more elements supplied as a parameter in a certain position relative to (before or after or as the first or last child of) target elements in the node tree.

One or more elements can be inserted in the same position as the target element(s), i.e. they can substitute for them.

If the action is 'remove', the target element(s) are removed. If the action is 'remove-if-empty', the target element(s) are removed if they have no (normalized) string value. If the action is 'substitute-children-for-parent', the target element(s) are substituted by their child element(s). (In the last three cases the new content parameter is not consulted and should, for clarity, be the empty sequence).

If the action to be taken is 'change-name', the name of the element is changed to the first item of the new content.

If the action to be taken is 'substitute-content', any children of the target element(s) are substituted with the new content.

Note that context-free functions, for instance current-date, can be passed as new content.

A typeswitch is not used because it requires static parameters.

Having the following main,

the result will be

Note that if the target element is 'p', the $new-node will be inserted in relation to every element named 'p'.

You can fill in any functions you need and delete those that you do not need.

This following function facilitates several operations on attributes. This is more complicated than working with elements, for element names have to be considered as well.

The parameters passed are 1) the node tree to be operated on, 2) a new attribute name, 3) the new attribute contents, 4) the action to be performed, 5) the name(s) of the element(s) targeted by the action, 6) the name(s) of the attribute(s) targeted by the action.

By just using the action parameter, you can remove all empty-attributes.

If you wish to remove all named attributes, you need to supply the name of the attribute to be removed.

If you wish to change all values of named attributes, you need to supply the new value as well.

If you wish to attach an attribute, with name and value, to a specific element, you need to supply parameters for the element the attribute is to be attached to, the name of the attribute, and the value of the attribute, as well as the action.

If you wish to remove an attribute from a specific element, you need to supply parameters for the element the attribute is to be removed from, the name of the attribute, as well as the action.

If you wish to change the name of an attribute attached to a specific element, you need to supply parameters for the element the attribute is attached to, the name the attribute has, the new the attribute is to have, as well as the action.

Having the following main,

the result will be

title: XQuery/Filtering Nodes


text:
Eac3to/FAQ

Q: I'm a total noob. I don't know how to use command line programs, but i still want to use eac3to
A: There's an unofficial GUI (Graphical User Interface) for eac3to, made by The_Keymaker. It will let you use the program like ordinary windows applications. The latest version of eac3toGUI can be found here.

Q: I don't want to buy any software. Can I still use eac3to?
A: As described in the How to Use section, you need some commercial software for best quality audio decoding. Although, eac3to supports free libav decoding for all important audio codecs (AC3, E-AC3, TrueHD, MLP, DTS) with full 24 bit output. There's also one important limitation in the libav decoder: DTS-HD information is ignored, which means only the standard DTS core is decoded from all DTS-HD tracks. In addition, DTS decoding is limited to max 5.1 channel decoding (more channels are simply ignored). So for best DTS(-HD) decoding, Sonic is still the preferred decoder.

Q: I don't like Nero at all, but i would install it to get its decoders. How to minimize the effect?
A: Nero is a big package that contains a lot of separate programs. If you just want to use its decoders, you can install Nero ShowTime only and of course to register the plug-in.

Q: Why I can't use Nero 8 with eac3to?
A: Nero 8 won't work with eac3to because Nero 8 doesn't allow its DirectShow filters to be used from outside of Nero ShowTime. Nero 7 already tried to prevent other applications from using the DirectShow filters, but eac3to can only use them by some tricks. Nero 8 is now even stricter, so currently there isn't a way to get around these restrictions. This means that you must use/install Nero 7 if you want to use Nero DirectShow filters in eac3to.

Q: What are the alternatives if I have Nero 8 already installed?
A: If you must have Nero 8 installed then you can use the libav decoder instead of Nero 7. By doing so, the AC3 & E-AC3 decoders might be at a small disadvantage quality-wise compared to Nero, but the difference is probably rather small. TrueHD decoding shouldn't be a problem anyway, as eac3to uses the libav decoder as default decoder. Otherwise, for best AC3 & E-AC3 decoding today you still need Nero 7 with the Blu-ray/HD DVD plug-in.

Q: Where can I find the "Sonic Cinemaster Audio Decoder 4.3" DirectShow filter?
A: That's a difficult question! The decoder was available through Sonic Cineplayer HD DVD Decoder pack, which seems to be a discontinued product now. It would appear that the only way to access this decoder is though Sonic Scenarist which is rather expensive. Another possible solution could be Sonic Cinevision, but can't be sure the decoder is included. Price is a minus there too.

Q: Should I replace .dll filters that come with eac3to package?
A: Well, to play safe you should use the ones that ship with eac3to. You can update Aften.dll and libflac.dll with newer versions or cpu optimized builds, but that's not recommended, as they are not well tested. The only decoder that you must never replace is the libav decoder, as it's specially modified to work with eac3to.

Q: eac3to can't recognize my .mpa file
A: Usually, audio tracks get this extension by the application used to demux them. mpa is not the actual extension of the audio track, but just a general extension used for audio tracks. eac3to will recognize correctly all audio tracks with .mpa extension, unless you feed it with a PCM / RAW track. In this case you have to manually change the track's extension to the real one (.pcm or .raw - it's the same).

Q: Why eac3to doesn't show any bit depth info for AC3 and E-AC3, tracks?
A: Because there's no such thing as bit depth in these formats. They don't have a bit depth parameter. We can only say that these formats decode to 16 bit or 24 bit files, but that's decoder dependable. All decoders eac3to uses decode to 24 bit.

Q: Why eac3to doesn't show any bitrate info for TrueHD, DTS-HD Master Audio and FLAC tracks?
A: All these audio formats use lossless compression and a variable bitrate, not a constant one. So there's no point to show anything regarding this.

Q: Can eac3to encode a DTS-HD track to 1536 kbps DTS track?
A: Well, this isn't needed. Encoding a DTS-HD track to 1536 kbps DTS doesn't make sense, because all DTS-HD tracks contain a standard 1536 kbps 5.1 DTS core in them. Simply use the  switch to extract it.

Q: I have a 768 kbps DTS track which has the same size as a 1536 kbps DTS track of the same duration. How is this possible?
A: When encoding DTS tracks using Surcode outside eac3to, the output file is padded. This means that while only 768 kbps are used to store audio data, the rest 768 kbps are padded with zeroes, ending up with a 1536 kbps file. This behavior is completely useless and does nothing but consuming space. All DTS tracks you get from DVD, HD DVD or Blu-ray are in compact form. Also that's what all freeware software packages (which can handle DTS) expect. To remove the padding from a DTS track, you can simply run it through eac3to using the  command.

Q: How do I check whether a TrueHD track is 16, 20 or 24 bit?
A: Every TrueHD track has a bit-depth of 24 bit. Every one. Every TrueHD decoder always outputs 24 bit. However, here comes the big key: Most times, only some of those 24 bits are filled with real audio data and the rest is just zeroed out. This means that some TrueHD tracks contain full 24 bit of information, while others have 4 bit or 8 bit of those 24 bit filled up with nothing but zeroes. eac3to detects both situations and behaves accordingly. It will never throw away any audio data when doing a conversion, unless you explicitly tell it to.

Q: I get "track contains more than 16 bit of information" but file size is too small for 20 or 24 bit. What's wrong? not ok
A: There are audio tracks (like the PCM track from The Pirates of the Caribbean: The Curse of the Black Pearl Blu-ray Disc) which have a really weird bit depth: Most of the track has only 16bit of the 24bit filled with data, while the remaining 8bit were always zeroes. But there are a few (very few) parts of the audio track where suddenly those 8bit have data in them.

Q: How to demux an EVO, VOB or AOB file to a different directory?
A: eac3to's automated demuxing with  switch doesn't accept any output files. The demuxed files are always written in the input's file(s) directory. To demux to a different directory, see Container Format examples.

Q: Whatever i tried, i can't mux audio and video together. Why?
A: This is intended. eac3to presently just muxes the video to MKV and leaves audio muxing to you, because maybe you also want to mux additional audio tracks from DVD or subtitle tracks. eac3to cannot handle all that. In addition, maybe someone wants to specify languages for each audio / subtitle track.

Q: What does "Nero Audio Decoder is not working correctly" message mean?
A: You get this error message when typing the  command. It means the Nero Blu-ray / HD DVD plug-in is not registed. There isn't something you need to install in adittion to the main Nero package. Just buy and register the plug-in. Without this you can't use the Nero decoders.

Q: What does "Getting Nero Audio Decoder 2 instance failed" message mean?
A: It means the Nero decoder isn't installed on your pc. You have to install Nero 7 and also buy the Nero Blu-ray / HD DVD plug-in to make Nero decoders to work.

Some people, however, still receive this error even after installing Nero 7 Ultra and the Nero Blu-Ray / HD DVD plugin.

To make sure your plugin is actually installed - for Windows check OS Drive:\Program Files (x86)\Common Files\Ahead\DSFilter and ensure you have the following file:

 * NeAudio2.ax

A lot of users experiencing this issue even after installing Nero 7 (me included) noticed that NeAudio2.ax is never installed in some Nero 7 installs or the Blu-Ray / HD DVD plugin did not install this correctly.

Make sure these are there then proceed to open a command prompt (elevated Admin prompt) and re-register NeAudio2.ax

regsvr32.exe (Location of NeAudio2.ax).

Q: "The Sonic Audio Decoder doesn't decode TrueHD properly". What's wrong?
A: You're getting this error because the Sonic Audio Decoder doesn't decode TrueHD properly! Read Decoding compressed audio for details.

Q: What does "Track is not clean. Use delaycut to clean it" message mean?
A: This message pops up when eac3to is fed with an audio track which has some corruption in it. It's a common problem problem for AC3 and E-AC3 tracks and it's usually caused by a bad disc rip. Often enough the problem is solved when the disc is re-ripped. Anyway, delaycut (v1.3.0.0) can be used (it supports AC3, E-AC3 up to 5.1ch and DTS files only) to "clean" the track, by removing the corrupted parts. Note, that if the corruption is big, more parts (frames) are removed and an audio / video sync problem is rising.

Q: "The format of the source file could not be detected"
A: It's similar to the above problem. The corrupted part is at the beginning of the track or there are some "garbage" data in front of the actual audio data that prevent eac3to format detection (usually in DTS files). delaycut (v1.3.0.0) can be used again to "clean" these tracks.

Q: "The encode button didn't seem to pressed" in DTS encoding with Surcode
Surcode doesn't like long filenames/paths. Change them and you 'll be ok (assuming -test is working).

Q: I came across a troublesome file. How to make a sample to send for testing?
A: A sample is made by cutting a small piece from the original troublesome file. There are 2 ways (plus 1 more for HD DVD EVO files only) to make a sample. The first way is to use a hex editor (like the free HxD one). The second is to use drmpeg's command line tools. The 3rd way, which applies only to EVO files, is more complicated: Load the troublesome file to Pelican9's EVOdemux, press rebuild (select only the streams you want) and cancel the process after a while.

Samples of 20 MB to 50 MB, depending on the file type should be big enough. If you're encountering a problem with a container file, cut a sample from it, but not from the demuxed streams in it. The sample must be from the beginning of the file. On the contrary, audio samples should contain the specific part that gives the problem. Look at the eac3to's progress bar when the error or crash is occurred to figure out that point. In any case you have to be able to reproduce the problem with the sample. Otherwise it's useless.

Once the sample is made, it can can be uploaded to a filesharing site, or anywhere it's convenient. The link to it should be posted in eac3to's official thread in doom9 forum.

title: Eac3to/FAQ


text:
Eac3to/In Depth Technical Explanation

File Formats
Below is an introduction to file formats eac3to is able to handle either as an input or an output.

Audio Codecs

 * PCM: Also known as Linear PCM (LPCM). It's the standard format for uncompressed audio data. PCM can have up to 7.1 ch, bitdepth up to 32 bit (common values are 16, 24 bit) and samplerate up to 192 kHz (common values are 44,1 and 48 kHz). It is found on Blu-ray Disc (and DVD-Audio) only, due to the huge filesize requirements. These files have no header, containing only RAW data in big endian byte order for Blu-ray Disc compliance. For detail information see the LPCM article at Wikipedia.

 * RAW: When used in eac3to is exactly the same as PCM format except that the byte order is swapped, using little endian instead of big endian. This is arguably more useful for manipulation of the contents (as .raw or .wav files are generally assumed by common programs to use little endian, rather than big endian, byte order) but it generally doesn't matter as long as you don't accidentally instruct a program to read little endian as big endian or vice versa. If muxing for Blu-ray Disc, use PCM instead.

 * AC3: The algorithm behind the well known Dolby Digital format. It's a lossy compression algorithm, supports up to 6.1 ch (5.1 discrete + 1 matrix) and is widely used on DVD (bitrate up to 448 kbps) and Blu-ray Disc (bitrate up to 640kbps). It is also one of the most preferred formats for movie backup on pc, as it offers very good compression / quality ratio and can be easily transmitted though S/PDIF connections. For detail information see the Dolby Digital article at Wikipedia.

 * E-AC3: Also known as Dolby Digital Plus. It's found on HD DVD (bitrate up to 3.0 mbps, up to 7.1 ch), as well as on Blu-ray Disc (there are no BD titles featuring E-AC3 though). Additional info are available in the Dolby Digital Plus article at Wikipedia.

 * MLP: Meridian Lossless Packing, also known as Packed PCM (PPCM), is a lossless compression technique developed by Meridian. MLP is the standard lossless compression method for DVD-Audio content (5.1 ch, 24 bit, 96 kHz or 2.0 ch, 24 bit, 192 kHz). For details see the MLP article at Wikipedia.

 * TrueHD: Is a lossless compression audio format from Dolby, used on Blu-ray Disc and HD DVD. TrueHD is based on Meridian's MLP, but details differ substantially: up to 7.1 ch, 24 bit, 96 kHz are supported here. Additional information can be found in the Dolby TrueHD article at Wikipedia.

 * DTS: Digital Theater System is a lossy compression format, initially introduced on DVD-Video (up to 1536 kbps, 5.1 channels, 24 bit, 48 kHz). In addition to the standard DTS, there are the following variants: DTS-ES (6.1 ch) also used in DVD-Video and DTS 96/24 (up to 5.1 ch, 24 bit, 96 kHz) found on DVD-Video & DVD-Audio. Any of these forms can be found on Blu-ray Disc and HD DVD also. For details see the Digital Theater System article in Wikipedia.

 * DTS-HD High Resolution: Is an extension to the original DTS format used on Blu-ray Disc and HD DVD. It delivers up to 7.1 ch, 24 bit, 96 kHz at bitrates up to 6.0 mbps and 3.0 mbps on BD and HD DVD respectively, through lossy compression. For details see the Digital Theater System article in Wikipedia.

 * DTS-HD Master Audio: Is an extension to the original DTS format, but uses lossless compression opposed to the previous one. Supports up to 7.1 ch, 24 bit, 96 kHz or up to 5.1 ch, 24 bit, 192 kHz. It's found on Blu-ray Disc and HD DVD. For details see the Digital Theater System article in Wikipedia.

 * FLAC (Free Lossless Audio Codec): Supports up to 7.1 channels, 24 bit, 192 kHz and, as stated in the name, uses lossless compression. Addition info can be found in the FLAC home page.

 * MP3 (MPEG-2 Audio Layer III): Extremely popular and quite flexible lossy codec, but not necessarily the most efficient.

 * AAC (Advanced Audio Coding): Another popular lossy codec. Generally more efficient than MP3, since it was designed specifically to replace it.

Video Codecs

 * MPEG-2:
 * VC-1:
 * H.264:

Containers

 * VOB: Video OBject. Supports MPEG-2 video and PCM, AC3, DTS audio. Used on DVD-Video.
 * AOB: Audio OBject. Supports MPEG-2 video and PCM, AC3, DTS, MLP audio. Used on DVD-Audio.
 * M2TS: Supports MPEG-2, VC-1, H.264 video and PCM, AC3, E-AC3, TrueHD, DTS, DTS-HD Hi Res, DTS-HD MA audio. Used on Blu-ray Disc.
 * EVO: Also known as EVOB (Enhanced Video OBject). Supports MPEG-2, VC-1, H.264 video and AC3, E-AC3, TrueHD, DTS, DTS-HD Hi Res, DTS-HD MA audio. Used on HD DVD.
 * MKV: Also known as Matroska Video. Supports MPEG-2, VC-1, H.264 video and PCM, AC3, E-AC3, DTS, DTS-HD Hi Res (new feature!), DTS-HD MA (new feature!), TrueHD, FLAC, MP3, AAC, VORBIS audio. Used on PCs and other devices.
 * MKA: Also known as Matroska Audio. Supports PCM, AC3, E-AC3, DTS, DTS-HD Hi Res (new feature!), DTS-HD MA (new feature!) FLAC, MP3, AAC, VORBIS audio. Used on PCs and other devices.
 * MP4: ???

Background information
There are four common problems with "properly" decoding compressed audio tracks. The first two problems have to do with that the purpose of a media player is different than the purpose of people who want to reencode audio tracks. A media player may want to adjust volume levels to specific parameters and circumstances. Reencoders absolutely want to avoid any processing on the precious audio data. This is a conflict which can not always be solved. The four known problems are:
 * 1) Some decoders apply DRC (Dynamic Range Compression). Stupidly, Dolby's license requests that DRC must be applied, unless your decoder has an option to turn it on/off. Only then the decoder is allowed to not apply DRC. The purpose of DRC is to limit the dynamic range of an audio track, mainly to not annoy neighbours or to accommodate to noisy living room conditions. For reencoding purposes DRC is catastrophic.
 * 2) Most decoders apply Dialog Normalization. This feature is supposed to make sure that for all audio sources the dialog is automatically played at the same volume. Dialog Normalization is quite "unnice", although it's just a volume change, so it doesn't really destroy the audio quality.
 * 3) Some decoders forcefully downconvert to 16bit, or raise volume for unknown reasons or do other stupid stuff.
 * 4) Some decoders don't make use of the full available information, but just extract and decode the "core" of the compressed audio data, which obviously results in less than optimal audio quality.

Evaluation of available decoders

 * The Sonic (E-)AC3 decoder forcefully applies DRC. As a result, it's not recommended to use the Sonic (E-)AC3 decoder.
 * The Sonic TrueHD decoder suffers from (2) and (3). The current version is totally unusable. eac3to doesn't allow being used at all.
 * The Sonic DTS decoder seems to be more or less perfect for DTS, DTS-ES, DTS-96/24, DTS-HD Master Audio and DTS-HD High Resolution tracks. Dialog normalization is ignored by the Sonic DTS decoder. The only "problem" of the Sonic DTS decoder is that it decodes DTS-HD 7.1 tracks only as 5.1. DTS-ES and DTS-HD Master Audio 6.1 tracks are fully decoded as 6.1, though.
 * The Nero (E-)AC3 decoder normally suffers from (1) and (2) and the Nero TrueHD decoder normally suffers from (2). The Nero (E-)AC3 works fine for most audio tracks, but sometimes DRC is still enabled, so it's not really recommended.
 * The Nero DTS decoder suffers from (2) and (4). eac3to can work around (2), but because of (4) the Nero DTS decoder is not recommended for anything except conventional DTS tracks.
 * The Cyberlink decoders always only output 16bit and can't be used outside of PowerDVD. So they currently do not make a lot of sense for eac3to.
 * The libav/ffmpeg (E-)AC3 decoder works really well, but don't support 7.1 decoding yet.
 * The libav/ffmpeg DTS decoder works well, too, but currently ignores the additional DTS-HD information, so especially DTS-HD Master Audio can't be decoded in full quality.
 * The libav/ffmpeg TrueHD decoder works perfectly fine, including full 7.1 decoding.
 * The ArcSoft DTS decoder seems to be perfect for DTS and DTS-HD decoding. It supports every format and channel configuration that exists including 6.1 and 7.1.
 * The ArcSoft TrueHD and ArcSoft (E-)AC3 decoders are currently not supported by eac3to.

Default decoders used by eac3to

 * AAC: Nero
 * MP1, MP2, MP3: libav/ffmpeg
 * (E-)AC3: libav/ffmpeg
 * TrueHD: libav/ffmpeg
 * DTS(-HD): ArcSoft

Known problems

 * (E-)AC3 decoding is currently limited to 5.1. A new version of the libav/ffmpeg decoder with 7.1 channel support will be available soon.

DTS-HD tracks
As described in the audio codecs section, DTS-HD Hi Res & DTS-HD Master Audio tracks are extensions to the original DTS codec. As a result every DTS-HD track contains a conventional 1536 kbps 5.1 ch, 24 bit, 48 kHz DTS core coded inside. eac3to can extract this core without reencoding the source track.

Blu-ray TrueHD / AC3 tracks
TrueHD tracks that come from a Blu-ray (only) disc can have an AC3 track coded in them. eac3to can extract the AC3 stream from such tracks and can also convert them to plain TrueHD tracks.

E-AC3 7.1 tracks
"Normal" E-AC3 tracks have one E-AC3 frame per audio frame. 7.1 E-AC3 tracks have two E-AC3 frames per audio frame. The first E-AC3 frame is a conventional 5.1 E-AC3 core. The 2nd E-AC3 frame is an E-AC3 frame with 4 channels in it. Two of those channels replace the surround channels of the 5.1 core. The other two channels are the back surround channels. The surround channels of the 5.1 core are totally dropped when a decoder decodes the 7.1 extension. The surround channels of the core contain a downmix of the surround and back surround channels.

title: Eac3to/In Depth Technical Explanation


title: Talk:Eac3to


text:
C++ Programming/Code/Standard C Library/IO

Standard C I/O
The Standard C Library includes routines that are somewhat outdated, but due to the history of the C++ language and its objective to maintain compatibility these are included in the package.

C I/O calls still appear in old code (not only ANSI C 89 but even old C++ code). Its use today may depend on a large number of factors, the age of the code base or the level of complexity of the project or even based on the experience of the programmers. Why use something you are not familiar with if you are proficient in C and in some cases C-style I/O routines are superior to their C++ I/O counterparts, for instance they are more compact and may be are good enough for the simple projects that don't make use of classes.


text:
C++ Programming/Code/Standard C Library/Functions

All Standard C Library Functions
These routines included on the Standard C Library can be sub divided into:
 * Standard C I/O
 * Standard C String & Character
 * Standard C Math
 * Standard C Time & Date
 * Standard C Memory
 * Other Standard C functions


text:
User talk:Ab~enwikibooks

Hey, i saw that you have contributed significantly to the FLOSS Concept Booklet and i was wondering if you would be willing to help with a similar project through Ubuntu which aims to be like the FLOSS concept booklet but organized differently. https://help.ubuntu.com/community/FreeSoftwareAlternatives -- DPic https://wiki.ubuntu.com/Dpic

Your account will be renamed
Hello,

The developer team at Wikimedia is making some changes to how accounts work, as part of our on-going efforts to provide new and better tools for our users like cross-wiki notifications. These changes will mean you have the same account name everywhere. This will let us give you new features that will help you edit and discuss better, and allow more flexible user permissions for tools. One of the side-effects of this is that user accounts will now have to be unique across all 900 Wikimedia wikis. See the announcement for more information.

Unfortunately, your account clashes with another account also called Ab. To make sure that both of you can use all Wikimedia projects in future, we have reserved the name Ab~enwikibooks that only you will have. If you like it, you don't have to do anything. If you do not like it, you can pick out a different name.

Your account will still work as before, and you will be credited for all your edits made so far, but you will have to use the new account name when you log in.

Sorry for the inconvenience.

Yours, Keegan Peterzell Community Liaison, Wikimedia Foundation 22:54, 17 March 2015 (UTC)

Renamed
 This account has been renamed as part of single-user login finalisation. If you own this account you can |log in using your previous username and password for more information. If you do not like this account's new name, you can choose your own using this form after logging in: . -- Keegan (WMF) (talk) 04:28, 19 April 2015 (UTC)

title: User talk:Ab~enwikibooks


text:
User talk:Kream

Hey, i saw that you have contributed significantly to the FLOSS Concept Booklet and i was wondering if you would be willing to help with a similar project through Ubuntu which aims to be like the FLOSS concept booklet but organized differently. https://help.ubuntu.com/community/FreeSoftwareAlternatives -- DPic https://wiki.ubuntu.com/Dpic

title: User talk:Kream


text:
User talk:A thing

Hey, i saw that you have contributed significantly to the FLOSS Concept Booklet and i was wondering if you would be willing to help with a similar project through Ubuntu which aims to be like the FLOSS concept booklet but organized differently. https://help.ubuntu.com/community/FreeSoftwareAlternatives -- DPic https://wiki.ubuntu.com/Dpic

title: User talk:A thing


text: User talk:68.39.101.176

title: User talk:68.39.101.176


text: User talk:76.126.158.19

title: User talk:76.126.158.19


text:
User:One Salient Oversight

Wikipedia user page.

Blog

title: User:One Salient Oversight


text:
Cookbook:Steamed Rice

Steamed rice is a simple dish, but some individuals have trouble cooking it. Common issues include adding too much rice or water, and not following the package directions. This recipe for steamed rice is fail-safe and does not require the use of a special rice cooker or microwave.

Ingredients

 * 1 cup (250 ml or 8.5 fl oz) dry rice
 * 2 cups water
 * ¼ teaspoon salt (optional)

Procedure

 * 1) Wash the rice if desired.
 * 2) Place the rice in a deep saucepan with lid. Add salt if using, and stir.
 * 3) Bring rice to a boil over high heat. Stir.
 * 4) Reduce heat to low and cover the pot. Cook on low for 12 minutes.
 * 5) Uncover rice and serve.

Notes, tips, and variations

 * This formula can be easily scaled up or down. The universal rule with cooking steamed rice is that the proportion of water should be double that of the rice. If you use one cup of rice you must use two cups of water. If you use two cups of rice you must use four cups of water.
 * 1 cup dry rice is enough for three adults.

title: Cookbook:Steamed Rice


text:
Wikibooks:Requests for deletion/Brazilian History

Brazilian History
The book comprises only a single page and has little relevant information other than the previous name of the Wikibook and about the Spanish conquest of Brazil. -Ravichandar84 (talk) 11:08, 14 February 2008 (UTC) Delete as per WB:NOTWP. Even meets the criteria for speedy deletion under Deletion policy. -Ravichandar84 (talk) 11:13, 14 February 2008 (UTC)
 * - I would suggest a delete because a person taking this on should have a fresh start and because the content is not informative enough. Laleena (talk) 23:36, 14 February 2008 (UTC)
 * Delete - I agree completely with Laleena here. There is nothing of merit here worth keeping.  --Rob Horning (talk) 12:25, 15 February 2008 (UTC)
 * [[Image:Symbol delete vote.svg|15px]]  - There's no content here worth keeping. – Mike.lifeguard  | talk 15:50, 15 February 2008 (UTC)
 * Move to World History, reason being the originator of the page User:Peteturtle has edited it several times spanning over a year so it appears an intention to complete it at some point. The user has World History on his user page, hence it might fit in there. Left comment on Talk:World_History/Contents ChessCreator (talk) 17:04, 15 February 2008 (UTC)
 * - and note that this has previously been up for both speedy delete and VfD. Someone interested might want to try to salvage something for World History, but I can't see much there of value - quite frankly, one would be better off starting with a transwiki of History of Brazil. Webaware talk 02:02, 19 February 2008 (UTC)
 * - from what I've seen, World History is not at all active, though a new user did do some work a few days ago. I say just delete. If the author returns, I'd be the first one to nominate it for un-deletion, but as it stands right now, interetested editors would probably rather start from scratch. Νεοπτόλεμος ( talk | email | contribs ) 02:18, 19 February 2008 (UTC)


text:
360 Assembly/Branch Instructions

The branch instructions for the 360 Series mainframe computer come in two types: instructions which branch where a return address is provided (such as a subroutine call) and one-way branches where no return address is provided.

All branch instructions come in 3 forms: No Branch At all, otherwise known as No-Operation or NO-OP, Conditional Branch, and Unconditional Branch

In the examples below, it is presumed that R0,R1,R14,R15 are labels "equated" to the equivalent registers in these examples (0, 1, 14 and 15, respectively) to provide a cross reference listing. The examples would function equally well without the R prefixes, but it is common practice for programmers to use a label equated to each of the numbers, because references to registers do not show up in the cross-reference listing, but references to symbols do.

Branch with return address provided
The following instructions provide a branch to another address, where a register is provided to store the address of the instruction following the branch to provide a means to return to the calling point.

Branch without return
The following instructions are available for all models of the 360 series, including the 360, 370, 390 and z/System. [1] Extended mnemonics provide condition tests, including BR and B for unconditional branch; BNO, BE, BNE, BH, BL and BM, among others

Examples
The general use of these is explained below.

No Branch
Certain types of branch instructions are treated as a no branch, or no-operation (NO-OP). Generally they involve the use of Register 0 or a mask value of 0. These are: Label1   BR    R0            No branch BC   0,Label1      Branch not taken; mask is 0 BALR R14,R0        Branch not taken; this is used at the start of a  *                             CSECT/START module to load the left register with the *                            address of the next instruction to establish addressing BC  15,100(R1,R0)  Because R0 is the Index Register, the branch is not taken *                            even though the mask indicates an unconditional branch BCT R1,16(R0)      Subtract 1 from the contents of R1, but since the base *                            register of the branch address is 0, no branch will occur BCTR R1,R0         Subtract 1 from the contents of R1, but since the target *                            branch register is 0, do not branch
 * Register branch targeting Register 0
 * Register to storage branch (regardless of mask) where the Index register is 0
 * Register to storage branch where the mask is 0

Unconditional branch
An unconditional branch instruction causes the Program location counter (PSW) to be set to the address specified in the register or the register plus a 12-bit offset, or the register & offset plus the value of an additional "index" register.

The branch does not occur, and is treated as a no-op, for a BR instruction using register 0. The branch does not occur, and is treated as an instruction to load the address of the following instruction into the left register, if the right register in a BALR instruction is 0. No conditional branch - including unconditional branch - will occur if the index register is 0.

These instructions may be one of the following types:-

Example1 BR    R15              Branch to the location whose address is in Register 15 Example2 BR    R0               No Branch - Acts like no-op Example3 BALR  R14,R15          Branch to the location whose address is in Register 15, put *                               return address in R14 Example4 BALR  R12,R0           Load Register 12 with the address of the next instruction, *                               but do not branch
 * Register to register (RR)

Example1 B     4(R15)           Branch to the location in R15 plus the (12 bit) *                                   decimal displacement of 4 Example2 B     X'010'(R15)      Branch to the location in R15 plus the (12 bit) hex *                               displacement of decimal 16 Example3  B     LABEL1           Branch to the location with the specified address (Base &  *                                displacement set by the Assembler) Example4  BAL   R14,X'010'(R15)  Branch to location in (R15 plus displacement), put *                               return address in R14. LABEL1  EQU   *               A location (within the range of the base register *                              for the program) *         B     106(R0)          Do not branch; treat as NO-OP
 * Storage (RS)

Example1  B     4(R15,R1)        Branch to location whose address is calculated from R15 *                                plus 4 plus R1 Example2   B     10(R12,R0)       No branch because index register is 0; treated as NO-OP Example3  B     10(R0,R12)       This is standard, and will branch to the address at the *                                location in Register 12 + a displacement of 10
 * Indexed (RX)

Conditional branch
A conditional branch instruction causes the location counter in the PSW to be set to the address specified in the register or the register plus a 12-bit offset, if a condition is satisfied (and the register is not 0). There are two types, condition by mask and condition by index.

Conditional branches may be one of the following types:- Example  BE     4(R15)          Branch to the location in (R15 plus 4), if previous *                               comparison gave "Equal" condition (8) Example  BE     12(R0)          As specified earlier, branch on R0 is treated as a NO-OP *                               and does not branch Example  BC     8,4(R15)        Branch to the location in (R15 plus 4), if previous *                               comparison gave "Equal" condition (8) *                               (same as above but specifying actual condition code  *                                 value = 8) Example  BC     7,X'010'(R15)   Branch to the location in (R15 plus X'010') if previous *                               comparison gave "Unequal" (Branch Not Equal) condition (7) Example  BCT   R1,4(R15)        Reduce value in R1 by 1 and, if it is not zero, branch *                               to location in (R15 plus 4 ) Example  BCT   R1,12(R0)        The register is reduced by 1, but the branch will never occur Example  BCTR   R1,R15          Reduce value in R1 by 1 and, if it is not zero, branch *                               to address in R15 Example  BCTR   R1,R0           Reduce R1 by 1 but do not branch. This instruction is often *                               used to subtract 1 from a register
 * Condition by mask, Storage (RS)
 * Condition by index, storage (RX)
 * Condition by Index, Register (RR)

Branch Table (technique)
A branch table is a literally a set of contiguous unconditional branch instructions which are of equal length (usually 4 bytes), that are used to very efficiently branch directly to one of this set, using an index. This index is often generated from some source input value that may itself be non-sequential as in the example below. This method is considerably faster than using either a binary search or sequential table lookup for example. Lookups involve compare instructions and a subsequent conditional branch. Only 5 instructions are used in the example (2 of which are unconditional branch) that perform the following:-
 * 1. Validate the input (translates any input values, other than A,S,M,D, to a null index value)
 * 2. Translate the input value (using an INSERT CHARACTER (IC) instruction with an index) to one of 0,4,8,12 or 16 (the index). Earlier versions of this technique used (TR) & (IC) instructions, which was 4-5 times slower than using two (IC) instructions).
 * 3. Branch unconditionally to the appropriate unconditional branch instruction using the index - a zero value results in branching to an error routine. (unconditional branches do not rely on previous character or numeric comparison instructions)
 * Example Consider an input variable that is a single byte character in the range A-Z, where specific values such as A,S,M,D decide the processing logic within the program. In this case A=Add,S=Subtract,M=Multiply and D=Divide.

In the following two examples, the time taken to perform validity and go to the appropriate label is fixed, irrespective of the number of different valid one byte input characters.

Example using a table of branch instructions
SR   R15,R15             Clear index register to zero  (32 bits) IC   R15,INPUT           Insert input byte into low order bits of R15 *                                     (bits 24-31 forming X'000000C1' for "A") IC   R15,TABLE2(R15)     Use R15 as Index to extract a 0,4,8,12 or 16 from *                                      the 2nd Table B    TABLE1(R15)         Branch using the index now in R15 TABLE1      EQU   *                ---Start of Branch table--- (each branch instruction *                                       is 4 bytes long and unconditional) B    ERROR               00 = Invalid input value         (that is, any byte  *                                                                        not = A,S,M or D)              B     ADD                 04 = Input value was "A" B    SUBTRACT            08 = Input value was "S" B    MULTIPLY            12 = Input value was "M" B    DIVIDE              16 = Input value was "D" *                                  ---End of Branch table ERROR       EQU   * * print or display error message or similar ADD         EQU   * * perform addition and continue with rest of program B   NEXT SUBTRACT    EQU   * * etc. INPUT       DS   C                     The input character is in this byte. TABLE2      DC   Al1(00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00)    X'00'-X'0F' DC  Al1(00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00)    X'10'... DC  Al1(00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00) DC  Al1(00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00) DC  Al1(00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00) DC  Al1(00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00) DC  Al1(00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00) DC  Al1(00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00) DC  Al1(00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00) DC  Al1(00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00) DC  Al1(00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00) DC  Al1(00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00) DC  Al1(00,04,00,00,16,00,00,00,00,00,00,00,00,12,00,00) *                       x'C0' - X'CF' (04 is at offset X'C1') DC  Al1(00,00,00,08,00,00,00,00,00,00)00,00,00,00,00,00)    x'D0' - X'DF'               DC   Al1(00,00,00,00,00,00,00,00,00,00)00,00,00,00,00,00) DC  Al1(00,00,00,00,00,00,00,00,00,00)00,00,00,00,00,00) * the above table can be automated if the Assembler is allowed to calculate & place the * index values but it is not shown here for simplicity. If validation is not required, the * size of this translate table need only be the size of the range of all possible input * values - in this case A through to M (18 bytes).

Example using a table of 2-byte offsets
Another very similar technique to the above branch table can be used. Instead of a table of branch instructions, a table of absolute or relative addresses (offsets) can be built by the Assembler. This requires just one extra instruction but increases the branch range to 64K without need for additional base register coverage and halves the size of the Table. SR   R15,R15             Clear index register to zero  (32 bits) IC   R15,INPUT           Insert input byte into low order bits of R15 *                                     (bits 24-31 - forming X'000000C1' for "A") IC   R15,TABLE2(R15)     Use R15 as Index to extract a 0,2,4,6 or 8 from *                                     the 2nd Table LH   R15,TABLE1(R15)     extract two byte offset into low order bits of R15 B    TABLE1(R15)         Branch using the table address plus offset now in R15 TABLE1      DS    0H               ---Start of Offset table--- (each is 2 bytes long) DC   Al2(ERROR-TABLE1)               00 = Invalid input value DC   AL2(ADD-TABLE1)                 02 = Input value was "A" DC   AL2(SUBTRACT-TABLE1)            04 = Input value was "S" DC   AL2(MULTIPLY-TABLE1)            06 = Input value was "M" DC   AL2(DIVIDE-TABLE1)              08 = Input value was "D" *                                  ---End of Branch table ERROR       EQU   * * print or display error message or similar ADD         EQU   * * perform addition and continue with rest of program B   NEXT SUBTRACT    EQU   * * etc. INPUT       DS   C                    The input character is in this byte. TABLE2      DC   Al1(00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00)    X'00'-X'0F' DC  Al1(00,00,00,00,00,00,00,00,00,00)00,00,00,00,00,00)    X'10'...               DC   Al1(00,00,00,00,00,00,00,00,00,00)00,00,00,00,00,00) DC  Al1(00,00,00,00,00,00,00,00,00,00)00,00,00,00,00,00)               DC   Al1(00,00,00,00,00,00,00,00,00,00)00,00,00,00,00,00) DC  Al1(00,00,00,00,00,00,00,00,00,00)00,00,00,00,00,00)               DC   Al1(00,00,00,00,00,00,00,00,00,00)00,00,00,00,00,00) DC  Al1(00,00,00,00,00,00,00,00,00,00)00,00,00,00,00,00)               DC   Al1(00,00,00,00,00,00,00,00,00,00)00,00,00,00,00,00) DC  Al1(00,00,00,00,00,00,00,00,00,00)00,00,00,00,00,00)               DC   Al1(00,00,00,00,00,00,00,00,00,00)00,00,00,00,00,00) DC  Al1(00,00,00,00,00,00,00,00,00,00)00,00,00,00,00,00)               DC   Al1(00,02,00,00,08,00,00,00,00,00,00)00,00,06,00,00) *                 x'C0' - X'CF' (02 is at offset X'c1') DC  Al1(00,00,00,04,00,00,00,00,00,00)00,00,00,00,00,00)    x'D0' - X'DF'               DC   Al1(00,00,00,00,00,00,00,00,00,00)00,00,00,00,00,00) DC  Al1(00,00,00,00,00,00,00,00,00,00)00,00,00,00,00,00) * An alternative approach here is to have the two-byte branch offsets within TABLE2  * (it then also uses one less instruction and eliminates the need for TABLE1 but this * may require twice the size of TABLE2 (depending upon the need for validation, and also on * the range of the input character).

An alternative method of defining TABLE2 above, letting the Assembler automate the placement of the index bytes, is as follows (example shown for "A" and "D" only for brevity). TABLE2      DC    256AL1(0)                   define 256 bytes of nulls ORG  TABLE2+C 'A'                  repeat these two lines for each *                                             valid input character DC   AL1(02)                     (The 'ORG' Assembler statement above *                                              resets to correct position) ORG  TABLE2+C'D' DC   AL1(08) ORG                              At end, reset to earlier position after *                                             end of 256 byte table

Example using a table of 4-byte absolute addresses
A table of absolute addresses can be built by the Assembler. This requires just one extra instruction but increases the branch range to 2 gigabytes (i.e. the whole address space for 31 bit processors). SR   R15,R15             Clear index register to zero  (32 bits) IC   R15,INPUT           Insert input byte into low order bits of R15 *                                     (bits 24-31 - forming X'000000C1' for EBCDIC "A") IC   R15,TABLE2(R15)     Use R15 as Index to extract a 0,4,8,12 or 16 *                                     from the 2nd Table ICM  R15,15,TABLE1(R15)  extract absolute address into all 32 bits of R15 from the 2nd Table * The previous ICM instruction above could also be accomplished with *           L     R15,TABLE1(R15) BR   R15                 Branch using the address in R15 TABLE1      DS    0H                ---Start of Offset table--- (each is 2 bytes long) DC   A(ERROR)                        00 = Invalid input value DC   A(ADD)                          04 = Input value was "A" DC   A(SUBTRACT)                     08 = Input value was "S" DC   A(MULTIPLY)                     12 = Input value was "M" DC   A(DIVIDE)                       16 = Input value was "D" *                                  ---End of Branch table ERROR       EQU   *                               Label for Errors - could be in a  *                                                  different CSECT (R15=Entry point address) * * print or display error message or similar ADD         EQU   *                               Label for 'Add'  - could be in a *                                                  different CSECT through either *                                                 an EXTRN ADD statement, or changing *                                                 the A(ADD) to V(ADD) (or whatever name) * * perform addition and continue with rest of program B   NEXT SUBTRACT    EQU   *                               Label for 'Subtract' - could be in different *                                                 CSECT etc. INPUT       DS   C                    The input character is in this byte. TABLE2      DC   Al1(00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00)    X'00'-X'0F' DC  Al1(00,00,00,00,00,00,00,00,00,00)00,00,00,00,00,00)    X'10'...               DC   Al1(00,00,00,00,00,00,00,00,00,00)00,00,00,00,00,00) DC  Al1(00,00,00,00,00,00,00,00,00,00)00,00,00,00,00,00)               DC   Al1(00,00,00,00,00,00,00,00,00,00)00,00,00,00,00,00) DC  Al1(00,00,00,00,00,00,00,00,00,00)00,00,00,00,00,00)               DC   Al1(00,00,00,00,00,00,00,00,00,00)00,00,00,00,00,00) DC  Al1(00,00,00,00,00,00,00,00,00,00)00,00,00,00,00,00)               DC   Al1(00,00,00,00,00,00,00,00,00,00)00,00,00,00,00,00) DC  Al1(00,00,00,00,00,00,00,00,00,00)00,00,00,00,00,00)               DC   Al1(00,00,00,00,00,00,00,00,00,00)00,00,00,00,00,00) DC  Al1(00,00,00,00,00,00,00,00,00,00)00,00,00,00,00,00)               DC   Al1(00,04,00,00,16,00,00,00,00,00,00)00,00,12,00,00) *                     x'C0' - X'CF' (04 is at offset X'c1') DC  Al1(00,00,00,08,00,00,00,00,00,00)00,00,00,00,00,00)    x'D0' - X'DF'               DC   Al1(00,00,00,00,00,00,00,00,00,00)00,00,00,00,00,00) DC  Al1(00,00,00,00,00,00,00,00,00,00)00,00,00,00,00,00)

370 and zSystem Instructions
The following branch instructions are available in the 370 and zSeries machines—To be added later--

title: 360 Assembly/Branch Instructions


text: Talk:Chess Opening Theory/1. e3/1...d5

title: Talk:Chess Opening Theory/1. e3/1...d5


text: User talk:64.90.209.14

title: User talk:64.90.209.14


text:
360 Assembly/Comments

A comment in 360 Assembly is a portion of text that is not processed by the assembler and is used by the programmer to add a description to the code. There are three forms of comments, line comments, code comments and macro comments.

Line Comments
If a line begins with one (or more) asterisks ("*), the rest of the line is treated as a comment Examples: * This is a comment line because it begins with an asterisk **** This is a comment line also ************************************************ *     This is a comment 'box'                  * ************************************************

Caution: The assembler uses a line beginning with *PROCESS to optionally set certain options if a *PROCESS line appears as the first line in the source file.

Code Comments
After a valid 360 instruction, after a single blank, everything else on the line is treated as a comment. A comment - line or code - is not printed when it appears in a macro if PRINT NOGEN has been used. It is also not printed if it appears after a PRINT OFF statement has been issued.

Note: If a code comment is to be specified on a macro instruction where no arguments are to be passed to the macro, it is recommended that a space, a comma, and another space precede the comment to prevent the first word from being interpreted as an argument to the macro.

Macro Comments
Macro comments are used for commenting macros (but can be used outside of macros in mainline program code), and are not listed on the program listing. They are the same as code comments, only they begin with ".*" instead of "*".

.* This comment will never be listed * This comment will be listed if not following PRINT OFF or PRINT NOGEN (if in a macro)

title: 360 Assembly/Comments


text:
User talk:84.13.26.12

Webaware talk 13:35, 14 February 2008 (UTC)

title: User talk:84.13.26.12


text:
User talk:66.194.217.221

Webaware talk 13:37, 14 February 2008 (UTC)

title: User talk:66.194.217.221


text:
User:Penma

Not here.

See w:de:User:penma

title: User:Penma


text:
Haskell/Solutions/Understanding arrows

Pocket guide to
1.

2.

3.

title: Haskell/Solutions/Understanding arrows


text:
Vietnamese/Mythology

Creation Myth
Lạc Long Quân, according to the creation myth of the Vietnamese people, was the father of the Vietnamese people. Lạc Long Quân was the son and sole successor of the Khương Lộc Tục, the King of Kinh Dương, who ruled over Xích Quỷ.

Lạc Long Quân's wife, Âu Cơ, gave birth to a sac containing 100 eggs from which 100 children were born. One day Lạc Long Quân told Âu Cơ: "I am descended from dragons, you from fairies. We are as incompatible as water is with fire. So we cannot continue in harmony." This said, the husband and wife parted. The man went seawards with 50 of their children, while his wife went to the mountains with the other half of the clan. The eldest son, who followed his mother, later installed himself as Vietnam's first monarch, Hùng Quốc Vương.

title: Vietnamese/Mythology


text: User talk:62.28.13.158

title: User talk:62.28.13.158


text:
ASP.NET/Roles

A role is a group of users who are uniqely identified by the set of privileges they are given. A typical website has three roles:

 * Administrator
 * Power User
 * User

An administrator has all privileges over the particular site while power user and ordinary users don't have.

Creation of Roles
Roles can be created in various ways. The typical process of role creation involves using the Role Manager tag in Web.config

Example

Roles can also be assigned or modified programmatically using the Role class.

Using the Website Administration Tool
Roles can be created in .NET 2.0 using the ASP.NET Website Administration tool. This tool is available in the Solution Explorer toolbar.

The tool allows the user to change

 * Security settings
 * Application Configuration
 * Provider Configuration

A few snapshots of the tool are availabe below. These snapshots are self-explanatory:

title: ASP.NET/Roles


text: File:WebSite Admin Home.JPG

title: File:WebSite Admin Home.JPG


text:
Programming with Moose/Roles and Plugins

14:00 <@mst> EvanCarroll: add a disclaimer saying "concepts may be oversimplified and this has not been audited by the Moose developers so may not always be             precisely correct" 14:00 <@mst> then stevan can audit it and give a page the seal of approval if he wants to 14:00 <@mst> and not if he doesn't 14:00 < EvanCarroll> mst: sounds fair enough 14:00 <@mst> EvanCarroll: "Only a class can be subclassed, but there's no reason you can't subclass a class with a bunch of roles applied to it - also, see             "

Qualifying scenarios for roles

 * SFTHM: Straight From The Horses Mouth
 * If you can model your problem without using Roles, and with only single inheritance do it.
 * Anything that can modeled with Roles can be modeled with Multiple Inheritance.
 * If you know at compile time you want to apply a plugin, you probably don't wan't to use a plugin.
 * If a plugin or role is only used one class, you're better off not using it.
 * A role should only specify methods, and not subs. Subs should be specified in a module that uses Sub::Exporter instead of Moose's role system. A role is for method composition. Roles do more than just export. SFTHM

Order sensitivity
Roles try not to be order sensitive when it comes to requirements, and conflict resolution; however, they are highly order sensitive when it comes to composition.

The order the roles are used determines the order of the method modifiers. Any method modifiers in the class before the with (keyword that includes the roles) will run before them, and any that are declared after the with will run after the roles.

Disadvantages to inheritance

 * 1)  Inheritance permits build time setting of args via the constructor, i.e,  . If Foo is a subclass of Bar and Bar provides a few attributes via , those attributes can be set in Foo's constructor arguments. In the plugin model, Foo applies plugin Bar and then you only set that which Bar does via one method call per attribute, rather than by hash. There is no way to apply Bar, and then initialize Foo</tt> with <tt>Bar</tt>'s modifications using one hash, nor is there a way to initialize just <tt>Bar</tt>'s modifications using one hash.
 * 2) * All compile time resolution is disabled, i.e, +has => ( default => 'NewDefault' ) has no effect in a plugin.
 * 3)  You can not subclass a Role: a role for instance can provide contact information on a person, afterward it is said that a person can be contacted. A role however can not subclass that role to provide US-Specific contact information, for this you either must use two roles, or multiple-inheritance.
 * 4) Some tools are not supported by Roles, such as Moose's augment.


text: File:Website Admin Security.JPG

title: File:Website Admin Security.JPG


text: File:Website Admin Security Roles.JPG

title: File:Website Admin Security Roles.JPG


text:
User:Marywillams1

tt

title: User:Marywillams1


text: User talk:165.155.208.89

title: User talk:165.155.208.89


text:
Advanced Interactive Media/Hands-On Interactive Team

The Interactive Team is responsible for creating and integrating a user-controlled interface into the final project as well as understand the client and end user profile. The team will take the content generated by the Design and Audio/Video Teams and, utilizing an interactive authoring program such as Adobe Director or Adobe Flash, link it all together to form a fully interactive presentation or program. The team is also responsible for developing interactive content and functionality such as games, navigation, and button layout that will be part of the project. The team is highly dependent on the work of the other teams as the majority of their work is content driven. Although filler material can be used to build menus and basic navigation, the team must have the overall look and feel from the design team before final authoring can really begin. The team must also have the content from the Audio/Video team to place in the project to complete it. Interactive team's work load is mostly focus in phase one and three. Phase one the interactive team should be obtaining end user information and profiling it and building a basic framework for the project. In Phase two the interactive team will be focused on building prototypes of the project. In Phase three the workload picks back up as the team is focused on disc authoring and finalization of the project.


text: Template:C++ Programming/Syntax

title: Template:C++ Programming/Syntax


text:
C++ Programming/Code/Standard C Library/Functions/abort

abort
The function abort terminates the current program. Depending on the implementation, the return from the function can indicate a canceled (e.g. you used the signal function to catch SIGABRT) or failed abort.

SIGABRT is sent by the process to itself when it calls the abort libc function, defined in cstdlib. The SIGABRT signal can be caught, but it cannot be blocked; if the signal handler returns then all open streams are closed and flushed and the program terminates (dumping core if appropriate). This means that the abort call never returns. Because of this characteristic, it is often used to signal fatal conditions in support libraries, situations where the current operation cannot be completed but the main program can perform cleanup before exiting. It is also used if an assertion fails.

 * Related topics: assert - atexit - exit


text:
C++ Programming/Code/Standard C Library/Functions/assert

assert
The assert macro is used to test for errors. If exp evaluates to zero, assert writes information to stderr and exits the program. If the macro NDEBUG is defined, the assert macros will be ignored.

 * Related topics: abort


text:
C++ Programming/Code/Standard C Library/Functions/atexit

atexit
The function atexit causes the function pointed to by func to be called when the program terminates. You can make multiple calls to atexit (at least 32, depending on your compiler) and those functions will be called in reverse order of their establishment. The return value of atexit is zero upon success, and non-zero on failure.

 * Related topics: abort - exit


text:
C++ Programming/Code/Standard C Library/Functions/exit

exit
The exit function stops the program. exit_code is passed on to be the return value of the program, where usually zero indicates success and non-zero indicates an error.

 * Related topics: abort - atexit - system


text:
Category:Book:Adventist Youth Honors Answer Book/Honors Introduced in 2008

2008


text:
Adventist Youth Honors Answer Book/Recreation/Gold Prospecting - Advanced

2. Describe the following types of prospecting equipment.

 * a. Sluice box: A sluice box is a shallow box into which ore is shovelled. The box features several transverse barriers along the bottom called riffles to trap the heavier gold particles as water washes them and the other material along the box.
 * b. Rocker box: Similar in principle to a sluice is a rocker, a cradle-like piece of equipment that could be rocked to sift sands through screens, which was introduced by Chinese miners in British Columbia and Australia, where the practice was referred to as "rocking the golden baby".
 * c. High banker
 * d. Bucket dredge
 * e. Suction dredge
 * f. Dry washer
 * g. Trommel: A trommel is composed of a slightly-inclined rotating metal tube (the 'scrubber section') with a screen at its discharge end. Lifter bars, sometimes in the form of bolted in angle iron, are attached to the interior of the scrubber section. The ore is fed into the elevated end of the trommel. Water, often under pressure, is provided to the scrubber and screen sections and the combination of water and mechanical action frees the valuable minerals from the ore. The mineral bearing ore that passes through the screen is then further concentrated in smaller devices such as sluices and jigs. The larger pieces of ore that do not pass through the screen can be carried to a waste stack by a conveyor.
 * h. Beach box
 * i. Metal detector
 * j. Jig
 * k. Shaker table

3. What government requirements, if any, are there to use the equipment listed in number 2 above?

 * a. Sluice box
 * b. Rocker box
 * c. High banker
 * d. Bucket dredge
 * e. Suction dredge
 * f. Dry washer
 * g. Trommel
 * h. Beach box
 * i. Metal detector
 * j. Jig
 * k. Shaker table

4. What are the advantages or disadvantages to the equipment listed in number 2 above?

 * a. Sluice box
 * b. Rocker box
 * c. High banker
 * d. Bucket dredge
 * e. Suction dredge
 * f. Dry washer
 * g. Trommel
 * h. Beach box
 * i. Metal detector
 * j. Jig
 * k. Shaker table

6. Pathfinders are supposed to take only pictures and leave only footprints, but prospecting requires moving rocks and digging large holes. How can you reconcile these two conflicting requirements?
Within areas where activities like mining are permitted, efforts to make money from the earth are acceptable. Gold, silver, and other metals are an important part of our lives. Even God commanded that the Children of Israel bring gold, silver, bronze (copper) and precious stones to build the tabernacle, all items that someone had to mine or prospect for.

Disturbing the ground in parks and protected areas is not appropriate. Neither is littering or vandalism appropriate anywhere. This is what the "take only pictures, leave only footprints" concept is about.