diff options
author | Darren Salt <linux@youmustbejoking.demon.co.uk> | 2012-02-01 20:23:46 +0000 |
---|---|---|
committer | Darren Salt <linux@youmustbejoking.demon.co.uk> | 2012-02-01 20:23:46 +0000 |
commit | 394844752785840a9a2f50febcaf58f9b8cbc0a7 (patch) | |
tree | 17043c162190989571f15f7e7c4c5461b674a0b5 /src | |
parent | 24336d54166a06db00d5e9b24a4039a1760e9d1d (diff) | |
parent | 15029f2439781c5da7ffcdf18e39ea8ea92b17e9 (diff) | |
download | xine-lib-394844752785840a9a2f50febcaf58f9b8cbc0a7.tar.gz xine-lib-394844752785840a9a2f50febcaf58f9b8cbc0a7.tar.bz2 |
Merge from 1.1.
Diffstat (limited to 'src')
-rw-r--r-- | src/audio_out/audio_alsa_out.c | 2 | ||||
-rw-r--r-- | src/combined/ffmpeg/ff_video_decoder.c | 14 | ||||
-rw-r--r-- | src/xine-engine/osd.c | 4 |
3 files changed, 17 insertions, 3 deletions
diff --git a/src/audio_out/audio_alsa_out.c b/src/audio_out/audio_alsa_out.c index 1eaa5d0d0..abf37f1b3 100644 --- a/src/audio_out/audio_alsa_out.c +++ b/src/audio_out/audio_alsa_out.c @@ -458,7 +458,7 @@ static int ao_alsa_open(ao_driver_t *this_gen, uint32_t bits, uint32_t rate, int this->num_channels, err, snd_strerror(err)); goto close; } -#if SND_LIB_VERSION >= 0x010009 +#if 0 /* Restrict a configuration space to contain only real hardware rates */ err = snd_pcm_hw_params_set_rate_resample(this->audio_fd, params, 0); #endif diff --git a/src/combined/ffmpeg/ff_video_decoder.c b/src/combined/ffmpeg/ff_video_decoder.c index 6d972fdc7..92bdee95a 100644 --- a/src/combined/ffmpeg/ff_video_decoder.c +++ b/src/combined/ffmpeg/ff_video_decoder.c @@ -1615,8 +1615,22 @@ static void ff_reset (video_decoder_t *this_gen) { this->size = 0; if(this->context && this->decoder_ok) + { + xine_list_iterator_t it; + AVFrame *av_frame; + avcodec_flush_buffers(this->context); + /* frame garbage collector here - workaround for buggy ffmpeg codecs that + * don't release their DR1 frames */ + while( (it = xine_list_front(this->dr1_frames)) != NULL ) + { + av_frame = (AVFrame *)xine_list_get_value(this->dr1_frames, it); + release_buffer(this->context, av_frame); + } + xine_list_clear(this->dr1_frames); + } + if (this->is_mpeg12) mpeg_parser_reset(this->mpeg_parser); diff --git a/src/xine-engine/osd.c b/src/xine-engine/osd.c index 423d72eb6..cf54cac84 100644 --- a/src/xine-engine/osd.c +++ b/src/xine-engine/osd.c @@ -846,7 +846,7 @@ static void osd_set_position (osd_object_t *osd, int x, int y) { osd->display_y = y; } -static uint16_t gzread_i16(gzFile *fp) { +static uint16_t gzread_i16(gzFile fp) { uint16_t ret; ret = gzgetc(fp); ret |= (gzgetc(fp)<<8); @@ -859,7 +859,7 @@ static uint16_t gzread_i16(gzFile *fp) { static int osd_renderer_load_font(osd_renderer_t *this, char *filename) { - gzFile *fp; + gzFile fp; osd_font_t *font = NULL; int i, ret = 0; |