---
This also initializes old variables to preserve compatibility.
Vittorio

 libavutil/frame.c |   25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/libavutil/frame.c b/libavutil/frame.c
index f44842a..b1b4c96 100644
--- a/libavutil/frame.c
+++ b/libavutil/frame.c
@@ -380,6 +380,31 @@ int av_frame_copy_props(AVFrame *dst, const AVFrame *src)
     dst->display_picture_number = src->display_picture_number;
     dst->flags                  = src->flags;
 
+#if FF_API_INTERLACED_FRAME
+FF_DISABLE_DEPRECATION_WARNINGS
+    if (dst->field_state == AV_FRAME_UNKNOWN) {
+        if (src->interlaced_frame) {
+            if (src->top_field_first)
+                dst->field_state = AV_FRAME_INTERLACED_TFF;
+            else
+                dst->field_state = AV_FRAME_INTERLACED_BFF;
+        } else
+            dst->field_state = AV_FRAME_PROGRESSIVE;
+    } else {
+        if (src->field_state == AV_FRAME_PROGRESSIVE) {
+            dst->interlaced_frame = 0;
+            dst->top_field_first  = 0;
+        } else if (src->field_state == AV_FRAME_INTERLACED_TFF) {
+            dst->interlaced_frame = 1;
+            dst->top_field_first  = 1;
+        } else if (src->field_state == AV_FRAME_INTERLACED_BFF) {
+            dst->interlaced_frame = 1;
+            dst->top_field_first  = 0;
+        }
+    }
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
+
     memcpy(dst->error, src->error, sizeof(dst->error));
 
     for (i = 0; i < src->nb_side_data; i++) {
-- 
1.7.9.5

_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to