Skip to content

Commit

Permalink
rename unkow(*) to generic(*).
Browse files Browse the repository at this point in the history
Signed-off-by: Jack <[email protected]>
  • Loading branch information
Jackarain committed Mar 12, 2013
1 parent bca6b44 commit cfc1bd5
Show file tree
Hide file tree
Showing 6 changed files with 69 additions and 69 deletions.
34 changes: 17 additions & 17 deletions demux/demux.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,18 @@
#include "globals.h"
#include "demux.h"

#include "unkown_demux.h"
#include "generic_demux.h"

// 具体的demux组件实现.

EXPORT_API int unkown_init_demux(struct demux_context *demux_ctx)
EXPORT_API int generic_init_demux(struct demux_context *demux_ctx)
{
unkown_demux_info &unkown_info = demux_ctx->info.unkown;
unkown_demux *demux = new unkown_demux();
unkown_demux_data d;
generic_demux_info &generic_info = demux_ctx->info.unkown;
generic_demux *demux = new generic_demux();
generic_demux_data d;

// 保存文件名到d, 以作为参数传入unkown_demux中打开.
d.file_name = std::string(unkown_info.file_name);
// 保存文件名到d, 以作为参数传入generic_demux中打开.
d.file_name = std::string(generic_info.file_name);

// 保存到demux_context.priv中做为私有的上下文.
demux_ctx->priv = (void*)demux;
Expand All @@ -28,43 +28,43 @@ EXPORT_API int unkown_init_demux(struct demux_context *demux_ctx)
return -1;
}

EXPORT_API int unkown_read_packet(struct demux_context *demux_ctx, AVPacket *pkt)
EXPORT_API int generic_read_packet(struct demux_context *demux_ctx, AVPacket *pkt)
{
unkown_demux *demux = (unkown_demux*)demux_ctx->priv;
generic_demux *demux = (generic_demux*)demux_ctx->priv;
if (demux->read_packet(pkt))
return 0;
return -1;
}

EXPORT_API int unkown_packet_seek(struct demux_context *demux_ctx, int64_t timestamp)
EXPORT_API int generic_packet_seek(struct demux_context *demux_ctx, int64_t timestamp)
{
unkown_demux *demux = (unkown_demux*)demux_ctx->priv;
generic_demux *demux = (generic_demux*)demux_ctx->priv;
if (demux->seek_packet(timestamp))
return 0;
return -1;
}

EXPORT_API int unkown_stream_index(struct demux_context *demux_ctx, enum AVMediaType type)
EXPORT_API int generic_stream_index(struct demux_context *demux_ctx, enum AVMediaType type)
{
unkown_demux *demux = (unkown_demux*)demux_ctx->priv;
generic_demux *demux = (generic_demux*)demux_ctx->priv;
int index = -1;
if (demux->stream_index(type, index))
return index;
return -1;
}

EXPORT_API enum AVCodecID unkown_query_avcodec_id(struct demux_context *demux_ctx, int index)
EXPORT_API enum AVCodecID generic_query_avcodec_id(struct demux_context *demux_ctx, int index)
{
unkown_demux *demux = (unkown_demux*)demux_ctx->priv;
generic_demux *demux = (generic_demux*)demux_ctx->priv;
enum AVCodecID id;
if (demux->query_avcodec_id(index, id))
return id;
return AV_CODEC_ID_NONE;
}

