diff options
author | Miguel Freitas <miguelfreitas@users.sourceforge.net> | 2002-07-05 20:54:37 +0000 |
---|---|---|
committer | Miguel Freitas <miguelfreitas@users.sourceforge.net> | 2002-07-05 20:54:37 +0000 |
commit | 52ae732957764b953b3b2491afda4376ce595c43 (patch) | |
tree | 9d227674f6c3467f1a9ae60bce88ab29a37265f8 /src/libffmpeg/xine_decoder.c | |
parent | d84e2d680f143bfe1fbbf987f5a9bdd5318284ed (diff) | |
download | xine-lib-52ae732957764b953b3b2491afda4376ce595c43.tar.gz xine-lib-52ae732957764b953b3b2491afda4376ce595c43.tar.bz2 |
- win32 bugfixes
- asf bugfixes
- ffmpeg supporting ms iso mpeg4
- softsync fix by Bill Fink
CVS patchset: 2216
CVS date: 2002/07/05 20:54:37
Diffstat (limited to 'src/libffmpeg/xine_decoder.c')
-rw-r--r-- | src/libffmpeg/xine_decoder.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/libffmpeg/xine_decoder.c b/src/libffmpeg/xine_decoder.c index a50d72f41..90165b3b3 100644 --- a/src/libffmpeg/xine_decoder.c +++ b/src/libffmpeg/xine_decoder.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: xine_decoder.c,v 1.46 2002/07/05 17:32:03 mroi Exp $ + * $Id: xine_decoder.c,v 1.47 2002/07/05 20:54:37 miguelfreitas Exp $ * * xine decoder plugin using ffmpeg * @@ -58,6 +58,7 @@ typedef struct ff_decoder_s { int bufsize; int size; int skipframes; + int illegal_vlc; AVPicture av_picture; AVCodecContext context; @@ -175,6 +176,13 @@ static void ff_decode_data (video_decoder_t *this_gen, buf_element_t *buf) { this->decoder_ok = 1; this->video_out->open (this->video_out); + /* needed to play streams generated by MS ISO MPEG4 codec. + Michael Niedermayer explained: + M$ "ISO MPEG4" uses illegal vlc code combinations, a ISO MPEG4 compliant + decoder which support error resilience should handle them like errors. + */ + if( this->illegal_vlc ) + this->context.error_resilience=-1; if( this->buf ) free( this->buf ); @@ -424,6 +432,9 @@ video_decoder_t *init_video_decoder_plugin (int iface_version, xine_t *xine) { this->video_decoder.dispose = ff_dispose; this->size = 0; + this->illegal_vlc = xine->config->register_bool (xine->config, "codec.ffmpeg_illegal_vlc", 1, + _("allow illegal vlc codes in mpeg4 streams"), NULL, NULL, NULL); + pthread_once( &once_control, init_routine ); return (video_decoder_t *) this; |