Mercurial > mplayer.hg
view libmpcodecs/ad_roqaudio.c @ 10581:4ebff25d9a05
From: Kir Kostuchenko <kir@users.sourceforge.net>
Hi, I found that command line options brightness, hue, contrast and
saturation does not works, becouse mplayer apply it, before open tv
(kernel says invalid ioctl). Here are simple fix. Please apply.
This is the correct patch, sorry for the confusion.
author | gabucino |
---|---|
date | Tue, 12 Aug 2003 13:25:52 +0000 |
parents | a117511790c0 |
children |
line wrap: on
line source
#include <stdio.h> #include <stdlib.h> #include <unistd.h> #include "config.h" #include "ad_internal.h" static ad_info_t info = { "Id RoQ File Audio Decoder", "roqaudio", "Nick Kurshev", "Mike Melanson", "" //"RoQA is an internal MPlayer FOURCC" }; LIBAD_EXTERN(roqaudio) // in native/roqav.c: void *roq_decode_audio_init(void); int roq_decode_audio(unsigned short *output, unsigned char *input, int encoded_size, int channels, void *context); static int preinit(sh_audio_t *sh_audio) { // minsize was stored in wf->nBlockAlign by the RoQ demuxer sh_audio->audio_out_minsize=sh_audio->wf->nBlockAlign; sh_audio->audio_in_minsize=sh_audio->audio_out_minsize / 2; // FIXME? sh_audio->context = roq_decode_audio_init(); return 1; } static int init(sh_audio_t *sh_audio) { sh_audio->channels=sh_audio->wf->nChannels; sh_audio->samplerate=sh_audio->wf->nSamplesPerSec; sh_audio->i_bps = 44100; return 1; } static void uninit(sh_audio_t *sh_audio) { } static int control(sh_audio_t *sh,int cmd,void* arg, ...) { // TODO!!! return CONTROL_UNKNOWN; } static int decode_audio(sh_audio_t *sh_audio,unsigned char *buf,int minlen,int maxlen) { unsigned char header_data[6]; int read_len; /* figure out how much data to read */ if (demux_read_data(sh_audio->ds, header_data, 6) != 6) return -1; /* EOF */ read_len = (header_data[5] << 24) | (header_data[4] << 16) | (header_data[3] << 8) | header_data[2]; read_len += 2; /* 16-bit arguments */ if (demux_read_data(sh_audio->ds, sh_audio->a_in_buffer, read_len) != read_len) return -1; return 2 * roq_decode_audio((unsigned short *)buf, sh_audio->a_in_buffer, read_len, sh_audio->channels, sh_audio->context); }