Ticket #26454: patch-src-idvid.diff
File patch-src-idvid.diff, 4.6 KB (added by danielb@…, 14 years ago) |
---|
-
./src/idvid
old new 203 203 # (ID_V(ideo), ID_A(udio), and ID_L(ength)) 204 204 # Grep out special characters ()[ 205 205 # # put the VARS in a file 206 grep "^ID_[VAL]" < "$SCRATCH_FILE" | grep -v "[()\[]" | sed 's/$/"/;s/=/="/' > "$SCRATCH_FILE".vars206 grep "^ID_[VAL]" < "$SCRATCH_FILE" | grep -v "[()\[]" | gsed 's/$/"/;s/=/="/' > "$SCRATCH_FILE".vars 207 207 # source the file to set the variables 208 208 . "$SCRATCH_FILE".vars 209 209 # (If you've got a problem with eval, give me an alternative that … … 237 237 # Find out which channel is the video channel ( 1st ) 238 238 # TODO Do we want to worry about videos with multiple channels of video ? 239 239 VIDEO_INFO=$(grep "Video:" "$SCRATCH_FILE") 240 ID_VIDEO_TRACKS=( $( sed -r 's/.*Stream #([0-9]\.[0-9]+).*/\1/' <<< "$VIDEO_INFO") )240 ID_VIDEO_TRACKS=( $(gsed -r 's/.*Stream #([0-9]\.[0-9]+).*/\1/' <<< "$VIDEO_INFO") ) 241 241 ID_VIDEO_TRACK="${ID_VIDEO_TRACKS[0]}" 242 242 # Find out what audio channels are available 243 243 if test -n "$ID_AUDIO_ID"; then 244 244 AUDIO_INFO=$(grep "Audio:" "$SCRATCH_FILE") 245 245 # ID_AUDIO_ID needs "TRACKS" var to remain in columns 246 TRACKS=$( sed -r 's/.*Stream #([0-9]\.[0-9]+).*/\1/' <<< "$AUDIO_INFO")246 TRACKS=$(gsed -r 's/.*Stream #([0-9]\.[0-9]+).*/\1/' <<< "$AUDIO_INFO") 247 247 A_TRACKS=(${TRACKS//$'\n'/ }) 248 248 # Get hexadecimal track IDs, if present 249 249 if grep -q "\[0x[0-9a-fA-F]*]" <<< $AUDIO_INFO; then 250 HEX_TRACKS=$( sed -r 's/Stream .*\[0x([0-9a-fA-F]*)]:.*$/\1/' <<< "$AUDIO_INFO")250 HEX_TRACKS=$(gsed -r 's/Stream .*\[0x([0-9a-fA-F]*)]:.*$/\1/' <<< "$AUDIO_INFO") 251 251 HEX_TRACKS=(${HEX_TRACKS//$'\n'/ }) 252 252 USE_HEX_TRACKS=: 253 253 else … … 257 257 for ((i=0; i<${#A_TRACKS[@]}; i++)); do 258 258 CUR_CHAN=$(grep "Stream #${A_TRACKS[i]}" <<< "$AUDIO_INFO") 259 259 A_SAMPRATES=("${A_SAMPRATES[@]}" "$(echo $CUR_CHAN | \ 260 sed -r 's/.* ([0-9]+) Hz.*/\1/')")260 gsed -r 's/.* ([0-9]+) Hz.*/\1/')") 261 261 A_BITRATES=("${A_BITRATES[@]}" "$(echo $CUR_CHAN | \ 262 sed -r 's/.* ([0-9]+) kb\/s.*/\1/')")262 gsed -r 's/.* ([0-9]+) kb\/s.*/\1/')") 263 263 # make sure the above is a number, else set A_BITRATE to 0 264 264 if ! test_is_number ${A_BITRATES[i]}; then 265 265 A_BITRATES[i]=0 266 266 fi 267 267 A_CODECS=("${A_CODECS[@]}" "$(echo $CUR_CHAN | \ 268 sed -r 's/.*Audio: ([^,]+),.*/\1/')")268 gsed -r 's/.*Audio: ([^,]+),.*/\1/')") 269 269 if $USE_HEX_TRACKS; then 270 270 MP_TRACKNUM=$((16#${HEX_TRACKS[i]})) 271 271 else … … 296 296 if grep -q 5:1 <<< ${AUDIO_NCH[chn]}; then 297 297 ID_AUDIO_NCH[chn]=6 298 298 elif grep -q channels <<< ${AUDIO_NCH[chn]}; then 299 ID_AUDIO_NCH[chn]=$( sed -r 's/.* ([0-9]+) channels.*/\1/' \299 ID_AUDIO_NCH[chn]=$(gsed -r 's/.* ([0-9]+) channels.*/\1/' \ 300 300 <<< ${AUDIO_NCH[chn]}) 301 301 else 302 302 ID_AUDIO_NCH[chn]=2 … … 336 336 else 337 337 # Infer aspect ratio from width/height of mplayer playback 338 338 MPLAYER_RES=$(grep '^VO:' "$SCRATCH_FILE" | \ 339 sed -e "s/..*=> *//g" -e "s/ .*$//g")339 gsed -e "s/..*=> *//g" -e "s/ .*$//g") 340 340 #PLAY_WIDTH=$(echo $MPLAYER_RES | awk -F 'x' '{print $1}') 341 341 #PLAY_HEIGHT=$(echo $MPLAYER_RES | awk -F 'x' '{print $2}') 342 342 # patch from ML: … … 351 351 fi 352 352 # Normalized aspect ratio 353 353 V_ASPECT_RATIO=$(echo $V_ASPECT_WIDTH | \ 354 sed -r -e 's/([0-9]*)([0-9][0-9])/\1.\2:1/g')354 gsed -r -e 's/([0-9]*)([0-9][0-9])/\1.\2:1/g') 355 355 356 356 NAV_LOG="${INFILE}.nav_log" 357 357 USE_NAVLOG=false … … 414 414 fi 415 415 416 416 # Use mplayer-reported length as a last resort (truncate floating-point) 417 test -z $V_DURATION && V_DURATION=$(echo $ID_LENGTH | sed 's/\.[0-9]*//')417 test -z $V_DURATION && V_DURATION=$(echo $ID_LENGTH | gsed 's/\.[0-9]*//') 418 418 419 419 # TODO: WARN if video is less than one second! 420 420 … … 486 486 echo "V_ASPECT_WIDTH=$V_ASPECT_WIDTH" 487 487 echo "ID_VIDEO_FRAMES=$ID_VIDEO_FRAMES" 488 488 elif $TABULAR; then 489 FILE_SIZE=$( du -Dh "$INFILE" | awk '{print $1}')489 FILE_SIZE=$(gdu -Dh "$INFILE" | awk '{print $1}') 490 490 echo "$INFILE||$FILE_SIZE||${ID_VIDEO_WIDTH}x${ID_VIDEO_HEIGHT}||$ID_VIDEO_FPS||$ID_VIDEO_BITRATE||$ID_AUDIO_BITRATE" >> "$TABLE" 491 491 else 492 492 echo $SEPARATOR