Video Device - Active vs Passive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi All,

I am trying to implement a video device that gets data externally. The external data comes via a library with a callback at 25 fps.

Copying the colorbar example, I see that there is the option of Active or Passive mode for the video device. As I understand it: Passive mode has pjsip provide the clock for the device, whereas Active mode has the device create its own clock, and it calls stream->vid_cb.capture_cb when it has data available. This is switched on/off via the "has_callback" option.

This seemed to be pretty straight forward until I noticed that the encoder seems to be getting frames seemingly from nowhere, e.g. when I explicitly do not call the callback function from the video device.

It seems that there is some logic in vid_port.c around this - e.g. in the function enc_clock_cb there is the following statement:

    /* We are here because user wants us to be active but the stream is
     * passive. So get a frame from the stream and push it to user.
     */

This seems to suggest that the active role is overridden for some reason. I am having a hard time following the logic through, or at least the reasoning behind it.

Can anyone explain why I still get frames sent to the encoder when I am not pushing them from the video device callback? Is this a bug, intended functionality or a misunderstanding on my part?

Thanks,

Brian.
_______________________________________________
Visit our blog: http://blog.pjsip.org

pjsip mailing list
pjsip@xxxxxxxxxxxxxxx
http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org

[Index of Archives]     [Asterisk Users]     [Asterisk App Development]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [Linux API]
  Powered by Linux