Red5 / red5-hls-plugin

HLS support as a plugin for Red5
Apache License 2.0
80 stars 51 forks source link

java.lang.NegativeArraySizeException #1

Closed kodjobaah closed 10 years ago

kodjobaah commented 10 years ago

Hi,

I have manage to successfully build the plugin using the humble-video fork... when I use the publisher application it works fine...but then I try to access the stream being published using ipod.js..I get the following error:

java.lang.NegativeArraySizeException: null at org.red5.service.httpstream.SegmentFacade.getSegments(SegmentFacade.java:340) ~[hls-plugin-1.1.jar:na] at org.red5.service.httpstream.SegmenterService.getSegments(SegmenterService.java:241) ~[hls-plugin-1.1.jar:na] at org.red5.stream.http.servlet.PlayList.doPost(PlayList.java:164) ~[hls-plugin-1.1.jar:na] at org.red5.stream.http.servlet.PlayList.doGet(PlayList.java:80) ~[hls-plugin-1.1.jar:na] at javax.servlet.http.HttpServlet.service(HttpServlet.java:621) ~[tomcat-embed-core-7.0.50.jar:7.0.50] at javax.servlet.http.HttpServlet.service(HttpServlet.java:728) ~[tomcat-embed-core-7.0.50.jar:7.0.50] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) ~[tomcat-embed-core-7.0.50.jar:7.0.50] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) ~[tomcat-embed-core-7.0.50.jar:7.0.50] at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) ~[tomcat-embed-core-7.0.50.jar:7.0.50] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) ~[tomcat-embed-core-7.0.50.jar:7.0.50] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) ~[tomcat-embed-core-7.0.50.jar:7.0.50] at org.red5.logging.LoggerContextFilter.doFilter(LoggerContextFilter.java:77) ~[red5-server.jar:na] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) ~[tomcat-embed-core-7.0.50.jar:7.0.50] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) ~[tomcat-embed-core-7.0.50.jar:7.0.50] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) ~[tomcat-embed-core-7.0.50.jar:7.0.50] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) ~[tomcat-embed-core-7.0.50.jar:7.0.50] at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) ~[tomcat-embed-core-7.0.50.jar:7.0.50] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) ~[tomcat-embed-core-7.0.50.jar:7.0.50] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) ~[tomcat-embed-core-7.0.50.jar:7.0.50] at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953) ~[tomcat-embed-core-7.0.50.jar:7.0.50] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) ~[tomcat-embed-core-7.0.50.jar:7.0.50] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:409) ~[tomcat-embed-core-7.0.50.jar:7.0.50] at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1044) ~[tomcat-embed-core-7.0.50.jar:7.0.50] at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607) ~[tomcat-embed-core-7.0.50.jar:7.0.50] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1721) ~[tomcat-embed-core-7.0.50.jar:7.0.50] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1679) ~[tomcat-embed-core-7.0.50.jar:7.0.50] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) ~[na:1.7.0_25] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) ~[na:1.7.0_25] at java.lang.Thread.run(Thread.java:724) ~[na:1.7.0_25]

Kodjo

mondain commented 10 years ago

This error means you didn't create any segments. The code has only been tested with Xuggler thus far; I am unable to build Humble video myself.

Paul

On Sat, Mar 1, 2014 at 4:45 PM, kodjobaah notifications@github.com wrote:

Hi,

I have manage to successfully build the plugin using the humble-video fork... when I use the publisher application it works fine...but then I try to access the stream being published using ipod.js..I get the following error:

java.lang.NegativeArraySizeException: null at org.red5.service.httpstream.SegmentFacade.getSegments(SegmentFacade.java:340) ~[hls-plugin-1.1.jar:na] at org.red5.service.httpstream.SegmenterService.getSegments(SegmenterService.java:241) ~[hls-plugin-1.1.jar:na] at org.red5.stream.http.servlet.PlayList.doPost(PlayList.java:164) ~[hls-plugin-1.1.jar:na] at org.red5.stream.http.servlet.PlayList.doGet(PlayList.java:80) ~[hls-plugin-1.1.jar:na] at javax.servlet.http.HttpServlet.service(HttpServlet.java:621) ~[tomcat-embed-core-7.0.50.jar:7.0.50] at javax.servlet.http.HttpServlet.service(HttpServlet.java:728) ~[tomcat-embed-core-7.0.50.jar:7.0.50] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) ~[tomcat-embed-core-7.0.50.jar:7.0.50] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) ~[tomcat-embed-core-7.0.50.jar:7.0.50] at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) ~[tomcat-embed-core-7.0.50.jar:7.0.50] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) ~[tomcat-embed-core-7.0.50.jar:7.0.50] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) ~[tomcat-embed-core-7.0.50.jar:7.0.50] at org.red5.logging.LoggerContextFilter.doFilter(LoggerContextFilter.java:77) ~[red5-server.jar:na] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) ~[tomcat-embed-core-7.0.50.jar:7.0.50] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) ~[tomcat-embed-core-7.0.50.jar:7.0.50] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) ~[tomcat-embed-core-7.0.50.jar:7.0.50] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) ~[tomcat-embed-core-7.0.50.jar:7.0.50] at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) ~[tomcat-embed-core-7.0.50.jar:7.0.50] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) ~[tomcat-embed-core-7.0.50.jar:7.0.50] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) ~[tomcat-embed-core-7.0.50.jar:7.0.50] at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953) ~[tomcat-embed-core-7.0.50.jar:7.0.50] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) ~[tomcat-embed-core-7.0.50.jar:7.0.50] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:409) ~[tomcat-embed-core-7.0.50.jar:7.0.50] at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1044) ~[tomcat-embed-core-7.0.50.jar:7.0.50] at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607) ~[tomcat-embed-core-7.0.50.jar:7.0.50] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1721) ~[tomcat-embed-core-7.0.50.jar:7.0.50] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1679) ~[tomcat-embed-core-7.0.50.jar:7.0.50] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) ~[na:1.7.0_25] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) ~[na:1.7.0_25] at java.lang.Thread.run(Thread.java:724) ~[na:1.7.0_25]

Kodjo

Reply to this email directly or view it on GitHubhttps://github.com/Red5/red5-hls-plugin/issues/1 .

http://gregoire.org/ http://code.google.com/p/red5/

dryize commented 10 years ago

I used to get this error sometimes with xuggler build also. fix I used was to modify getSegmentsCount function in org.red5.service.httpstream.SegmentFacade to following, in order to return negative number as segment count. public int getSegmentCount() { log.trace("Total segments: {}", segments.size()); return isComplete() ? segments.size() : (segments.size() > 0 ? segments.size() - 1 : 0); }