- put_be16(s->pb, pkt->size);
- put_be16(s->pb, 0x8010); // unknown
- put_buffer(s->pb, pkt->data, pkt->size);
- put_flush_packet(s->pb);
+ if (pkt->size > 65535) {
+ av_log(s, AV_LOG_ERROR,
+ "Packet size too large for s302m. (%d > 65535)\n", pkt->size);
+ return -1;
+ }
+ avio_wb16(s->pb, pkt->size);
+ avio_wb16(s->pb, 0x8010); // unknown
+ avio_write(s->pb, pkt->data, pkt->size);
+ avio_flush(s->pb);