I am running a Wowza Server and trying to relay the resulting RTMP stream to a http server, but I am having a bit of an issue. It appears that the Wowza Server will occasionally send:
NetStream.Play.Stop code when the server has no data left to send. This doesn't mean it is EOF yet, because it will continue sending and the RTMP stream will remain live.
if (!t && !strcmp(tmpstr, "NetStream.Play.Stop")) rt->state = STATE_STOPPED;
So av_read_frame will return AVERROR_EOF and close the stream, which is not appropriate behavior. I checked to see if a flash player has similiar behavior and it does not. It accurately differentiates between the NetStream.Play.Stop and the appropriate EOF.
Perhaps rtmpproto.c should be looking for a different code to know it is EOF.
if (!t && !strcmp(tmpstr, "NetStream.Play.Complete")) rt->state = STATE_STOPPED;
Not sure if this is a bug or something I will have to just live with.