diff --git a/doc/examples/avcodec.c b/doc/examples/avcodec.c
index f8d043facf3795cfb9ae05e4619471d89f9805b1..8fee5526dfae2eb36867ef0f5b083bdab0b7c3e7 100644
--- a/doc/examples/avcodec.c
+++ b/doc/examples/avcodec.c
@@ -213,8 +213,7 @@ static void audio_encode_example(const char *filename)
 
     av_freep(&samples);
     av_frame_free(&frame);
-    avcodec_close(c);
-    av_free(c);
+    avcodec_free_context(&c);
 }
 
 /*
@@ -305,8 +304,7 @@ static void audio_decode_example(const char *outfilename, const char *filename)
     fclose(outfile);
     fclose(f);
 
-    avcodec_close(c);
-    av_free(c);
+    avcodec_free_context(&c);
     av_frame_free(&decoded_frame);
 }
 
@@ -428,8 +426,7 @@ static void video_encode_example(const char *filename)
     fwrite(endcode, 1, sizeof(endcode), f);
     fclose(f);
 
-    avcodec_close(c);
-    av_free(c);
+    avcodec_free_context(&c);
     av_freep(&picture->data[0]);
     av_frame_free(&picture);
     printf("\n");
@@ -565,8 +562,7 @@ static void video_decode_example(const char *outfilename, const char *filename)
 
     fclose(f);
 
-    avcodec_close(c);
-    av_free(c);
+    avcodec_free_context(&c);
     av_frame_free(&picture);
     printf("\n");
 }