[FFmpeg-devel] [PATCH] ffplay: add support for interactive volume control
Ganesh Ajjanagadde
gajjanag at mit.edu
Sat Sep 26 17:37:57 CEST 2015
On Sat, Sep 26, 2015 at 11:16 AM, Timothy Gu <timothygu99 at gmail.com> wrote:
> On Sat, Sep 26, 2015 at 7:47 AM, Ganesh Ajjanagadde
> <gajjanagadde at gmail.com> wrote:
>> diff --git a/ffplay.c b/ffplay.c
>> index d302793..4f3322b 100644
>> --- a/ffplay.c
>> +++ b/ffplay.c
>> @@ -1348,6 +1353,25 @@ static void toggle_pause(VideoState *is)
>> is->step = 0;
>> }
>>
>> +static void toggle_mute(VideoState *is)
>> +{
>> + is->muted = !is->muted;
>> +}
>> +
>
>> +static void update_volume(VideoState *is, int sign, int step)
>> +{
>> + if (sign > 0) {
>> + is->audio_volume += step;
>> + if (is->audio_volume > SDL_MIX_MAXVOLUME)
>> + is->audio_volume = SDL_MIX_MAXVOLUME;
>> + }
>> + else {
>> + is->audio_volume -= step;
>> + if (is->audio_volume < 0)
>> + is->audio_volume = 0;
>> + }
>> +}
>
> AV_CLIP?
>
>> +
>> static void step_to_next_frame(VideoState *is)
>> {
>> /* if the stream is paused unpause it, then step */
>> @@ -2447,7 +2471,10 @@ static void sdl_audio_callback(void *opaque, Uint8 *stream, int len)
>> len1 = is->audio_buf_size - is->audio_buf_index;
>> if (len1 > len)
>> len1 = len;
>> - memcpy(stream, (uint8_t *)is->audio_buf + is->audio_buf_index, len1);
>> + if (is->muted)
>
>> + SDL_MixAudio(stream, (uint8_t *)is->audio_buf + is->audio_buf_index, len1, 0);
>
> memset?
>
>> + else
>> + SDL_MixAudio(stream, (uint8_t *)is->audio_buf + is->audio_buf_index, len1, is->audio_volume);
>> len -= len1;
>> stream += len1;
>> is->audio_buf_index += len1;
>
>> @@ -3740,6 +3780,8 @@ int main(int argc, char **argv)
>> SDL_EventState(SDL_SYSWMEVENT, SDL_IGNORE);
>> SDL_EventState(SDL_USEREVENT, SDL_IGNORE);
>>
>> + SDL_EnableKeyRepeat(SDL_DEFAULT_REPEAT_DELAY, SDL_DEFAULT_REPEAT_INTERVAL);
>> +
>> if (av_lockmgr_register(lockmgr)) {
>> av_log(NULL, AV_LOG_FATAL, "Could not initialize lock manager!\n");
>> do_exit(NULL);
>
> Separate patch please.
Thanks, updated patches.
>
> Timothy
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
More information about the ffmpeg-devel
mailing list