diff options
author | Julian Scheel <julian@jusst.de> | 2008-12-07 21:40:50 +0000 |
---|---|---|
committer | Julian Scheel <julian@jusst.de> | 2008-12-07 21:40:50 +0000 |
commit | 6b73508d4e9a12689c8f0749c30f683ce777fef8 (patch) | |
tree | 02e7710c9f06866025383ec17dba8f55b168b2bf /src/libvdpau/nal.c | |
parent | 58967e9def83953542cfa57b14d5ddd8fe742031 (diff) | |
download | xine-lib-6b73508d4e9a12689c8f0749c30f683ce777fef8.tar.gz xine-lib-6b73508d4e9a12689c8f0749c30f683ce777fef8.tar.bz2 |
DPB starts growing. Restructuring of parser.
--HG--
rename : src/libvdpau/nal_parser.c => src/libvdpau/h264_parser.c
rename : src/libvdpau/nal_parser.h => src/libvdpau/h264_parser.h
Diffstat (limited to 'src/libvdpau/nal.c')
-rw-r--r-- | src/libvdpau/nal.c | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/src/libvdpau/nal.c b/src/libvdpau/nal.c new file mode 100644 index 000000000..a9717d76e --- /dev/null +++ b/src/libvdpau/nal.c @@ -0,0 +1,46 @@ +/* + * nal.c + * + * Created on: 07.12.2008 + * Author: julian + */ + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> + +#include "nal.h" +#include "xine_internal.h" + +struct nal_unit* init_nal_unit() +{ + struct nal_unit *nal = malloc(sizeof(struct nal_unit)); + memset(nal, 0x00, sizeof(struct nal_unit)); + + nal->sps = malloc(sizeof(struct seq_parameter_set_rbsp)); + nal->pps = malloc(sizeof(struct pic_parameter_set_rbsp)); + nal->slc = malloc(sizeof(struct slice_header)); + + return nal; +} + +void free_nal_unit(struct nal_unit *nal) +{ + free(nal->sps); + free(nal->pps); + free(nal->slc); + free(nal); +} + +void copy_nal_unit(struct nal_unit *dest, struct nal_unit *src) +{ + /* size without pps, sps and slc units: */ + int size = sizeof(struct nal_unit) - sizeof(struct seq_parameter_set_rbsp*) + - sizeof(struct pic_parameter_set_rbsp*) - sizeof(struct slice_header*); + + xine_fast_memcpy(dest, src, size); + + xine_fast_memcpy(dest->sps, src->sps, sizeof(struct seq_parameter_set_rbsp)); + xine_fast_memcpy(dest->pps, src->pps, sizeof(struct pic_parameter_set_rbsp)); + xine_fast_memcpy(dest->slc, src->slc, sizeof(struct slice_header)); +} |