Is there a current Mplayer.sh for apid selection?
Commit Message
Lars Altenhain wrote:
> Hi,
>
> C.Y.M schrieb:
>
>> Since Mplayer 0.9.8, there was a new option to select the audio pid
>> during play back. There were a few patches floating around and the
>> one attached to this email is what I am currently using against the
>> current version of mplayer.sh. But, I am having a problem with this
>> patch as it sometimes selects the secondary audio track (which is
>> usually in a different language) and I am unable to get mplayer to use
>> the primary apid. I have attached this patch as reference, but there
>> is something still wrong with the audio selection. Does anyone have a
>> working solution?
>>
>> Best Regards,
>>
> This effect is due to the different numbering scheme for audio tracks in
> mpeg and avi files (avi: 1-99, mpeg: 0-31, see man mplayer). Some time
> ago I had posted a patch for the mplayer.sh in the forum on vdrportal.de
> (http://www.vdrportal.de/board/thread.php?postid=177058#post177058).
> This patch increases the AID variable by 1 if an avi file is detected.
> And it also checks if the selected audio track is available in the file.
> If the selected audio track number is not present in the file, the -aid
> parameter is not used in the mplayer command line. This patch is for an
> older version of the mplayer.sh file, so I think it doesn't apply
> without some small changes.
>
Thank you. I have created a new patch for mplayer.sh-0.8.6 using the information
kindly provided.
Best Regards,
Comments
C.Y.M wrote:
>> This effect is due to the different numbering scheme for audio tracks
>> in mpeg and avi files (avi: 1-99, mpeg: 0-31, see man mplayer). Some
>> time ago I had posted a patch for the mplayer.sh in the forum on
>> vdrportal.de
>> (http://www.vdrportal.de/board/thread.php?postid=177058#post177058).
>> This patch increases the AID variable by 1 if an avi file is detected.
>> And it also checks if the selected audio track is available in the
>> file. If the selected audio track number is not present in the file,
>> the -aid parameter is not used in the mplayer command line. This patch
>> is for an older version of the mplayer.sh file, so I think it doesn't
>> apply without some small changes.
>>
>
> Thank you. I have created a new patch for mplayer.sh-0.8.6 using the
> information kindly provided.
>
OK, sorry for all the confusion, but this patch still does not work correctly.
I have even hard-coded the AID variable to "0" in the mplayer.sh script and the
secondary audio track is still selected. I am only testing this against native
vdr files (not avi or mpegs). Perhaps there is something different about
playing native vdr files?
Best Regards,
C.Y.M.
@@ -265,7 +259,7 @@
# output: variable ORIG_X and ORIG_Y (global)
# variable definitions
- local TEMP1 MPLAYER_RETURN
+ local TEMP1 VALID_AID AVI_FORMAT MPLAYER_RETURN
ORIG_X=0; ORIG_Y=0
TEMP1=`$MPLAYER -identify -vo null -ao null -frames 0 "$FILE" 2>/dev/null | grep -i -e "^ID_"`
@@ -297,6 +291,19 @@
AUDIO_CODEC=`echo "$TEMP1"|grep ID_AUDIO_CODEC|cut -d"=" -f2`
debugmsg "parsed output for AUDIO_CODEC:" $AUDIO_CODEC
+ AVI_FORMAT=`file "$FILE" 2>/dev/null | grep -i -e "AVI"`
+ if test "$AVI_FORMAT" != ""; then
+ echolog "AVI format detected, increasing audiostreamid by 1"
+ AID=$(($AID+1))
+ fi
+
+ VALID_AID=`$MPLAYER -aid $AID -identify -vo null -ao null -frames 0 "$FILE" 2>/dev/null | grep -i -e "^ID_AUDIO"`
+
+ if test "$VALID_AID" == ""; then
+ echolog "selected audiostream not in file, using default"
+ AID=-1;
+ fi
+
return;
}
@@ -481,7 +488,8 @@
declare ORIG_FPS NEW_FPS ORIG_ASPECT VIDEO_FORMAT AUDIO_CODEC
declare CMDLINE AOUT REMOTE USERDEF SUFFIX
declare FILE="$1"
-declare SLAVE="$2"
+declare AID="$2"
+declare SLAVE="$3"
declare -a XResPAL[0]
declare -a XResNTSC[0]
declare FDSTR=""
@@ -552,6 +562,9 @@
fi
fi
+# small patch:
+if test $AID -gt 0; then CMDLINE="$CMDLINE -aid $AID"; fi
+
debugvar CMDLINE "$CMDLINE"
exec $CMDLINE "$FILE"
exit