for bug #288, refine the codec decode info frame failed. 1.0.21
正在显示
3 个修改的文件
包含
14 行增加
和
5 行删除
| @@ -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" |
-
请 注册 或 登录 后发表评论