#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
int /*<<< orphan*/ print_msg(char *);
void print_help_ps() {
  print_msg(
      "Program Stream Switches:\n"
      "The following switches are only applicable if the input data is PS.\n"
      "\n"
      "If input is from a file, then the program will look at the start of\n"
      "the file to determine if the stream is H.264 or H.262 data. This\n"
      "process may occasionally come to the wrong conclusion, in which case\n"
      "the user can override the choice:\n"
      "\n"
      "  -h264, -avc       Force the program to treat the input as "
      "MPEG-4/AVC.\n"
      "  -h262             Force the program to treat the input as MPEG-2.\n"
      "\n"
      "Program stream data from a DVD stores its audio differently\n"
      "(specifically, the DVD specification states that AC-3 (Dolby), DTS and\n"
      "other audio are stored in a specialised manner in private_stream_1):\n"
      "\n"
      "  -dvd              The PS data is from a DVD. This is the default.\n"
      "                    This switch has no effect on MPEG-1 PS data.\n"
      "  -notdvd, -nodvd   The PS data is not from a DVD.\n"
      "\n"
      "Specifying which audio/video streams to read:\n"
      "\n"
      "  -vstream <n>      Take video from video stream <n> (0..7).\n"
      "                    The default is the first video stream found.\n"
      "  -astream <n>      Take audio from audio stream <n> (0..31).\n"
      "                    The default is the first audio stream found\n"
      "                    (this includes private_stream_1 on non-DVD "
      "streams).\n"
      "  -ac3stream <n>    Take audio from AC3 substream <n> (0..7), from\n"
      "                    private_stream_1. This implies -dvd.\n"
      "                    (If audio is being taken from a substream, the "
      "user\n"
      "                    is assumed to have determined which one is wanted,\n"
      "                    e.g., using psreport)\n"
      "\n"
      "The input PS data does not have PAT/PMT or PID values, and thus tsplay\n"
      "must invent them. The following switches may be used to choose "
      "particular\n"
      "PID values:\n"
      "\n"
      "  -vpid <pid>       <pid> is the PID to output video data with.\n"
      "                    Use '-vpid 0x<pid>' to specify a hex value.\n"
      "                    Defaults to 0x68.\n"
      "  -apid <pid>       <pid> is the PID to output audio data with.\n"
      "                    Use '-apid 0x<pid>' to specify a hex value.\n"
      "                    Defaults to 0x67.\n"
      "  -pmt <pid>        <pid> is the PID to output PMT data with.\n"
      "                    Use '-pmt 0x<pid>' to specify a hex value.\n"
      "                    Defaults to 0x66.\n"
      "\n"
      "The default values for the various PIDs should suffice in most cases\n"
      "\n"
      "If the audio stream being output is Dolby (AC-3), then the stream type\n"
      "used to output it differs for DVB (European) and ATSC (USA) data. It\n"
      "may be specified as follows:\n"
      "\n"
      "  -dolby dvb       Use stream type 0x06 (the default)\n"
      "  -dolby atsc      Use stream type 0x81\n"
      "\n"
      "Finally, it is occasionally useful to tweak how often PAT/PMT are "
      "written,\n"
      "and how much padding the stream starts with:\n"
      "\n"
      "  -prepeat <n>      Output the program data (PAT/PMT) after every <n>\n"
      "                    PS packs, to allow a TS reader to resynchronise\n"
      "                    if it starts reading part way through the stream.\n"
      "                    Defaults to 100.\n"
      "  -pad <n>          Pad the start of the output stream with <n> filler\n"
      "                    TS packets, to allow a TS reader time to byte "
      "align\n"
      "                    with the datastream before any significant data\n"
      "                    occurs. Defaults to 8.\n"
      "\n");
}


x86 assembly (clang, -O0):
<print_help_ps>:
push   %rbp
mov    %rsp,%rbp
lea    0xee5(%rip),%rdi
call   1030 <print_msg@plt>
pop    %rbp
ret

x86 assembly (clang, -O2):
<print_help_ps>:
lea    0xee9(%rip),%rdi
jmp    1030 <print_msg@plt>

