[Android] [PATCH 4/4] android: add native AudioTrack aout module

某因幡 tewilove at gmail.com
Fri Mar 9 04:53:33 CET 2012


The previous patch is wrong.

2012/3/9 某因幡 <tewilove at gmail.com>:
> Inline.
>
> 2012/3/8 Jean-Baptiste Kempf <jb at videolan.org>:
>> On Sun, Mar 04, 2012 at 06:04:59PM -0500, Rafaël Carré wrote :
>>> +AC_ARG_ENABLE(android-audiotrack,
>>> +  [  --enable-android-audiotrack   Android native AudioTrack audio output module (default disabled)])
>>> +if test "${enable_android_audiotrack}" = "yes"; then
>>> +  if test "${HAVE_ANDROID}" = "1"; then
>>> +     VLC_ADD_PLUGIN([android_audiotrack])
>>> +     VLC_ADD_LDFLAGS([android_audiotrack], [-ldl])
>>> +  fi
>>> +fi
>>
>> Ok. I think we can name it audiotrack though.
>>
>>> +                --enable-android-audiotrack \
>>
>> Ok.
>>
>>> +++ b/modules/audio_output/audiotrack.c
>>
>> Missing license.
>>
>>> +static AudioSystem_getOutputFrameCount as_getOutputFrameCount = NULL;
>>> +static AudioSystem_getOutputLatency as_getOutputLatency = NULL;
>>> +static AudioSystem_getOutputSamplingRate as_getOutputSamplingRate = NULL;
>>> +static AudioTrack_getMinFrameCount at_getMinFrameCount = NULL;
>>> +static AudioTrack_ctor at_ctor = NULL;
>>> +static AudioTrack_ctor_legacy at_ctor_legacy = NULL;
>>> +static AudioTrack_dtor at_dtor = NULL;
>>> +static AudioTrack_initCheck at_initCheck = NULL;
>>> +static AudioTrack_start at_start = NULL;
>>> +static AudioTrack_stop at_stop = NULL;
>>> +static AudioTrack_write at_write = NULL;
>>> +static AudioTrack_flush at_flush = NULL;
>>
>> Why static ?
>>
>
> What's wrong?
>
>>> +    audio_output_t *p_aout = (audio_output_t*)(p_this);
>>> +    int status;
>>> +    int afSampleRate, afFrameCount, afLatency, minBufCount, minFrameCount;
>>> +    int type, channel, rate, format, size;
>>> +
>>
>>> +    // AudioSystem::MUSIC = 3
>>> +    type = 3;
>>
>> Please use a define for that.
>>
>>> +    // 4000 <= frequency <= 48000
>>> +    if (p_aout->format.i_rate < 4000)
>>> +        p_aout->format.i_rate = 4000;
>>> +    if (p_aout->format.i_rate > 48000)
>>> +        p_aout->format.i_rate = 48000;
>>> +    rate = p_aout->format.i_rate;
>>> +    p_sys->rate = rate;
>>
>> It cannot go above 48000?
>>
>
> I should have seen such lines in Android source tree and did some test
> about a year ago...
> Now I see it seems to depends on hardware.
>
>>> +    // AudioSystem::PCM_16_BIT = 1
>>> +    // AudioSystem::PCM_8_BIT = 2
>>> +    format = (p_aout->format.i_format == VLC_CODEC_S16L) ? 1 : 2;
>>
>> As above.
>>
>>> +    p_sys->size = p_aout->format.i_bytes_per_frame;
>>> +    // sizeof(AudioTrack) == 0x58 (not sure) on 2.2.1, this should be enough
>>> +    p_sys->AudioTrack = malloc(256);
>>
>> What does the sourcecode of Cyanogen say?
>>
>
> Not sure, but actually it works. I had a X10i with firmware Android
> 1.6/2.1/2.3, unofficial 2.2 and CM 7.2. :p
>
>> Best regards,
>>
>> --
>> Jean-Baptiste Kempf
>> http://www.jbkempf.com/ - +33 672 704 734
>> Sent from my Electronic Device
>> _______________________________________________
>> Android mailing list
>> Android at videolan.org
>> http://mailman.videolan.org/listinfo/android
>
>
>
> --
> language: Chinese, Japanese, English



-- 
language: Chinese, Japanese, English
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-android-add-native-AudioTrack-aout-module.patch
Type: text/x-patch
Size: 13379 bytes
Desc: not available
URL: <http://mailman.videolan.org/pipermail/android/attachments/20120309/61f02e01/attachment-0001.bin>


More information about the Android mailing list