MPEG-2 and Streaming Updates

MPEG-2 and Streaming Updates
dev
Dave Crump 2017-02-19 17:08:08 +00:00 zatwierdzone przez GitHub
commit 8b869a4808
6 zmienionych plików z 227 dodań i 143 usunięć

Wyświetl plik

@ -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")

Wyświetl plik

@ -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"

Wyświetl plik

@ -1 +1 @@
201702110
201702190

Wyświetl plik

@ -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

Wyświetl plik

@ -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));

Wyświetl plik

@ -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