examples/decoding_encoding: re-organize frame configuration code
Put the relevant code in one chunk, also check for frame allocation failures.
This commit is contained in:
parent
780bf7595e
commit
535df748c5
@ -332,7 +332,6 @@ static void video_encode_example(const char *filename, int codec_id)
|
|||||||
}
|
}
|
||||||
|
|
||||||
c = avcodec_alloc_context3(codec);
|
c = avcodec_alloc_context3(codec);
|
||||||
picture= avcodec_alloc_frame();
|
|
||||||
|
|
||||||
/* put sample parameters */
|
/* put sample parameters */
|
||||||
c->bit_rate = 400000;
|
c->bit_rate = 400000;
|
||||||
@ -360,6 +359,15 @@ static void video_encode_example(const char *filename, int codec_id)
|
|||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
picture = avcodec_alloc_frame();
|
||||||
|
if (!picture) {
|
||||||
|
fprintf(stderr, "Could not allocate video frame\n");
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
picture->format = c->pix_fmt;
|
||||||
|
picture->width = c->width;
|
||||||
|
picture->height = c->height;
|
||||||
|
|
||||||
/* the image can be allocated by any means and av_image_alloc() is
|
/* the image can be allocated by any means and av_image_alloc() is
|
||||||
* just the most convenient way if av_malloc() is to be used */
|
* just the most convenient way if av_malloc() is to be used */
|
||||||
ret = av_image_alloc(picture->data, picture->linesize, c->width, c->height,
|
ret = av_image_alloc(picture->data, picture->linesize, c->width, c->height,
|
||||||
@ -369,10 +377,6 @@ static void video_encode_example(const char *filename, int codec_id)
|
|||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
picture->format = c->pix_fmt;
|
|
||||||
picture->width = c->width;
|
|
||||||
picture->height = c->height;
|
|
||||||
|
|
||||||
/* encode 1 second of video */
|
/* encode 1 second of video */
|
||||||
for(i=0;i<25;i++) {
|
for(i=0;i<25;i++) {
|
||||||
av_init_packet(&pkt);
|
av_init_packet(&pkt);
|
||||||
@ -483,8 +487,6 @@ static void video_decode_example(const char *outfilename, const char *filename)
|
|||||||
}
|
}
|
||||||
|
|
||||||
c = avcodec_alloc_context3(codec);
|
c = avcodec_alloc_context3(codec);
|
||||||
picture= avcodec_alloc_frame();
|
|
||||||
|
|
||||||
if(codec->capabilities&CODEC_CAP_TRUNCATED)
|
if(codec->capabilities&CODEC_CAP_TRUNCATED)
|
||||||
c->flags|= CODEC_FLAG_TRUNCATED; /* we do not send complete frames */
|
c->flags|= CODEC_FLAG_TRUNCATED; /* we do not send complete frames */
|
||||||
|
|
||||||
@ -506,6 +508,12 @@ static void video_decode_example(const char *outfilename, const char *filename)
|
|||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
picture = avcodec_alloc_frame();
|
||||||
|
if (!picture) {
|
||||||
|
fprintf(stderr, "Could not allocate video frame\n");
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
frame = 0;
|
frame = 0;
|
||||||
for(;;) {
|
for(;;) {
|
||||||
avpkt.size = fread(inbuf, 1, INBUF_SIZE, f);
|
avpkt.size = fread(inbuf, 1, INBUF_SIZE, f);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user