On Sun, Dec 10, 2017 at 10:19:30PM +0000, Mark Thompson wrote:
> On 10/12/17 21:49, Michael Niedermayer wrote:
> > On Sun, Dec 10, 2017 at 07:56:49PM +0000, Mark Thompson wrote:
> >> On 10/12/17 15:20, Michael Niedermayer wrote:
> >>> Signed-off-by: Michael Niedermayer <mich...@niedermayer.cc>
> >>> ---
> >>>  libavcodec/mpeg4video.h    |  3 +++
> >>>  libavcodec/mpeg4videodec.c | 32 ++++++++++++++++++++++++++++++++
> >>>  2 files changed, 35 insertions(+)
> >>>
> >>> diff --git a/libavcodec/mpeg4video.h b/libavcodec/mpeg4video.h
> >>> index 515b008ae4..0ba502d50b 100644
> >>> --- a/libavcodec/mpeg4video.h
> >>> +++ b/libavcodec/mpeg4video.h
> >>> @@ -43,6 +43,9 @@
> >>>  #define ACE_VO_TYPE             12
> >>>  #define ADV_SIMPLE_VO_TYPE      17
> >>>  
> >>> +#define VOT_VIDEO_ID 1
> >>> +#define VOT_STILL_TEXTURE_ID 2
> >>> +
> >>>  // aspect_ratio_info
> >>>  #define EXTENDED_PAR 15
> >>>  
> >>> diff --git a/libavcodec/mpeg4videodec.c b/libavcodec/mpeg4videodec.c
> >>> index cdd7077f01..852f73f02c 100644
> >>> --- a/libavcodec/mpeg4videodec.c
> >>> +++ b/libavcodec/mpeg4videodec.c
> >>> @@ -1751,6 +1751,36 @@ static int 
> >>> mpeg4_decode_profile_level(MpegEncContext *s, GetBitContext *gb)
> >>>          s->avctx->level = 0;
> >>>      }
> >>>  
> >>> +    return 0;
> >>> +
> >>
> >> Stray newline.
> >>
> >>> +}
> >>> +
> >>> +static int mpeg4_decode_visual_object(MpegEncContext *s, GetBitContext 
> >>> *gb)
> >>> +{
> >>> +    int visual_object_type;
> >>> +    int is_visual_object_identifier = get_bits1(gb);
> >>> +
> >>> +    if (is_visual_object_identifier) {
> >>> +        skip_bits(gb, 4+3);
> >>> +    }
> >>> +    visual_object_type = get_bits(gb, 4);
> >>> +
> >>> +    if (visual_object_type == VOT_VIDEO_ID ||
> >>> +        visual_object_type == VOT_STILL_TEXTURE_ID) {
> >>> +        int video_signal_type = get_bits1(gb);
> >>> +        if (video_signal_type) {
> >>> +            int video_format = get_bits(gb, 3);
> >>> +            int video_range = get_bits1(gb);
> >>> +            int color_description = get_bits1(gb);
> >>> +
> >>> +            s->avctx->color_range = video_range ? AVCOL_RANGE_JPEG : 
> >>> AVCOL_RANGE_MPEG;
> >>> +
> >>> +            if (color_description) {
> >>> +                skip_bits(gb, 8+8+8);
> >>
> >> Might be nice to extract the colour information as well?  (Should be able 
> >> to set color_primaries/color_trc/colorspace directly, I think.)
> > 
> > will look into this
> > btw, iam a bit short on samples that use this
> > i had found just one sample after a quick look
> > more samples would be welcome, if someone has some.
> 
> From a quick look around (run over some MPEG-4 samples with an abort in the 
> above code) I can't find any examples of video_signal_type being set at all.  
> Minor thing I noticed in doing that - video_format is unused so you get a 
> warning from the compiler: since it's not useful to anyone maybe replace it 
> with skip_bits(3) and move the other stuff around to match that?
> 
> Don't block this because of the colour part if you don't have a sample of 
> that - I just thought from reading the relevant part of the standard that it 
> should be easy, but if noone has ever used it then whatever.

will push with color part support.
I sadly have not found much to test it seems to be the same as mpeg2

thx

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

If you drop bombs on a foreign country and kill a hundred thousand
innocent people, expect your government to call the consequence
"unprovoked inhuman terrorist attacks" and use it to justify dropping
more bombs and killing more people. The technology changed, the idea is old.

Attachment: signature.asc
Description: PGP signature

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel

Reply via email to