Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove NuppelVideoRecorder #935

Open
wants to merge 10 commits into
base: master
Choose a base branch
from

Conversation

ulmus-scott
Copy link
Contributor

See https://github.com/MythTV/mythtv/projects/4#card-46810801

This reduces external code included in MythTV. MythTV no longer directly uses liblzo or libmp3lame.

@linuxdude42 this is confusing syntax with the unused parameter

I have removed the instructions for CMake to build liblzo or libmp3lame, but FFmpeg can use them if they exist, so maybe we want to still build them?

Checklist

@garybuhrmaster
Copy link
Contributor

Does this mean that those that have (potentially) decades worth of nupplerecorder'ed recordings will suddenly be unable to play those recordings and the project will not, as part of an upgrade, automatically transcode (with 1 to 1 guaranteed quality accuracy) those recordings to something fully supported?

@ulmus-scott
Copy link
Contributor Author

This does not change how .nuv files are played: they are still demuxed and decoded by FFmpeg. This removes the ability to create new .nuv files (since FFmpeg only has a demuxer).

Existing .nuv files will still play as is and do not need to be transcoded. (I only have a single small .nuv sample, but it plays fine).

FFmpeg only uses liblzo for testing. FFmpeg needs libmp3lame for encoding MP3 audio, but it does have other audio encoders and can copy streams from the input to the output without decoding and encoding them.

@garybuhrmaster
Copy link
Contributor

This does not change how .nuv files are played: they are still demuxed and decoded by FFmpeg. This removes the ability to create new .nuv files (since FFmpeg only has a demuxer).

In the past, removing features (not forced by circumstances outside of the projects control) were announced in the current master (warnings with deprecation when used) and removed in the master next, giving time for people to convert to something different (with documentation as to the recommended alternative). So, announce now, with STRONG deprecation warnings in the logs in v35 (which will be the first time most will see the warnings), and remove no earlier than v36.

Of course the developers may, again, say, damn the torpedoes, and move faster if they choose.

@ulmus-scott
Copy link
Contributor Author

In the past, removing features (not forced by circumstances outside of the projects control) were announced in the current master (warnings with deprecation when used) and removed in the master next, giving time for people to convert to something different (with documentation as to the recommended alternative). So, announce now, with STRONG deprecation warnings in the logs in v35 (which will be the first time most will see the warnings), and remove no earlier than v36.

Of course the developers may, again, say, damn the torpedoes, and move faster if they choose.

I suppose that makes sense, but we need input from the others.

Adding something like:

LOG(VB_GENERAL, LOG_ALERT, "NuppelVideoRecorder is deprecated and will be "
"removed in a future version of MythTV.  Adjust transcode settings to use "
"FFmpeg or change recorder settings.");

to the NuppelVideoRecorder constructor could work, but I have no idea what the changed settings would be.

@bennettpeter
Copy link
Member

I do not believe the nuppelvideo recorder works any more. A couple of years ago I configured a USB camera in mythtv as a capture card to see whether it would work. When I created a test recording, the log said it was using nuppelvideo, but nothing was created and the recording failed with numerous errors.

@linuxdude42
Copy link
Contributor

A mailing list comment from 2017 says they thought there was agreement to drop support for non-hardware recorders after 29, so this removal has been discussed off and on for quite some time. I know I brought it up in 2019.

@ulmus-scott
Copy link
Contributor Author

If it doesn't work then there is no problem removing it. @bennettpeter can you test it again?

Could MpegRecorder or V4L2encRecorder be used instead? (I couldn't find any documentation on what those were for.)

If we did want to support a software encoding recorder, it should use FFmpeg. If we don't, it should be possible to set up an external recorder (probably using FFmpeg) to do that.

@bennettpeter
Copy link
Member

bennettpeter commented Aug 1, 2024

An external recorder can be used. i tested it and put it here : https://github.com/bennettpeter/MythTV-V4L2Capture
I did not implement the analog capture cards in the new web setup. They are grayed out. The only way to set them up would be with mythtv-setup. When I created the web setup I tested mythtv-setup and decided that it was not worth while adding them to the web setup.

I will test it again.

@ulmus-scott
Copy link
Contributor Author

@bennettpeter did you have a chance to test if NuppelVideoRecorder works?

@ulmus-scott
Copy link
Contributor Author

ulmus-scott commented Nov 9, 2024

Rebased onto master, fixing up the qmake project files from moving ffmpeg-mmx.h and removing the now unused libmythtv/recorders/vbitext directory.

@bennettpeter did you have a chance to test if NuppelVideoRecorder works?

This format uses JPEG and MP3 and has not been useful for a long time.

This is equivalent to always disabling CONFIG_LIBMP3LAME, which is the default.

copyaudio and copyvideo are now always false, so I have removed them.
libmp3lame and liblzo are now unused by MythTV; FFmpeg uses liblzo only for testing
and can use libmp3lame to encode MP3 audio if enabled.

The following were only used by NuppelVideoRecorder and removed:
go7007_myth.h
RTjpegN.h, RTjpegN.cpp

remove libmythtv/docs:
    NuppelVideo: LICENSE README
    RTjpeg: LICENSE.jpeg LICENSE.rtjpeg README.rtjpeg
    LICENSE.XJ: As far as I can tell, this was for code that was removed in 2019 in
                3d259ba
I'm not sure if we want to keep the CMake stuff to build libmp3lame when
building FFmpeg.

I have also left the Windows version of libmp3lame in platform/.
moving the used items to where they are used.
replacing the current mmx.h, whose extra values are unused
It was unused but included by NuppelVideoRecorder.
They were only used by MythTranscodePlayer so move them there.
UpdateStoredFrameNum(), WriteStoredData(), ClearStoredData()
NuppelVideoRecorder::FormatTT() was the only user of VBIData::teletextpage, so
vbi_event() now has no effects.  Since no data is ever extracted, the calls to
vbi_add_handler() and thus vbi_open() are now pointless and can be removed.

V4LRecorder::m_palVbiCb and m_palVbiTt will then always be nullptr, so they can
be removed.

After copying the value of the VT_WIDTH constant to its use in cc608reader.cpp,
the vbitext directory is now unused and can be removed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants