diff options
author | Mike Melanson <mike@multimedia.cx> | 2002-12-04 05:51:46 +0000 |
---|---|---|
committer | Mike Melanson <mike@multimedia.cx> | 2002-12-04 05:51:46 +0000 |
commit | ab1299f339c02a30143792bd97c1367d3b8c091c (patch) | |
tree | abbfca78af23fbc9353fc7d9e7ab2668909c69dd | |
parent | 1a5f74a6255d68aeabe51c9edb2d19ec0dc36274 (diff) | |
download | xine-lib-ab1299f339c02a30143792bd97c1367d3b8c091c.tar.gz xine-lib-ab1299f339c02a30143792bd97c1367d3b8c091c.tar.bz2 |
pass the great responsibility of decoding SVQ1 data over to ffmpeg
CVS patchset: 3424
CVS date: 2002/12/04 05:51:46
-rw-r--r-- | src/libffmpeg/xine_decoder.c | 31 |
1 files changed, 27 insertions, 4 deletions
diff --git a/src/libffmpeg/xine_decoder.c b/src/libffmpeg/xine_decoder.c index 9b2b5c836..a3e6ced91 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.73 2002/12/02 22:00:14 miguelfreitas Exp $ + * $Id: xine_decoder.c,v 1.74 2002/12/04 05:51:46 tmmm Exp $ * * xine decoder plugin using ffmpeg * @@ -510,6 +510,29 @@ static void ff_decode_data (video_decoder_t *this_gen, buf_element_t *buf) { su = this->av_picture.data[1]; sv = this->av_picture.data[2]; + if (this->context->pix_fmt == PIX_FMT_YUV410P) { + + yuv9_to_yv12( + /* Y */ + this->av_picture.data[0], + this->av_picture.linesize[0], + img->base[0], + img->pitches[0], + /* U */ + this->av_picture.data[1], + this->av_picture.linesize[1], + img->base[1], + img->pitches[1], + /* V */ + this->av_picture.data[2], + this->av_picture.linesize[2], + img->base[2], + img->pitches[2], + /* width x height */ + this->bih.biWidth, + this->bih.biHeight); + + } else for (y=0; y<this->bih.biHeight; y++) { xine_fast_memcpy (dy, sy, this->bih.biWidth); @@ -519,7 +542,8 @@ static void ff_decode_data (video_decoder_t *this_gen, buf_element_t *buf) { sy += this->av_picture.linesize[0]; } - for (y=0; y<(this->bih.biHeight/2); y++) { + if (this->context->pix_fmt != PIX_FMT_YUV410P) + for (y=0; y<(this->bih.biHeight/2); y++) { if (this->context->pix_fmt != PIX_FMT_YUV444P) { @@ -992,8 +1016,7 @@ static uint32_t supported_video_types[] = { BUF_VIDEO_MJPEG, BUF_VIDEO_H263, BUF_VIDEO_RV10, - /* PIX_FMT_YUV410P must be supported to enable svq1 */ - /* BUF_VIDEO_SORENSON_V1 */ + BUF_VIDEO_SORENSON_V1, BUF_VIDEO_JPEG, BUF_VIDEO_MPEG, BUF_VIDEO_DV, |