Fixed some plugins

Original commit message from CVS:
Fixed some plugins
This commit is contained in:
Wim Taymans 2001-12-28 20:24:41 +00:00
parent d0e007a680
commit 42cc21cd97
7 changed files with 21 additions and 31 deletions

View file

@ -215,8 +215,8 @@ gst_afsrc_get (GstPad *pad)
frameCount);
readbytes = readframes * (src->channels * src->width / 8);
if (readbytes == 0) {
gst_element_signal_eos (GST_ELEMENT (src));
return NULL;
gst_element_set_eos (GST_ELEMENT (src));
return GST_BUFFER (gst_event_new (GST_EVENT_EOS));
}
GST_BUFFER_SIZE (buf) = readbytes;

View file

@ -239,19 +239,17 @@ gst_sdlvideosink_chain (GstPad *pad, GstBuffer *buf)
sdlvideosink = GST_SDLVIDEOSINK (gst_pad_get_parent (pad));
if (!GST_BUFFER_FLAG_IS_SET(buf, GST_BUFFER_FLUSH)) {
GST_DEBUG (0,"videosink: clock wait: %llu\n", GST_BUFFER_TIMESTAMP(buf));
GST_DEBUG (0,"videosink: clock wait: %llu\n", GST_BUFFER_TIMESTAMP(buf));
jitter = gst_clock_current_diff(sdlvideosink->clock, GST_BUFFER_TIMESTAMP (buf));
jitter = gst_clock_current_diff(sdlvideosink->clock, GST_BUFFER_TIMESTAMP (buf));
if (jitter > 500000 || jitter < -500000)
{
GST_DEBUG (0, "jitter: %lld\n", jitter);
gst_clock_set (sdlvideosink->clock, GST_BUFFER_TIMESTAMP (buf));
}
else {
gst_clock_wait(sdlvideosink->clock, GST_BUFFER_TIMESTAMP(buf), GST_OBJECT(sdlvideosink));
}
if (jitter > 500000 || jitter < -500000)
{
GST_DEBUG (0, "jitter: %lld\n", jitter);
gst_clock_set (sdlvideosink->clock, GST_BUFFER_TIMESTAMP (buf));
}
else {
gst_clock_wait(sdlvideosink->clock, GST_BUFFER_TIMESTAMP(buf), GST_OBJECT(sdlvideosink));
}
/* Lock SDL/yuv-overlay */

View file

@ -571,7 +571,6 @@ gst_flxdec_loop (GstElement *element)
GST_BUFFER_DATA(flxdec->frame),
GST_BUFFER_DATA(flxdec->out));
//GST_BUFFER_FLAG_SET(flxdec->out, GST_BUFFER_FLUSH);
gst_pad_push(flxdec->srcpad, flxdec->out);
break;

View file

@ -252,10 +252,11 @@ gst_mp1videoparse_real_chain (Mp1VideoParse *mp1videoparse, GstBuffer *buf, GstP
time_stamp = GST_BUFFER_TIMESTAMP(buf);
if (GST_BUFFER_FLAG_IS_SET(buf, GST_BUFFER_FLUSH)) {
/* FIXME, handle events here */
/*
gst_mp1videoparse_flush(mp1videoparse);
}
*/
if (mp1videoparse->partialbuf) {
offset = GST_BUFFER_SIZE(mp1videoparse->partialbuf);
@ -349,7 +350,7 @@ gst_mp1videoparse_real_chain (Mp1VideoParse *mp1videoparse, GstBuffer *buf, GstP
GST_BUFFER_TIMESTAMP(outbuf) = mp1videoparse->last_pts;
if (mp1videoparse->in_flush) {
GST_BUFFER_FLAG_SET(outbuf, GST_BUFFER_FLUSH);
/* FIXME, send a flush event here */
mp1videoparse->in_flush = FALSE;
}

View file

@ -247,13 +247,14 @@ gst_mp3parse_chain (GstPad *pad, GstBuffer *buf)
last_ts = GST_BUFFER_TIMESTAMP(buf);
if (GST_BUFFER_FLAG_IS_SET(buf, GST_BUFFER_FLUSH)) {
/* FIXME, do flush */
/*
if (mp3parse->partialbuf) {
gst_buffer_unref(mp3parse->partialbuf);
mp3parse->partialbuf = NULL;
}
mp3parse->in_flush = TRUE;
}
*/
// if we have something left from the previous frame
if (mp3parse->partialbuf) {
@ -329,12 +330,9 @@ gst_mp3parse_chain (GstPad *pad, GstBuffer *buf)
if (mp3parse->skip == 0) {
GST_DEBUG (0,"mp3parse: pushing buffer of %d bytes\n",GST_BUFFER_SIZE(outbuf));
if (mp3parse->in_flush) {
GST_BUFFER_FLAG_SET(outbuf, GST_BUFFER_FLUSH);
/* FIXME do some sort of flush event */
mp3parse->in_flush = FALSE;
}
else {
GST_BUFFER_FLAG_UNSET(outbuf, GST_BUFFER_FLUSH);
}
GST_BUFFER_TIMESTAMP(outbuf) = last_ts;
gst_pad_push(mp3parse->srcpad,outbuf);
}

View file

@ -39,7 +39,7 @@
while (GST_IS_EVENT(in)) {
switch (GST_EVENT_TYPE(in)) {
case GST_EVENT_EOS:
gst_element_set_state((GstElement*)filter, GST_STATE_PAUSED);
gst_element_set_eos((GstElement*)filter);
gst_pad_push(filter->srcpad, in);
return;
default:

View file

@ -262,12 +262,6 @@ vcdsrc_get (GstPad *pad)
goto read_sector;
}
/* if (readbytes == 0) { */
/* gst_src_signal_eos(GST_SRC(vcdsrc)); */
/* gst_element_set_state(GST_ELEMENT(vcdsrc),~GST_STATE_PLAYING); */
/* gst_element_set_state(GST_ELEMENT(vcdsrc),~GST_STATE_RUNNING); */
/* return; */
/* } */
GST_BUFFER_OFFSET(buf) = vcdsrc->curoffset;
GST_BUFFER_SIZE(buf) = vcdsrc->bytes_per_read;