On 9/22/11 8:01 AM, Aviad Rozenhek wrote:

+static AVIOInterruptContext avio_interrupt_context_default = {
+    .should_interrupt   = 0,
+    .interrupt_check    = avio_interrupt_check_default,
+    .interrupt_mark     = avio_interrupt_mark_default,
+    .interrupt_mark_all = avio_interrupt_mark_all_default,
+    .interrupt_close    = NULL,
+};
+
+static AVIOInterruptContext* avio_interrupt_context 
=&avio_interrupt_context_default;
+
+
+void avio_interrupt_set(AVIOInterruptContext* ctx)
+{
+    AVIOInterruptContext* old = avio_interrupt_context;
+    avio_interrupt_context    = ctx? ctx :&avio_interrupt_context_default;
+    if(old->interrupt_close)
+        old->interrupt_close(old);
+}
+
+int avio_interrupt_check(URLContext* h)
+{
+    return avio_interrupt_context->interrupt_check(avio_interrupt_context, h);
+}
+
+void avio_interrupt_mark(URLContext* h)
+{
+    avio_interrupt_context->interrupt_mark(avio_interrupt_context, h);
+}
+
+void avio_interrupt_mark_all(void)
+{
+    avio_interrupt_context->interrupt_mark_all(avio_interrupt_context);
+}
+

looks a bit complex. what about doing the same way logging is done instead?
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to