Commit 52bce9a1 authored by James Almer's avatar James Almer

Merge commit '728ea23c'

* commit '728ea23c':
  examples/decode_video: switch to the new decoding API
Merged-by: 's avatarJames Almer <jamrial@gmail.com>
parents fddd6af4 728ea23c
...@@ -52,15 +52,23 @@ static void decode(AVCodecContext *dec_ctx, AVFrame *frame, AVPacket *pkt, ...@@ -52,15 +52,23 @@ static void decode(AVCodecContext *dec_ctx, AVFrame *frame, AVPacket *pkt,
const char *filename) const char *filename)
{ {
char buf[1024]; char buf[1024];
int ret, got_picture; int ret;
while (pkt->size > 0) { ret = avcodec_send_packet(dec_ctx, pkt);
ret = avcodec_decode_video2(dec_ctx, frame, &got_picture, pkt);
if (ret < 0) { if (ret < 0) {
fprintf(stderr, "Error while decoding frame %d\n", dec_ctx->frame_number); fprintf(stderr, "Error sending a packet for decoding\n");
exit(1);
}
while (ret >= 0) {
ret = avcodec_receive_frame(dec_ctx, frame);
if (ret == AVERROR(EAGAIN) || ret == AVERROR_EOF)
return;
else if (ret < 0) {
fprintf(stderr, "Error during decoding\n");
exit(1); exit(1);
} }
if (got_picture) {
printf("saving frame %3d\n", dec_ctx->frame_number); printf("saving frame %3d\n", dec_ctx->frame_number);
fflush(stdout); fflush(stdout);
...@@ -70,11 +78,6 @@ static void decode(AVCodecContext *dec_ctx, AVFrame *frame, AVPacket *pkt, ...@@ -70,11 +78,6 @@ static void decode(AVCodecContext *dec_ctx, AVFrame *frame, AVPacket *pkt,
pgm_save(frame->data[0], frame->linesize[0], pgm_save(frame->data[0], frame->linesize[0],
frame->width, frame->height, buf); frame->width, frame->height, buf);
} }
if (pkt->data) {
pkt->size -= ret;
pkt->data += ret;
}
}
} }
int main(int argc, char **argv) int main(int argc, char **argv)
...@@ -170,9 +173,7 @@ int main(int argc, char **argv) ...@@ -170,9 +173,7 @@ int main(int argc, char **argv)
} }
/* flush the decoder */ /* flush the decoder */
avpkt.data = NULL; decode(c, frame, NULL, outfilename);
avpkt.size = 0;
decode(c, frame, &avpkt, outfilename);
fclose(f); fclose(f);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment