+ if (esc->data[0]) {
+ av_log(avctx, AV_LOG_ERROR, "unexpected data after first packet\n");
+ return AVERROR(EINVAL);
+ }
+
+ esc->fib_acc[0] = avpkt->data[1] + 128;
+ if (avctx->channels == 2)
+ esc->fib_acc[1] = avpkt->data[2+chan_size+1] + 128;
+
+ esc->data_idx = 0;
+ esc->data_size = chan_size;
+ if (!(esc->data[0] = av_malloc(chan_size)))
+ return AVERROR(ENOMEM);
+ if (avctx->channels == 2) {
+ if (!(esc->data[1] = av_malloc(chan_size))) {
+ av_freep(&esc->data[0]);
+ return AVERROR(ENOMEM);
+ }
+ }
+ memcpy(esc->data[0], &avpkt->data[2], chan_size);
+ if (avctx->channels == 2)
+ memcpy(esc->data[1], &avpkt->data[2+chan_size+2], chan_size);
+ }
+ if (!esc->data[0]) {
+ av_log(avctx, AV_LOG_ERROR, "unexpected empty packet\n");
+ return AVERROR(EINVAL);