| 103 | } |
| 104 | |
| 105 | static int seq_fill_buffer(SeqDemuxContext *seq, ByteIOContext *pb, int buffer_num, unsigned int data_offs, int data_size) |
| 106 | { |
| 107 | TiertexSeqFrameBuffer *seq_buffer; |
| 108 | |
| 109 | if (buffer_num >= SEQ_NUM_FRAME_BUFFERS) |
| 110 | return AVERROR_INVALIDDATA; |
| 111 | |
| 112 | seq_buffer = &seq->frame_buffers[buffer_num]; |
| 113 | if (seq_buffer->fill_size + data_size > seq_buffer->data_size || data_size <= 0) |
| 114 | return AVERROR_INVALIDDATA; |
| 115 | |
| 116 | url_fseek(pb, seq->current_frame_offs + data_offs, SEEK_SET); |
| 117 | if (get_buffer(pb, seq_buffer->data + seq_buffer->fill_size, data_size) != data_size) |
| 118 | return AVERROR(EIO); |
| 119 | |
| 120 | seq_buffer->fill_size += data_size; |
| 121 | return 0; |
| 122 | } |
| 123 | |
| 124 | static int seq_parse_frame_data(SeqDemuxContext *seq, ByteIOContext *pb) |
| 125 | { |
no test coverage detected