summaryrefslogtreecommitdiffstats
path: root/libmpcodecs
diff options
context:
space:
mode:
Diffstat (limited to 'libmpcodecs')
-rw-r--r--libmpcodecs/ad.h2
-rw-r--r--libmpcodecs/ad_acm.c5
-rw-r--r--libmpcodecs/ad_dmo.c3
-rw-r--r--libmpcodecs/ad_dshow.c3
-rw-r--r--libmpcodecs/ad_dvdpcm.c3
-rw-r--r--libmpcodecs/ad_faad.c2
-rw-r--r--libmpcodecs/ad_ffmpeg.c26
-rw-r--r--libmpcodecs/ad_hwac3.c3
-rw-r--r--libmpcodecs/ad_hwmpa.c1
-rw-r--r--libmpcodecs/ad_liba52.c1
-rw-r--r--libmpcodecs/ad_libdv.c3
-rw-r--r--libmpcodecs/ad_libmad.c2
-rw-r--r--libmpcodecs/ad_msadpcm.c2
-rw-r--r--libmpcodecs/ad_pcm.c230
-rw-r--r--libmpcodecs/ad_qtaudio.c2
-rw-r--r--libmpcodecs/ad_realaud.c41
-rw-r--r--libmpcodecs/ad_sample.c2
-rw-r--r--libmpcodecs/ad_twin.c1
-rw-r--r--libmpcodecs/ae_lame.c184
-rw-r--r--libmpcodecs/ae_lavc.c48
-rw-r--r--libmpcodecs/dec_audio.c71
-rw-r--r--libmpcodecs/dec_teletext.c7
-rw-r--r--libmpcodecs/dec_video.c616
-rw-r--r--libmpcodecs/dec_video.h3
-rw-r--r--libmpcodecs/img_format.c2
-rw-r--r--libmpcodecs/mp_image.h2
-rw-r--r--libmpcodecs/vd.c476
-rw-r--r--libmpcodecs/vd.h14
-rw-r--r--libmpcodecs/vd_dmo.c9
-rw-r--r--libmpcodecs/vd_dshow.c9
-rw-r--r--libmpcodecs/vd_ffmpeg.c324
-rw-r--r--libmpcodecs/vd_ijpg.c2
-rw-r--r--libmpcodecs/vd_libmpeg2.c4
-rw-r--r--libmpcodecs/vd_realvid.c23
-rw-r--r--libmpcodecs/vd_theora.c3
-rw-r--r--libmpcodecs/vd_vfw.c3
-rw-r--r--libmpcodecs/vd_xanim.c31
-rw-r--r--libmpcodecs/ve.c4
-rw-r--r--libmpcodecs/ve_lavc.c9
-rw-r--r--libmpcodecs/ve_nuv.c2
-rw-r--r--libmpcodecs/ve_raw.c3
-rw-r--r--libmpcodecs/ve_vfw.c13
-rw-r--r--libmpcodecs/vf.c95
-rw-r--r--libmpcodecs/vf.h24
-rw-r--r--libmpcodecs/vf_ass.c143
-rw-r--r--libmpcodecs/vf_crop.c8
-rw-r--r--libmpcodecs/vf_cropdetect.c3
-rw-r--r--libmpcodecs/vf_divtc.c2
-rw-r--r--libmpcodecs/vf_expand.c49
-rw-r--r--libmpcodecs/vf_filmdint.c5
-rw-r--r--libmpcodecs/vf_fixpts.c1
-rw-r--r--libmpcodecs/vf_format.c1
-rw-r--r--libmpcodecs/vf_framestep.c3
-rw-r--r--libmpcodecs/vf_geq.c4
-rw-r--r--libmpcodecs/vf_gradfun.c2
-rw-r--r--libmpcodecs/vf_lavc.c5
-rw-r--r--libmpcodecs/vf_lavcdeint.c1
-rw-r--r--libmpcodecs/vf_mcdeint.c5
-rw-r--r--libmpcodecs/vf_noformat.c1
-rw-r--r--libmpcodecs/vf_palette.c3
-rw-r--r--libmpcodecs/vf_pp.c33
-rw-r--r--libmpcodecs/vf_qp.c2
-rw-r--r--libmpcodecs/vf_scale.c6
-rw-r--r--libmpcodecs/vf_spp.c5
-rw-r--r--libmpcodecs/vf_test.c3
-rw-r--r--libmpcodecs/vf_tfields.c27
-rw-r--r--libmpcodecs/vf_tile.c5
-rw-r--r--libmpcodecs/vf_vo.c106
-rw-r--r--libmpcodecs/vf_yadif.c10
-rw-r--r--libmpcodecs/vf_yvu9.c3
70 files changed, 1421 insertions, 1328 deletions
diff --git a/libmpcodecs/ad.h b/libmpcodecs/ad.h
index 1fa94d2e9e..9b1daf9e48 100644
--- a/libmpcodecs/ad.h
+++ b/libmpcodecs/ad.h
@@ -25,7 +25,7 @@
typedef mp_codec_info_t ad_info_t;
/* interface of video decoder drivers */
-typedef struct ad_functions_s
+typedef struct ad_functions
{
const ad_info_t *info;
int (*preinit)(sh_audio_t *sh);
diff --git a/libmpcodecs/ad_acm.c b/libmpcodecs/ad_acm.c
index b179515754..46af4fae7d 100644
--- a/libmpcodecs/ad_acm.c
+++ b/libmpcodecs/ad_acm.c
@@ -22,7 +22,6 @@
#include "config.h"
#include "mp_msg.h"
-#include "help_mp.h"
#include "libmpdemux/aviprint.h"
#include "loader/wineacm.h"
@@ -75,7 +74,7 @@ static int preinit(sh_audio_t *sh_audio)
priv->o_wf = malloc(sizeof(WAVEFORMATEX));
if (!priv->o_wf)
{
- mp_msg(MSGT_DECAUDIO,MSGL_ERR,MSGTR_ACMiniterror);
+ mp_tmsg(MSGT_DECAUDIO,MSGL_ERR,"Could not load/initialize Win32/ACM audio codec (missing DLL file?).\n");
return 0;
}
@@ -106,7 +105,7 @@ static int preinit(sh_audio_t *sh_audio)
else
mp_msg(MSGT_WIN32, MSGL_ERR, "ACM_Decoder: acmStreamOpen error: %d\n",
(int)ret);
- mp_msg(MSGT_DECAUDIO,MSGL_ERR,MSGTR_ACMiniterror);
+ mp_tmsg(MSGT_DECAUDIO,MSGL_ERR,"Could not load/initialize Win32/ACM audio codec (missing DLL file?).\n");
return 0;
}
mp_msg(MSGT_WIN32, MSGL_V, "Audio codec opened OK! ;-)\n");
diff --git a/libmpcodecs/ad_dmo.c b/libmpcodecs/ad_dmo.c
index d89e9d646c..1501c21078 100644
--- a/libmpcodecs/ad_dmo.c
+++ b/libmpcodecs/ad_dmo.c
@@ -22,7 +22,6 @@
#include "config.h"
#include "mp_msg.h"
-#include "help_mp.h"
#include "ad_internal.h"
#include "libaf/reorder_ch.h"
@@ -52,7 +51,7 @@ static int preinit(sh_audio_t *sh_audio)
audio_output_channels : (sh_audio->wf->nChannels>=2 ? 2 : 1);
if(!(ds_adec=DMO_AudioDecoder_Open(sh_audio->codec->dll,&sh_audio->codec->guid,sh_audio->wf,chans)))
{
- mp_msg(MSGT_DECAUDIO,MSGL_ERR,MSGTR_MissingDLLcodec,sh_audio->codec->dll);
+ mp_tmsg(MSGT_DECAUDIO,MSGL_ERR,"ERROR: Could not open required DirectShow codec %s.\n",sh_audio->codec->dll);
return 0;
}
sh_audio->i_bps=sh_audio->wf->nAvgBytesPerSec;
diff --git a/libmpcodecs/ad_dshow.c b/libmpcodecs/ad_dshow.c
index e88ed0c2fa..8fb94660a4 100644
--- a/libmpcodecs/ad_dshow.c
+++ b/libmpcodecs/ad_dshow.c
@@ -22,7 +22,6 @@
#include "config.h"
#include "mp_msg.h"
-#include "help_mp.h"
#include "ad_internal.h"
@@ -49,7 +48,7 @@ static int preinit(sh_audio_t *sh_audio)
DS_AudioDecoder* ds_adec;
if(!(ds_adec=DS_AudioDecoder_Open(sh_audio->codec->dll,&sh_audio->codec->guid,sh_audio->wf)))
{
- mp_msg(MSGT_DECAUDIO,MSGL_ERR,MSGTR_MissingDLLcodec,sh_audio->codec->dll);
+ mp_tmsg(MSGT_DECAUDIO,MSGL_ERR,"ERROR: Could not open required DirectShow codec %s.\n",sh_audio->codec->dll);
return 0;
}
sh_audio->i_bps=sh_audio->wf->nAvgBytesPerSec;
diff --git a/libmpcodecs/ad_dvdpcm.c b/libmpcodecs/ad_dvdpcm.c
index b0bb169d95..41f6a1426d 100644
--- a/libmpcodecs/ad_dvdpcm.c
+++ b/libmpcodecs/ad_dvdpcm.c
@@ -22,7 +22,6 @@
#include "config.h"
#include "mp_msg.h"
-#include "help_mp.h"
#include "ad_internal.h"
static const ad_info_t info =
@@ -56,7 +55,7 @@ static int init(sh_audio_t *sh)
sh->samplesize = 2;
break;
case 1:
- mp_msg(MSGT_DECAUDIO, MSGL_INFO, MSGTR_SamplesWanted);
+ mp_tmsg(MSGT_DECAUDIO, MSGL_INFO, "Samples of this format are needed to improve support. Please contact the developers.\n");
sh->i_bps = sh->channels * sh->samplerate * 5 / 2;
case 2:
sh->sample_format = AF_FORMAT_S24_BE;
diff --git a/libmpcodecs/ad_faad.c b/libmpcodecs/ad_faad.c
index 4f62765257..14fe9a6280 100644
--- a/libmpcodecs/ad_faad.c
+++ b/libmpcodecs/ad_faad.c
@@ -172,7 +172,7 @@ static int init(sh_audio_t *sh)
sh->samplesize=2;
//sh->o_bps = sh->samplesize*faac_channels*faac_samplerate;
if(!sh->i_bps) {
- mp_msg(MSGT_DECAUDIO,MSGL_WARN,"FAAD: compressed input bitrate missing, assuming 128kbit/s!\n");
+ mp_msg(MSGT_DECAUDIO, MSGL_V, "FAAD: compressed input bitrate missing, assuming 128kbit/s!\n");
sh->i_bps = 128*1000/8; // XXX: HACK!!! ::atmos
} else
mp_msg(MSGT_DECAUDIO,MSGL_V,"FAAD: got %dkbit/s bitrate from MP4 header!\n",sh->i_bps*8/1000);
diff --git a/libmpcodecs/ad_ffmpeg.c b/libmpcodecs/ad_ffmpeg.c
index 9d1b8356ad..c954fb2311 100644
--- a/libmpcodecs/ad_ffmpeg.c
+++ b/libmpcodecs/ad_ffmpeg.c
@@ -22,7 +22,6 @@
#include "config.h"
#include "mp_msg.h"
-#include "help_mp.h"
#include "ad_internal.h"
#include "libaf/reorder_ch.h"
@@ -68,7 +67,7 @@ static int init(sh_audio_t *sh_audio)
lavc_codec = (AVCodec *)avcodec_find_decoder_by_name(sh_audio->codec->dll);
if(!lavc_codec){
- mp_msg(MSGT_DECAUDIO,MSGL_ERR,MSGTR_MissingLAVCcodec,sh_audio->codec->dll);
+ mp_tmsg(MSGT_DECAUDIO,MSGL_ERR,"Cannot find codec '%s' in libavcodec...\n",sh_audio->codec->dll);
return 0;
}
@@ -108,7 +107,7 @@ static int init(sh_audio_t *sh_audio)
/* open it */
if (avcodec_open(lavc_context, lavc_codec) < 0) {
- mp_msg(MSGT_DECAUDIO,MSGL_ERR, MSGTR_CantOpenCodec);
+ mp_tmsg(MSGT_DECAUDIO,MSGL_ERR, "Could not open codec.\n");
return 0;
}
mp_msg(MSGT_DECAUDIO,MSGL_V,"INFO: libavcodec \"%s\" init OK!\n", lavc_codec->name);
@@ -143,19 +142,18 @@ static int init(sh_audio_t *sh_audio)
mp_msg(MSGT_DECAUDIO, MSGL_FATAL, "Unsupported sample format\n");
return 0;
}
- if(sh_audio->wf){
+ /* If the audio is AAC the container level data may be unreliable
+ * because of SBR handling problems (possibly half real sample rate at
+ * container level). Default AAC decoding with ad_faad has used codec-level
+ * values for a long time without generating complaints so it should be OK.
+ */
+ if (sh_audio->wf && lavc_context->codec_id != CODEC_ID_AAC) {
// If the decoder uses the wrong number of channels all is lost anyway.
// sh_audio->channels=sh_audio->wf->nChannels;
-
- if (lavc_context->codec_id == CODEC_ID_AAC &&
- sh_audio->samplerate == 2*sh_audio->wf->nSamplesPerSec) {
- mp_msg(MSGT_DECAUDIO, MSGL_WARN,
- "Ignoring broken container sample rate for ACC with SBR\n");
- } else if (sh_audio->wf->nSamplesPerSec)
- sh_audio->samplerate=sh_audio->wf->nSamplesPerSec;
-
+ if (sh_audio->wf->nSamplesPerSec)
+ sh_audio->samplerate=sh_audio->wf->nSamplesPerSec;
if (sh_audio->wf->nAvgBytesPerSec)
- sh_audio->i_bps=sh_audio->wf->nAvgBytesPerSec;
+ sh_audio->i_bps=sh_audio->wf->nAvgBytesPerSec;
}
sh_audio->samplesize=af_fmt2bits(sh_audio->sample_format)/ 8;
return 1;
@@ -166,7 +164,7 @@ static void uninit(sh_audio_t *sh)
AVCodecContext *lavc_context = sh->context;
if (avcodec_close(lavc_context) < 0)
- mp_msg(MSGT_DECVIDEO, MSGL_ERR, MSGTR_CantCloseCodec);
+ mp_tmsg(MSGT_DECVIDEO, MSGL_ERR, "Could not close codec.\n");
av_freep(&lavc_context->extradata);
av_freep(&lavc_context);
}
diff --git a/libmpcodecs/ad_hwac3.c b/libmpcodecs/ad_hwac3.c
index 119839b9bc..f45fd00a17 100644
--- a/libmpcodecs/ad_hwac3.c
+++ b/libmpcodecs/ad_hwac3.c
@@ -28,10 +28,9 @@
#include "config.h"
#include "mp_msg.h"
-#include "help_mp.h"
#include "mpbswap.h"
#include "libavutil/common.h"
-#include "libavutil/intreadwrite.h"
+#include "ffmpeg_files/intreadwrite.h"
#include "ad_internal.h"
diff --git a/libmpcodecs/ad_hwmpa.c b/libmpcodecs/ad_hwmpa.c
index 30caa9b0f9..87c00b6f42 100644
--- a/libmpcodecs/ad_hwmpa.c
+++ b/libmpcodecs/ad_hwmpa.c
@@ -24,7 +24,6 @@
#include "config.h"
#include "mp_msg.h"
-#include "help_mp.h"
#include "libaf/af_format.h"
#include "ad_internal.h"
diff --git a/libmpcodecs/ad_liba52.c b/libmpcodecs/ad_liba52.c
index 2e2006abc1..29e546a602 100644
--- a/libmpcodecs/ad_liba52.c
+++ b/libmpcodecs/ad_liba52.c
@@ -26,7 +26,6 @@
#include "config.h"
#include "mp_msg.h"
-#include "help_mp.h"
#include "mpbswap.h"
#include "ad_internal.h"
diff --git a/libmpcodecs/ad_libdv.c b/libmpcodecs/ad_libdv.c
index 8485a8883f..cbcb46efea 100644
--- a/libmpcodecs/ad_libdv.c
+++ b/libmpcodecs/ad_libdv.c
@@ -25,7 +25,6 @@
#include "config.h"
#include "mp_msg.h"
-#include "help_mp.h"
#include "img_format.h"
@@ -102,7 +101,7 @@ static int decode_audio(sh_audio_t *audio, unsigned char *buf, int minlen, int m
dv_parse_header(decoder, dv_audio_frame);
if(xx!=decoder->frame_size)
- mp_msg(MSGT_GLOBAL,MSGL_WARN,MSGTR_MPCODECS_AudioFramesizeDiffers,
+ mp_tmsg(MSGT_GLOBAL,MSGL_WARN,"[AD_LIBDV] Warning! Audio framesize differs! read=%d hdr=%d.\n",
xx, decoder->frame_size);
if (dv_decode_full_audio(decoder, dv_audio_frame,(int16_t**) audioBuffers))
diff --git a/libmpcodecs/ad_libmad.c b/libmpcodecs/ad_libmad.c
index 103a05f4a9..08dbe72857 100644
--- a/libmpcodecs/ad_libmad.c
+++ b/libmpcodecs/ad_libmad.c
@@ -24,7 +24,7 @@
#include "ad_internal.h"
-static const ad_info_t info = {
+static const ad_info_t info = {
"libmad mpeg audio decoder",
"libmad",
"A'rpi",
diff --git a/libmpcodecs/ad_msadpcm.c b/libmpcodecs/ad_msadpcm.c
index 64dc39c485..162c7c04d3 100644
--- a/libmpcodecs/ad_msadpcm.c
+++ b/libmpcodecs/ad_msadpcm.c
@@ -30,7 +30,7 @@
#include "config.h"
#include "libavutil/common.h"
-#include "libavutil/intreadwrite.h"
+#include "ffmpeg_files/intreadwrite.h"
#include "mpbswap.h"
#include "ad_internal.h"
diff --git a/libmpcodecs/ad_pcm.c b/libmpcodecs/ad_pcm.c
index 6e43cec514..29e78d69af 100644
--- a/libmpcodecs/ad_pcm.c
+++ b/libmpcodecs/ad_pcm.c
@@ -19,70 +19,80 @@
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
+#include <stdbool.h>
+#include "talloc.h"
#include "config.h"
#include "ad_internal.h"
#include "libaf/af_format.h"
#include "libaf/reorder_ch.h"
-static const ad_info_t info =
-{
- "Uncompressed PCM audio decoder",
- "pcm",
- "Nick Kurshev",
- "A'rpi",
- ""
+static const ad_info_t info = {
+ "Uncompressed PCM audio decoder",
+ "pcm",
+ "Nick Kurshev",
+ "A'rpi",
+ ""
+};
+
+struct ad_pcm_context {
+ unsigned char *buffer;
+ int buffer_pos;
+ int buffer_len;
+ int buffer_size;
};
LIBAD_EXTERN(pcm)
-static int init(sh_audio_t *sh_audio)
+static int init(sh_audio_t * sh_audio)
{
- WAVEFORMATEX *h=sh_audio->wf;
- if (!h)
- return 0;
- sh_audio->i_bps=h->nAvgBytesPerSec;
- sh_audio->channels=h->nChannels;
- sh_audio->samplerate=h->nSamplesPerSec;
- sh_audio->samplesize=(h->wBitsPerSample+7)/8;
- sh_audio->sample_format=AF_FORMAT_S16_LE; // default
- switch(sh_audio->format){ /* hardware formats: */
+ WAVEFORMATEX *h = sh_audio->wf;
+ if (!h)
+ return 0;
+ sh_audio->i_bps = h->nAvgBytesPerSec;
+ sh_audio->channels = h->nChannels;
+ sh_audio->samplerate = h->nSamplesPerSec;
+ sh_audio->samplesize = (h->wBitsPerSample + 7) / 8;
+ sh_audio->sample_format = AF_FORMAT_S16_LE; // default
+ switch (sh_audio->format) { /* hardware formats: */
case 0x0:
- case 0x1: // Microsoft PCM
- case 0xfffe: // Extended
- switch (sh_audio->samplesize) {
- case 1: sh_audio->sample_format=AF_FORMAT_U8; break;
- case 2: sh_audio->sample_format=AF_FORMAT_S16_LE; break;
- case 3: sh_audio->sample_format=AF_FORMAT_S24_LE; break;
- case 4: sh_audio->sample_format=AF_FORMAT_S32_LE; break;
- }
- break;
- case 0x3: // IEEE float
- sh_audio->sample_format=AF_FORMAT_FLOAT_LE;
- break;
- case 0x6: sh_audio->sample_format=AF_FORMAT_A_LAW;break;
- case 0x7: sh_audio->sample_format=AF_FORMAT_MU_LAW;break;
- case 0x11: sh_audio->sample_format=AF_FORMAT_IMA_ADPCM;break;
- case 0x50: sh_audio->sample_format=AF_FORMAT_MPEG2;break;
+ case 0x1: // Microsoft PCM
+ case 0xfffe: // Extended
+ switch (sh_audio->samplesize) {
+ case 1: sh_audio->sample_format = AF_FORMAT_U8; break;
+ case 2: sh_audio->sample_format = AF_FORMAT_S16_LE; break;
+ case 3: sh_audio->sample_format = AF_FORMAT_S24_LE; break;
+ case 4: sh_audio->sample_format = AF_FORMAT_S32_LE; break;
+ }
+ break;
+ case 0x3: // IEEE float
+ sh_audio->sample_format = AF_FORMAT_FLOAT_LE;
+ break;
+ case 0x6: sh_audio->sample_format = AF_FORMAT_A_LAW; break;
+ case 0x7: sh_audio->sample_format = AF_FORMAT_MU_LAW; break;
+ case 0x11: sh_audio->sample_format = AF_FORMAT_IMA_ADPCM; break;
+ case 0x50: sh_audio->sample_format = AF_FORMAT_MPEG2; break;
/* case 0x2000: sh_audio->sample_format=AFMT_AC3; */
case 0x20776172: // 'raw '
- sh_audio->sample_format=AF_FORMAT_S16_BE;
- if(sh_audio->samplesize==1) sh_audio->sample_format=AF_FORMAT_U8;
- break;
+ sh_audio->sample_format = AF_FORMAT_S16_BE;
+ if (sh_audio->samplesize == 1)
+ sh_audio->sample_format = AF_FORMAT_U8;
+ break;
case 0x736F7774: // 'twos'
- sh_audio->sample_format=AF_FORMAT_S16_BE;
- // intended fall-through
+ sh_audio->sample_format = AF_FORMAT_S16_BE;
+ // intended fall-through
case 0x74776F73: // 'sowt'
- if(sh_audio->samplesize==1) sh_audio->sample_format=AF_FORMAT_S8;
- break;
+ if (sh_audio->samplesize == 1)
+ sh_audio->sample_format = AF_FORMAT_S8;
+ break;
case 0x32336c66: // 'fl32', bigendian float32
- sh_audio->sample_format=AF_FORMAT_FLOAT_BE;
- sh_audio->samplesize=4;
- break;
+ sh_audio->sample_format = AF_FORMAT_FLOAT_BE;
+ sh_audio->samplesize = 4;
+ break;
case 0x666c3332: // '23lf', little endian float32, MPlayer internal fourCC
- sh_audio->sample_format=AF_FORMAT_FLOAT_LE;
- sh_audio->samplesize=4;
- break;
+ sh_audio->sample_format = AF_FORMAT_FLOAT_LE;
+ sh_audio->samplesize = 4;
+ break;
/* case 0x34366c66: // 'fl64', bigendian float64
sh_audio->sample_format=AF_FORMAT_FLOAT_BE;
sh_audio->samplesize=8;
@@ -92,66 +102,106 @@ static int init(sh_audio_t *sh_audio)
sh_audio->samplesize=8;
break;*/
case 0x34326e69: // 'in24', bigendian int24
- sh_audio->sample_format=AF_FORMAT_S24_BE;
- sh_audio->samplesize=3;
- break;
+ sh_audio->sample_format = AF_FORMAT_S24_BE;
+ sh_audio->samplesize = 3;
+ break;
case 0x696e3234: // '42ni', little endian int24, MPlayer internal fourCC
- sh_audio->sample_format=AF_FORMAT_S24_LE;
- sh_audio->samplesize=3;
- break;
+ sh_audio->sample_format = AF_FORMAT_S24_LE;
+ sh_audio->samplesize = 3;
+ break;
case 0x32336e69: // 'in32', bigendian int32
- sh_audio->sample_format=AF_FORMAT_S32_BE;
- sh_audio->samplesize=4;
- break;
+ sh_audio->sample_format = AF_FORMAT_S32_BE;
+ sh_audio->samplesize = 4;
+ break;
case 0x696e3332: // '23ni', little endian int32, MPlayer internal fourCC
- sh_audio->sample_format=AF_FORMAT_S32_LE;
- sh_audio->samplesize=4;
- break;
- default: if(sh_audio->samplesize!=2) sh_audio->sample_format=AF_FORMAT_U8;
- }
- if (!sh_audio->samplesize) // this would cause MPlayer to hang later
- sh_au