At EOF it makes no sense to modify avpkt.{data,size} in output_packet
since no data is consumed. Frame threading with more than 1 threads
hits the segfault.
---
 avconv.c |    7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/avconv.c b/avconv.c
index be870a5..6f64bc8 100644
--- a/avconv.c
+++ b/avconv.c
@@ -1892,8 +1892,11 @@ static int output_packet(InputStream *ist,
 
         if (ret < 0)
             return ret;
-        avpkt.data += ret;
-        avpkt.size -= ret;
+        // touch data and size only if not EOF
+        if (pkt) {
+            avpkt.data += ret;
+            avpkt.size -= ret;
+        }
         if (!got_output) {
             continue;
         }
-- 
1.7.8.rc3

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

Reply via email to