winlin

for bug #288, refine the codec decode info frame failed. 1.0.21

@@ -337,6 +337,13 @@ int SrsAvcAacCodec::video_avc_demux(char* data, int size, SrsCodecSample* sample @@ -337,6 +337,13 @@ int SrsAvcAacCodec::video_avc_demux(char* data, int size, SrsCodecSample* sample
337 337
338 sample->frame_type = (SrsCodecVideoAVCFrame)frame_type; 338 sample->frame_type = (SrsCodecVideoAVCFrame)frame_type;
339 339
  340 + // ignore info frame without error,
  341 + // @see https://github.com/winlinvip/simple-rtmp-server/issues/288#issuecomment-69863909
  342 + if (sample->frame_type == SrsCodecVideoAVCFrameVideoInfoFrame) {
  343 + srs_warn("hls igone the info frame, ret=%d", ret);
  344 + return ret;
  345 + }
  346 +
340 // only support h.264/avc 347 // only support h.264/avc
341 if (codec_id != SrsCodecVideoAVC) { 348 if (codec_id != SrsCodecVideoAVC) {
342 ret = ERROR_HLS_DECODE_ERROR; 349 ret = ERROR_HLS_DECODE_ERROR;
@@ -1491,14 +1491,16 @@ int SrsHls::on_video(SrsSharedPtrMessage* video) @@ -1491,14 +1491,16 @@ int SrsHls::on_video(SrsSharedPtrMessage* video)
1491 1491
1492 sample->clear(); 1492 sample->clear();
1493 if ((ret = codec->video_avc_demux(video->payload, video->size, sample)) != ERROR_SUCCESS) { 1493 if ((ret = codec->video_avc_demux(video->payload, video->size, sample)) != ERROR_SUCCESS) {
1494 - if (sample->frame_type == SrsCodecVideoAVCFrameVideoInfoFrame) {  
1495 - srs_warn("hls igone the info frame, ret=%d", ret);  
1496 - return ERROR_SUCCESS;  
1497 - }  
1498 srs_error("hls codec demux video failed. ret=%d", ret); 1494 srs_error("hls codec demux video failed. ret=%d", ret);
1499 return ret; 1495 return ret;
1500 } 1496 }
1501 1497
  1498 + // ignore info frame,
  1499 + // @see https://github.com/winlinvip/simple-rtmp-server/issues/288#issuecomment-69863909
  1500 + if (sample->frame_type == SrsCodecVideoAVCFrameVideoInfoFrame) {
  1501 + return ret;
  1502 + }
  1503 +
1502 if (codec->video_codec_id != SrsCodecVideoAVC) { 1504 if (codec->video_codec_id != SrsCodecVideoAVC) {
1503 return ret; 1505 return ret;
1504 } 1506 }
@@ -31,7 +31,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. @@ -31,7 +31,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
31 // current release version 31 // current release version
32 #define VERSION_MAJOR 1 32 #define VERSION_MAJOR 1
33 #define VERSION_MINOR 0 33 #define VERSION_MINOR 0
34 -#define VERSION_REVISION 20 34 +#define VERSION_REVISION 21
35 // server info. 35 // server info.
36 #define RTMP_SIG_SRS_KEY "SRS" 36 #define RTMP_SIG_SRS_KEY "SRS"
37 #define RTMP_SIG_SRS_ROLE "origin/edge server" 37 #define RTMP_SIG_SRS_ROLE "origin/edge server"