On Thu, Nov 10, 2016 at 10:51 AM, Anton Khirnov <an...@khirnov.net> wrote:
> AVPackets on stack are discouraged.
> ---
>  doc/examples/encode_video.c | 15 ++++++++-------
>  1 file changed, 8 insertions(+), 7 deletions(-)
>
> diff --git a/doc/examples/encode_video.c b/doc/examples/encode_video.c
> index 2ff6354..cb12836 100644
> --- a/doc/examples/encode_video.c
> +++ b/doc/examples/encode_video.c
> @@ -69,7 +69,7 @@ int main(int argc, char **argv)
>      int i, ret, x, y;
>      FILE *f;
>      AVFrame *picture;
> -    AVPacket pkt;
> +    AVPacket *pkt;
>      uint8_t endcode[] = { 0, 0, 1, 0xb7 };
>
>      if (argc <= 1) {
> @@ -90,6 +90,10 @@ int main(int argc, char **argv)
>      c = avcodec_alloc_context3(codec);
>      picture = av_frame_alloc();
>
> +    pkt = av_packet_alloc();
> +    if (!pkt)
> +        exit(1);
> +
>      /* put sample parameters */
>      c->bit_rate = 400000;
>      /* resolution must be a multiple of two */
> @@ -127,10 +131,6 @@ int main(int argc, char **argv)
>
>      /* encode 1 second of video */
>      for(i=0;i<25;i++) {
> -        av_init_packet(&pkt);
> -        pkt.data = NULL;    // packet data will be allocated by the encoder
> -        pkt.size = 0;
> -
>          fflush(stdout);
>
>          /* make sure the frame data is writable */
> @@ -157,11 +157,11 @@ int main(int argc, char **argv)
>          picture->pts = i;
>
>          /* encode the image */
> -        encode(c, picture, &pkt, f);
> +        encode(c, picture, pkt, f);
>      }
>
>      /* flush the encoder */
> -    encode(c, NULL, &pkt, f);
> +    encode(c, NULL, pkt, f);
>
>      /* add sequence end code to have a real MPEG file */
>      fwrite(endcode, 1, sizeof(endcode), f);
> @@ -169,6 +169,7 @@ int main(int argc, char **argv)
>
>      avcodec_free_context(&c);
>      av_frame_free(&picture);
> +    av_packet_free(&pkt);
>
>      return 0;
>  }
> --

ok
-- 
Vittorio
_______________________________________________
libav-devel mailing list
libav-devel@libav.org
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to