1
0
Fork 0
mirror of https://github.com/ossrs/srs.git synced 2025-03-09 15:49:59 +00:00

refine the file stream, to file reader and writer. 0.9.142

This commit is contained in:
winlin 2014-06-29 17:05:26 +08:00
parent ed3f9f0a40
commit 1a7735182f
13 changed files with 167 additions and 121 deletions

View file

@ -461,52 +461,34 @@ int64_t srs_get_nrecv_bytes(srs_rtmp_t rtmp)
struct FlvContext
{
SrsFileStream fs;
SrsFileReader reader;
SrsFileWriter writer;
SrsFlvEncoder enc;
SrsFlvDecoder dec;
};
srs_flv_t srs_flv_open_read(const char* file)
srs_flv_t srs_flv_open(const char* file)
{
int ret = ERROR_SUCCESS;
FlvContext* flv = new FlvContext();
if ((ret = flv->fs.open_read(file)) != ERROR_SUCCESS) {
if ((ret = flv->reader.open(file)) != ERROR_SUCCESS) {
srs_freep(flv);
return NULL;
}
if ((ret = flv->enc.initialize(&flv->fs)) != ERROR_SUCCESS) {
if ((ret = flv->dec.initialize(&flv->reader)) != ERROR_SUCCESS) {
srs_freep(flv);
return NULL;
}
if ((ret = flv->dec.initialize(&flv->fs)) != ERROR_SUCCESS) {
if ((ret = flv->writer.open(file)) != ERROR_SUCCESS) {
srs_freep(flv);
return NULL;
}
return flv;
}
srs_flv_t srs_flv_open_write(const char* file)
{
int ret = ERROR_SUCCESS;
FlvContext* flv = new FlvContext();
if ((ret = flv->fs.open_write(file)) != ERROR_SUCCESS) {
srs_freep(flv);
return NULL;
}
if ((ret = flv->enc.initialize(&flv->fs)) != ERROR_SUCCESS) {
srs_freep(flv);
return NULL;
}
if ((ret = flv->dec.initialize(&flv->fs)) != ERROR_SUCCESS) {
if ((ret = flv->enc.initialize(&flv->writer)) != ERROR_SUCCESS) {
srs_freep(flv);
return NULL;
}
@ -602,13 +584,13 @@ int srs_flv_size_tag(int data_size)
int64_t srs_flv_tellg(srs_flv_t flv)
{
FlvContext* context = (FlvContext*)flv;
return context->fs.tellg();
return context->reader.tellg();
}
void srs_flv_lseek(srs_flv_t flv, int64_t offset)
{
FlvContext* context = (FlvContext*)flv;
context->fs.lseek(offset);
context->reader.lseek(offset);
}
flv_bool srs_flv_is_eof(int error_code)