kopia lustrzana https://github.com/F5OEO/rpidatv
commit
8b869a4808
243
scripts/a.sh
243
scripts/a.sh
|
@ -1,6 +1,8 @@
|
|||
#! /bin/bash
|
||||
# set -x #Uncomment for testing
|
||||
|
||||
# Version 201702190
|
||||
|
||||
############# SET GLOBAL VARIABLES ####################
|
||||
|
||||
PATHRPI="/home/pi/rpidatv/bin"
|
||||
|
@ -40,28 +42,27 @@ sudo killall tcanim >/dev/null 2>/dev/null
|
|||
# Kill netcat that night have been started for Express Srver
|
||||
sudo killall netcat >/dev/null 2>/dev/null
|
||||
sudo killall -9 netcat >/dev/null 2>/dev/null
|
||||
#---- Launch FBCP ----
|
||||
#sudo killall fbcp
|
||||
#fbcp &
|
||||
# ---------------
|
||||
#sudo killall uv4l
|
||||
|
||||
############ FUNCTION TO DETECT USB AUDIO DONGLE #############################
|
||||
|
||||
detect_audio()
|
||||
{
|
||||
devicea="/proc/asound/card1"
|
||||
if [ -e "$devicea" ]; then
|
||||
AUDIO_CARD=1
|
||||
else
|
||||
AUDIO_CARD=0
|
||||
fi
|
||||
devicea="/proc/asound/card1"
|
||||
if [ -e "$devicea" ]; then
|
||||
AUDIO_CARD=1
|
||||
else
|
||||
AUDIO_CARD=0
|
||||
fi
|
||||
|
||||
if [ "$AUDIO_CARD" == 1 ]; then
|
||||
echo Audio Card present
|
||||
else
|
||||
echo Audio Card Absent
|
||||
fi
|
||||
if [ "$AUDIO_CARD" == 1 ]; then
|
||||
echo Audio Card present
|
||||
else
|
||||
echo Audio Card Absent
|
||||
fi
|
||||
}
|
||||
|
||||
############ READ FROM rpidatvconfig.txt and Set PARAMETERS #######################
|
||||
|
||||
MODE_INPUT=$(get_config_var modeinput $CONFIGFILE)
|
||||
TSVIDEOFILE=$(get_config_var tsvideofile $CONFIGFILE)
|
||||
PATERNFILE=$(get_config_var paternfile $CONFIGFILE)
|
||||
|
@ -72,6 +73,11 @@ CHANNEL=$CALL"-rpidatv"
|
|||
FREQ_OUTPUT=$(get_config_var freqoutput $CONFIGFILE)
|
||||
BATC_OUTPUT=$(get_config_var batcoutput $CONFIGFILE)
|
||||
OUTPUT_BATC="-f flv rtmp://fms.batc.tv/live/"$BATC_OUTPUT"/"$BATC_OUTPUT
|
||||
|
||||
STREAM_URL=$(get_config_var streamurl $CONFIGFILE)
|
||||
STREAM_KEY=$(get_config_var streamkey $CONFIGFILE)
|
||||
OUTPUT_STREAM="-f flv "$STREAM_URL"/"$STREAM_KEY
|
||||
|
||||
MODE_OUTPUT=$(get_config_var modeoutput $CONFIGFILE)
|
||||
SYMBOLRATEK=$(get_config_var symbolrate $CONFIGFILE)
|
||||
GAIN=$(get_config_var rfpower $CONFIGFILE)
|
||||
|
@ -87,52 +93,71 @@ ANALOGCAMINPUT=$(get_config_var analogcaminput $CONFIGFILE)
|
|||
ANALOGCAMSTANDARD=$(get_config_var analogcamstandard $CONFIGFILE)
|
||||
VNCADDR=$(get_config_var vncaddr $CONFIGFILE)
|
||||
|
||||
#v4l2-ctl --overlay=0
|
||||
|
||||
|
||||
|
||||
detect_audio
|
||||
OUTPUT_IP=""
|
||||
|
||||
let SYMBOLRATE=SYMBOLRATEK*1000
|
||||
FEC=$(get_config_var fec $CONFIGFILE)
|
||||
let FECNUM=FEC
|
||||
let FECDEN=FEC+1
|
||||
|
||||
OUTPUT_IP=""
|
||||
#v4l2-ctl --overlay=0
|
||||
|
||||
detect_audio
|
||||
|
||||
######################### Pre-processing for each Output Mode ###############
|
||||
|
||||
case "$MODE_OUTPUT" in
|
||||
IP)
|
||||
FREQUENCY_OUT=0
|
||||
OUTPUT_IP="-n"$UDPOUTADDR":10000"
|
||||
#GAIN=0
|
||||
;;
|
||||
IQ)
|
||||
FREQUENCY_OUT=0
|
||||
OUTPUT=videots
|
||||
MODE=IQ
|
||||
$PATHSCRIPT"/ctlfilter.sh"
|
||||
$PATHSCRIPT"/ctlvco.sh"
|
||||
#GAIN=0
|
||||
;;
|
||||
QPSKRF)
|
||||
FREQUENCY_OUT=$FREQ_OUTPUT
|
||||
OUTPUT=videots
|
||||
MODE=RF
|
||||
;;
|
||||
BATC)
|
||||
#MODE_INPUT=BATC
|
||||
OUTPUT=$OUTPUT_BATC
|
||||
;;
|
||||
DIGITHIN)
|
||||
FREQUENCY_OUT=0
|
||||
OUTPUT=videots
|
||||
DIGITHIN_MODE=1
|
||||
MODE=DIGITHIN
|
||||
$PATHSCRIPT"/ctlfilter.sh"
|
||||
$PATHSCRIPT"/ctlvco.sh"
|
||||
#GAIN=0
|
||||
;;
|
||||
DTX1)
|
||||
|
||||
IQ)
|
||||
FREQUENCY_OUT=0
|
||||
OUTPUT=videots
|
||||
MODE=IQ
|
||||
$PATHSCRIPT"/ctlfilter.sh"
|
||||
$PATHSCRIPT"/ctlvco.sh"
|
||||
#GAIN=0
|
||||
;;
|
||||
|
||||
QPSKRF)
|
||||
FREQUENCY_OUT=$FREQ_OUTPUT
|
||||
OUTPUT=videots
|
||||
MODE=RF
|
||||
;;
|
||||
|
||||
BATC)
|
||||
# Set Output string "-f flv rtmp://fms.batc.tv/live/"$BATC_OUTPUT"/"$BATC_OUTPUT
|
||||
OUTPUT=$OUTPUT_BATC
|
||||
# If CAMH264 is selected, temporarily select CAMMPEG-2
|
||||
if [ "$MODE_INPUT" == "CAMH264" ]; then
|
||||
MODE_INPUT="CAMMPEG-2"
|
||||
fi
|
||||
# Temporarily set optimum symbol rate for BATC Streamer
|
||||
SYMBOLRATEK="400"
|
||||
let SYMBOLRATE=SYMBOLRATEK*1000
|
||||
;;
|
||||
|
||||
STREAMER)
|
||||
# Set Output string "-f flv "$STREAM_URL"/"$STREAM_KEY
|
||||
OUTPUT=$OUTPUT_STREAM
|
||||
# If CAMH264 is selected, temporarily select CAMMPEG-2
|
||||
if [ "$MODE_INPUT" == "CAMH264" ]; then
|
||||
MODE_INPUT="CAMMPEG-2"
|
||||
# Temporarily set optimum symbol rate for another Streamer
|
||||
SYMBOLRATEK="400"
|
||||
let SYMBOLRATE=SYMBOLRATEK*1000
|
||||
fi
|
||||
;;
|
||||
|
||||
DIGITHIN)
|
||||
FREQUENCY_OUT=0
|
||||
OUTPUT=videots
|
||||
DIGITHIN_MODE=1
|
||||
MODE=DIGITHIN
|
||||
$PATHSCRIPT"/ctlfilter.sh"
|
||||
$PATHSCRIPT"/ctlvco.sh"
|
||||
#GAIN=0
|
||||
;;
|
||||
|
||||
DTX1)
|
||||
MODE=PARALLEL
|
||||
FREQUENCY_OUT=2
|
||||
OUTPUT=videots
|
||||
|
@ -187,6 +212,13 @@ case "$MODE_OUTPUT" in
|
|||
# Make sure that carrier mode is off
|
||||
echo "set car off" >> /tmp/expctrl
|
||||
;;
|
||||
|
||||
IP)
|
||||
FREQUENCY_OUT=0
|
||||
OUTPUT_IP="-n"$UDPOUTADDR":10000"
|
||||
#GAIN=0
|
||||
;;
|
||||
|
||||
esac
|
||||
|
||||
#CALL="F5OEO"
|
||||
|
@ -277,8 +309,11 @@ case "$MODE_INPUT" in
|
|||
|
||||
case "$MODE_OUTPUT" in
|
||||
"BATC")
|
||||
# sudo nice -n -30 $PATHRPI"/ffmpeg" -i videots -y $OUTPUT_BATC &
|
||||
echo > null
|
||||
: # Do nothing
|
||||
# sudo nice -n -30 $PATHRPI"/ffmpeg" -i videots -y $OUTPUT_BATC &
|
||||
;;
|
||||
"STREAMER")
|
||||
: # Do nothing
|
||||
;;
|
||||
"IP")
|
||||
OUTPUT_FILE=""
|
||||
|
@ -317,15 +352,28 @@ case "$MODE_INPUT" in
|
|||
v4l2-ctl --set-fmt-overlay=left=0,top=0,width=$OVERLAY_VIDEO_WIDTH,height=$OVERLAY_VIDEO_HEIGHT
|
||||
v4l2-ctl -p $VIDEO_FPS
|
||||
let DELAY=(BITRATE_VIDEO*8)/10
|
||||
# If sound arrives first, decrease the numeric number to delay it
|
||||
# "-00:00:0.7" works well at SR1000 on IQ mode
|
||||
# "-00:00:1.0" works well at SR2000 on IQ mode
|
||||
ITS_OFFSET="-00:00:1.0"
|
||||
|
||||
case "$MODE_OUTPUT" in
|
||||
"BATC")
|
||||
# ffmpeg sends the stream directly to the BATC Server
|
||||
echo > null
|
||||
ITS_OFFSET="-00:00:5.0"
|
||||
#sudo nice -n -30 $PATHRPI"/ffmpeg" -i videots -y $OUTPUT_STREAM &
|
||||
sudo nice -n -30 $PATHRPI"/ffmpeg" -i videots -y -video_size 640x480\
|
||||
-b:v 500k -maxrate 700k -bufsize 2048k $OUTPUT_BATC &
|
||||
OUTPUT="videots"
|
||||
;;
|
||||
"STREAMER")
|
||||
ITS_OFFSET="-00:00:5.0"
|
||||
#sudo nice -n -30 $PATHRPI"/ffmpeg" -i videots -y $OUTPUT_STREAM &
|
||||
sudo nice -n -30 $PATHRPI"/ffmpeg" -i videots -y -video_size 640x480\
|
||||
-b:v 500k -maxrate 700k -bufsize 2048k $OUTPUT_STREAM &
|
||||
OUTPUT="videots"
|
||||
;;
|
||||
"IP")
|
||||
# ffmpeg sends the stream directly to the IP output
|
||||
echo > null
|
||||
: # Do nothing
|
||||
;;
|
||||
"DATVEXPRESS")
|
||||
echo "set ptt tx" >> /tmp/expctrl
|
||||
|
@ -337,12 +385,32 @@ case "$MODE_INPUT" in
|
|||
;;
|
||||
esac
|
||||
|
||||
# AUDIO_CARD=0
|
||||
|
||||
if [ "$AUDIO_CARD" == 0 ]; then
|
||||
# ******************************* MPEG-2 VIDEO WITH BEEP ************************************
|
||||
sudo $PATHRPI"/ffmpeg" -loglevel $MODE_DEBUG -itsoffset -00:00:0.2 -analyzeduration 0 -probesize 2048 -fpsprobesize 0 -re -ac 1 -f lavfi -thread_queue_size 512 -i "sine=frequency=500:beep_factor=4:sample_rate=48000:duration=3600" -f v4l2 -framerate $VIDEO_FPS -video_size "$VIDEO_WIDTH"x"$VIDEO_HEIGHT" -i /dev/video0 -fflags nobuffer -vcodec mpeg2video -s "$VIDEO_WIDTH"x"$VIDEO_HEIGHT" -aspect 4:3 -b:v $BITRATE_VIDEO -minrate:v $BITRATE_VIDEO -maxrate:v $BITRATE_VIDEO -f mpegts -blocksize 1880 -strict experimental -acodec mp2 -ab 64K -ar 48k -ac 1 -mpegts_original_network_id 1 -mpegts_transport_stream_id 1 -mpegts_service_id $SERVICEID -mpegts_pmt_start_pid $PIDPMT -mpegts_start_pid $PIDVIDEO -metadata service_provider=$CALL -metadata service_name=$CHANNEL -muxrate $BITRATE_TS -y $OUTPUT &
|
||||
sudo $PATHRPI"/ffmpeg" -loglevel $MODE_DEBUG -itsoffset -00:00:0.2\
|
||||
-analyzeduration 0 -probesize 2048 -fpsprobesize 0 -re -ac 1 -f lavfi -thread_queue_size 512\
|
||||
-i "sine=frequency=500:beep_factor=4:sample_rate=44100:duration=3600"\
|
||||
-f v4l2 -framerate $VIDEO_FPS -video_size "$VIDEO_WIDTH"x"$VIDEO_HEIGHT"\
|
||||
-i /dev/video0 -fflags nobuffer -vcodec mpeg2video -s "$VIDEO_WIDTH"x"$VIDEO_HEIGHT"\
|
||||
-aspect 4:3 -b:v $BITRATE_VIDEO -minrate:v $BITRATE_VIDEO -maxrate:v $BITRATE_VIDEO\
|
||||
-f mpegts -blocksize 1880 -strict experimental -acodec mp2 -ab 64K -ar 44100 -ac 1\
|
||||
-mpegts_original_network_id 1 -mpegts_transport_stream_id 1 -mpegts_service_id $SERVICEID\
|
||||
-mpegts_pmt_start_pid $PIDPMT -mpegts_start_pid $PIDVIDEO -metadata service_provider=$CALL\
|
||||
-metadata service_name=$CHANNEL -muxrate $BITRATE_TS -y $OUTPUT &
|
||||
else
|
||||
# ******************************* MPEG-2 VIDEO WITH AUDIO ************************************
|
||||
sudo nice -n -30 arecord -f S16_LE -r 48000 -c 1 -M -D hw:1 |sudo nice -n -30 $PATHRPI"/ffmpeg" -loglevel $MODE_DEBUG -itsoffset -00:00:0.8 -analyzeduration 0 -probesize 2048 -fpsprobesize 0 -ac 1 -thread_queue_size 512 -i - -f v4l2 -framerate $VIDEO_FPS -video_size "$VIDEO_WIDTH"x"$VIDEO_HEIGHT" -i /dev/video0 -fflags nobuffer -vcodec mpeg2video -s "$VIDEO_WIDTH"x"$VIDEO_HEIGHT" -aspect 4:3 -b:v $BITRATE_VIDEO -minrate:v $BITRATE_VIDEO -maxrate:v $BITRATE_VIDEO -f mpegts -blocksize 1880 -strict experimental -acodec mp2 -ab 64K -ar 48k -ac 1 -mpegts_original_network_id 1 -mpegts_transport_stream_id 1 -mpegts_service_id $SERVICEID -mpegts_pmt_start_pid $PIDPMT -mpegts_start_pid $PIDVIDEO -metadata service_provider=$CALL -metadata service_name=$CHANNEL -muxrate $BITRATE_TS -y $OUTPUT &
|
||||
sudo nice -n -30 arecord -f S16_LE -r 44100 -c 1 -M -D hw:1\
|
||||
|sudo nice -n -30 $PATHRPI"/ffmpeg" -loglevel $MODE_DEBUG -itsoffset "$ITS_OFFSET"\
|
||||
-analyzeduration 0 -probesize 2048 -fpsprobesize 0 -ac 1 -thread_queue_size 512\
|
||||
-i - -f v4l2 -framerate $VIDEO_FPS -video_size "$VIDEO_WIDTH"x"$VIDEO_HEIGHT"\
|
||||
-i /dev/video0 -fflags nobuffer -vcodec mpeg2video -s "$VIDEO_WIDTH"x"$VIDEO_HEIGHT"\
|
||||
-aspect 4:3 -b:v $BITRATE_VIDEO -minrate:v $BITRATE_VIDEO -maxrate:v $BITRATE_VIDEO\
|
||||
-f mpegts -blocksize 1880 -strict experimental -acodec mp2 -ab 64K -ar 44100 -ac 1\
|
||||
-mpegts_original_network_id 1 -mpegts_transport_stream_id 1 -mpegts_service_id $SERVICEID\
|
||||
-mpegts_pmt_start_pid $PIDPMT -mpegts_start_pid $PIDVIDEO -metadata service_provider=$CALL\
|
||||
-metadata service_name=$CHANNEL -muxrate $BITRATE_TS -y $OUTPUT &
|
||||
fi
|
||||
;;
|
||||
|
||||
|
@ -397,33 +465,36 @@ $PATHRPI"/avc2ts" -b $BITRATE_VIDEO -m $BITRATE_TS -x $VIDEO_WIDTH -y $VIDEO_HEI
|
|||
#============================================ ANALOG =============================================================
|
||||
"ANALOGCAM")
|
||||
|
||||
if [ "$ANALOGCAMINPUT" != "-" ]; then
|
||||
v4l2-ctl -d $ANALOGCAMNAME "--set-input="$ANALOGCAMINPUT
|
||||
fi
|
||||
if [ "$ANALOGCAMINPUT" != "-" ]; then
|
||||
v4l2-ctl -d $ANALOGCAMNAME "--set-input="$ANALOGCAMINPUT
|
||||
fi
|
||||
if [ "$ANALOGCAMSTANDARD" != "-" ]; then
|
||||
v4l2-ctl -d $ANALOGCAMNAME "--set-standard="$ANALOGCAMSTANDARD
|
||||
fi
|
||||
|
||||
if [ "$ANALOGCAMSTANDARD" != "-" ]; then
|
||||
v4l2-ctl -d $ANALOGCAMNAME "--set-standard="$ANALOGCAMSTANDARD
|
||||
fi
|
||||
sudo modprobe -r bcm2835_v4l2
|
||||
|
||||
sudo modprobe -r bcm2835_v4l2
|
||||
case "$MODE_OUTPUT" in
|
||||
"BATC")
|
||||
sudo nice -n -30 $PATHRPI"/ffmpeg" -loglevel $MODE_DEBUG -i videots -y $OUTPUT_BATC &
|
||||
case "$MODE_OUTPUT" in
|
||||
"BATC")
|
||||
# sudo nice -n -30 $PATHRPI"/ffmpeg" -loglevel $MODE_DEBUG -i videots -y $OUTPUT_BATC &
|
||||
sudo nice -n 0 $PATHRPI"/ffmpeg" -i videots -y $OUTPUT_BATC &
|
||||
OUTPUT_FILE="videots"
|
||||
;;
|
||||
"IP")
|
||||
OUTPUT_FILE=""
|
||||
;;
|
||||
"DATVEXPRESS")
|
||||
echo "set ptt tx" >> /tmp/expctrl
|
||||
sudo nice -n -30 netcat -u -4 127.0.0.1 1314 < videots &
|
||||
;;
|
||||
*)
|
||||
sudo $PATHRPI"/rpidatv" -i videots -s $SYMBOLRATE_K -c $FECNUM"/"$FECDEN -f $FREQUENCY_OUT -p $GAIN -m $MODE -x $PIN_I -y $PIN_Q &
|
||||
;;
|
||||
esac
|
||||
|
||||
$PATHRPI"/avc2ts" -b $BITRATE_VIDEO -m $BITRATE_TS -x $VIDEO_WIDTH -y $VIDEO_HEIGHT\
|
||||
-f $VIDEO_FPS -i 100 $OUTPUT_FILE -t 2 -e $ANALOGCAMNAME -p $PIDPMT -s $CHANNEL $OUTPUT_IP &
|
||||
;;
|
||||
"IP")
|
||||
OUTPUT_FILE=""
|
||||
;;
|
||||
"DATVEXPRESS")
|
||||
echo "set ptt tx" >> /tmp/expctrl
|
||||
sudo nice -n -30 netcat -u -4 127.0.0.1 1314 < videots &
|
||||
;;
|
||||
*)
|
||||
sudo $PATHRPI"/rpidatv" -i videots -s $SYMBOLRATE_K -c $FECNUM"/"$FECDEN -f $FREQUENCY_OUT -p $GAIN -m $MODE -x $PIN_I -y $PIN_Q &;;
|
||||
esac
|
||||
|
||||
$PATHRPI"/avc2ts" -b $BITRATE_VIDEO -m $BITRATE_TS -x $VIDEO_WIDTH -y $VIDEO_HEIGHT -f $VIDEO_FPS -i 100 $OUTPUT_FILE -t 2 -e $ANALOGCAMNAME -p $PIDPMT -s $CHANNEL $OUTPUT_IP &
|
||||
|
||||
;;
|
||||
|
||||
#============================================ DESKTOP =============================================================
|
||||
"DESKTOP")
|
||||
|
|
|
@ -20,9 +20,9 @@ StrInputSetupVNC="Show PC Desktop via VNC"
|
|||
StrInputSetupVNCName="IP of PC using VNC (password datv)"
|
||||
StrInputSetupVNCTitle="VNC setup"
|
||||
StrInputSetupDESKTOP="Show Touchscreen or Raspberry Pi Display"
|
||||
StrPIN_IContext="I GPIO {12,18,40} (12 is default:pin32)"
|
||||
StrPIN_IContext="I GPIO {12,18,40} (12 is default for Portsdown: pin32)"
|
||||
StrPIN_ITitle="I output GPIO"
|
||||
StrPIN_QContext="Q GPIO {13,19,41}(13 is defaut:pin33)"
|
||||
StrPIN_QContext="Q GPIO {13,19,41} (13 is default for Portsdown: pin33)"
|
||||
StrPIN_QTitle="Q output GPIO"
|
||||
|
||||
######## CALL MENU ###################"
|
||||
|
@ -36,11 +36,11 @@ StrLocatorTitle="Locator"
|
|||
StrOutputSetupTitle="Output type"
|
||||
StrOutputSetupContext="Press down/up arrows to move, space to select"
|
||||
StrOutputSetupIQ="IQ output for Portsdown filter modulator board"
|
||||
StrOutputSetupRF="UGLY Test Mode. No modulator required."
|
||||
StrOutputSetupRF="UGLY Test Mode. RF from pin 32. No modulator required."
|
||||
StrOutputSetupBATC="Stream to BATC.TV"
|
||||
StrOutputSetupDigithin="Use Digithin Modulator Card"
|
||||
StrOutputSetupDTX1="Use DTX1 TS Extender Card"
|
||||
StrOutputSetupDATVExpress="DatvExpress"
|
||||
StrOutputSetupDATVExpress="Use DATV Express connected by USB"
|
||||
StrOutputSetupIP="Transmit on IP network"
|
||||
StrOutputSetupIPTSOUTName="IP address: 230.0.0.1 for example"
|
||||
StrOutputSetupIPTSOUTTitle="Output network setup"
|
||||
|
|
|
@ -1 +1 @@
|
|||
201702110
|
||||
201702190
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Version 201702190
|
||||
|
||||
############ Set Environment Variables ###############
|
||||
|
||||
PATHSCRIPT=/home/pi/rpidatv/scripts
|
||||
|
@ -359,17 +361,17 @@ do_output_setup_mode()
|
|||
DIGITHIN)
|
||||
Radio5=ON
|
||||
;;
|
||||
DTX1)
|
||||
# DTX1)
|
||||
# Radio6=ON
|
||||
# ;;
|
||||
DATVEXPRESS)
|
||||
Radio6=ON
|
||||
;;
|
||||
DATVEXPRESS)
|
||||
IP)
|
||||
Radio7=ON
|
||||
;;
|
||||
IP)
|
||||
Radio8=ON
|
||||
;;
|
||||
*)
|
||||
Radio9=ON
|
||||
Radio8=ON
|
||||
;;
|
||||
esac
|
||||
|
||||
|
@ -380,9 +382,8 @@ do_output_setup_mode()
|
|||
"BATC" "$StrOutputSetupBATC" $Radio3 \
|
||||
"STREAMER" "Stream to other Streaming Facility" $Radio4 \
|
||||
"DIGITHIN" "$StrOutputSetupDigithin" $Radio5 \
|
||||
"DTX1" "$StrOutputSetupDTX1" $Radio6 \
|
||||
"DATVEXPRESS" "$StrOutputSetupDATVExpress" $Radio7 \
|
||||
"IP" "$StrOutputSetupIP" $Radio8 3>&2 2>&1 1>&3)
|
||||
"DATVEXPRESS" "$StrOutputSetupDATVExpress" $Radio6 \
|
||||
"IP" "$StrOutputSetupIP" $Radio7 3>&2 2>&1 1>&3)
|
||||
|
||||
if [ $? -eq 0 ]; then
|
||||
case "$choutput" in
|
||||
|
@ -414,9 +415,9 @@ do_output_setup_mode()
|
|||
fi
|
||||
;;
|
||||
STREAMER)
|
||||
whiptail --title "Not implemented yet" --msgbox "Not Implemented yet. Please press enter to continue" 8 78
|
||||
STREAM_URL=$(get_config_var streamurl $CONFIGFILE)
|
||||
STREAM=$(whiptail --inputbox "Enter the stream URL" 8 78 $STREAM_URL --title "Enter other Stream Details" 3>&1 1>&2 2>&3)
|
||||
STREAM=$(whiptail --inputbox "Enter the stream URL: rtmp://server.tld/folder" 8 78\
|
||||
$STREAM_URL --title "Enter other Stream Details" 3>&1 1>&2 2>&3)
|
||||
if [ $? -eq 0 ]; then
|
||||
set_config_var streamurl "$STREAM" $CONFIGFILE
|
||||
fi
|
||||
|
@ -440,8 +441,8 @@ do_output_setup_mode()
|
|||
FREQ_OUTPUT=$(get_config_var freqoutput $CONFIGFILE)
|
||||
sudo ./si570 -f $FREQ_OUTPUT -m off
|
||||
;;
|
||||
DTX1) ;;
|
||||
|
||||
#DTX1)
|
||||
#;;
|
||||
DATVEXPRESS)
|
||||
echo "Starting the DATV Express Server. Please wait."
|
||||
if pgrep -x "express_server" > /dev/null; then
|
||||
|
@ -584,15 +585,15 @@ menuchoice=$(whiptail --title "$StrOutputTitle" --menu "$StrOutputContext" 16 78
|
|||
|
||||
do_transmit()
|
||||
{
|
||||
# Call a.sh in a an additional process to start the transmitter
|
||||
# Call a.sh in an additional process to start the transmitter
|
||||
$PATHSCRIPT"/a.sh" >/dev/null 2>/dev/null &
|
||||
|
||||
# do_status was called here
|
||||
|
||||
# Wait here transmitting until user presses a key
|
||||
|
||||
# Not sure about this
|
||||
do_display_on
|
||||
# Start the Viewfinder display if user sets it on
|
||||
if [ "$V_FINDER" == "on" ]; then
|
||||
do_display_on
|
||||
else
|
||||
do_display_off
|
||||
fi
|
||||
|
||||
# Wait here transmitting until user presses a key
|
||||
whiptail --title "$StrStatusTitle" --msgbox "$INFO" 8 78
|
||||
|
@ -899,6 +900,7 @@ do_EasyCap()
|
|||
|
||||
do_audio_switch()
|
||||
{
|
||||
whiptail --title "Not implemented yet" --msgbox "Not Implemented yet. Please press enter to continue" 8 78
|
||||
AUDIO=$(get_config_var audio $CONFIGFILE)
|
||||
case "$AUDIO" in
|
||||
usb)
|
||||
|
@ -919,8 +921,6 @@ do_audio_switch()
|
|||
if [ $? -eq 0 ]; then ## If the selection has changed
|
||||
set_config_var audio "$AUDIO" $CONFIGFILE
|
||||
fi
|
||||
|
||||
whiptail --title "Not implemented yet" --msgbox "Not Implemented yet. Please press enter to continue" 8 78
|
||||
}
|
||||
|
||||
do_Update()
|
||||
|
@ -1326,10 +1326,8 @@ do_numbers()
|
|||
|
||||
do_vfinder()
|
||||
{
|
||||
whiptail --title "Not implemented yet" --msgbox "Not Implemented yet. Please press enter to continue" 8 78
|
||||
|
||||
VFINDER=$(get_config_var vfinder $CONFIGFILE)
|
||||
case "$VFINDER" in
|
||||
V_FINDER=$(get_config_var vfinder $CONFIGFILE)
|
||||
case "$V_FINDER" in
|
||||
on)
|
||||
Radio1=ON
|
||||
Radio2=OFF
|
||||
|
@ -1339,17 +1337,15 @@ do_vfinder()
|
|||
Radio2=ON
|
||||
esac
|
||||
|
||||
VFINDER=$(whiptail --title "SET VIEWFINDER ON OR OFF" --radiolist \
|
||||
V_FINDER=$(whiptail --title "SET VIEWFINDER ON OR OFF" --radiolist \
|
||||
"Select one" 20 78 8 \
|
||||
"on" "Transmitted image displayed on Touchscreen" $Radio1 \
|
||||
"off" "Buttons displayed on touchscreen during transmit" $Radio2 \
|
||||
3>&2 2>&1 1>&3)
|
||||
|
||||
if [ $? -eq 0 ]; then ## If the selection has changed
|
||||
set_config_var vfinder "$VFINDER" $CONFIGFILE
|
||||
set_config_var vfinder "$V_FINDER" $CONFIGFILE
|
||||
fi
|
||||
|
||||
whiptail --title "Not implemented yet" --msgbox "Not Implemented yet. Please press enter to continue" 8 78
|
||||
}
|
||||
|
||||
do_beta()
|
||||
|
@ -1376,8 +1372,6 @@ do_beta()
|
|||
if [ $? -eq 0 ]; then ## If the selection has changed
|
||||
set_config_var beta "$BETA" $CONFIGFILE
|
||||
fi
|
||||
|
||||
whiptail --title "Not implemented yet" --msgbox "Not Implemented yet. Please press enter to continue" 8 78
|
||||
}
|
||||
|
||||
do_system_setup()
|
||||
|
@ -1541,6 +1535,8 @@ FREQ_OUTPUT=$(get_config_var freqoutput $CONFIGFILE)
|
|||
GAIN_OUTPUT=$(get_config_var rfpower $CONFIGFILE)
|
||||
let FECNUM=FEC
|
||||
let FECDEN=FEC+1
|
||||
V_FINDER=$(get_config_var vfinder $CONFIGFILE)
|
||||
|
||||
INFO=$CALL":"$MODE_INPUT"-->"$MODE_OUTPUT"("$SYMBOLRATEK"KSymbol FEC "$FECNUM"/"$FECDEN") on "$FREQ_OUTPUT"Mhz"
|
||||
|
||||
do_transmit
|
||||
|
@ -1610,6 +1606,7 @@ while [ "$status" -eq 0 ]
|
|||
let FECNUM=FEC
|
||||
let FECDEN=FEC+1
|
||||
INFO=$CALL":"$MODE_INPUT"-->"$MODE_OUTPUT"("$SYMBOLRATEK"KSymbol FEC "$FECNUM"/"$FECDEN") on "$FREQ_OUTPUT"Mhz"
|
||||
V_FINDER=$(get_config_var vfinder $CONFIGFILE)
|
||||
|
||||
# Display main menu
|
||||
|
||||
|
|
|
@ -76,7 +76,7 @@ char ModeOutput[255];
|
|||
|
||||
// Values to be stored in and read from rpidatvconfig.txt:
|
||||
|
||||
int TabSR[5]= {125,333,1000,2000,4000};
|
||||
int TabSR[5]={125,333,1000,2000,4000};
|
||||
int TabFec[5]={1,2,3,5,7};
|
||||
char TabModeInput[5][255]={"CAMMPEG-2","CAMH264","PATERNAUDIO","ANALOGCAM","CARRIER"};
|
||||
char TabFreq[5][255]={"71","146.5","437","1249","1255"};
|
||||
|
@ -357,12 +357,12 @@ int getTouchScreenDetails(int *screenXmin,int *screenXmax,int *screenYmin,int *s
|
|||
if ((k < 3) || abs[k]){
|
||||
printf(" %s %6d\n", absval[k], abs[k]);
|
||||
if (j == 0){
|
||||
if (absval[k] == "Min ") *screenXmin = abs[k];
|
||||
if (absval[k] == "Max ") *screenXmax = abs[k];
|
||||
if ((strcmp(absval[k],"Min ")==0)) *screenXmin = abs[k];
|
||||
if ((strcmp(absval[k],"Max ")==0)) *screenXmax = abs[k];
|
||||
}
|
||||
if (j == 1){
|
||||
if (absval[k] == "Min ") *screenYmin = abs[k];
|
||||
if (absval[k] == "Max ") *screenYmax = abs[k];
|
||||
if ((strcmp(absval[k],"Min ")==0)) *screenYmin = abs[k];
|
||||
if ((strcmp(absval[k],"Max ")==0)) *screenYmax = abs[k];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -501,20 +501,25 @@ void SelectPTT(int NoButton,int Status) // TX/RX
|
|||
|
||||
void TransmitStart()
|
||||
{
|
||||
printf("Transmit Start\n");
|
||||
|
||||
#define PATH_SCRIPT_A "sudo /home/pi/rpidatv/scripts/a.sh >/dev/null 2>/dev/null"
|
||||
if((strcmp(ModeInput,TabModeInput[0])==0)||(strcmp(ModeInput,TabModeInput[1])==0)) //CAM
|
||||
{
|
||||
printf("DISPLAY OFF \n");
|
||||
IsDisplayOn=0;
|
||||
finish();
|
||||
|
||||
system("v4l2-ctl --overlay=1 >/dev/null 2>/dev/null");
|
||||
}
|
||||
|
||||
system(PATH_SCRIPT_A);
|
||||
printf("Transmit Start\n");
|
||||
|
||||
char Param[255];
|
||||
char Value[255];
|
||||
#define PATH_SCRIPT_A "sudo /home/pi/rpidatv/scripts/a.sh >/dev/null 2>/dev/null"
|
||||
// Check if camera selected
|
||||
if((strcmp(ModeInput,TabModeInput[0])==0)||(strcmp(ModeInput,TabModeInput[1])==0))
|
||||
{
|
||||
// Start the viewfinder if required
|
||||
strcpy(Param,"vfinder");
|
||||
GetConfigParam(PATH_CONFIG,Param,Value);
|
||||
if(strcmp(Value,"on")==0)
|
||||
{
|
||||
IsDisplayOn=0;
|
||||
finish();
|
||||
system("v4l2-ctl --overlay=1 >/dev/null 2>/dev/null");
|
||||
}
|
||||
}
|
||||
system(PATH_SCRIPT_A);
|
||||
}
|
||||
|
||||
void TransmitStop()
|
||||
|
@ -539,6 +544,7 @@ void TransmitStop()
|
|||
system(expressrx);
|
||||
}
|
||||
|
||||
// Kill netcat as used by DATV Express
|
||||
system("sudo killall netcat >/dev/null 2>/dev/null");
|
||||
|
||||
// Kill the key processes as nicely as possible
|
||||
|
@ -546,6 +552,8 @@ void TransmitStop()
|
|||
system("sudo killall ffmpeg >/dev/null 2>/dev/null");
|
||||
system("sudo killall tcanim >/dev/null 2>/dev/null");
|
||||
system("sudo killall avc2ts >/dev/null 2>/dev/null");
|
||||
|
||||
// Turn the Viewfinder off
|
||||
system("v4l2-ctl --overlay=0 >/dev/null 2>/dev/null");
|
||||
|
||||
// Then pause and make sure that avc2ts has really been stopped (needed at high SRs)
|
||||
|
@ -583,11 +591,12 @@ void *DisplayFFT(void * arg)
|
|||
|
||||
while(FinishedButton==0)
|
||||
{
|
||||
int Nbread; // value set later but not used
|
||||
//int Nbread; // value set later but not used
|
||||
//int log2_N=11; //FFT 1024 not used?
|
||||
//int ret; // not used?
|
||||
|
||||
Nbread=fread( fftin,sizeof(fftwf_complex),FFT_SIZE,pFileIQ);
|
||||
//Nbread=fread( fftin,sizeof(fftwf_complex),FFT_SIZE,pFileIQ);
|
||||
fread( fftin,sizeof(fftwf_complex),FFT_SIZE,pFileIQ);
|
||||
fftwf_execute( plan );
|
||||
|
||||
//printf("NbRead %d %d\n",Nbread,sizeof(struct GPU_FFT_COMPLEX));
|
||||
|
|
|
@ -1,3 +1,10 @@
|
|||
201702190
|
||||
Added streaming from PiCam with sound to BATC Streamer
|
||||
Added streaming from PiCam with sound to any other FMLE streamer
|
||||
Optimised MPEG-2 with sound from PiCam for IQ and DATV Express outputs
|
||||
Optimised H264 (no sound) from Analog for IQ and DATV Express outputs
|
||||
Added option to not display viewfinder on LCD (saves CPU capacity)
|
||||
|
||||
201702110
|
||||
Bug fix for update of DATV Express
|
||||
Bug fix for Express levels in Menu
|
||||
|
|
Ładowanie…
Reference in New Issue