EXPORT_API void unkown_destory(struct demux_context *demux_ctx)
EXPORT_API void generic_destory(struct demux_context *demux_ctx)
{
unkown_demux *demux = (unkown_demux*)demux_ctx->priv;
generic_demux *demux = (generic_demux*)demux_ctx->priv;
demux->close(); // 关闭demux.
delete demux; // 释放资源.
}
12 changes: 6 additions & 6 deletions demux/demux.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,12 @@ extern "C" {
#endif

// 未知的数据类型.
EXPORT_API int unkown_init_demux(struct demux_context *demux_ctx);
EXPORT_API int unkown_read_packet(struct demux_context *demux_ctx, AVPacket *pkt);
EXPORT_API int unkown_packet_seek(struct demux_context *demux_ctx, int64_t timestamp);
EXPORT_API int unkown_stream_index(struct demux_context *demux_ctx, enum AVMediaType type);
EXPORT_API enum AVCodecID unkown_query_avcodec_id(struct demux_context *demux_ctx, int index);
EXPORT_API void unkown_destory(struct demux_context *demux_ctx);
EXPORT_API int generic_init_demux(struct demux_context *demux_ctx);
EXPORT_API int generic_read_packet(struct demux_context *demux_ctx, AVPacket *pkt);
EXPORT_API int generic_packet_seek(struct demux_context *demux_ctx, int64_t timestamp);
EXPORT_API int generic_stream_index(struct demux_context *demux_ctx, enum AVMediaType type);
EXPORT_API enum AVCodecID generic_query_avcodec_id(struct demux_context *demux_ctx, int index);
EXPORT_API void generic_destory(struct demux_context *demux_ctx);


#ifdef __cplusplus
Expand Down
6 changes: 3 additions & 3 deletions demux/demux.vcproj
Original file line number Diff line number Diff line change
Expand Up @@ -187,7 +187,7 @@
>
</File>
<File
RelativePath=".\unkown_demux.cpp"
RelativePath=".\generic_demux.cpp"
>
</File>
</Filter>
Expand All @@ -205,11 +205,11 @@
>
</File>
<File
RelativePath=".\internal.h"
RelativePath=".\generic_demux.h"
>
</File>
<File
RelativePath=".\unkown_demux.h"
RelativePath=".\internal.h"
>
</File>
</Filter>
Expand Down
56 changes: 28 additions & 28 deletions demux/unkown_demux.cpp → demux/generic_demux.cpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#include "internal.h"
#include "unkown_demux.h"
#include "generic_demux.h"
#include "source.h"
#include "avplay.h"

Expand All @@ -13,16 +13,16 @@
#define INT64_MAX (9223372036854775807LL)
#endif

int unkown_demux::decode_interrupt_cb(void *ctx)
int generic_demux::decode_interrupt_cb(void *ctx)
{
unkown_demux *demux = (unkown_demux*)ctx;
generic_demux *demux = (generic_demux*)ctx;
return (int)demux->m_abort;
// return demux->is_abort();
}

int unkown_demux::read_data(void *opaque, uint8_t *buf, int buf_size)
int generic_demux::read_data(void *opaque, uint8_t *buf, int buf_size)
{
unkown_demux *demux = (unkown_demux*)opaque;
generic_demux *demux = (generic_demux*)opaque;

// 已经中止播放.
if (demux->is_abort())
Expand All @@ -38,16 +38,16 @@ int unkown_demux::read_data(void *opaque, uint8_t *buf, int buf_size)
}


int unkown_demux::write_data(void *opaque, uint8_t *buf, int buf_size)
int generic_demux::write_data(void *opaque, uint8_t *buf, int buf_size)
{
unkown_demux *demux = (unkown_demux*)opaque;
generic_demux *demux = (generic_demux*)opaque;
return 0;
}


int64_t unkown_demux::seek_data(void *opaque, int64_t offset, int whence)
int64_t generic_demux::seek_data(void *opaque, int64_t offset, int whence)
{
unkown_demux *demux = (unkown_demux*)opaque;
generic_demux *demux = (generic_demux*)opaque;

// 已经中止播放.
if (demux->is_abort())
Expand All @@ -63,21 +63,21 @@ int64_t unkown_demux::seek_data(void *opaque, int64_t offset, int whence)
return offset;
}

unkown_demux::unkown_demux(void)
generic_demux::generic_demux(void)
: m_format_ctx(NULL)
, m_avio_ctx(NULL)
, m_source_ctx(NULL)
, m_io_buffer(NULL)
, m_abort(false)
{}

unkown_demux::~unkown_demux(void)
generic_demux::~generic_demux(void)
{}

bool unkown_demux::open(boost::any ctx)
bool generic_demux::open(boost::any ctx)
{
// 得到传入的参数.
m_unkown_demux_data = boost::any_cast<unkown_demux_data>(ctx);
m_generic_demux_data = boost::any_cast<generic_demux_data>(ctx);

// 分配m_format_ctx.
m_format_ctx = avformat_alloc_context();
Expand All @@ -89,12 +89,12 @@ bool unkown_demux::open(boost::any ctx)
m_format_ctx->interrupt_callback.callback = decode_interrupt_cb;
m_format_ctx->interrupt_callback.opaque = (void*)this;

if (m_unkown_demux_data.type == MEDIA_TYPE_BT)
if (m_generic_demux_data.type == MEDIA_TYPE_BT)
{
FILE *fp = fopen(m_unkown_demux_data.file_name.c_str(), "r+b");
FILE *fp = fopen(m_generic_demux_data.file_name.c_str(), "r+b");
if (!fp)
goto FAILED_FLG;
uint64_t file_lentgh = fs::file_size(m_unkown_demux_data.file_name);
uint64_t file_lentgh = fs::file_size(m_generic_demux_data.file_name);
char *torrent_data = (char*)malloc(file_lentgh);
if (!torrent_data)
goto FAILED_FLG;
Expand All @@ -113,12 +113,12 @@ bool unkown_demux::open(boost::any ctx)
}
else
{
m_source_ctx = alloc_media_source(m_unkown_demux_data.type,
m_unkown_demux_data.file_name.c_str(), m_unkown_demux_data.file_name.length(), 0);
m_source_ctx = alloc_media_source(m_generic_demux_data.type,
m_generic_demux_data.file_name.c_str(), m_generic_demux_data.file_name.length(), 0);
if (!m_source_ctx)
goto FAILED_FLG;
// 按种类分配不同的数据源处理函数.
switch (m_unkown_demux_data.type)
switch (m_generic_demux_data.type)
{
case MEDIA_TYPE_FILE:
{
Expand Down Expand Up @@ -244,15 +244,15 @@ bool unkown_demux::open(boost::any ctx)
return false;
}

bool unkown_demux::read_packet(AVPacket *pkt)
bool generic_demux::read_packet(AVPacket *pkt)
{
int ret = av_read_frame(m_format_ctx, pkt);
if (ret < 0)
return false;
return true;
}

bool unkown_demux::seek_packet(int64_t timestamp)
bool generic_demux::seek_packet(int64_t timestamp)
{
int64_t seek_min = INT64_MIN;
int64_t seek_max = INT64_MAX;
Expand All @@ -263,7 +263,7 @@ bool unkown_demux::seek_packet(int64_t timestamp)
return true;
}

bool unkown_demux::stream_index(enum AVMediaType type, int &index)
bool generic_demux::stream_index(enum AVMediaType type, int &index)
{
index = -1;

Expand All @@ -279,7 +279,7 @@ bool unkown_demux::stream_index(enum AVMediaType type, int &index)
return false;
}

bool unkown_demux::query_avcodec_id(int index, enum AVCodecID &codec_id)
bool generic_demux::query_avcodec_id(int index, enum AVCodecID &codec_id)
{
if (index >= 0 && index < m_format_ctx->nb_streams)
{
Expand All @@ -289,7 +289,7 @@ bool unkown_demux::query_avcodec_id(int index, enum AVCodecID &codec_id)
return false;
}

void unkown_demux::close()
void generic_demux::close()
{
if (m_format_ctx)
{
Expand All @@ -303,17 +303,17 @@ void unkown_demux::close()
}
}

int unkown_demux::read_pause()
int generic_demux::read_pause()
{
return av_read_pause(m_format_ctx);
}

int unkown_demux::read_play()
int generic_demux::read_play()
{
return av_read_play(m_format_ctx);
}

int unkown_demux::query_index(enum AVMediaType type, AVFormatContext *ctx)
int generic_demux::query_index(enum AVMediaType type, AVFormatContext *ctx)
{
unsigned int i;

Expand All @@ -323,7 +323,7 @@ int unkown_demux::query_index(enum AVMediaType type, AVFormatContext *ctx)
return -1;
}

media_base_info unkown_demux::base_info()
media_base_info generic_demux::base_info()
{
return m_base_info;
}
20 changes: 10 additions & 10 deletions demux/unkown_demux.h → demux/generic_demux.h
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
//
// unkown_demux.h
// ~~~~~~~~~~~~~~
// generic_demux.h
// ~~~~~~~~~~~~~~~
//
// Copyright (c) 2011 Jack ([email protected])
//

#ifndef __UNKOWN_DEMUX_H__
#define __UNKOWN_DEMUX_H__
#ifndef __GENERIC_DEMUX_H__
#define __GENERIC_DEMUX_H__

#if defined(_MSC_VER) && (_MSC_VER >= 1020)
# pragma once
Expand All @@ -15,17 +15,17 @@
#include "demuxer.h"
#include "globals.h"

struct unkown_demux_data
struct generic_demux_data
{
std::string file_name; // 文件名.
int type; // 数据类型.
};

class unkown_demux : public demuxer
class generic_demux : public demuxer
{
public:
unkown_demux(void);
virtual ~unkown_demux(void);
generic_demux(void);
virtual ~generic_demux(void);

public:
// 打开demuxer, 参数为any, 以传入任意参数.
Expand Down Expand Up @@ -92,7 +92,7 @@ class unkown_demux : public demuxer

protected:
// 参数信息.
unkown_demux_data m_unkown_demux_data;
generic_demux_data m_generic_demux_data;

// 使用FFmpeg的AVFormatContext来读取AVPacket.
AVFormatContext *m_format_ctx;
Expand All @@ -113,4 +113,4 @@ class unkown_demux : public demuxer
bool m_abort;
};

#endif // __UNKOWN_DEMUX_H__
#endif // __GENERIC_DEMUX_H__
10 changes: 5 additions & 5 deletions libav/globals.h
Original file line number Diff line number Diff line change
Expand Up @@ -194,15 +194,15 @@ typedef struct source_context
*/
typedef enum source_type
{
unkown_source_type, /* 未知的类型. */
generic_source_type, /* 未知的类型. */
source_type_flv, /* TODO: 普通的flv, 一个小示例. */
} source_type;

/* unkown_type的信息, 由demux内部去实现分析. */
typedef struct unkown_demux_info
/* generic_type的信息, 由demux内部去实现分析. */
typedef struct generic_demux_info
{
char file_name[MAX_URI_PATH]; /* 文件名. */
} unkown_demux_info;
} generic_demux_info;

/* TODO: source_type_flv的信息, 由demux使用. */
typedef struct flv_demux_info
Expand All @@ -213,7 +213,7 @@ typedef struct flv_demux_info
/* 包含具体的demux_info的信息共用. */
typedef union demux_info
{
unkown_demux_info unkown; /* 未知的文件格式. */
generic_demux_info unkown; /* 未知的文件格式. */
flv_demux_info flv; /* TODO: flv格式. */
} demux_info;

Expand Down

0 comments on commit cfc1bd5

Please sign in to comment.