[theora] Packet was not a Theora header pt. 2
flpgrz opened this issue · comments
Hello,
I know this is a an old problem already reported in an issue from 2013.
System info:
I am using ROS Melodic, theora_image_transport 1.9.5, image_transport 1.11.13. I am acquiring an image with usb_cam 0.3.6.
Problem description:
The aquisition happens on a local machine (my laptop). My goal is to subscribe to usb_cam/image_raw/theora with a node running on a remote server. When I do this, or if simply try to republish this topic from theora to raw on the remote machine, the following thing happens:
[theora] Packet was not a Theora header
and no raw image gets published of course.
Some remarks:
-
A strange thing is that this does not occur all the times. If I try to run the node which subscribes to the theora Pack (or to run rosrun image_transfer republish theora in:=... raw out:=...) for N times, at some point it will work smoothly. Most of the times, however, it does not.
-
Another interesting thing: on my local machine I can subscribe to the same theora topic and everything works smoothly.
Any suggestion?
Further thoughts:
The problem occurs in theora_subscriber.cpp, where the following function is called:
int rval = th_decode_headerin(&header_info_, &header_comment_, &setup_info_, &oggpacket);
This guy returns TH_ENOTFORMAT and we do not reach the code part where the image is actually decoded. Could it make sense to just remove this check from the code? I believe the image could actually be decoded and this check can stop the pipeline without a real reason.
@jkammerl FYI
Did you solve this problem? I have the same problem and am not able to use theora over a public network.
@mameesie, I could never solve this issue
did removing the check help any?
I think I did not try to remove it back then