url_interrupt_cb = interrupt_cb;
}
-int av_url_read_play(URLContext *h)
-{
- if (!h->prot->url_read_play)
- return AVERROR(ENOSYS);
- return h->prot->url_read_play(h);
-}
-
-int av_url_read_pause(URLContext *h)
+int av_url_read_pause(URLContext *h, int pause)
{
if (!h->prot->url_read_pause)
return AVERROR(ENOSYS);
- return h->prot->url_read_pause(h);
+ return h->prot->url_read_pause(h, pause);
}
int av_url_read_seek(URLContext *h,
/* not implemented */
int url_poll(URLPollEntry *poll_table, int n, int timeout);
-/** Start playing or resume paused playout. Only meaningful if using a network
- * streaming protocol (e.g. MMS). */
-int av_url_read_play(URLContext *h);
-/** Pause playing - only meaningful if using a network streaming protocol
- * (e.g. MMS). */
-int av_url_read_pause(URLContext *h);
+/**
+ * Pause and resume playing - only meaningful if using a network streaming
+ * protocol (e.g. MMS).
+ * @param pause 1 for pause, 0 for resume
+ */
+int av_url_read_pause(URLContext *h, int pause);
/**
* Seek to a given timestamp relative to some component stream.
* Only meaningful if using a network streaming protocol (e.g. MMS.)
offset_t (*url_seek)(URLContext *h, offset_t pos, int whence);
int (*url_close)(URLContext *h);
struct URLProtocol *next;
- int (*url_read_play)(URLContext *h);
- int (*url_read_pause)(URLContext *h);
+ int (*url_read_pause)(URLContext *h, int pause);
int (*url_read_seek)(URLContext *h,
int stream_index, int64_t timestamp, int flags);
} URLProtocol;
unsigned char *checksum_ptr;
unsigned long (*update_checksum)(unsigned long checksum, const uint8_t *buf, unsigned int size);
int error; ///< contains the error code or 0 if no error happened
- int (*read_play)(void *opaque);
- int (*read_pause)(void *opaque);
+ int (*read_pause)(void *opaque, int pause);
int (*read_seek)(void *opaque,
int stream_index, int64_t timestamp, int flags);
} ByteIOContext;
int url_feof(ByteIOContext *s);
int url_ferror(ByteIOContext *s);
-int av_url_read_fplay(ByteIOContext *h);
-int av_url_read_fpause(ByteIOContext *h);
+int av_url_read_fpause(ByteIOContext *h, int pause);
int av_url_read_fseek(ByteIOContext *h,
int stream_index, int64_t timestamp, int flags);
s->pos = buffer_size;
s->buf_end = s->buffer + buffer_size;
}
- s->read_play = NULL;
s->read_pause = NULL;
s->read_seek = NULL;
return 0;
(*s)->is_streamed = h->is_streamed;
(*s)->max_packet_size = max_packet_size;
if(h->prot) {
- (*s)->read_play = (int (*)(void *))h->prot->url_read_play;
- (*s)->read_pause = (int (*)(void *))h->prot->url_read_pause;
+ (*s)->read_pause = (int (*)(void *, int))h->prot->url_read_pause;
(*s)->read_seek = (int (*)(void *, int, int64_t, int))h->prot->url_read_seek;
}
return 0;
return s->max_packet_size;
}
-int av_url_read_fplay(ByteIOContext *s)
-{
- if (!s->read_play)
- return AVERROR(ENOSYS);
- return s->read_play(s->opaque);
-}
-
-int av_url_read_fpause(ByteIOContext *s)
+int av_url_read_fpause(ByteIOContext *s, int pause)
{
if (!s->read_pause)
return AVERROR(ENOSYS);
- return s->read_pause(s->opaque);
+ return s->read_pause(s->opaque, pause);
}
int av_url_read_fseek(ByteIOContext *s,
{
if (s->iformat->read_play)
return s->iformat->read_play(s);
- if (s->pb && s->pb->read_play)
- return av_url_read_fplay(s->pb);
+ if (s->pb && s->pb->read_pause)
+ return av_url_read_fpause(s->pb, 0);
return AVERROR(ENOSYS);
}
if (s->iformat->read_pause)
return s->iformat->read_pause(s);
if (s->pb && s->pb->read_pause)
- return av_url_read_fpause(s->pb);
+ return av_url_read_fpause(s->pb, 1);
return AVERROR(ENOSYS);
}