dr_86: convert from linked list to array
[email protected] (Michael Krufky)
| Newsgroups | gmane.comp.video.videolan.libdvbpsi.devel |
|---|---|
| Message-ID | <[email protected]> |
libdvbpsi | branch: master | Michael Krufky <[email protected]> | Mon May 20 21:03:41 2013 -0400| [47c32bb3caffb6c7f32150dfe6d84ed3f70f0738] | committer: Jean-Paul Saman dr_86: convert from linked list to array Signed-off-by: Michael Krufky <[email protected]> > http://git.videolan.org/gitweb.cgi/libdvbpsi.git/?a=commit;h=47c32bb3caffb6c7f32150dfe6d84ed3f70f0738 --- src/descriptors/dr_86.c | 18 +----------------- src/descriptors/dr_86.h | 4 +--- 2 files changed, 2 insertions(+), 20 deletions(-) diff --git a/src/descriptors/dr_86.c b/src/descriptors/dr_86.c index 4d781a4..c6da64a 100644 --- a/src/descriptors/dr_86.c +++ b/src/descriptors/dr_86.c @@ -65,19 +65,12 @@ dvbpsi_caption_service_dr_t *dvbpsi_DecodeCaptionServiceDr(dvbpsi_descriptor_t * p_descriptor->p_decoded = (void*)p_decoded; - p_decoded->p_first_service = NULL; - p_decoded->i_number_of_services = 0x1f & buf[0]; buf++; for (int i = 0; i < p_decoded->i_number_of_services; i++) { - dvbpsi_caption_service_t * p_service = - (dvbpsi_caption_service_t*)malloc(sizeof(dvbpsi_caption_service_t)); - - if (!p_service) return NULL; - - memset(p_service, 0, sizeof(dvbpsi_caption_service_t)); + dvbpsi_caption_service_t * p_service = &p_decoded->services[i]; memcpy(p_service->i_iso_639_code, buf, 3); buf += 3; @@ -88,15 +81,6 @@ dvbpsi_caption_service_dr_t *dvbpsi_DecodeCaptionServiceDr(dvbpsi_descriptor_t * p_service->b_easy_reader = 0x01 & (buf[0] >> 7); p_service->b_wide_aspect_ratio = 0x01 & (buf[0] >> 6); - if (p_decoded->p_first_service == NULL) - p_decoded->p_first_service = p_service; - else - { - dvbpsi_caption_service_t* p_last_service = p_decoded->p_first_service; - while (p_last_service->p_next != NULL) - p_last_service = p_last_service->p_next; - p_last_service->p_next = p_service; - } buf += 2; } return p_decoded; diff --git a/src/descriptors/dr_86.h b/src/descriptors/dr_86.h index ceaf80d..b962678 100644 --- a/src/descriptors/dr_86.h +++ b/src/descriptors/dr_86.h @@ -55,8 +55,6 @@ typedef struct dvbpsi_caption_service_s uint16_t i_caption_service_number; int b_easy_reader; int b_wide_aspect_ratio; - - struct dvbpsi_caption_service_s *p_next; }dvbpsi_caption_service_t; /***************************************************************************** @@ -75,7 +73,7 @@ typedef struct dvbpsi_caption_service_s typedef struct dvbpsi_caption_service_dr_s { uint8_t i_number_of_services; - dvbpsi_caption_service_t *p_first_service; + dvbpsi_caption_service_t services[0x1f]; }dvbpsi_caption_service_dr_t; /***************************************************************************** _______________________________________________ libdvbpsi-devel mailing list [email protected] https://mailman.videolan.org/listinfo/libdvbpsi-devel