[libdvbpsi-devel] [PATCH] Fix a parsing error in dr_02.c
Jean-Paul Saman
jpsaman at videolan.org
Mon Jun 1 09:48:12 CEST 2015
Daniel,
On Sun, May 31, 2015 at 10:03 PM, Daniel Kamil Kozar <dkk089 at gmail.com>
wrote:
> b_mpeg2 in dvbpsi_vstream_dr_t corresponds to what the H.222.0 refers to
> as the "MPEG_1_only_flag". If the flag is not set, it means that no
> extra data is contained at the end of the descriptor. The code in
> dr_02.c did exactly the opposite.
> ---
> src/descriptors/dr_02.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/src/descriptors/dr_02.c b/src/descriptors/dr_02.c
> index 774a1c0..1c35d83 100644
> --- a/src/descriptors/dr_02.c
> +++ b/src/descriptors/dr_02.c
> @@ -60,7 +60,7 @@ dvbpsi_vstream_dr_t *
> dvbpsi_DecodeVStreamDr(dvbpsi_descriptor_t * p_descriptor)
> if(!p_decoded) return NULL;
>
> /* Decode data and check the length */
> - p_decoded->b_mpeg2 = !((p_descriptor->p_data[0] & 0x04) ? true : false);
> + p_decoded->b_mpeg2 = (p_descriptor->p_data[0] & 0x04) ? true : false;
> if( (!p_decoded->b_mpeg2 && (p_descriptor->i_length != 1))
> || (p_decoded->b_mpeg2 && (p_descriptor->i_length != 3)))
> {
> --
> 2.4.2
>
>
Could you double check the specs, because it would mean a revert of
25cdb9fd, which I believe is correct in the mentioned specs.
That H.222.0 and " ISO/IEC 13818-1 : 2000, table 2-40 and 2.6.3" contradict
each other is quite unlikely IMHO.
$> git show 25cdb9fd
commit 25cdb9fd7ce804ec69b91fa1b0887435c474b32d
Author: Jean-Baptiste Kempf <jb at videolan.org>
Date: Tue Aug 12 04:04:47 2014 +0200
Correctly flag mpeg2 video data in video_stream_descriptor
See ISO/IEC 13818-1 : 2000, table 2-40 and 2.6.3
See https://trac.videolan.org/vlc/ticket/4200
Signed-off-by: Jean-Paul Saman <jpsaman at videolan.org>
diff --git a/src/descriptors/dr_02.c b/src/descriptors/dr_02.c
index 1c35d83..774a1c0 100644
--- a/src/descriptors/dr_02.c
+++ b/src/descriptors/dr_02.c
@@ -60,7 +60,7 @@ dvbpsi_vstream_dr_t *
dvbpsi_DecodeVStreamDr(dvbpsi_descriptor_t * p_descriptor)
if(!p_decoded) return NULL;
/* Decode data and check the length */
- p_decoded->b_mpeg2 = (p_descriptor->p_data[0] & 0x04) ? true : false;
+ p_decoded->b_mpeg2 = !((p_descriptor->p_data[0] & 0x04) ? true : false);
if( (!p_decoded->b_mpeg2 && (p_descriptor->i_length != 1))
|| (p_decoded->b_mpeg2 && (p_descriptor->i_length != 3)))
{
Kind regards,
Jean-Paul Saman
> _______________________________________________
> libdvbpsi-devel mailing list
> libdvbpsi-devel at videolan.org
> https://mailman.videolan.org/listinfo/libdvbpsi-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/libdvbpsi-devel/attachments/20150601/683a1111/attachment.html>
More information about the libdvbpsi-devel
mailing list