diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/dxr3/dxr3_decoder.c | 45 |
1 files changed, 28 insertions, 17 deletions
diff --git a/src/dxr3/dxr3_decoder.c b/src/dxr3/dxr3_decoder.c index 3a3f6a60a..121135769 100644 --- a/src/dxr3/dxr3_decoder.c +++ b/src/dxr3/dxr3_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: dxr3_decoder.c,v 1.25 2001/10/28 14:44:11 mlampard Exp $ + * $Id: dxr3_decoder.c,v 1.26 2001/10/29 09:57:41 mlampard Exp $ * * dxr3 video and spu decoder plugin. Accepts the video and spu data * from XINE and sends it directly to the corresponding dxr3 devices. @@ -280,32 +280,45 @@ static void find_aspect(dxr3_decoder_t *this, uint8_t * buffer) this->aspect = buffer[HEADER_OFFSET+3] >> 4; switch (framecode){ - case 2: - this->duration=90000/24; + case 1: /* 23.976 */ + this->duration=3913; break; - case 3: - this->duration=90000/25; + case 2: /* 24.000 */ + this->duration=3750; break; - case 5: - this->duration=90000/30; + case 3: /* 25.000 */ + this->duration=3600; break; - case 6: - this->duration=90000/50; + case 4: /* 29.970 */ + this->duration=3003; break; - case 8: - this->duration=90000/60; + case 5: /* 30.000 */ + this->duration=3000; + break; + case 6: /* 50.000 */ + this->duration=1800; + break; + case 7: /* 59.940 */ + this->duration=1525; + break; + case 8: /* 60.000 */ + this->duration=1509; break; default: - this->duration=90000/25; /* PAL 25fps */ + this->duration=3600; /* PAL 25fps */ break; } /* and ship the data if different ... appeasing any other vo plugins that are active ... */ if (old_h!=this->height || old_w!=this->width || old_a!=this->aspect) - this->video_out->get_frame(this->video_out, - this->width,this->height,this->aspect, - IMGFMT_YV12, this->duration, 6667); /* dxr3_decoder = 6667 */ + { + vo_frame_t *img; + img = this->video_out->get_frame(this->video_out, + this->width,this->height,this->aspect, + IMGFMT_YV12, this->duration, 6667); /* dxr3_decoder = 6667 */ + img->free(img); + } } } @@ -314,7 +327,6 @@ static void dxr3_decode_data (video_decoder_t *this_gen, buf_element_t *buf) dxr3_decoder_t *this = (dxr3_decoder_t *) this_gen; ssize_t written; - /* The dxr3 does not need the preview-data */ if (buf->decoder_info[0] == 0) return; @@ -328,7 +340,6 @@ static void dxr3_decode_data (video_decoder_t *this_gen, buf_element_t *buf) IMGFMT_YV12, this->duration, VO_BOTH_FIELDS); - img->draw(img); img->free(img); return; |