gst-screencast.sh: flush on EOS to make videos usable in video editors
[experiments/gstreamer.git] / shell / gst-screencast.sh
index 243e556..e601a62 100755 (executable)
@@ -73,8 +73,9 @@ done
 [ -f "$1" ] && { echo "Error: file '${1}' already exists!" 1>&2; exit 2; }
 
 FILENAME="$1"
+shift
 
-if [ "x" = "x$2" ];
+if [ "x" = "x$1" ];
 then
   SHADOW_SIZE=0
   SHADOW_X_OFFSET=0
@@ -99,7 +100,7 @@ then
 
   XIMAGESRC_ARGS="startx=$(($X + $SHADOW_SIZE - $SHADOW_X_OFFSET)) starty=$(($Y + $SHADOW_SIZE - $SHADOW_Y_OFFSET)) endx=$(($X + $WIDTH - 1 - $SHADOW_SIZE - $SHADOW_X_OFFSET)) endy=$(($Y + $HEIGHT - 1 - $SHADOW_SIZE - $SHADOW_Y_OFFSET))"
 else
-  XIMAGESRC_ARGS="$2"
+  XIMAGESRC_ARGS="$@"
 fi
 
 if [ $SINGLE_SHOT -eq 1 ];
@@ -115,7 +116,7 @@ else
     AUDIO_PIPELINE="pulsesrc ! audioconvert ! audio/x-raw,rate=44100,channels=2 ! queue ! mux."
   fi
 
-  gst-launch-1.0 -v \
+  gst-launch-1.0 -v -e \
     matroskamux name=mux ! filesink location="$FILENAME" \
     ximagesrc use-damage=0 show-pointer=$SHOW_POINTER $XIMAGESRC_ARGS ! video/x-raw,framerate=25/1 ! \
     videoconvert ! videorate ! $VIDEO_CODEC ! queue ! mux. \