Subversion Repositories Kolibri OS

Rev

Rev 6106 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
6658 serge 1
#include 
4438 Serge 2
#include 
3
#include 
4
#include 
5
#include 
6658 serge 6
#include 
4438 Serge 7
#include 
8
#include 
5021 Serge 9
#include "winlib/winlib.h"
4438 Serge 10
#include "fplay.h"
11
 
12
extern uint32_t  hw2d ;
13
 
14
int64_t _lseeki64(int fd, int64_t offset,  int origin )
15
{
16
    int off = offset;
17
    return lseek(fd, off, origin);
18
}
19
 
20
int put_packet(queue_t *q, AVPacket *pkt)
21
{
22
    AVPacketList *q_pkt;
23
 
24
    q_pkt = av_malloc(sizeof(AVPacketList));
25
    if (!q_pkt)
26
        return -1;
27
 
28
    q_pkt->pkt = *pkt;
29
    q_pkt->next = NULL;
30
 
31
    mutex_lock(&q->lock);
32
 
33
    if (!q->last_pkt)
34
        q->first_pkt = q_pkt;
35
    else
36
        q->last_pkt->next = q_pkt;
37
 
38
    q->last_pkt = q_pkt;
39
    q->size += q_pkt->pkt.size + sizeof(*q_pkt);
40
    q->count++;
41
 
42
    mutex_unlock(&q->lock);
43
 
44
    return 0;
45
}
46
 
47
int get_packet(queue_t *q, AVPacket *pkt)
48
{
49
    AVPacketList *q_pkt;
50
    int ret = 0;
51
 
52
    mutex_lock(&q->lock);
53
 
54
    q_pkt = q->first_pkt;
55
    if (q_pkt)
56
    {
57
        q->first_pkt = q_pkt->next;
58
        if (!q->first_pkt)
59
            q->last_pkt = NULL;
60
 
61
        q->count--;
62
        q->size -= q_pkt->pkt.size + sizeof(*q_pkt);
63
        *pkt = q_pkt->pkt;
64
        av_free(q_pkt);
65
        ret = 1;
66
    };
67
 
68
    mutex_unlock(&q->lock);
69
 
70
    return ret;
71
}
72
 
73
void blit_raw(ctx_t *ctx, void *raw, int x, int y, int w, int h, int pitch)
74
{
5372 serge 75
    int *dst;
4438 Serge 76
    int *src = raw;
77
    int i, j;
78
 
5372 serge 79
    dst = ctx->pixmap_data;
80
    dst+=  y * ctx->pixmap_pitch/4 + x;
4438 Serge 81
 
82
    for(i=0; i < h; i++)
83
    {
84
        for(j = 0; j < w; j++)
85
            dst[j] = src[j];
5372 serge 86
        dst+= ctx->pixmap_pitch/4;
4438 Serge 87
        src+= pitch/4;
88
    };
89
};