Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

libash支持h265? #295

Open
BreakingY opened this issue Jul 4, 2023 · 1 comment
Open

libash支持h265? #295

BreakingY opened this issue Jul 4, 2023 · 1 comment

Comments

@BreakingY
Copy link

libdash不支持h265吗,dash-mpd.c中int dash_mpd_add_video_adaptation_set(struct dash_mpd_t* mpd, const char* prefix, uint8_t object, int width, int height, const void* extra_data, size_t extra_data_size)函数,函数刚开始就使用了assert(MOV_OBJECT_H264 == object);
`int dash_mpd_add_video_adaptation_set(struct dash_mpd_t* mpd, const char* prefix, uint8_t object, int width, int height, const void* extra_data, size_t extra_data_size)
{
int r;
char name[N_NAME + 16];
struct dash_adaptation_set_t* track;

r = (int)strlen(prefix);
if (mpd->count + 1 >= N_TRACK || extra_data_size < 4 || r >= N_NAME)
	return -1;

assert(MOV_OBJECT_H264 == object);//
track = &mpd->tracks[mpd->count];
memcpy(track->prefix, prefix, r);
LIST_INIT_HEAD(&track->root);
track->setid = mpd->count++;
track->object = object;
track->bitrate = 0;
track->u.video.width = width;
track->u.video.height = height;
track->u.video.frame_rate = 25;
assert(((const uint8_t*)extra_data)[0] == 1); // configurationVersion
if (MOV_OBJECT_H264 == object)
{
	track->u.video.avc.profile = ((const uint8_t*)extra_data)[1];
	track->u.video.avc.compatibility = ((const uint8_t*)extra_data)[2];
	track->u.video.avc.level = ((const uint8_t*)extra_data)[3];
}

track->seq = 1;
track->maxsize = N_FILESIZE;
track->fmp4 = fmp4_writer_create(&s_io, track, MOV_FLAG_SEGMENT);
if (!track->fmp4)
	return -1;
track->track = fmp4_writer_add_video(track->fmp4, object, width, height, extra_data, extra_data_size);

// save init segment file
r = fmp4_writer_init_segment(track->fmp4);
if (0 == r)
{
	snprintf(name, sizeof(name) - 1, "%s-init.m4v", prefix);
	r = mpd->handler(mpd->param, mpd->count, track->ptr, track->bytes, 0, 0, 0, name);
}

track->bytes = 0;
track->offset = 0;
return 0 == r ? track->setid : r;

}`

@ireader
Copy link
Owner

ireader commented Jul 4, 2023

DASH支持H265,这块代码回头我更新下。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants