view loader/dshow/allocator.h @ 32434:acb796d7ca50

Make mencoder account for encoder delay when considering the current time position of a muxer stream. To mencoder core, delayed frames should be considered as "dealt with", since they'll get to the muxer eventually. Without this compensation, mencoder will sometimes make different frame skip/duplicate decisions on the first of a two-pass x264 encode (since x264 buffers many more frames on the first pass), leading to a segfault in x264 when it gets fed more frames on the second pass.
author corey
date Thu, 21 Oct 2010 07:05:30 +0000
parents a8ea87c71d18
children
line wrap: on
line source

#ifndef MPLAYER_ALLOCATOR_H
#define MPLAYER_ALLOCATOR_H

#include "interfaces.h"
#include "cmediasample.h"

typedef struct avm_list_t avm_list_t;
typedef struct MemAllocator MemAllocator;

struct MemAllocator
{
    IMemAllocator_vt* vt;
    DECLARE_IUNKNOWN();
    ALLOCATOR_PROPERTIES props;
    avm_list_t* used_list;
    avm_list_t* free_list;
    char* new_pointer;
    CMediaSample* modified_sample;
    GUID interfaces[2];

    void ( *SetPointer )(MemAllocator* This, char* pointer);
    void ( *ResetPointer )(MemAllocator* This);
};

MemAllocator* MemAllocatorCreate(void);

#endif /* MPLAYER_ALLOCATOR_H */