Files
luban-lite-t3e-pro/packages/artinchip/mpp/middle_media/base/stream/aic_stream.c
刘可亮 0a13af6a1d V1.0.5
2024-06-04 19:00:30 +08:00

152 lines
3.3 KiB
C

/*
* Copyright (C) 2020-2023 Artinchip Technology Co. Ltd
*
* author: <jun.ma@artinchip.com>
* Desc: aic_stream
*/
#include <stdio.h>
#include <unistd.h>
#include "aic_stream.h"
#include "aic_file_stream.h"
s32 aic_stream_open(char *uri, struct aic_stream **stream)
{
s32 ret = 0;
// now only file_stream,if more,it shoud probe which stream
ret = file_stream_open(uri, stream);
return ret;
}
int aic_stream_skip(struct aic_stream *s, int len)
{
return aic_stream_seek(s, len, SEEK_CUR);
}
void aic_stream_w8(struct aic_stream *s, int b)
{
/* aic_stream_write(s, &val, 1);*/
}
void aic_stream_wl32(struct aic_stream *s, unsigned int val)
{
aic_stream_w8(s, (uint8_t)val);
aic_stream_w8(s, (uint8_t)(val >> 8));
aic_stream_w8(s, (uint8_t)(val >> 16));
aic_stream_w8(s, val >> 24);
}
void aic_stream_wb32(struct aic_stream *s, unsigned int val)
{
aic_stream_w8(s, val >> 24);
aic_stream_w8(s, (uint8_t)(val >> 16));
aic_stream_w8(s, (uint8_t)(val >> 8));
aic_stream_w8(s, (uint8_t)val);
}
void aic_stream_wl64(struct aic_stream *s, uint64_t val)
{
aic_stream_wl32(s, (uint32_t)(val & 0xffffffff));
aic_stream_wl32(s, (uint32_t)(val >> 32));
}
void aic_stream_wb64(struct aic_stream *s, uint64_t val)
{
aic_stream_wb32(s, (uint32_t)(val >> 32));
aic_stream_wb32(s, (uint32_t)(val & 0xffffffff));
}
void aic_stream_wl16(struct aic_stream *s, unsigned int val)
{
aic_stream_w8(s, (uint8_t)val);
aic_stream_w8(s, (int)val >> 8);
}
void aic_stream_wb16(struct aic_stream *s, unsigned int val)
{
aic_stream_w8(s, (int)val >> 8);
aic_stream_w8(s, (uint8_t)val);
}
void aic_stream_wl24(struct aic_stream *s, unsigned int val)
{
aic_stream_wl16(s, val & 0xffff);
aic_stream_w8(s, (int)val >> 16);
}
void aic_stream_wb24(struct aic_stream *s, unsigned int val)
{
aic_stream_wb16(s, (int)val >> 8);
aic_stream_w8(s, (uint8_t)val);
}
int aic_stream_r8(struct aic_stream *s)
{
unsigned char val;
aic_stream_read(s, &val, 1);
return val;
}
unsigned int aic_stream_rl16(struct aic_stream *s)
{
unsigned int val;
val = aic_stream_r8(s);
val |= aic_stream_r8(s) << 8;
return val;
}
unsigned int aic_stream_rl24(struct aic_stream *s)
{
unsigned int val;
val = aic_stream_rl16(s);
val |= aic_stream_r8(s) << 16;
return val;
}
unsigned int aic_stream_rl32(struct aic_stream *s)
{
unsigned int val;
val = aic_stream_rl16(s);
val |= aic_stream_rl16(s) << 16;
return val;
}
uint64_t aic_stream_rl64(struct aic_stream *s)
{
uint64_t val;
val = (uint64_t)aic_stream_rl32(s);
val |= (uint64_t)aic_stream_rl32(s) << 32;
return val;
}
unsigned int aic_stream_rb16(struct aic_stream *s)
{
unsigned int val;
val = aic_stream_r8(s) << 8;
val |= aic_stream_r8(s);
return val;
}
unsigned int aic_stream_rb24(struct aic_stream *s)
{
unsigned int val;
val = aic_stream_rb16(s) << 8;
val |= aic_stream_r8(s);
return val;
}
unsigned int aic_stream_rb32(struct aic_stream *s)
{
unsigned int val;
val = aic_stream_rb16(s) << 16;
val |= aic_stream_rb16(s);
return val;
}
uint64_t aic_stream_rb64(struct aic_stream *s)
{
uint64_t val;
val = (uint64_t)aic_stream_rb32(s) << 32;
val |= (uint64_t)aic_stream_rb32(s);
return val;
}