Ver Fonte

ffmpeg: Switch the video cursor to the new decoding API

Sam Edwards há 7 anos atrás
pai
commit
bb6e0abeba
1 ficheiros alterados com 11 adições e 0 exclusões
  1. 11 0
      panda/src/ffmpeg/ffmpegVideoCursor.cxx

+ 11 - 0
panda/src/ffmpeg/ffmpegVideoCursor.cxx

@@ -903,7 +903,18 @@ decode_frame(int &finished) {
  */
  */
 void FfmpegVideoCursor::
 void FfmpegVideoCursor::
 do_decode_frame(int &finished) {
 do_decode_frame(int &finished) {
+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(57, 37, 100)
+  // While the audio cursor has a really nice async loop for decoding, we
+  // don't really do that much with video since we're already delegated to
+  // another thread here.  This is just to silence the deprecation warning
+  // on avcodec_decode_video2.
+  avcodec_send_packet(_video_ctx, _packet);
+
+  int ret = avcodec_receive_frame(_video_ctx, _frame);
+  finished = (ret == 0);
+#else
   avcodec_decode_video2(_video_ctx, _frame, &finished, _packet);
   avcodec_decode_video2(_video_ctx, _frame, &finished, _packet);
+#endif
 }
 }
 
 
 /**
 /**