LLVM IR (-O0):
@.str = [3151 x i8] c"Program Stream Switches:\0AThe following switches are only applicable if the input data is PS.\0A\0AIf input is from a file, then the program will look at the start of\0Athe file to determine if the stream is H.264 or H.262 data. This\0Aprocess may occasionally come to the wrong conclusion, in which case\0Athe user can override the choice:\0A\0A -h264, -avc Force the program to treat the input as MPEG-4/AVC.\0A -h262 Force the program to treat the input as MPEG-2.\0A\0AProgram stream data from a DVD stores its audio differently\0A(specifically, the DVD specification states that AC-3 (Dolby), DTS and\0Aother audio are stored in a specialised manner in private_stream_1):\0A\0A -dvd The PS data is from a DVD. This is the default.\0A This switch has no effect on MPEG-1 PS data.\0A -notdvd, -nodvd The PS data is not from a DVD.\0A\0ASpecifying which audio/video streams to read:\0A\0A -vstream <n> Take video from video stream <n> (0..7).\0A The default is the first video stream found.\0A -astream <n> Take audio from audio stream <n> (0..31).\0A The default is the first audio stream found\0A (this includes private_stream_1 on non-DVD streams).\0A -ac3stream <n> Take audio from AC3 substream <n> (0..7), from\0A private_stream_1. This implies -dvd.\0A (If audio is being taken from a substream, the user\0A is assumed to have determined which one is wanted,\0A e.g., using psreport)\0A\0AThe input PS data does not have PAT/PMT or PID values, and thus tsplay\0Amust invent them. The following switches may be used to choose particular\0APID values:\0A\0A -vpid <pid> <pid> is the PID to output video data with.\0A Use '-vpid 0x<pid>' to specify a hex value.\0A Defaults to 0x68.\0A -apid <pid> <pid> is the PID to output audio data with.\0A Use '-apid 0x<pid>' to specify a hex value.\0A Defaults to 0x67.\0A -pmt <pid> <pid> is the PID to output PMT data with.\0A Use '-pmt 0x<pid>' to specify a hex value.\0A Defaults to 0x66.\0A\0AThe default values for the various PIDs should suffice in most cases\0A\0AIf the audio stream being output is Dolby (AC-3), then the stream type\0Aused to output it differs for DVB (European) and ATSC (USA) data. It\0Amay be specified as follows:\0A\0A -dolby dvb Use stream type 0x06 (the default)\0A -dolby atsc Use stream type 0x81\0A\0AFinally, it is occasionally useful to tweak how often PAT/PMT are written,\0Aand how much padding the stream starts with:\0A\0A -prepeat <n> Output the program data (PAT/PMT) after every <n>\0A PS packs, to allow a TS reader to resynchronise\0A if it starts reading part way through the stream.\0A Defaults to 100.\0A -pad <n> Pad the start of the output stream with <n> filler\0A TS packets, to allow a TS reader time to byte align\0A with the datastream before any significant data\0A occurs. Defaults to 8.\0A\0A\00"
define void @print_help_ps() {
%1 = call i32 @print_msg(i8* getelementptr inbounds ([3151 x i8], [3151 x i8]* @.str, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@.str = [3151 x i8] c"Program Stream Switches:\0AThe following switches are only applicable if the input data is PS.\0A\0AIf input is from a file, then the program will look at the start of\0Athe file to determine if the stream is H.264 or H.262 data. This\0Aprocess may occasionally come to the wrong conclusion, in which case\0Athe user can override the choice:\0A\0A -h264, -avc Force the program to treat the input as MPEG-4/AVC.\0A -h262 Force the program to treat the input as MPEG-2.\0A\0AProgram stream data from a DVD stores its audio differently\0A(specifically, the DVD specification states that AC-3 (Dolby), DTS and\0Aother audio are stored in a specialised manner in private_stream_1):\0A\0A -dvd The PS data is from a DVD. This is the default.\0A This switch has no effect on MPEG-1 PS data.\0A -notdvd, -nodvd The PS data is not from a DVD.\0A\0ASpecifying which audio/video streams to read:\0A\0A -vstream <n> Take video from video stream <n> (0..7).\0A The default is the first video stream found.\0A -astream <n> Take audio from audio stream <n> (0..31).\0A The default is the first audio stream found\0A (this includes private_stream_1 on non-DVD streams).\0A -ac3stream <n> Take audio from AC3 substream <n> (0..7), from\0A private_stream_1. This implies -dvd.\0A (If audio is being taken from a substream, the user\0A is assumed to have determined which one is wanted,\0A e.g., using psreport)\0A\0AThe input PS data does not have PAT/PMT or PID values, and thus tsplay\0Amust invent them. The following switches may be used to choose particular\0APID values:\0A\0A -vpid <pid> <pid> is the PID to output video data with.\0A Use '-vpid 0x<pid>' to specify a hex value.\0A Defaults to 0x68.\0A -apid <pid> <pid> is the PID to output audio data with.\0A Use '-apid 0x<pid>' to specify a hex value.\0A Defaults to 0x67.\0A -pmt <pid> <pid> is the PID to output PMT data with.\0A Use '-pmt 0x<pid>' to specify a hex value.\0A Defaults to 0x66.\0A\0AThe default values for the various PIDs should suffice in most cases\0A\0AIf the audio stream being output is Dolby (AC-3), then the stream type\0Aused to output it differs for DVB (European) and ATSC (USA) data. It\0Amay be specified as follows:\0A\0A -dolby dvb Use stream type 0x06 (the default)\0A -dolby atsc Use stream type 0x81\0A\0AFinally, it is occasionally useful to tweak how often PAT/PMT are written,\0Aand how much padding the stream starts with:\0A\0A -prepeat <n> Output the program data (PAT/PMT) after every <n>\0A PS packs, to allow a TS reader to resynchronise\0A if it starts reading part way through the stream.\0A Defaults to 100.\0A -pad <n> Pad the start of the output stream with <n> filler\0A TS packets, to allow a TS reader time to byte align\0A with the datastream before any significant data\0A occurs. Defaults to 8.\0A\0A\00"
define void @print_help_ps() {
%1 = tail call i32 @print_msg(i8* getelementptr inbounds ([3151 x i8], [3151 x i8]* @.str, i64 0, i64 0))
ret void
}