diff options
author | Michael Roitzsch <mroi@users.sourceforge.net> | 2004-05-29 14:45:25 +0000 |
---|---|---|
committer | Michael Roitzsch <mroi@users.sourceforge.net> | 2004-05-29 14:45:25 +0000 |
commit | a74413f06efef91496b3f5b9f749b328ede19ac8 (patch) | |
tree | 4077995d8ad8c0fc3784d9c7d91a40e1b15e731c /src/post/goom | |
parent | cd2b6b26d53a8d879250cd28f0dfbb1cf2b04355 (diff) | |
download | xine-lib-a74413f06efef91496b3f5b9f749b328ede19ac8.tar.gz xine-lib-a74413f06efef91496b3f5b9f749b328ede19ac8.tar.bz2 |
separate the two semantics of querying a port's status with a NULL stream;
before, NULL could mean two things: no stream at all or a stream that does not
want to be addressed; now the latter is represented by the new XINE_ANON_STREAM
resulting changes:
* the status() functions now behave differently for NULL and XINE_ANON_STREAM
(as the commentary always implied, but this was not the case, so post
plugin rewiring went wrong, because it relies on the status() function)
* the NULL_STREAM defines in audio_out and video_out are obsolete
* update the function comments in the headers
* update the post plugin rewire functions to use the status() functions to
check, if the old port was opened and handle the new one accordingly;
this makes open_count obsolete
* change all post plugins accordingly (mostly using XINE_ANON_STREAM instead
of NULL)
additional change:
* the status() function of audio port now returns the bits/rate/mode values
of the input and not the output; this is more likely to be what a post plugin
wants
* the reimplementation of status() in the upmix plugin is obsolete
CVS patchset: 6603
CVS date: 2004/05/29 14:45:25
Diffstat (limited to 'src/post/goom')
-rw-r--r-- | src/post/goom/xine_goom.c | 22 |
1 files changed, 8 insertions, 14 deletions
diff --git a/src/post/goom/xine_goom.c b/src/post/goom/xine_goom.c index 4575e0078..45f90925d 100644 --- a/src/post/goom/xine_goom.c +++ b/src/post/goom/xine_goom.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_goom.c,v 1.52 2004/05/18 03:17:02 miguelfreitas Exp $ + * $Id: xine_goom.c,v 1.53 2004/05/29 14:45:26 mroi Exp $ * * GOOM post plugin. * @@ -341,8 +341,8 @@ static int goom_rewire_video(xine_post_out_t *output_gen, void *data) if (!data) return 0; /* register our stream at the new output port */ - old_port->close(old_port, NULL); - new_port->open(new_port, NULL); + old_port->close(old_port, XINE_ANON_STREAM); + new_port->open(new_port, XINE_ANON_STREAM); /* reconnect ourselves */ this->vo_port = new_port; return 1; @@ -357,14 +357,10 @@ static int goom_port_open(xine_audio_port_t *port_gen, xine_stream_t *stream, _x_post_rewire(&this->post); _x_post_inc_usage(port); - if (stream) - port->stream = stream; - else - port->stream = POST_NULL_STREAM; + port->stream = stream; port->bits = bits; port->rate = rate; port->mode = mode; - port->open_count++; this->channels = _x_ao_mode2channels(mode); this->sample_rate = rate; @@ -373,7 +369,7 @@ static int goom_port_open(xine_audio_port_t *port_gen, xine_stream_t *stream, init_yuv_planes(&this->yuv, this->width, this->height); this->skip_frame = 0; - this->vo_port->open(this->vo_port, NULL); + this->vo_port->open(this->vo_port, XINE_ANON_STREAM); this->metronom->set_master(this->metronom, stream->metronom); return port->original_port->open(port->original_port, stream, bits, rate, mode ); @@ -388,13 +384,11 @@ static void goom_port_close(xine_audio_port_t *port_gen, xine_stream_t *stream ) port->stream = NULL; - this->vo_port->close(this->vo_port, NULL); + this->vo_port->close(this->vo_port, XINE_ANON_STREAM); this->metronom->set_master(this->metronom, NULL); port->original_port->close(port->original_port, stream ); - port->open_count--; - _x_post_dec_usage(port); } @@ -535,10 +529,10 @@ static void goom_port_put_buffer (xine_audio_port_t *port_gen, } } - this->skip_frame = frame->draw(frame, NULL); + this->skip_frame = frame->draw(frame, XINE_ANON_STREAM); } else { frame->bad_frame = 1; - frame->draw(frame, NULL); + frame->draw(frame, XINE_ANON_STREAM); this->skip_frame--; } frame->free(frame); |