diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/polyp/internal.h | 1 | ||||
| -rw-r--r-- | src/polyp/stream.c | 29 | 
2 files changed, 10 insertions, 20 deletions
diff --git a/src/polyp/internal.h b/src/polyp/internal.h index d88a1e5b..80c28616 100644 --- a/src/polyp/internal.h +++ b/src/polyp/internal.h @@ -100,7 +100,6 @@ struct pa_stream {      char *name;      pa_buffer_attr buffer_attr; -    int buffer_attr_from_server;      pa_sample_spec sample_spec;      pa_channel_map channel_map;      pa_stream_flags_t flags; diff --git a/src/polyp/stream.c b/src/polyp/stream.c index 17884ed3..e3f40a3f 100644 --- a/src/polyp/stream.c +++ b/src/polyp/stream.c @@ -84,7 +84,6 @@ pa_stream *pa_stream_new(pa_context *c, const char *name, const pa_sample_spec *      s->requested_bytes = 0;      s->state = PA_STREAM_UNCONNECTED;      memset(&s->buffer_attr, 0, sizeof(s->buffer_attr)); -    s->buffer_attr_from_server = 0;      s->peek_memchunk.index = 0;      s->peek_memchunk.length = 0; @@ -407,38 +406,29 @@ void pa_create_stream_callback(pa_pdispatch *pd, uint32_t command, PA_GCC_UNUSED          goto finish;      } -    if (!pa_tagstruct_eof(t)) { -         +    if (pa_context_get_server_protocol_version(s->context) >= 9) {          if (s->direction == PA_STREAM_PLAYBACK) { - -            /* This is a server 0.9.0 or later */              if (pa_tagstruct_getu32(t, &s->buffer_attr.maxlength) < 0 ||                  pa_tagstruct_getu32(t, &s->buffer_attr.tlength) < 0 ||                  pa_tagstruct_getu32(t, &s->buffer_attr.prebuf) < 0 || -                pa_tagstruct_getu32(t, &s->buffer_attr.minreq) < 0 || -                !pa_tagstruct_eof(t)) { +                pa_tagstruct_getu32(t, &s->buffer_attr.minreq) < 0) {                  pa_context_fail(s->context, PA_ERR_PROTOCOL);                  goto finish;              } - -            s->buffer_attr_from_server = 1;          } else if (s->direction == PA_STREAM_RECORD) { -             -            /* This is a server 0.9.0 or later */              if (pa_tagstruct_getu32(t, &s->buffer_attr.maxlength) < 0 || -                pa_tagstruct_getu32(t, &s->buffer_attr.fragsize) < 0 || -                !pa_tagstruct_eof(t)) { +                pa_tagstruct_getu32(t, &s->buffer_attr.fragsize) < 0) {                  pa_context_fail(s->context, PA_ERR_PROTOCOL);                  goto finish;              } - -            s->buffer_attr_from_server = 1; -        } else { -            pa_context_fail(s->context, PA_ERR_PROTOCOL); -            goto finish;          }      } +    if (!pa_tagstruct_eof(t)) { +        pa_context_fail(s->context, PA_ERR_PROTOCOL); +        goto finish; +    } +      if (s->direction == PA_STREAM_RECORD) {          assert(!s->record_memblockq); @@ -1375,7 +1365,8 @@ const pa_buffer_attr* pa_stream_get_buffer_attr(pa_stream *s) {      PA_CHECK_VALIDITY_RETURN_NULL(s->context, s->state == PA_STREAM_READY, PA_ERR_BADSTATE);      PA_CHECK_VALIDITY_RETURN_NULL(s->context, s->direction != PA_STREAM_UPLOAD, PA_ERR_BADSTATE); -    PA_CHECK_VALIDITY_RETURN_NULL(s->context, s->buffer_attr_from_server, PA_ERR_NODATA); +    PA_CHECK_VALIDITY_RETURN_NULL(s->context, +        pa_context_get_server_protocol_version(s->context) >= 9, PA_ERR_NODATA);      return &s->buffer_attr;  }  | 
