diff --git a/trunk/src/libs/srs_librtmp.cpp b/trunk/src/libs/srs_librtmp.cpp index 8cecda9a3..7a60183b5 100644 --- a/trunk/src/libs/srs_librtmp.cpp +++ b/trunk/src/libs/srs_librtmp.cpp @@ -473,16 +473,6 @@ srs_flv_t srs_flv_open(const char* file) FlvContext* flv = new FlvContext(); - if ((ret = flv->reader.open(file)) != ERROR_SUCCESS) { - srs_freep(flv); - return NULL; - } - - if ((ret = flv->dec.initialize(&flv->reader)) != ERROR_SUCCESS) { - srs_freep(flv); - return NULL; - } - if ((ret = flv->writer.open(file)) != ERROR_SUCCESS) { srs_freep(flv); return NULL; @@ -493,6 +483,16 @@ srs_flv_t srs_flv_open(const char* file) return NULL; } + if ((ret = flv->reader.open(file)) != ERROR_SUCCESS) { + srs_freep(flv); + return NULL; + } + + if ((ret = flv->dec.initialize(&flv->reader)) != ERROR_SUCCESS) { + srs_freep(flv); + return NULL; + } + return flv; } diff --git a/trunk/src/libs/srs_librtmp.hpp b/trunk/src/libs/srs_librtmp.hpp index 04617fe74..ae87de6e9 100644 --- a/trunk/src/libs/srs_librtmp.hpp +++ b/trunk/src/libs/srs_librtmp.hpp @@ -165,6 +165,7 @@ int64_t srs_get_nrecv_bytes(srs_rtmp_t rtmp); */ typedef void* srs_flv_t; typedef int flv_bool; +/* open flv file for both read/write. */ srs_flv_t srs_flv_open(const char* file); void srs_flv_close(srs_flv_t flv); /* read the flv header. 9bytes header. drop the 4bytes zero previous tag size */